Timeline



Mar 14, 2020:

8:40 PM Changeset in webkit [258477] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Fix the "deliver cached ranges" logic in PDFPlugin (and other small cleanups)
https://bugs.webkit.org/show_bug.cgi?id=209097

Reviewed by Tim Hatcher.

Streaming in data always appended to the buffer instead of first growing the buffer.
This wasn't noticed earlier because we often did not grow the buffer for successful range request completion.
But now we often do!

So this cleans that all up.

At the same time it revealed other interactions with PDFKit that force us to handle data requests on the main
thread after the document load is complete - Which is fine!

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::dataProviderGetBytesAtPositionCallback): If on the main thread (and the document load is complete)

handle the request directly!

(WebKit::PDFPlugin::getResourceBytesAtPositionMainThread):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithAccumulatedData):
(WebKit::PDFPlugin::ensureDataBufferLength):
(WebKit::PDFPlugin::didFail):
(WebKit::PDFPlugin::maybeClearHighLatencyDataProviderFlag):
(WebKit::PDFPlugin::documentDataDidFinishLoading):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::manualStreamDidReceiveData): Grow the buffer instead of append.

5:14 PM Changeset in webkit [258476] by Brent Fulgham
  • 8 edits in trunk/Source

Add missing checks needed for AppBound Quirk
https://bugs.webkit.org/show_bug.cgi?id=209117
<rdar://problem/60460097>

Reviewed by John Wilander.

The checks for the 'NeedsInAppBrowserPrivacyQuirks' flag added in r258101 was incomplete.
Source/WebCore:

Two additional call sites need to check the state of the flag.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld): Add missing check for the quirk.

  • loader/FrameLoaderClient.h: Add new API for the 'NeedsInAppBrowserPrivacyQuirks'

debug flag.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately): Ditto.

Source/WebKit:

These changes let the WebFrameLoaderClient report the quirk state to WebCore code.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::needsInAppBrowserPrivacyQuirks): Added.

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

(WebKit::WebPage::needsInAppBrowserPrivacyQuirks const): Added.

3:59 PM Changeset in webkit [258475] by Darin Adler
  • 20 edits in trunk/Source

Change all return values in TextIterator header from live ranges to SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=208906

Reviewed by Antti Koivisto.

Source/WebCore:

This is another step in moving off of live ranges for WebKit internals.

  • Change return values of remaining functions that were returning live ranges in the TextIterator header to return SimpleRange.
  • Change some arguments from live ranges to SimpleRange.
  • At some call sites, use createLiveRange to convert the SimpleRange into a live range (for now), but at others update the code to use SimpleRange.
  • Renamed a version of findPlainText that returns a boolean to containsPlainText.
  • Convert call sites that were using createLiveRange just to use the Range::startPosition and Range::endPosition functions to instead use a new overload of the createLegacyEditingPosition function that can be used with SimpleRange::start and SimpleRange::end because it takes a BoundaryPoint.
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange): Return Optional<SimpleRange>
and take SimpleRange argument.
(WebCore::AXObjectCache::previousBoundary): Updated since
SimplifiedBackwardsTextIterator::range now returns SimpleRange.

  • accessibility/AXObjectCache.h: Updated for the above.
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::containsText const): Updated for name change.
Now containsPlainText instead of findPlainText.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Use createLegacyEditingPosition instead of createLiveRange.
(-[WebAccessibilityObjectWrapper rangeFromMarkers:withText:]): Use createLiveRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
Use createLegacyEditingPosition instead of createLiveRange.

  • dom/Position.cpp:

(WebCore::createLegacyEditingPosition): Added an overload that takes a BoundaryPoint.

  • dom/Position.h: Updated for the above, also removed unneeded includes and forward

declarations.

  • editing/Editing.cpp:

(WebCore::visiblePositionForIndexUsingCharacterIterator): Updated since
CharacterIterator::range is now a SimpleRange, use createLegacyEditingPosition.

  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling): Updated since CharacterIterator::range
is now a SimpleRange.
(WebCore::Editor::rangeOfString): Updated since findPlainText now returns a
SimpleRange; use createLiveRange.
(WebCore::Editor::countMatchesForText): Ditto.

  • editing/TextIterator.cpp:

(WebCore::SimplifiedBackwardsTextIterator::range const): Return a SimpleRange.
(WebCore::CharacterIterator::range const): Ditto.
(WebCore::characterSubrange): Updated since CharacterIterator::range returns
a SimpleRange. Use createLiveRange.
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Cut down
code here by initializing data members in the class definition.
(WebCore::BackwardsCharacterIterator::range const): Return a SimpleRange.
(WebCore::WordAwareIterator::WordAwareIterator): Cut down code here by
initializing data members in the class definition.
(WebCore::hasAnyPlainText): Take a SimpleRange, use createLiveRange.
(WebCore::plainTextUsingBackwardsTextIteratorForTesting): Take a SimpleRange,
use createLiveRange.
(WebCore::collapsedToBoundary): Take and return a SimpleRange.
(WebCore::findPlainTextMatches): Take a SimpleRange, use createLiveRange.
(WebCore::rangeForMatch): Take and return a SimpleRange.
(WebCore::findClosestPlainText): Ditto.
(WebCore::findPlainText): Ditto.
(WebCore::containsPlainText): Renamed from findPlainText since this returns
a boolean, not a found location of some text.

  • editing/TextIterator.h: Updated for the above. Also changed some data

members to use unsigned for offsets rather than int.

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::startPosition): Use
createLegacyEditingPosition instead of createLiveRange.
(WebCore::ParagraphContentIterator::endPosition): Ditto.

  • editing/VisiblePosition.h: Added a forward declaration here since Position.h

no longer forward declares it.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::appendTrailingWhitespace): Updated since
CharacterIterator::range is now a SimpleRange, use createLegacyEditingPosition.

  • editing/VisibleUnits.cpp:

(WebCore::previousBoundary): Ditto.
(WebCore::nextBoundary): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::rangeOfStringNearLocation): Updated since
findClosestPlainText now returns a SimpleRange, use createLiveRange.

Source/WebKit:

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: Removed unneeded include of

TextIterator.h.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeNearPositionMatchesText): Removed unused originalRange argument,
changed return type to Optional<SimpleRange> since findClosestPlainText now
returns a SimpleRange.
(WebKit::WebPage::getRectsAtSelectionOffsetWithText): Updated since
rangeNearPositionMatchesText now returns Optional<SimpleRange>, use createLiveRange.
(WebKit::WebPage::requestDocumentEditingContext): Updated since
CharacterIterator::range returns SimpleRange, use createLiveRange.

3:17 PM Changeset in webkit [258474] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Gather PDF scripts to run on a background thread.
https://bugs.webkit.org/show_bug.cgi?id=209063

Reviewed by Geoff Garen.

In incremental loading mode, gathering document scripts will sometimes require PDFKit/CG
to lock and wait on data loads from our data provider.

So if we gather them on the main thread, we will hang the main thread and therefore deadlock
with our data provider thread/queue.

So let's gather those scripts on a background thread!

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithAccumulatedData):
(WebKit::PDFPlugin::documentDataDidFinishLoading):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::streamDidFinishLoading):
(WebKit::PDFPlugin::manualStreamDidFinishLoading):
(WebKit::PDFPlugin::tryRunScriptsInPDFDocument): Only actually gathers scripts to execute if there

is a m_pdfDocument and the entire document data finished loading.

(WebKit::PDFPlugin::pdfDocumentDidLoad): Deleted.
(WebKit::PDFPlugin::runScriptsInPDFDocument): Deleted.

3:04 PM Changeset in webkit [258473] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Fill in the gaps with anonymous table cell boxes
https://bugs.webkit.org/show_bug.cgi?id=209114
<rdar://problem/60458806>

Reviewed by Antti Koivisto.

Source/WebCore:

17.5 Visual layout of table contents
A "missing cell" is a cell in the row/column grid that is not
occupied by an element or pseudo-element. Missing cells are rendered
as if an anonymous table-cell box occupied their position in the grid.
(https://www.w3.org/TR/CSS22/tables.html)

This helps to keep TableGrid an actual grid.

Test: fast/layoutformattingcontext/table-missing-cells-simple.html

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):

LayoutTests:

  • fast/layoutformattingcontext/table-missing-cells-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-missing-cells-simple.html: Added.
12:53 PM Changeset in webkit [258472] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r257720 - ASSERT(m_column != unsetColumnIndex) in RenderTable::cellBefore
https://bugs.webkit.org/show_bug.cgi?id=208397

Patch by Doug Kelly <Doug Kelly> on 2020-03-02
Reviewed by Zalan Bujtas.

Source/WebCore:

When inserting a cell into a table row which is not visible, this can lead to attempting to compute the repaint
rects during tree building. Instead, mark the layer as dirty using dirtyVisibleContentStatus(), and the visibility
will be recomputed at a later time.

Test: fast/table/insert-cell-invisible-parent.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertedIntoTree):

LayoutTests:

  • fast/table/insert-cell-invisible-parent-expected.txt: Added.
  • fast/table/insert-cell-invisible-parent.html: Added.
12:53 PM Changeset in webkit [258471] by Adrian Perez de Castro
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.26

Merge r257897 - Crash in SVGElement::removeEventListener with symbol element
https://bugs.webkit.org/show_bug.cgi?id=207920

Patch by Doug Kelly <Doug Kelly> on 2020-03-04
Reviewed by Ryosuke Niwa.

Source/WebCore:

Resolves a crash in SVGElement::removeEventListener by only attaching the events to the window if the SVG element is both the outermost
SVG element, in addition to ensuring the SVG element is attached to the tree. The symbol element's behavior when referenced by a use
tag actually creates an svg tag instead, so the SVGSVGElement's special behavior for copying attributes is vital.

Note that Chrome and Firefox have a similar behavior for detached SVG elements as to what this change creates: in both other browsers,
onerror is not fired for a detached svg element, and in Firefox, onresize is not fired for a detached svg element (it is however fired
in Chrome).

Tests: fast/events/detached-svg-parent-window-events.html

fast/events/onerror-svg-symbol.html

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::parseAttribute):

LayoutTests:

  • fast/events/detached-svg-parent-window-events-expected.txt: Added.
  • fast/events/detached-svg-parent-window-events.html: Added.
  • fast/events/onerror-svg-symbol-expected.txt: Added.
  • fast/events/onerror-svg-symbol.html: Added.
12:52 PM Changeset in webkit [258470] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/bmalloc

Merge r258142 - Build failure on ppc64le if unix is undefined
https://bugs.webkit.org/show_bug.cgi?id=207906

Patch by Mike Gorse <mgorse@suse.com> on 2020-03-09
Reviewed by Yusuke Suzuki.

  • bmalloc/BPlatform.h: Check for unix along with unix.
12:19 PM Changeset in webkit [258469] by Peng Liu
  • 10 edits
    2 deletes in trunk

Cleanup RenderMediaControls.cpp and RenderMediaControlElements.cpp
https://bugs.webkit.org/show_bug.cgi?id=209008

Reviewed by Daniel Bates.

Source/WebCore:

Merge RenderMediaControls.[h|cpp] and RenderMediaControlElements.[h|cpp].
Remove class RenderMediaVolumeSliderContainer because we can use RenderBlockFlow
to render MediaControlTextTrackContainerElement.

No new tests, no functional change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/shadow/MediaControlElementTypes.cpp:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createElementRenderer):

  • rendering/RenderMediaControlElements.cpp: Removed.
  • rendering/RenderMediaControlElements.h: Removed.
  • rendering/RenderMediaControls.cpp:

(WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer):
(WebCore::RenderMediaControlTimelineContainer::layout):

  • rendering/RenderMediaControls.h:
  • rendering/RenderThemeMac.mm:

LayoutTests:

Remove unused code in a test.

  • media/track/track-cue-rendering-rtl.html:
12:01 PM Changeset in webkit [258468] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Share HitTestResult::addNodeToListBasedTestResult() impl for LayoutRect and FloatRect overloads
https://bugs.webkit.org/show_bug.cgi?id=209107

Reviewed by Brady Eidson.

Remove code duplication for adding a node to the result set.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::addNodeToListBasedTestResultCommon): Added.
(WebCore::HitTestResult::addNodeToListBasedTestResult): Write in terms of addNodeToListBasedTestResultCommon().

  • rendering/HitTestResult.h:
9:10 AM Changeset in webkit [258467] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake] Warning when ccache is not installed
https://bugs.webkit.org/show_bug.cgi?id=208952

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-14
Reviewed by Daniel Bates.

Change the warning when ccache is not installed to a status message. We shouldn't be
printing warnings except when there is an actual problem.

  • Source/cmake/WebKitCCache.cmake:
5:57 AM Changeset in webkit [258466] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Tree building] Reset the fragmented flow status before calling child.willBeRemovedFromTree.
https://bugs.webkit.org/show_bug.cgi?id=209100
<rdar://problem/60434672>

Reviewed by Simon Fraser.

Source/WebCore:

::willBeRemovedFromTree() assumes all the cleanup has happened and it's the final step before calling d'tor.
It clears m_fragmentList that resetFragmentedFlowStateOnRemoval() later checks for consistency (m_fragmentList.contains(fragment)).

Test: fast/multicol/reparent-fragment-flow-content.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::detachFromRenderElement):

LayoutTests:

  • fast/multicol/reparent-fragment-flow-content-expected.txt: Added.
  • fast/multicol/reparent-fragment-flow-content.html: Added.
3:22 AM Changeset in webkit [258465] by commit-queue@webkit.org
  • 10 edits in trunk

Set Origin header value to null rather than omitting it
https://bugs.webkit.org/show_bug.cgi?id=186030

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-14
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/fetch/origin/assorted.window-expected.txt:

Source/WebCore:

For every redirect, addHTTPOriginIfNeeded should be called to
make sure that the tainted origin logic is applied [1, Step 10] and
thus the request after redirect has the correct Origin header.

Make AppleWin treat 308 redirects like 307 and so keeping http
methods across redirects. This is similar to
https://bugs.webkit.org/show_bug.cgi?id=154348.

[1] https://fetch.spec.whatwg.org/#concept-http-network-or-cache-fetch

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addHTTPOriginIfNeeded):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):

LayoutTests:

Update improved test result.

  • http/tests/security/cors-post-redirect-307-expected.txt:
  • http/tests/security/cors-post-redirect-307-pson-expected.txt:
  • http/tests/security/cors-post-redirect-308-expected.txt:
12:15 AM Changeset in webkit [258464] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Call SVGTRefElement::buildPendingResource in SVGElement::didFinishInsertingNode
https://bugs.webkit.org/show_bug.cgi?id=208981

Reviewed by Antti Koivisto.

This patch moves the call to SVGTRefElement::buildPendingResource from SVGElement::insertedIntoAncestor
to SVGElement::didFinishInsertingNode.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::insertedIntoAncestor): Return true when the element has a pending resource ID.
(WebCore::SVGElement::didFinishInsertingNode): Added. Calls buildPendingResourcesIfNeeded.

  • svg/SVGElement.h:
12:03 AM Changeset in webkit [258463] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Fix windows build by making configSizeToProtect stay 4KB.

  • runtime/JSCConfig.h:

Mar 13, 2020:

11:43 PM Changeset in webkit [258462] by Justin Fan
  • 3 edits in trunk/LayoutTests

PROGRESSION: webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205736

Unreviewed test expectation update.

  • TestExpectations:
  • webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats-expected.txt:
11:16 PM Changeset in webkit [258461] by Justin Fan
  • 4 edits in trunk/LayoutTests

PROGRESSION (r253926): webgl/1.0.3/conformance/renderbuffers/feedback-loop.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205738

Unreviewed test expectation updates.

  • TestExpectations:
  • platform/ios/TestExpectations:
  • webgl/1.0.3/conformance/renderbuffers/feedback-loop-expected.txt:
9:11 PM Changeset in webkit [258460] by sbarati@apple.com
  • 5 edits in trunk/Source

configSizeToProtect should be 16KB
https://bugs.webkit.org/show_bug.cgi?id=209068

Reviewed by Keith Miller.

Source/bmalloc:

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

  • runtime/JSCConfig.h:
8:11 PM Changeset in webkit [258459] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

SVGMatrix should have the access right of its owner SVGTransform always
https://bugs.webkit.org/show_bug.cgi?id=207462

Reviewed by Simon Fraser.

Source/WebCore:

The SVGMatrix needs to be reattached to its owner SVGTransform when the
access right of this owner changes. The access right of the owner changes
when it gets attached to or detached from a higher level owner.

Test: svg/dom/SVGTransformList-anim-read-only.html

  • svg/SVGTransform.h:
  • svg/properties/SVGProperty.h:

(WebCore::SVGProperty::attach):
(WebCore::SVGProperty::detach):
(WebCore::SVGProperty::reattach):

LayoutTests:

  • svg/dom/SVGTransformList-anim-read-only-expected.txt: Added.
  • svg/dom/SVGTransformList-anim-read-only.html: Added.
7:10 PM Changeset in webkit [258458] by commit-queue@webkit.org
  • 17 edits in trunk

WKWebView._negotiatedLegacyTLS should be correct after back/forward navigations
https://bugs.webkit.org/show_bug.cgi?id=209011
<rdar://problem/59370588>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-13
Reviewed by Youenn Fablet.

Source/WebCore:

This is basically r258343 but for legacy TLS negotiation instead of plaintext HTTP use.

  • dom/SecurityContext.h:

(WebCore::SecurityContext::usedLegacyTLS const):
(WebCore::SecurityContext::setUsedLegacyTLS):

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::usedLegacyTLS const):
(WebCore::CachedFrame::setUsedLegacyTLS): Deleted.

  • history/CachedFrame.h:

(WebCore::CachedFrame::usedLegacyTLS const): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::includeCertificateInfo const):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::setUsedLegacyTLS):

Source/WebKit:

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::notifyDidReceiveResponse):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::usedLegacyTLS): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

7:01 PM Changeset in webkit [258457] by wenson_hsieh@apple.com
  • 6 edits in trunk

[watchOS] Don’t display empty text suggestions in Quickboard when editing input fields
https://bugs.webkit.org/show_bug.cgi?id=209089

Reviewed by Tim Horton.

Source/WebKit:

Handle text suggestions that lack displayText gracefully in Quickboard by not showing them as AutoFill
candidates. Currently, they are presented as blank collection view cells in Quickboard, which leads to a
confusing user experience.

Test: WKWebViewAutoFillTests.DoNotShowBlankTextSuggestions

  • UIProcess/ios/forms/WKFocusedFormControlView.mm:

(-[WKFocusedFormControlView setSuggestions:]):

Tools:

Add an API test for watchOS. Also rename a few occurrences of "Autofill" to "AutoFill", to reflect the official
marketing name for the feature.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(runUntilReceivesAutoplayEvent):

Additionally fix the watchOS engineering build for arm64_32, which was failing due to comparisons between 64-bit
and 32-bit integers. This is because this function took a WKAutoplayEvent (a 32-bit integer), but compared
against the _WKAutoplayEvent type (an NSInteger that is 64 bits on this architecture). There didn't seem to
be any compelling reason to compare against different types here (especially since we only set
receivedAutoplayEvent under the Objective-C delegate method that provides a _WKAutoplayEvent), so I changed
these all to be _WKAutoplayEvent.

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(-[AutoFillTestView _autofillInputView]):
(-[AutoFillTestView textInputHasAutoFillContext]):
(TestWebKitAPI::TEST):
(-[AutofillTestView initWithFrame:]): Deleted.
(-[AutofillTestView _autofillInputView]): Deleted.
(-[AutofillTestView textInputHasAutofillContext]): Deleted.

  • TestWebKitAPI/ios/UIKitSPI.h:
6:43 PM Changeset in webkit [258456] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Clean up sandbox violations found during testing
https://bugs.webkit.org/show_bug.cgi?id=209096
<rdar://problem/59931477>

Reviewed by Geoffrey Garen.

Remove telemetry from some items, and allow access to some IOKit properties
needed for media playback on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
6:43 PM Changeset in webkit [258455] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Tree building] Block::attachIgnoringContinuation should allow inline tables as before child container
https://bugs.webkit.org/show_bug.cgi?id=209095
<rdar://problem/59837588>

Reviewed by Simon Fraser.

Source/WebCore:

It's perfectly valid to have an inline table as the anonymous container for the before child.
It'll get wrapped inside an anonymous block right before we insert the block box candidate, so
the final result will be something like:

new block level child (this is the child we are inserting)
anonymous block wrapper

inline table (this is the before child's inline container)

before child

Test: fast/table/before-child-is-inline-table.html

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):

LayoutTests:

  • fast/table/before-child-is-inline-table-expected.txt: Added.
  • fast/table/before-child-is-inline-table.html: Added.
6:27 PM Changeset in webkit [258454] by sabouhallawa@apple.com
  • 2 edits in trunk/Source/WebCore

[GPU Process] GraphicsContextStateChange::apply() should process ShadowsIgnoreTransformsChange before processing ShadowChange
https://bugs.webkit.org/show_bug.cgi?id=209071

Reviewed by Darin Adler.

Ensure GraphicsContextStateChange::apply() calls shadowsIgnoreTransforms()
before calling setLegacyShadow() or setShadow().

Test: This patch fixes the following tests when running:
"run-webkit-tests --internal-feature RenderCanvasInGPUProcessEnabled"

fast/canvas/canvas-image-shadow.html
fast/canvas/canvas-scale-drawImage-shadow.html
fast/canvas/canvas-scale-fillPath-shadow.html
fast/canvas/canvas-scale-fillRect-shadow.html
fast/canvas/canvas-scale-shadowBlur.html
fast/canvas/canvas-transforms-fillRect-shadow.html
fast/canvas/fillText-shadow.html

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextStateChange::apply const):

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

Unreviewed, fix JSC / test262 tests
https://bugs.webkit.org/show_bug.cgi?id=209033
<rdar://problem/58946936>

Follow-up change for DisallowGC causes crash because CodeBlock is nullptr when function call is non JS calls.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

5:19 PM Changeset in webkit [258452] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Missing arithMode for ArithAbs and ArithNegate in DFGClobberize
https://bugs.webkit.org/show_bug.cgi?id=208685
<rdar://problem/60115088>

Reviewed by Saam Barati.

In the pure case of ArithNegate and ArithAbs in DFGClobberize, their PureValues did not include their
respective ArithMode. That means that e.g. a CheckOverflow ArithNegate/Abs could be considered equivalent
to an Unchecked version of the same node.

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

5:05 PM Changeset in webkit [258451] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r258446.

These expectations are no longer needed.

Reverted changeset:

"[ Mac ] http/tests/security/mixedContent/insecure-worker-
global-scope.html is flaky failing."
https://bugs.webkit.org/show_bug.cgi?id=209093
https://trac.webkit.org/changeset/258446

4:59 PM Changeset in webkit [258450] by Jason_Lawrence
  • 2 edits
    5 deletes in trunk/LayoutTests

Unreviewed, reverting r258431.

These tests are flaky failing.

Reverted changeset:

"Add mixed content block test for imported scripts in worker
global scope"
https://bugs.webkit.org/show_bug.cgi?id=209075
https://trac.webkit.org/changeset/258431

4:57 PM Changeset in webkit [258449] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, drop unused variable in WebPageProxy::backForwardGoToItem().

  • UIProcess/WebPageProxy.cpp:
4:35 PM Changeset in webkit [258448] by wilander@apple.com
  • 10 edits in trunk/Source

Remove unused code related to removePrevalentDomains()
https://bugs.webkit.org/show_bug.cgi?id=209078
<rdar://problem/59681984>

Reviewed by Brent Fulgham.

The various removePrevalentDomains() functions and its IPC endpoint are unused and should be removed.

Source/WebCore:

No new tests. Just dead code removal.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::removePrevalentDomains): Deleted.

  • platform/network/NetworkStorageSession.h:

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::clearBlockingStateForDomains): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains): Deleted.
(WebKit::WebResourceLoadStatisticsStore::callRemoveDomainsHandler): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::removePrevalentDomains): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
4:33 PM Changeset in webkit [258447] by mmaxfield@apple.com
  • 16 edits
    2 adds in trunk/Source

[Cocoa] Push applicationSDKVersion() down from WebCore into WTF
https://bugs.webkit.org/show_bug.cgi?id=209030

Reviewed by Simon Fraser.

Source/JavaScriptCore:

dyld_get_program_sdk_version() gives you the wrong answer in the Web Process (or at least
not the answer you actually want). There are already facilities for the UI Process to tell
the Web Process what the real value is, but those functions are currently in WebCore,
which is inaccessible to WTF. This patch is in preparation for
https://bugs.webkit.org/show_bug.cgi?id=208969 which needs to know this information in WTF.

I also found a few places which were calling dyld_get_program_sdk_version() in JavaScriptCore
and WebCore (which is wrong because those libraries exist in the Web Process), and have fixed
them up to use applicationSDKVersion() instead.

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

Source/WebCore:

  • html/HTMLObjectElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):

  • platform/RuntimeApplicationChecks.h:
  • platform/Timer.cpp:

(WebCore::shouldSuppressThreadSafetyCheck):

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::applicationSDKVersionOverride): Deleted.
(WebCore::setApplicationSDKVersion): Deleted.
(WebCore::applicationSDKVersion): Deleted.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCSSOMViewScrollingAPIEnabled):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
  • wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.

(WTF::applicationSDKVersionOverride):
(WTF::setApplicationSDKVersion):
(WTF::applicationSDKVersion):

4:33 PM Changeset in webkit [258446] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] http/tests/security/mixedContent/insecure-worker-global-scope.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209093

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:29 PM Changeset in webkit [258445] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Remove unused IPC function UserMediaCaptureManagerProxy::SetMuted
https://bugs.webkit.org/show_bug.cgi?id=209087
<rdar://problem/59658963>

Reviewed by Eric Carlson.

Remove the unused UserMediaCaptureManagerProxy message 'SetMuted'.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::setMuted): Deleted.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
4:21 PM Changeset in webkit [258444] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove unused GetNetworkLoadInformationRequest call
https://bugs.webkit.org/show_bug.cgi?id=209081
<rdar://problem/59659064>

Reviewed by Geoffrey Garen.

Remove dead code associated with an unused IPC message.

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::getNetworkLoadInformationRequest): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
4:20 PM Changeset in webkit [258443] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Reload CodeBlock or suppress GC while setting up calls
https://bugs.webkit.org/show_bug.cgi?id=209033
<rdar://problem/58946936>

Reviewed by Saam Barati.

The sequence of Interpreter::execute is the following.

  1. Getting CodeBlock from Executable
  2. Doing a lot of setups
  3. Setting (1)'s CodeBlock to ProtoFrame
  4. Calling code through Executable

During (2), it would be possible that GC happens and it replaces CodeBlock in Executable.
Then, when executing JITCode with CodeBlock in (4), we use new JITCode with old CodeBlock.

In this patch,

For ProgramExecutable, FunctionExecutable, ModuleProgramExecutable, we ensure that no GC happens
after getting CodeBlock by placing DisallowGC. For EvalExecutable, we reload CodeBlock after setting
up environment. It is possible that FunctionExecutable* stored in CodeBlock can be different when
executing a new CodeBlock, but this is OK since this different does not appear and we do not rely on
this: we are touching name of FunctionExecutable* which is retrieved from CodeBlock. But this name
will not be changed since this is derived from UnlinkedFunctionExecutable which is shared by multiple
CodeBlocks. And FunctionExecutable* generation ordering must be the same for every CodeBlock generation
from the same UnlinkedCodeBlock.

  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::prepareForExecution):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::execute):

  • runtime/DisallowScope.h:

(JSC::DisallowScope::disable):

  • runtime/StringPrototype.cpp:
4:15 PM Changeset in webkit [258442] by jiewen_tan@apple.com
  • 11 edits in trunk/Source

[WebAuthn] Customize a bit more on the macOS LocalAuthentication prompt
https://bugs.webkit.org/show_bug.cgi?id=208703
<rdar://problem/60136974>

Reviewed by Darin Adler.

Source/WebCore:

  • en.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::touchIDPromptTitle):

  • platform/LocalizedStrings.h:

Adds a new formatted UI string to help with RP ID.

Source/WebKit:

On macOS, LocalAuthentication prompt can be shown anywhere that is probably not on top of
our UI clients. Therefore, add a RP ID to the dialog to help users to identify what has
happened. In addition, it removes the password fallback button.

  • Platform/spi/Cocoa/LocalAuthenticationSPI.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterDecidePolicy):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):

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

(WebKit::LocalConnection::verifyUser const):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::verifyUser const):

4:04 PM Changeset in webkit [258441] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Remove Unused IPC message PlaybackSessionManagerProxy::PictureInPictureActiveChanged
https://bugs.webkit.org/show_bug.cgi?id=209085
<rdar://problem/59658916>

Reviewed by Geoffrey Garen.

Remove the unused PlaybackSessionManagerProxy message 'PictureInPictureActiveChanged'.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): Deleted.

3:35 PM Changeset in webkit [258440] by Chris Dumez
  • 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
<rdar://problem/59516099>

Unreviewed, unskip test now that is should no longer be flaky after r258438.

  • platform/mac-wk1/TestExpectations:
3:33 PM Changeset in webkit [258439] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

REGRESSION (257844): fast/scrolling/scroll-container-horizontally.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=209083

Also changed expectations for a test that is now timing out.

Unreviewwd test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk2/TestExpectations:
3:32 PM Changeset in webkit [258438] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, reverting r256232.

Caused ResizeObserver tests to become flaky

Reverted changeset:

"[DRT] InternalSettingsGenerated::resetToConsistentState() may
override TestOptions"
https://bugs.webkit.org/show_bug.cgi?id=207481
https://trac.webkit.org/changeset/256232

3:18 PM Changeset in webkit [258437] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Release ] css3/selectors3/xml/css3-modsel-d4.xml is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209084

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:56 PM Changeset in webkit [258436] by Kate Cheney
  • 11 edits in trunk

[ iOS and Mac wk2 ] http/tests/in-app-browser-privacy/ tests failing
https://bugs.webkit.org/show_bug.cgi?id=209016
<rdar://problem/60329530>

Reviewed by Chris Dumez.

Source/WebKit:

This patch adds a function to re-initialize app bound domains for
in-app-browser-privacy tests, since they are only initialized once
when the WebsiteDataStore is created. This causes issues if the tests
are run in parallel with other tests with different app-bound domains.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreReinitializeAppBoundDomains):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::clearAppBoundDomains):
(WebKit::WebsiteDataStore::reinitializeAppBoundDomains):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Re-initialize the app-bound domains when the correct
TestOptions parameter is set.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::reinitializeAppBoundDomains):

  • WebKitTestRunner/TestController.h:

LayoutTests:

Use TestOptions to trigger the re-initialization of app-bound domains.

  • http/tests/in-app-browser-privacy/app-bound-domain.html:
  • http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain.html:
2:51 PM Changeset in webkit [258435] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-timestamps.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209079

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:49 PM Changeset in webkit [258434] by Peng Liu
  • 14 edits in trunk/Source/WebCore

Safari sometimes crashes when switch video into PiP mode
https://bugs.webkit.org/show_bug.cgi?id=208904

Reviewed by Simon Fraser.

With this patch, MediaControlTextTrackContainerElement won't paint its subtree
to an image buffer (for the captions in video fullscreen or picture-in-picture mode)
when the cues are updated. Instead, it only sets the flag m_needsGenerateTextTrackRepresentation
to true after running layout based on the new cues. After that, it paints its subtree
to an image buffer if needed at the end of Page::updateRendering() when the layout is clean.
TextTrackRepresentationCocoa will use the image buffer to set the content of the layer
for captions in video fullscreen or picture-in-picture mode.

MediaControlTextTrackContainerElement class is responsible for rendering the captions in both:
1) a video player in the inline mode.
2) a video player in "video fullscreen" or picture-in-picture mode.
This patch refactors some functions to make their responsibilities clear.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::updateTextTrackRepresentationImageIfNeeded):

  • Modules/mediacontrols/MediaControlsHost.h:
  • dom/Document.cpp:

(WebCore::Document::setMediaElementShowingTextTrack):
(WebCore::Document::clearMediaElementShowingTextTrack):
(WebCore::Document::updateTextTrackRepresentationImageIfNeeded):

  • dom/Document.h:

Functions textTracksAreReady(), textTrackReadyStateChanged() and configureTextTrackDisplay()
should be wrapped with "#if ENABLE(VIDEO_TRACK)".

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setTextTrackRepresentation):
(WebCore::HTMLMediaElement::textTracksAreReady const):
(WebCore::HTMLMediaElement::textTrackReadyStateChanged):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::updateTextTrackRepresentationImageIfNeeded):

  • html/HTMLMediaElement.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createElementRenderer):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationImageIfNeeded):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationIfNeeded):
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackStyle):
(WebCore::MediaControlTextTrackContainerElement::enteredFullscreen):
(WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
(WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): Deleted.
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle): Deleted.
(WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary): Deleted.
(WebCore::MediaControlTextTrackContainerElement::updateCueStyles): Deleted.

  • html/shadow/MediaControlElements.h:
  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::updateTextTrackRepresentationImageIfNeeded):

  • html/shadow/MediaControls.h:
  • page/Page.cpp:

(WebCore::Page::updateRendering):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaControlTextTrackContainer::RenderMediaControlTextTrackContainer):
(WebCore::RenderMediaControlTextTrackContainer::layout):
(WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement): Deleted.
(WebCore::RenderTextTrackContainerElement::layout): Deleted.

  • rendering/RenderMediaControlElements.h:
2:47 PM Changeset in webkit [258433] by Alan Coon
  • 1 copy in tags/Safari-609.2.1.2.1

Tag Safari-609.2.1.2.1.

2:39 PM Changeset in webkit [258432] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] svg/custom/object-sizing-explicit-width.xhtml is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=209077

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:32 PM Changeset in webkit [258431] by wilander@apple.com
  • 2 edits
    5 adds in trunk/LayoutTests

Add mixed content block test for imported scripts in worker global scope
https://bugs.webkit.org/show_bug.cgi?id=209075
<rdar://problem/27483005>

Reviewed by Brent Fulgham.

  • http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-worker-global-scope.html: Added.
  • http/tests/security/mixedContent/resources/worker-importing-insecure-script.js: Added.
  • http/tests/security/mixedContent/resources/worker-importing-secure-script.js: Added.
  • http/tests/security/mixedContent/resources/worker-sending-message.js: Added.
  • platform/mac-wk1/TestExpectations:

Test for some reason fails on Mojave Debug WK1 but not on Mojave Release WK1 or other bots.
Therefore skipped.

2:25 PM Changeset in webkit [258430] by Russell Epstein
  • 1 copy in tags/Safari-610.1.7.3

Tag Safari-610.1.7.3.

1:56 PM Changeset in webkit [258429] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION (r257840): [ iOS ] fast/backgrounds/hidpi-bitmap-background-on-subpixel-position.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208601

Fixing test expectations.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:38 PM Changeset in webkit [258428] by Alan Coon
  • 1 copy in tags/Safari-609.2.1

Tag Safari-609.2.1.

1:37 PM Changeset in webkit [258427] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Delete IC creation should check mayNeedToCheckCell/canCacheDeleteIC regardless of Structure::outOfLineCapacity
https://bugs.webkit.org/show_bug.cgi?id=209027

Reviewed by Saam Barati.

Delete IC code generation assumes that mayNeedToCheckCell (it is replaced with canCacheDeleteIC) is false
while we are looking into this status only if Structure::outOfLineCapacity meets a certain condition. We should avoid
create Delete IC when mayNeedToCheckCell/canCacheDeleteIC is true regardless of Structure::outOfLineCapacity

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::createDelete):
(JSC::AccessCase::generateImpl):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::mayHaveIndexingHeader const):
(JSC::Structure::canCacheDeleteIC const):

1:31 PM Changeset in webkit [258426] by Alan Coon
  • 2 edits in branches/safari-609.2.1.2-branch/Source/WebCore

Cherry-pick r257640. rdar://problem/60260332

updateCSSTransitionsForElementAndProperty should clone RenderStyles
https://bugs.webkit.org/show_bug.cgi?id=208356
rdar://59869560

Reviewed by Antti Koivisto.

Make ownership of the local variable clear by cloning the RenderStyles
used in updateCSSTransitionsForElementAndProperty rather than referencing
different versions.

  • animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

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

1:31 PM Changeset in webkit [258425] by Alan Coon
  • 2 edits in branches/safari-609.2.1.2-branch/Source/WebCore

Cherry-pick r257746. rdar://problem/60260331

ScriptController::executeIfJavaScriptURL() uses wrong JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=208290
<rdar://problem/59839476>

Reviewed by Chris Dumez.

The call to executeScriptIgnoringException() may have changed the current global
object of the window. We should be using the original global object that produced
the result string.

Also added a missing exception check needed after a potential rope resolution.

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeIfJavaScriptURL):

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

1:22 PM Changeset in webkit [258424] by Ryan Haddad
  • 14 edits
    2 deletes in trunk

Unreviewed, reverting r258391.

Breaks internal builds.

Reverted changeset:

"Apply rotation at source level if WebRTC sink ask so"
https://bugs.webkit.org/show_bug.cgi?id=205645
https://trac.webkit.org/changeset/258391

1:19 PM Changeset in webkit [258423] by Chris Dumez
  • 4 edits in trunk/LayoutTests

[Mac wk2 ] fast/dom/attr_dead_doc.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207668
<rdar://problem/59404606>

Reviewed by Geoffrey Garen.

The test was doing a navigation to about:blank and relying on a 100ms timer to update the src
attribute of the img element. We now remove the frame from the document instead since it
detaches the document synchronously. It gets rid of the 100ms timer and replaces it with a
0 timer which will reliably give the same output.

  • fast/dom/attr_dead_doc-expected.txt:
  • fast/dom/attr_dead_doc.html:
  • platform/mac-wk2/TestExpectations:
1:07 PM Changeset in webkit [258422] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Debug] inspector/injected-script/avoid-getter-invocation.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209073

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:43 PM Changeset in webkit [258421] by Kate Cheney
  • 32 edits
    1 copy
    1 add
    3 deletes in trunk

Report all third party loads on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=209032
<rdar://problem/60397323>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/loaded-registrable-domains-get-reported.html

Rename this function to more accurately reflect its purpose of sending
loaded registrable domains to the WebPage.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • loader/FrameLoaderClient.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

Source/WebKit:

Test: http/tests/resourceLoadStatistics/loaded-registrable-domains-get-reported.html

Removed IPC to the Network Process asking if a resource load is from
a prevalent domain. This now stores and sends all loaded registrable
domains. This patch is mostly updating naming to reflect this and
deleting the unnecessary code to communicate with the
ResourceLoadStatisticsStore.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
(WebKit::NetworkConnectionToWebProcess::isPrevalentSubresourceLoad): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _loadedThirdPartyDomainsFor:completionHandler:]):
(-[WKWebsiteDataStore _clearLoadedThirdPartyDomainsFor:]):
(-[WKWebsiteDataStore _getPrevalentDomainsFor:completionHandler:]): Deleted.
(-[WKWebsiteDataStore _clearPrevalentDomainsFor:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::didLoadFromRegistrableDomain):
(WebKit::WebFrameLoaderClient::addLoadedRegistrableDomain): Deleted.

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

(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::didLoadFromRegistrableDomain):
Add a check that this is a third party by comparing the target domain
to the main frame domain.

(WebKit::WebPage::loadedThirdPartyDomains):
(WebKit::WebPage::clearLoadedThirdPartyDomains):
(WebKit::WebPage::addLoadedRegistrableDomain): Deleted.
(WebKit::WebPage::getPrevalentDomains): Deleted.
(WebKit::WebPage::clearPrevalentDomains): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Mostly naming updates to reflect the change in use for this SPI call.
It now returns all loaded third party domains, not just prevalent ones.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::getLoadedThirdPartyDomains):
(WTR::TestRunner::callDidReceiveLoadedThirdPartyDomainsCallback):
(WTR::TestRunner::getPrevalentDomains): Deleted.
(WTR::TestRunner::callDidReceivePrevalentDomainsCallback): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::getLoadedThirdPartyDomains):
(WTR::TestController::clearLoadedThirdPartyDomains):
(WTR::TestController::getPrevalentDomains): Deleted.
(WTR::TestController::clearPrevalentDomains): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveLoadedThirdPartyDomains):
(WTR::TestInvocation::didReceivePrevalentDomains): Deleted.

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::getLoadedThirdPartyDomains):
(WTR::TestController::clearLoadedThirdPartyDomains):
(WTR::TestController::getPrevalentDomains): Deleted.
(WTR::TestController::clearPrevalentDomains): Deleted.

LayoutTests:

Now that we report all loaded third party domains, we no longer need
ITP to test this call. We can eliminate the dual testing for
memory/database setup and any logic related to setting a resource
as prevalent.

  • http/tests/resourceLoadStatistics/loaded-registrable-domains-get-reported-expected.txt: Copied from LayoutTests/http/tests/websocket/web-socket-loads-captured-in-per-page-domains-expected.txt.
  • http/tests/resourceLoadStatistics/loaded-registrable-domains-get-reported.html: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt: Removed.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html: Removed.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page.html: Removed.
  • http/tests/websocket/web-socket-loads-captured-in-per-page-domains-expected.txt:
  • http/tests/websocket/web-socket-loads-captured-in-per-page-domains.html:
  • platform/ios/TestExpectations:

Since this test no longer uses UIHelper.activateAt, it can be
unskipped in iOS

12:33 PM Changeset in webkit [258420] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] run FindModifiedChangeLogs early in the build
https://bugs.webkit.org/show_bug.cgi?id=209060

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
  • BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-test.
12:19 PM Changeset in webkit [258419] by sbarati@apple.com
  • 2 edits in trunk/JSTests

skip wasm/function-tests/grow-memory-cause-gc.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=209069
<rdar://problem/59954558>

Reviewed by Yusuke Suzuki.

  • wasm/function-tests/grow-memory-cause-gc.js:
12:07 PM Changeset in webkit [258418] by Diego Pino Garcia
  • 6 edits in trunk/Tools

[GTK] Add EWS testers to run GTK layout tests
https://bugs.webkit.org/show_bug.cgi?id=207648

Reviewed by Carlos Alberto Lopez Perez and Aakash Jain.

Queue 'GTK-Webkit2-EWS' was renamed to 'GTK-Build-EWS'.
A new queue, named 'GTK-WK2-Tests-EWS', was added for WK2
tests (layout tests).

  • BuildSlaveSupport/ews-build/config.json: Added new queue for

WK2 tests.

  • BuildSlaveSupport/ews-build/factories.py:

(GTKTestsFactory):

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestCommitQueueFactory.test_commit_queue_factory):
(TestGTKFactory): Added unit-test.
(TestGTKFactory.test_gtk_factory):

  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/loadConfig_unittest.py:

(TagsForBuilderTest.test_getTagsForBuilder):

11:57 AM Changeset in webkit [258417] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Debug ] http/tests/css/shared-stylesheet-mutation-preconstruct.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209072

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:55 AM Changeset in webkit [258416] by Antti Koivisto
  • 18 edits in trunk/Source/WebCore

Remove AffectedByDrag style flag
https://bugs.webkit.org/show_bug.cgi?id=209054

Reviewed by Simon Fraser.

As a followup to r258321, remove the last remaining user action related AffectedBy flag.

This also cleans out a bunch of scetchy, risky code from render tree (style invalidation!).

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::createDragImage const):

  • dom/Element.cpp:

(WebCore::Element::isUserActionElementDragged const):
(WebCore::Element::setBeingDragged):

Move dragged state for render tree to Element where it belongs.

(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):

  • dom/Element.h:

(WebCore::Element::isBeingDragged const):
(WebCore::Element::descendantsAffectedByPreviousSibling const):
(WebCore::Element::setDescendantsAffectedByPreviousSibling):
(WebCore::Element::childrenAffectedByDrag const): Deleted.
(WebCore::Element::setChildrenAffectedByDrag): Deleted.

  • dom/Node.h:
  • dom/UserActionElementSet.h:

(WebCore::UserActionElementSet::isBeingDragged):
(WebCore::UserActionElementSet::setBeingDragged):

Invalidate using PseudoClassChangeInvalidation that doesn't require any flags.

  • platform/DragImage.cpp:

(WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):
(WebCore::ScopedNodeDragEnabler::~ScopedNodeDragEnabler):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateDragState): Deleted.

  • rendering/RenderBlock.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::updateDragState): Deleted.

  • rendering/RenderInline.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::updateDragState): Deleted.
(WebCore::RenderObject::setIsDragging): Deleted.

  • rendering/RenderObject.h:

(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
(WebCore::RenderObject::isDragging const): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::affectedByDrag const): Deleted.
(WebCore::RenderStyle::setAffectedByDrag): Deleted.

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

  • style/StyleRelations.h:
11:52 AM Changeset in webkit [258415] by aakash_jain@apple.com
  • 2 edits
    1 add in trunk/Tools

Add API endpoint in EWS django app to provide patch status in json format
https://bugs.webkit.org/show_bug.cgi?id=208940

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/urls.py: Added url for new api endpoint.
  • BuildSlaveSupport/ews-app/ews/views/status.py: Added.
11:36 AM Changeset in webkit [258414] by Kate Cheney
  • 2 edits in trunk/Tools

WebKit2UseRemoteLayerTreeDrawingArea should be reset to NO between layout tests
https://bugs.webkit.org/show_bug.cgi?id=209055
<rdar://problem/60272692>

Reviewed by Simon Fraser.

Now that WebKitTestRunner has a bundleID, its' user default values
persist between tests. This patch resets WebKit2UseRemoteLayerTreeDrawingArea
to NO before running tests. It will be set to YES in PlatformWebView
if specified by the test.

  • WebKitTestRunner/mac/main.mm:

(setDefaultsToConsistentValuesForTesting):

11:24 AM Changeset in webkit [258413] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209067

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:10 AM Changeset in webkit [258412] by Konstantin Tokarev
  • 10 edits
    3 moves in trunk

[CMake] Eleminate mismatches between Find* module names and variables they set
https://bugs.webkit.org/show_bug.cgi?id=208948

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/FindLibseccomp.cmake:
  • Source/cmake/FindWPEBackend_fdo.cmake: Renamed from Source/cmake/FindWPEBackend-fdo.cmake.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/ThirdParty/libwebrtc:

  • CMakeLists.txt:
  • cmake/FindAlsaLib.cmake:
  • cmake/FindLibEvent.cmake:
  • cmake/FindLibOpus.cmake: Renamed from Source/ThirdParty/libwebrtc/cmake/FindOpus.cmake.
  • cmake/FindLibVpx.cmake: Renamed from Source/ThirdParty/libwebrtc/cmake/FindVpx.cmake.

Tools:

  • wpe/backends/CMakeLists.txt:
10:56 AM Changeset in webkit [258411] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

[iOS] 9 imported/w3c/web-platform-tests/pointerevents/pointerevent tests are failing since import in r253630
https://bugs.webkit.org/show_bug.cgi?id=209064
<rdar://problem/60330378>

Reviewed by Simon Fraser.

In r253630 we imported a host of new and updated WPT tests and these included changes to testdriver.js that our testdriver-vendor.js
implementation didn't know to handle. Specifically, pauses are now added after each pointer action to add a 16ms delay.

It was a mistake to use a stationary touch for pauses, instead we shuld just increase the time offset with the value set in the pause
and avoid changing any other state, so no resetting the last known x and y values, or adding a new touch into the event stream that
will be passed to UIScriptController.

And since there is now a built-in pause between pointer actions, there is also no need to set a harcoded value for a default
timeoffset, this is now provided directly by the action input.

  • web-platform-tests/resources/testdriver-vendor.js:
10:51 AM Changeset in webkit [258410] by Alexey Shvayka
  • 4 edits in trunk

Bound functions should pass correct NewTarget value
https://bugs.webkit.org/show_bug.cgi?id=209057

Reviewed by Keith Miller.

JSTests:

  • test262/expectations.yaml: Mark 4 test cases as passing.

Source/JavaScriptCore:

This change implements steps 5-6 of bound function's Construct? method [1],
fixing bound function subclasses and aligning JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-bound-function-exotic-objects-construct-argumentslist-newtarget

  • runtime/JSBoundFunction.cpp:

(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):

10:44 AM Changeset in webkit [258409] by Russell Epstein
  • 4 edits in branches/safari-610.1.7-branch

Cherry-pick r258399. rdar://problem/60422524

Crash in TextIterator::node via TextManipulationController::replace
https://bugs.webkit.org/show_bug.cgi?id=209048

Reviewed by Wenson Hsieh.

Source/WebCore:

The crash was caused by item.start being null in TextManipulationController::replace for a paragraph
consisting of just an image because TextManipulationController::observeParagraphs never may never set
startOfCurrentParagraph in such a case (content.isTextContent can be false for an image!).

Fixed the bug by setting startOfCurrentParagraph to a position before the current content's node
when inserting a token for a RenderReplaced if it's null.

Test: TextManipulation.CompleteTextManipulationShouldReplaceContentsAroundParagraphWithJustImage

  • editing/TextManipulationController.cpp: (WebCore::TextManipulationController::observeParagraphs):

Tools:

Added a regression test.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm: (TextManipulation.CompleteTextManipulationShouldReplaceContentsAroundParagraphWithJustImage):

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

10:44 AM Changeset in webkit [258408] by Russell Epstein
  • 2 edits in branches/safari-610.1.7-branch/Source/WebKitLegacy/ios

Cherry-pick r258383. rdar://problem/60408777

rdar://problem/60359230 Mark locationManager:didChangeAuthorizationStatus: as deprecated.

  • Misc/WebGeolocationCoreLocationProvider.mm: (-[WebGeolocationCoreLocationProvider locationManager:didChangeAuthorizationStatus:]):

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

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

[ews-app] reduce logging
https://bugs.webkit.org/show_bug.cgi?id=209062

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py:

(BugzillaBeautifulSoup.authenticate):
(BugzillaBeautifulSoup._load_query):

10:16 AM Changeset in webkit [258406] by Simon Fraser
  • 2 edits in trunk/LayoutTests

[iOS WK2] Some pointerevents tests time out
https://bugs.webkit.org/show_bug.cgi?id=209026
<rdar://problem/60338691>

Reviewed by Wenson Hsieh.

Pointerevents tests that used ui.* functions threw errors in the UI-side script because ui._run() bungled
the callbacks. Fix ui._run() to take two arguments, the command name and all arguments except the callback,
which it adds.

The tests are skipped in Open Source because most of them require touch events.

  • pointerevents/utils.js:

(const.ui.new.UIController.prototype.swipe):
(const.ui.new.UIController.prototype.tap):
(const.ui.new.UIController.prototype.doubleTap):
(const.ui.new.UIController.prototype.doubleTapToZoom):
(const.ui.new.UIController.prototype.tapStylus):
(const.ui.new.UIController.prototype._runEvents):
(const.ui.new.UIController.prototype._run):
(const.ui.new.UIController):
(const.ui.new.UIController.prototype._run.): Deleted.
(const.ui.new.UIController.prototype._run.return.new.Promise): Deleted.

10:14 AM Changeset in webkit [258405] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[ macOS ] fast/frames/sandboxed-iframe-navigation-allowed.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206680
<rdar://problem/58840416>

Reviewed by Sam Weinig.

Make sure both iframes have finished loading before running the test. Previously, it was waiting for one of the
iframes to be loaded before doing the checks on both iframes. In some cases, the second iframe would not have
finished loading yet.

  • fast/frames/sandboxed-iframe-navigation-allowed.html:
10:05 AM Changeset in webkit [258404] by Alan Coon
  • 8 edits in branches/safari-609.2.1.2-branch/Source

Versioning.

9:50 AM Changeset in webkit [258403] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Remove unused SmartMagnificationController Magnify message
https://bugs.webkit.org/show_bug.cgi?id=209036
<rdar://problem/59678060>

Reviewed by Tim Horton.

Remove the unused Magnify message from the SmartMagnificationController, since this is dead code.

  • UIProcess/ios/SmartMagnificationController.h:
  • UIProcess/ios/SmartMagnificationController.messages.in:
  • UIProcess/ios/SmartMagnificationController.mm:

(WebKit::SmartMagnificationController::magnify): Deleted.

9:35 AM Changeset in webkit [258402] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

[WebAccessibilityObjectWrapper renderWidgetChildren] does not need to run on main thread.
https://bugs.webkit.org/show_bug.cgi?id=209053
<rdar://problem/60349440>

Reviewed by Chris Fleizach.

Since we are caching the platform widget in IsolatedMode (NSView),
there is no need to dispatch renderWidgetChildren to the main thread.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper renderWidgetChildren]):

9:22 AM Changeset in webkit [258401] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

WebPageProxy::SetPromisedDataForImage should validate its imageSize and archiveSize parameters
<https://webkit.org/b/209029>
<rdar://problem/60181394>

Reviewed by Youenn Fablet.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setPromisedDataForImage):

  • Validate imageSize and archiveSize using MESSAGE_CHECK().
  • Add static_cast<size_t>() to imageSize and archiveSize parameters to denote type change.
  • Add nullptr check for SharedMemory::map() result with archiveHandle.
9:11 AM Changeset in webkit [258400] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] webgpu/whlsl/uint-bitwise.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=209056

Unreviewed test gardening

  • platform/mac/TestExpectations:
8:20 AM Changeset in webkit [258399] by rniwa@webkit.org
  • 4 edits in trunk

Crash in TextIterator::node via TextManipulationController::replace
https://bugs.webkit.org/show_bug.cgi?id=209048

Reviewed by Wenson Hsieh.

Source/WebCore:

The crash was caused by item.start being null in TextManipulationController::replace for a paragraph
consisting of just an image because TextManipulationController::observeParagraphs never may never set
startOfCurrentParagraph in such a case (content.isTextContent can be false for an image!).

Fixed the bug by setting startOfCurrentParagraph to a position before the current content's node
when inserting a token for a RenderReplaced if it's null.

Test: TextManipulation.CompleteTextManipulationShouldReplaceContentsAroundParagraphWithJustImage

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Added a regression test.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TextManipulation.CompleteTextManipulationShouldReplaceContentsAroundParagraphWithJustImage):

7:55 AM Changeset in webkit [258398] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=209047

Unreviewed gardening.

  • platform/gtk/TestExpectations:
7:53 AM WebKitGTK/2.26.x edited by Adrian Perez de Castro
Marked 2.26.5 merges as done (diff)
7:51 AM Changeset in webkit [258397] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r257292 - PS-2019-006: [GTK] WebKit - AXObjectCache - m_deferredFocusedNodeChange - UaF
https://bugs.webkit.org/show_bug.cgi?id=204342

Reviewed by Carlos Garcia Campos.

m_deferredFocusedNodeChange keeps pairs of a old node and a new one
to update a focused node later. When a node is removed in the document,
it is also removed from the pair vector. The problem is only comparing
the new node in each pair with a removed node decides the removal.
In the case where the removed node lives in m_deferredFocusedNodeChange
as an old node, a crash happens while we get a renderer of the removed node
to handle focused elements. To fix this, we find all entries of which old node
is matched to the removed node, and set their first value null.

No new tests since no functionality changed.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):

7:51 AM Changeset in webkit [258396] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r256703 - [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:51 AM Changeset in webkit [258395] by Adrian Perez de Castro
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.26

Merge r258143 - Tail calls are broken on ARM_THUMB2 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=197797

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/tail-call-with-spilled-registers.js: Added.

Source/JavaScriptCore:

prepareForTailCall operation expects that header size + parameters
size is aligned with stack (alignment is 16-bytes for every architecture).
This means that headerSizeInBytes + argumentsIncludingThisInBytes needs
to be multiple of 16. This was not being preserved during getter IC code
for 32-bits. The code generated was taking in account only
headerSizeInRegisters (it is 4 on 32-bits) and argumentsIncludingThis
(that is always 1 for getters) and allocating 32-bytes when applying
operation (headerSize + argumentsIncludingThis) * 8 - sizeof(CallerFrameAndPC).
This results in a stack frame with size of 40 bytes (after we push
lr and sp). Since prepareForTailCall expects frames to be
16-bytes aligned, it will then calculate the top of such frame
considering it is 48 bytes, cloberring values of previous frame and
causing unexpected behavior. This patch is fixing how this IC code
calculates the stack frame using roundArgumentCountToAlignFrame(numberOfParameters)
aligning with what we do on code without IC installed.
This was not a problem for getter and setter IC on 64-bits because
roundArgumentCountToAlignFrame(1) == 1 and roundArgumentCountToAlignFrame(2) == 3
while it is roundArgumentCountToAlignFrame(1) == 2 and
roundArgumentCountToAlignFrame(2) == 2 for MIPS and ARMv7.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

5:01 AM Changeset in webkit [258394] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r254680 - Do not detect the stopped animations in Nicosia::Animation to avoid flashback
https://bugs.webkit.org/show_bug.cgi?id=206280

Patch by Tomoki Imai <Tomoki Imai> on 2020-01-16
Reviewed by Carlos Garcia Campos.

This fixes the animation flashback issue found in https://webkit.org/blog-files/3d-transforms/morphing-cubes.html.
The flashback was caused by using the old layer transform matrix saved when the animation has been started.

The root cause is an inconsistency of animation state in Nicosia::Animation and CoordinatedGraphicsLayer.
For Nicosia::Animation, ThreadedCompositor increases MonitonicTime for animation every frame, and calls Nicosia::Animation::apply.
For CoordinatedGraphicsLayer, CSSAnimationController updates animations list and if the animation has been finished it updates CSS value.
There is a chance to use old layer state while the Nicosia::Animation stopped, but CoordinatedGraphicsLayer still obtains old CSS value and animations.

In this patch, all the Nicosia::Animation is considered to have "AnimationFillMode::Forwards" or "AnimationFillMode::Both",
which means they are active and use the last position when the animation is stopped.
Stopping and removing animations should be only done by CSSAnimationController and CoordinatedGraphicsScene
as they can remove the animation from the list and update the CSS value at the same time.

Mac implementation GraphicsLayerCA has a similar logic, it replaces AnimationFillMode with Forwards or Both.
https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp?rev=254502#L3248

Tested manually with https://webkit.org/blog-files/3d-transforms/morphing-cubes.html

  • platform/graphics/nicosia/NicosiaAnimation.cpp:

(Nicosia::Animation::apply): Return the last value for stopped animations to avoid flickering
(Nicosia::Animation::isActive const): Removed. It should always return true because
all the animations are considered as fillsForwards in Nicosia::Animation to avoid flashback.
(Nicosia::Animations::hasActiveAnimationsOfType const): Remove isActive check.
(Nicosia::Animations::getActiveAnimations() const): Removed. It returns whole animations list because all the animations are active.

  • platform/graphics/nicosia/NicosiaAnimation.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

3:37 AM Changeset in webkit [258393] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[SOUP] Notify web process about WebSocket handshake request and response
https://bugs.webkit.org/show_bug.cgi?id=208994

Reviewed by Youenn Fablet.

This makes WebSockets appear again in web inspector.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::WebSocketTask): Save the handshake message and notify the channel when the request is sent.
(WebKit::WebSocketTask::didConnect): Notify the channel that handshake response has been received.
(WebKit::WebSocketTask::didFail): Notify the channel that handshake response has been received if handshake
failed.

  • NetworkProcess/soup/WebSocketTaskSoup.h:
3:31 AM Changeset in webkit [258392] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wredundant-move in CSSPropertyParserHelpers.cpp
https://bugs.webkit.org/show_bug.cgi?id=209019

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-13
Reviewed by Youenn Fablet.

Silence compiler warning by removing improper WTFMove().

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):

3:13 AM Changeset in webkit [258391] by youenn@apple.com
  • 14 edits
    2 adds in trunk

Apply rotation at source level if WebRTC sink ask so
https://bugs.webkit.org/show_bug.cgi?id=205645

Reviewed by Eric Carlson.

Source/WebCore:

Add a virtual method to RealtimeMediaSource to pass the information that the sink prefers the frames to be rotated before sending them.

Source/WebKit:

Implement RealtimeMediaSource setShouldApplyRotation by sending IPC to capture process.
In capture process, if rotation should be applied, use an ImageRotationSessionVT session to apply it before sending the video frame.
This allows WebProcess to no longer need an ImageRotationSessionVT for WebRTC.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::setShouldApplyRotation):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::rotatePixelBuffer):
(WebKit::UserMediaCaptureManagerProxy::setShouldApplyRotation):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::setShouldApplyRotation):

LayoutTests:

  • webrtc/video-rotation-no-cvo-expected.txt: Added.
  • webrtc/video-rotation-no-cvo.html: Added.
3:10 AM Changeset in webkit [258390] by youenn@apple.com
  • 13 edits in trunk/Source

Remove use of PlatformMediaSession types in AudioSession
https://bugs.webkit.org/show_bug.cgi?id=208995

Reviewed by Eric Carlson.

Source/WebCore:

Remove type for beginInterruption since AudioSession always trigger system interruptions.
Have a dedicated type for endInterruption.
No change of behavior.

  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(-[WebInterruptionObserverHelper interruption:]):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):

  • platform/audio/ios/MediaSessionManagerIOS.h:

Source/WebKit:

Update code according WebCore API changes.
Make use of AudioSession current code path to make RemoteAudioSession notify its observers.

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::beginInterruption):
(WebKit::RemoteAudioSessionProxy::endInterruption):

  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):
(WebKit::RemoteAudioSessionProxyManager::beginAudioSessionInterruption):
(WebKit::RemoteAudioSessionProxyManager::endAudioSessionInterruption):

  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::beginInterruption): Deleted.
(WebKit::RemoteAudioSession::endInterruption): Deleted.

  • WebProcess/GPU/media/RemoteAudioSession.h:
  • WebProcess/GPU/media/RemoteAudioSession.messages.in:
2:46 AM Changeset in webkit [258389] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

Release build fix after r258384.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::ByteRangeRequest::maybeComplete):

1:33 AM Changeset in webkit [258388] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

Remove unused affectedBy style flags
https://bugs.webkit.org/show_bug.cgi?id=209009

Reviewed by Antoine Quint.

These flags are unused after r258321. Remove the flags and the code that generates them.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addStyleRelationFunction):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasFocusWithin):

  • dom/Element.cpp:

(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
(WebCore::Element::resetStyleRelations):

  • dom/Element.h:

(WebCore::Element::styleAffectedByEmpty const):
(WebCore::Element::descendantsAffectedByPreviousSibling const):
(WebCore::Element::setStyleAffectedByEmpty):
(WebCore::Element::setDescendantsAffectedByPreviousSibling):
(WebCore::Element::styleAffectedByActive const): Deleted.
(WebCore::Element::styleAffectedByFocusWithin const): Deleted.
(WebCore::Element::childrenAffectedByHover const): Deleted.
(WebCore::Element::setStyleAffectedByFocusWithin): Deleted.
(WebCore::Element::setChildrenAffectedByHover): Deleted.
(WebCore::Element::setStyleAffectedByActive): Deleted.

  • dom/Node.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::affectedByDrag const):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::affectedByHover const): Deleted.
(WebCore::RenderStyle::affectedByActive const): Deleted.
(WebCore::RenderStyle::setAffectedByHover): Deleted.
(WebCore::RenderStyle::setAffectedByActive): Deleted.

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

  • style/StyleRelations.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const):

Compare the hasFocusWithin bit instead.

12:57 AM Changeset in webkit [258387] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, change ASSERT to ASSERT_WITH_SECURITY_IMPLICATION since it is now enabled under ENABLE(SECURITY_ASSERTIONS)
https://bugs.webkit.org/show_bug.cgi?id=209041
<rdar://problem/59705631>

  • runtime/JSCast.h:

(JSC::jsCast):

12:53 AM Changeset in webkit [258386] by ysuzuki@apple.com
  • 9 edits in trunk/Source

Report crashed cell in jsCast in debug builds
https://bugs.webkit.org/show_bug.cgi?id=209041
<rdar://problem/59705631>

Reviewed by Mark Lam.

Source/JavaScriptCore:

To collect more information when crashing with jsCast, we attempt to use reportZappedCellAndCrash.
If it succeeds, we can get more information in registers. We enable this only for ASSERT_ENABLED
build. For non ASSERT_ENABLED, we keep the original assertion since this assertion can be enabled
via ENABLE(SECURITY_ASSERTIONS).

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendToMarkStack):
(JSC::SlotVisitor::visitChildren):
(JSC::SlotVisitor::reportZappedCellAndCrash): Deleted.

  • heap/SlotVisitor.h:
  • runtime/JSCast.h:

(JSC::jsCast):

  • runtime/JSCell.cpp:

(JSC::reportZappedCellAndCrash):

  • runtime/JSCell.h:

Source/WebCore:

We should take JSLock when touching JSC::VM.

  • page/MemoryRelease.cpp:

(WebCore::logMemoryStatisticsAtTimeOfDeath):

  • page/PerformanceLogging.cpp:

(WebCore::PerformanceLogging::memoryUsageStatistics):

12:24 AM Changeset in webkit [258385] by sbarati@apple.com
  • 2 edits in trunk/Tools

Pull in JS tests from "Internal" when there are "Internal" tests in an adjacent directory
https://bugs.webkit.org/show_bug.cgi?id=209038

Reviewed by Keith Miller.

This allows us to automatically pull in some tests that are in non open sourced Apple
checkouts.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

Mar 12, 2020:

10:55 PM Changeset in webkit [258384] by beidson@apple.com
  • 4 edits in trunk/Source/WebKit

Add a very verbose logging mode for incremental PDF loading
https://bugs.webkit.org/show_bug.cgi?id=208975

Reviewed by Simon Fraser.

Adds a verbose logging channel that includes a full dump of the PDFPlugin's loading status
for each logging message.

  • Platform/Logging.h:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pdfLog):
(WebKit::PDFPlugin::logStreamLoader):
(WebKit::PDFPlugin::verboseLog):
(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::dataProviderGetByteRangesCallback):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::adoptBackgroundThreadDocument):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithBytes):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithAccumulatedData):
(WebKit::PDFPlugin::forgetLoader):

10:45 PM Changeset in webkit [258383] by ap@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/ios

rdar://problem/60359230 Mark locationManager:didChangeAuthorizationStatus: as deprecated.

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider locationManager:didChangeAuthorizationStatus:]):

10:30 PM Changeset in webkit [258382] by cathiechen
  • 5 edits
    2 adds in trunk

REGRESSION(r255957): Element with scroll-behavior:smooth isn't draggable after r255957
https://bugs.webkit.org/show_bug.cgi?id=208566

Reviewed by Simon Fraser and Frédéric Wang.

Source/WebCore:

To perform smooth scroll, RenderLayer::scrollRectToVisible checks the value of scroll-behavior.
It starts an animated scrolling if scroll-behavior is smooth.
On the other hand, the drag action would start an autoscroll if the element is scrollable.
The autoscroll uses m_autoscrollTimer which is a repeating timer, when the timer fired it calls
scrollRectToVisible with different positions.
So if performing autoscroll on scroll-bahavior: smooth element, there are two nested animations.
When timer fired, scrollRectToVisible is called, because of scroll-behavior:smooth, it starts
animated scrolling not instant scrolling. Then there's the next timer fired, the previous
animated scrolling would be canceled. Eventually, the element becomes un-draggable.
To fix this, while performing autoscroll, scrollRectToVisible shouldn't trigger animated scrolling
no matter what the value of scroll-behavior is.

Test: fast/events/drag-smooth-scroll-element.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::autoscroll):

  • rendering/RenderLayer.h:

LayoutTests:

The test uses eventSender to generate drag action.

  • fast/events/drag-smooth-scroll-element-expected.txt: Added.
  • fast/events/drag-smooth-scroll-element.html: Added.
  • platform/ios/TestExpectations: IOS doesn't support mouse events, so skip the test.
9:16 PM Changeset in webkit [258381] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG nodes that take a TypedArray's storage need to keepAlive the TypedArray
https://bugs.webkit.org/show_bug.cgi?id=209035

Reviewed by Saam Barati.

It might be possible to produce a graph where the last reference to a TypedArray
is via a GetByVal or PutByVal. Since those nodes don't create any reference to the
TypedArray in B3 we may end up not keeping the TypedArray alive until after the
storage access.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):

8:47 PM Changeset in webkit [258380] by Alan Bujtas
  • 5 edits
    2 adds in trunk

RenderTreeNeedsLayoutChecker asserts with imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html
https://bugs.webkit.org/show_bug.cgi?id=209022
<rdar://problem/60390647>

Reviewed by Simon Fraser.

Source/WebCore:

Fix the case when

  1. the block level box is no longer the containing block for its out-of-flow descendants and
  2. the new containing block does not get marked dirty because there's a re-layout boundary (overflow: hidden)

between the old and the new containing block.

Test: fast/block/containing-block-for-out-of-flow-becomes-static.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::removePositionedObjects):

LayoutTests:

  • TestExpectations:
  • fast/block/containing-block-for-out-of-flow-becomes-static-expected.html: Added.
  • fast/block/containing-block-for-out-of-flow-becomes-static.html: Added.
8:09 PM Changeset in webkit [258379] by Brent Fulgham
  • 6 edits in trunk/Source

Correct preference handling and naming conventions in AppBound browsing preferences
https://bugs.webkit.org/show_bug.cgi?id=209031
<rdar://problem/60396298>

Reviewed by John Wilander.

Source/WebKit:

I made a mistake in the handling of preferences related to the IsInAppBrowserPrivacyEnabled
and the quirk flag, which led to some code not executing when expected.

This patch does the following:

  1. Uses the correct naming scheme for WebKit Internal Debug flags. They should be 'WebKitDebug', not 'WebKitInternal' or 'WebKitInternalDebug'.
  2. Updates the local quirk state in WebPage when page settings change.
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

This patch consistently uses the correct naming scheme for WebKit Internal Debug flags.
They should be 'WebKitDebug', not 'WebKitInternal' or 'WebKitInternalDebug'.

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

(+[WebPreferences initialize]):
(-[WebPreferences isInAppBrowserPrivacyEnabled]):
(-[WebPreferences setInAppBrowserPrivacyEnabled:]):
(-[WebPreferences needsInAppBrowserPrivacyQuirks]):
(-[WebPreferences setNeedsInAppBrowserPrivacyQuirks:]):

5:51 PM Changeset in webkit [258378] by Alan Coon
  • 4 edits in branches/safari-610.1.7-branch

Cherry-pick r258371. rdar://problem/60395490

Crash in TextManipulationController::replace
https://bugs.webkit.org/show_bug.cgi?id=209021

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch addresses two issues that can lead to a crash in TextManipulationController::replace.

The biggest issue here is that commonAncestor can be a descendent of insertionPoint's containerNode.
Addressed this issue by computing the first node to remove in the same traveral where commonAncestor
is computed by way of remembering the very first content node (firstContentNode). This also lets us
eliminate the secondary, redundant traversal to discover all the nodes to remove.

In addition, the set of nodes to remove could sometimes contain commonAncestor and its ancestors.
This patch addresses this issue by removing all inclusive ancestors of commonAncestor from nodesToRemove.

  • editing/TextManipulationController.cpp: (WebCore::TextManipulationController::replace):

Tools:

Added a regression test.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm: (TextManipulation.CompleteTextManipulationShouldReplaceContentFollowedAfterImageInCSSTable):

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

5:51 PM Changeset in webkit [258377] by Alan Coon
  • 5 edits in branches/safari-610.1.7-branch

Revert r258353. rdar://problem/60395490

5:51 PM Changeset in webkit [258376] by Alan Coon
  • 4 edits in branches/safari-610.1.7-branch

Revert r258354. rdar://problem/60395490

5:47 PM Changeset in webkit [258375] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

5:15 PM Changeset in webkit [258374] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

WebPageProxy::SaveImageToLibrary should validate its imageSize parameter
<https://webkit.org/b/209012>
<rdar://problem/60181295>

Reviewed by Chris Dumez.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::saveImageToLibrary):

  • Validate upper bound of imageSize parameter.
  • Add static_cast<size_t>() to imageSize parameter to denote type change.
4:55 PM Changeset in webkit [258373] by Chris Dumez
  • 3 edits in trunk/LayoutTests

http/tests/paymentrequest/page-cache-completed-payment-response.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207385
<rdar://problem/59260167>

Unreviewed, address flakiness by only making sure that the promises get rejected, without checking
which error it is actually rejected with, since this is racy.

  • http/tests/paymentrequest/page-cache-completed-payment-response.https.html:
  • platform/mac-wk2/TestExpectations:
4:49 PM Changeset in webkit [258372] by Chris Dumez
  • 5 edits in trunk/LayoutTests

[ Mac ] fast/history/page-cache-webdatabase-pending-transaction.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=207010
<rdar://problem/59035295>

Unreviewed, silence console messages to address flakiness.

LayoutTests/imported/w3c:

  • web-platform-tests/workers/WorkerGlobalScope_ErrorEvent_lineno-expected.txt:

LayoutTests:

4:29 PM Changeset in webkit [258371] by rniwa@webkit.org
  • 4 edits in trunk

Crash in TextManipulationController::replace
https://bugs.webkit.org/show_bug.cgi?id=209021

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch addresses two issues that can lead to a crash in TextManipulationController::replace.

The biggest issue here is that commonAncestor can be a descendent of insertionPoint's containerNode.
Addressed this issue by computing the first node to remove in the same traveral where commonAncestor
is computed by way of remembering the very first content node (firstContentNode). This also lets us
eliminate the secondary, redundant traversal to discover all the nodes to remove.

In addition, the set of nodes to remove could sometimes contain commonAncestor and its ancestors.
This patch addresses this issue by removing all inclusive ancestors of commonAncestor from nodesToRemove.

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:

Added a regression test.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TextManipulation.CompleteTextManipulationShouldReplaceContentFollowedAfterImageInCSSTable):

4:21 PM Changeset in webkit [258370] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION (257740?): [ iOS ] fast/events/autoscroll-in-iframe.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=209025

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:17 PM Changeset in webkit [258369] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Check for overflows in MachMessage::messageSize()
https://bugs.webkit.org/show_bug.cgi?id=209020
<rdar://problem/58264215>

Reviewed by Alex Christensen.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendOutgoingMessage):

  • Platform/IPC/cocoa/MachMessage.cpp:

(IPC::MachMessage::messageSize):

  • Platform/IPC/cocoa/MachMessage.h:
4:14 PM Changeset in webkit [258368] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug ] webgpu/whlsl/vector-compare.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209024

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:10 PM Changeset in webkit [258367] by Chris Dumez
  • 5 edits in trunk/LayoutTests

[ macOS iOS ] fast/dom/connected-subframe-counter-overflow.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207152
<rdar://problem/59127411>

Unreviewed, mark the test as slow instead of flaky timeout. The test is slow to run because
it checks for some overflow and adds a lot of iframes to the document.

This patch also speed up the test a bit by marking the iframes as display:none *before* inserting
them into the document. We also now add the frames in a timer to yield and make sure that the
main thread stays responsive while running this test.

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
4:06 PM Changeset in webkit [258366] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.2

Tag Safari-610.1.7.2.

4:04 PM Changeset in webkit [258365] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

3:43 PM Changeset in webkit [258364] by Chris Dumez
  • 5 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/dom/navigator-detached-no-crash.html flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207151
<rdar://problem/59126935>

Unreviewed, silence console warnings to address flakiness.

  • TestExpectations:
  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
3:29 PM Changeset in webkit [258363] by Ryan Haddad
  • 3 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r254979. rdar://problem/58836694

Actually fix history link directs on dashboard and results.html
https://bugs.webkit.org/show_bug.cgi?id=206666

Reviewed by Jonathan Bedard.

  • fast/harness/results.html:
  • legacy-animation-engine/fast/harness/results.html:

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

2:56 PM Changeset in webkit [258362] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Catalina wk2 ] webrtc/video-autoplay1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209018

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:42 PM Changeset in webkit [258361] by Konstantin Tokarev
  • 35 edits in trunk

[CMake] Find modules should find pkg-config with find_package(PkgConfig QUIET)
https://bugs.webkit.org/show_bug.cgi?id=208948

Reviewed by Michael Catanzaro.

  • Source/cmake/FindATK.cmake:
  • Source/cmake/FindATKBridge.cmake:
  • Source/cmake/FindATSPI.cmake:
  • Source/cmake/FindCairo.cmake:
  • Source/cmake/FindCairoGL.cmake:
  • Source/cmake/FindEGL.cmake:
  • Source/cmake/FindEnchant.cmake:
  • Source/cmake/FindFontconfig.cmake:
  • Source/cmake/FindGDK3.cmake:
  • Source/cmake/FindGLIB.cmake:
  • Source/cmake/FindGObjectIntrospection.cmake:
  • Source/cmake/FindGStreamer.cmake:
  • Source/cmake/FindGTK3.cmake:
  • Source/cmake/FindGTKUnixPrint.cmake:
  • Source/cmake/FindHarfBuzz.cmake:
  • Source/cmake/FindLibEpoxy.cmake:
  • Source/cmake/FindLibNotify.cmake:
  • Source/cmake/FindLibPSL.cmake:
  • Source/cmake/FindLibSoup.cmake:
  • Source/cmake/FindLibseccomp.cmake:
  • Source/cmake/FindLibsecret.cmake:
  • Source/cmake/FindLibtasn1.cmake:
  • Source/cmake/FindLibxkbcommon.cmake:
  • Source/cmake/FindNghttp2.cmake:
  • Source/cmake/FindOpenGL.cmake:
  • Source/cmake/FindOpenGLES2.cmake:
  • Source/cmake/FindOpenJPEG.cmake:
  • Source/cmake/FindSQLite3.cmake:
  • Source/cmake/FindWOFF2Dec.cmake:
  • Source/cmake/FindWPE.cmake:
  • Source/cmake/FindWPEBackend-fdo.cmake:
  • Source/cmake/FindWayland.cmake:
  • Source/cmake/FindWaylandProtocols.cmake:
  • Source/cmake/FindWebP.cmake:
2:41 PM Changeset in webkit [258360] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.1

Tag Safari-610.1.7.1.

2:36 PM Changeset in webkit [258359] by pvollan@apple.com
  • 13 edits
    1 add in trunk

[macOS] _AXSApplicationAccessibilityEnabled should not be called
https://bugs.webkit.org/show_bug.cgi?id=208953

Reviewed by Brent Fulgham.

Source/WebCore:

The function _AXSApplicationAccessibilityEnabled and the notification kAXSApplicationAccessibilityEnabledNotification
exist on macOS, but they do not have the same behavior as on iOS, and should not be used in the same way. Using this
function and notification on macOS was introduced in <https://bugs.webkit.org/show_bug.cgi?id=208690>, and this patch
partially reverts this behavior.

API test: WebKit.IsRemoteUIAppForAccessibility

  • testing/Internals.cpp:

(WebCore::Internals::isRemoteUIAppForAccessibility):

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

(WebCore::Internals::isRemoteUIAppForAccessibility):

Source/WebCore/PAL:

Declare method to check if the process is a remote UI app for accessibility.

  • pal/spi/cocoa/NSAccessibilitySPI.h:

Source/WebKit:

On macOS, stop using the function _AXSApplicationAccessibilityEnabled and listening to the notification
kAXSApplicationAccessibilityEnabledNotification, since they do not have the same behavior as on iOS.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::unblockAccessibilityServer):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2:33 PM Changeset in webkit [258358] by Konstantin Tokarev
  • 2 edits in trunk

[CMake] Avoid calling FPHSA multiple time in FindPerlModules.cmake
https://bugs.webkit.org/show_bug.cgi?id=208948

Reviewed by Michael Catanzaro.

  • Source/cmake/FindPerlModules.cmake:
2:22 PM Changeset in webkit [258357] by Kate Cheney
  • 6 edits in trunk

Resource load statistics data summary should return all third party data
https://bugs.webkit.org/show_bug.cgi?id=209000
<rdar://problem/60348306>

Reviewed by John Wilander.

Source/WebKit:

No new tests, this patch adjusts old tests to test this new behavior

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _setThirdPartyCookieBlockingMode:onlyOnSitesWithoutUserInteraction:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Added new function _setThirdPartyCookieBlockingMode so API tests can
set this parameter.

Tools:

Marked only 2 of 3 domains prevalent in data summary tests to ensure
the call returns all third parties, not just prevalent ones.
Added a more aggressive check for the size of the array at the
beginning of the test to ensure the array is still returning 3 values.
Also removed the ASSERT statements as they seem to cause timeouts (not
clear crashes) when they are not true, which is hard to debug.
If these values are nil, the test will fail in the EXPECT_WK_STREQ
checks, we don't need ASSERT statements.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

2:12 PM Changeset in webkit [258356] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

Cache the ScrollView platformWidget to avoid [WebAccessibilityObjectWrapper scrollViewParent] hitting the main thread too often.
https://bugs.webkit.org/show_bug.cgi?id=209010

Reviewed by Chris Fleizach.

  • [WebAccessibilityObjectWrapper scrollViewParent] is called very often

and blocks the AXThread to retrieve a value from the main thread. This
change caches the PlatformWidget for the corresponding ScrollView (an
NSView) to avoid hitting the main thread that often.

  • In Addition, made the ScrollView member of AccessibilityScrollView a

WeakPtr instead of a naked pointer.

  • Removed an unused lock from AXIsolatedObject and the const qualifier

from the return value of stringAttributeValue which is unnecessary.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::AccessibilityScrollView):
(WebCore::AccessibilityScrollView::platformWidget const):
(WebCore::AccessibilityScrollView::widgetForAttachmentView const):
(WebCore::AccessibilityScrollView::webAreaObject const):
(WebCore::AccessibilityScrollView::documentFrameView const):
(WebCore::AccessibilityScrollView::parentObject const):
(WebCore::AccessibilityScrollView::parentObjectIfExists const):
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable const):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::stringAttributeValue const):
(WebCore::AXIsolatedObject::platformWidget const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper scrollViewParent]):

2:06 PM Changeset in webkit [258355] by Jonathan Bedard
  • 1 edit
    6 adds in trunk/Tools

resultsdpy: Add script to run local instance
https://bugs.webkit.org/show_bug.cgi?id=208746

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/example: Added.
  • resultsdbpy/resultsdbpy/example/init.py: Added.
  • resultsdbpy/resultsdbpy/example/environment.py: Added.

(Environment): Organize environment variables used by results database.
(ModelFromEnvironment): Construct the database model from the environment.
(main): Create and drop tables, if required.

  • resultsdbpy/resultsdbpy/example/main.py: Added.

(health): Web-server health check.
(handle_errors):
(main): Run results database web-server.

  • resultsdbpy/resultsdbpy/example/worker.py: Added.

(main): Asynchronously process uploaded results.

  • resultsdbpy/resultsdbpy/run: Added.
2:01 PM Changeset in webkit [258354] by Alan Coon
  • 4 edits in branches/safari-610.1.7-branch

Revert r258037. rdar://problem/60382950

2:01 PM Changeset in webkit [258353] by Alan Coon
  • 5 edits in branches/safari-610.1.7-branch

Revert r258093. rdar://problem/60382950

1:47 PM Changeset in webkit [258352] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

1:18 PM Changeset in webkit [258351] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/scrolling/momentum-scroll-with-borders.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209013

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:10 PM Changeset in webkit [258350] by wenson_hsieh@apple.com
  • 2 edits in trunk/Tools

run-webkit-tests --use-gpu-process should enable GPU Process for canvas
https://bugs.webkit.org/show_bug.cgi?id=209004

Reviewed by Tim Horton.

Add "RenderCanvasInGPUProcessEnabled" to the list of internal features that should be enabled when
use_gpu_process is specified.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

12:06 PM Changeset in webkit [258349] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Attributes SelectionTextMarkerRange and Start/EndTextMarker need to run on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=208996

Reviewed by Chris Fleizach.

Covered by existing tests.

Dispatch to the main thread the computation of these accessibility attributes.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

12:02 PM Changeset in webkit [258348] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208993

Unreviewed gardening.

  • platform/wpe/TestExpectations:
12:01 PM Changeset in webkit [258347] by Matt Lewis
  • 2 edits in trunk/Tools

Make flatpack import for run-webkit-tests only happen on linux systems
https://bugs.webkit.org/show_bug.cgi?id=208954

Reviewed by Philippe Normand.

  • Scripts/run-webkit-tests: Added an if statement to find the system platform

to determine if we need the flatpackutils import.

11:43 AM Changeset in webkit [258346] by Andres Gonzalez
  • 5 edits
    2 moves in trunk

AX: Isolated tree: Crash in URL retrieval
https://bugs.webkit.org/show_bug.cgi?id=208942
<rdar://problem/60337588>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/url-test.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::url const): Check for m_renderer
before dereferencing and re-use the associated Node. Also fixes the last
type check and downcast that were using different types.

LayoutTests:

Moved the url-test.html test to the root directory so that it is
executed in both Mac and iOS.

  • accessibility/url-test-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/url-test-expected.txt.
  • accessibility/url-test.html: Renamed from LayoutTests/accessibility/ios-simulator/url-test.html.
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
11:34 AM Changeset in webkit [258345] by Truitt Savell
  • 2 edits in trunk/LayoutTests/platform

REGRESSION: [ Mac iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209006

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:33 AM Changeset in webkit [258344] by ysuzuki@apple.com
  • 13 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Use CacheableIdentifier in ByValInfo
https://bugs.webkit.org/show_bug.cgi?id=208978

Reviewed by Saam Barati.

CodeBlock::finalizeUnconditionally discards JITData. And this includes ByValInfo, which holds Identifier.
However, finalizeUnconditionally is only guaranteeing that the main thread is not working. It can be invoked
in the heap thread, and it is not not setting the AtomStringTable for this heap thread. If Identifier destroys
AtomStringImpl, which fails to unregister itself from the table.

In this patch,

  1. We explicitly set nullptr for the current AtomStringTable to catch the bug as soon as possible in GC end phase.
  2. We use CacheableIdentifier in ByValInfo to avoid destroying Identifier in CodeBlock::finalizeUnconditionally.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/ByValInfo.cpp: Added.

(JSC::ByValInfo::visitAggregate):

  • bytecode/ByValInfo.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::stronglyVisitStrongReferences):

  • bytecode/CodeBlock.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handlePutByVal):

  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):

  • jit/JIT.h:
  • jit/JITOperations.cpp:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitByValIdentifierCheck):

  • runtime/CacheableIdentifier.h:
11:28 AM Changeset in webkit [258343] by commit-queue@webkit.org
  • 11 edits in trunk

WKWebView.hasOnlySecureContent should be correct after back/forward navigations
https://bugs.webkit.org/show_bug.cgi?id=207609
Source/WebCore:

<rdar://problem/59371252>

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

The web process informs the UI process of insecure content loads when http resources are requested from https pages.
The web process also remembers that this happened.
Rather than ask the UI process during a navigation, which can sometimes get information about the wrong navigation,
just use the remembered values. We will need to do something for legacy TLS loads too, but I left that code as it is
for this patch. Another is coming soon.

Covered by API tests.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::setUsedLegacyTLS):
(WebCore::CachedFrame::hasInsecureContent const):
(WebCore::CachedFrame::setHasInsecureContent): Deleted.

  • history/CachedFrame.h:

(WebCore::CachedFrame::hasInsecureContent const): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

Source/WebKit:

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

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::usedLegacyTLS):
(WebKit::WebPageProxy::hasInsecureContent): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):

Tools:

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

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

11:18 AM Changeset in webkit [258342] by Simon Fraser
  • 5 edits in trunk

REGRESSION (r257938): Some pointerevents/ios/touch-action-region tests started to fail
https://bugs.webkit.org/show_bug.cgi?id=209005
<rdar://problem/60337239>

Reviewed by Tim Horton, Wenson Hsieh.

Source/WebCore:

We need to continue to paint event regions if there are touch-action elements.

Tested by existing tests.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

LayoutTests:

New baselines for tests with overflow:scroll, where the scrolled container gets
a rectangular event region.

  • pointerevents/ios/touch-action-region-backing-sharing-expected.txt:
  • pointerevents/ios/touch-action-region-overflow-expected.txt:
11:15 AM Changeset in webkit [258341] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Fixed expectations for two tests from 'Pass Failure' to 'Pass ImageOnlyFailure'
https://bugs.webkit.org/show_bug.cgi?id=205525
https://bugs.webkit.org/show_bug.cgi?id=205524

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:05 AM Changeset in webkit [258340] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Drop unused WebProcess::UpdateActivePages IPC
https://bugs.webkit.org/show_bug.cgi?id=209002
<rdar://problem/59682658>

Reviewed by Geoffrey Garen.

  • WebProcess/WebProcess.messages.in:
10:56 AM Changeset in webkit [258339] by youenn@apple.com
  • 32 edits in trunk/Source

Source/WebCore:
FrameLoader should own its FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=208918

Reviewed by Geoffrey Garen.

Update Frame/FrameLoader constructors to get a UniqueRef<FrameLoaderClient>.
This makes the lifetime management much clearer and allows some WebKit1/WebKit2 clean-up.

Covered by existing tests.

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::~FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):
(WebCore::FrameLoader::didExplicitOpen):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::finishedParsing):
(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::setOpener):
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::willLoadMediaElementURL):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::setDocumentLoader):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::clientRedirectCancelledOrFinished):
(WebCore::FrameLoader::clientRedirected):
(WebCore::FrameLoader::closeOldDataSources):
(WebCore::FrameLoader::willChangeTitle):
(WebCore::FrameLoader::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::didReachLayoutMilestone):
(WebCore::FrameLoader::didReachVisuallyNonEmptyState):
(WebCore::FrameLoader::frameLoadCompleted):
(WebCore::FrameLoader::checkLoadComplete):
(WebCore::FrameLoader::userAgent const):
(WebCore::FrameLoader::dispatchOnloadEvents):
(WebCore::FrameLoader::detachViewsAndDocumentLoader):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::cancelledError const):
(WebCore::FrameLoader::blockedByContentBlockerError const):
(WebCore::FrameLoader::blockedError const):
(WebCore::FrameLoader::blockedByContentFilterError const):
(WebCore::FrameLoader::connectionProperties):
(WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
(WebCore::FrameLoader::dispatchGlobalObjectAvailableInAllWorlds):
(WebCore::FrameLoader::didChangeTitle):
(WebCore::FrameLoader::dispatchDidCommitLoad):
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
(WebCore::FrameLoader::completePageTransitionIfNeeded):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::create):

  • page/Frame.h:
  • page/Page.cpp:

(WebCore::Page::Page):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • workers/service/context/SWContextManager.cpp:
  • workers/service/context/SWContextManager.h:

Source/WebKit:
FrameLoader should own its FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=208918

Reviewed by Geoffrey Garen.

Pass a UniqueRef to the PageConfiguration.
Update WebFrameLoaderClient according updated FrameLoaderClient interface.

WebFrame no longer needs to ref/unref itself to keep the loader client alive.
Update WebFrame construction to not need a static_cast at initialization of the main frame.

The ownership is now that a WebCore::FrameLoader owns a FrameLoaderClient who owns a WebFrame.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
(WebKit::WebFrameLoaderClient::~WebFrameLoaderClient):
(WebKit::WebFrameLoaderClient::webPageProxyID const):
(WebKit::WebFrameLoaderClient::pageID const):
(WebKit::WebFrameLoaderClient::frameID const):
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest):
(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
(WebKit::WebFrameLoaderClient::shouldUseCredentialStorage):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveResponse):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoading):
(WebKit::WebFrameLoaderClient::dispatchDidDispatchOnloadEvents):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidCancelClientRedirect):
(WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::dispatchShow):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::applyToDocumentLoader):
(WebKit::WebFrameLoaderClient::allowsContentJavaScriptFromMostRecentNavigation const):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::dispatchUnableToImplementPolicy):
(WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
(WebKit::WebFrameLoaderClient::willReplaceMultipartContent):
(WebKit::WebFrameLoaderClient::didReplaceMultipartContent):
(WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
(WebKit::WebFrameLoaderClient::didRunInsecureContent):
(WebKit::WebFrameLoaderClient::didDetectXSS):
(WebKit::WebFrameLoaderClient::cancelledError const):
(WebKit::WebFrameLoaderClient::blockedError const):
(WebKit::WebFrameLoaderClient::blockedByContentBlockerError const):
(WebKit::WebFrameLoaderClient::cannotShowURLError const):
(WebKit::WebFrameLoaderClient::interruptedForPolicyChangeError const):
(WebKit::WebFrameLoaderClient::blockedByContentFilterError const):
(WebKit::WebFrameLoaderClient::cannotShowMIMETypeError const):
(WebKit::WebFrameLoaderClient::fileDoesNotExistError const):
(WebKit::WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebKit::WebFrameLoaderClient::shouldFallBack const):
(WebKit::WebFrameLoaderClient::restoreViewState):
(WebKit::WebFrameLoaderClient::didFinishLoad):
(WebKit::WebFrameLoaderClient::userAgent const):
(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::webGLPolicyForURL const):
(WebKit::WebFrameLoaderClient::resolveWebGLPolicyForURL const):
(WebKit::WebFrameLoaderClient::objectContentType):
(WebKit::WebFrameLoaderClient::overrideMediaType const):
(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
(WebKit::WebFrameLoaderClient::dispatchGlobalObjectAvailable):
(WebKit::WebFrameLoaderClient::willInjectUserScript):
(WebKit::WebFrameLoaderClient::willCacheResponse const):
(WebKit::WebFrameLoaderClient::createNetworkingContext):

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

(WebKit::WebFrame::initWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
(WebKit::WebFrame::WebFrame):
(WebKit::WebFrame::frameLoaderClient const):
(WebKit::WebFrame::fromCoreFrame):
(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::create):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):

Source/WebKitLegacy/mac:
FrameLoader should own its FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=208918

Reviewed by Geoffrey Garen.

Update according new Frame/FrameLoader constructors and FrameLoaderClient interface.

  • WebCoreSupport/WebFrameLoaderClient.h:

(WebFrameLoaderClient::setWebFrame):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::~WebFrameLoaderClient):
(WebFrameLoaderClient::cancelledError const):
(WebFrameLoaderClient::blockedError const):
(WebFrameLoaderClient::blockedByContentBlockerError const):
(WebFrameLoaderClient::cannotShowURLError const):
(WebFrameLoaderClient::interruptedForPolicyChangeError const):
(WebFrameLoaderClient::blockedByContentFilterError const):
(WebFrameLoaderClient::cannotShowMIMETypeError const):
(WebFrameLoaderClient::fileDoesNotExistError const):
(WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebFrameLoaderClient::shouldFallBack const):
(WebFrameLoaderClient::userAgent const):

  • WebView/WebFrame.mm:

(+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]):
(+[WebFrame _createMainFrameWithPage:frameName:frameView:]):
(+[WebFrame _createMainFrameWithSimpleHTMLDocumentWithPage:frameView:style:]):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:
Make sure a preflight fails if response headers are invalid
https://bugs.webkit.org/show_bug.cgi?id=208924

Reviewed by Geoffrey Garen.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::cancelledError const):
(WebFrameLoaderClient::blockedError const):
(WebFrameLoaderClient::blockedByContentBlockerError const):
(WebFrameLoaderClient::cannotShowURLError const):
(WebFrameLoaderClient::interruptedForPolicyChangeError const):
(WebFrameLoaderClient::cannotShowMIMETypeError const):
(WebFrameLoaderClient::fileDoesNotExistError const):
(WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebFrameLoaderClient::shouldFallBack const):
(WebFrameLoaderClient::userAgent const):
(WebFrameLoaderClient::frameLoaderDestroyed): Deleted.
(WebFrameLoaderClient::cancelledError): Deleted.
(WebFrameLoaderClient::blockedError): Deleted.
(WebFrameLoaderClient::blockedByContentBlockerError): Deleted.
(WebFrameLoaderClient::cannotShowURLError): Deleted.
(WebFrameLoaderClient::interruptedForPolicyChangeError): Deleted.
(WebFrameLoaderClient::cannotShowMIMETypeError): Deleted.
(WebFrameLoaderClient::fileDoesNotExistError): Deleted.
(WebFrameLoaderClient::pluginWillHandleLoadError): Deleted.
(WebFrameLoaderClient::shouldFallBack): Deleted.
(WebFrameLoaderClient::userAgent): Deleted.

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

(WebFrame::createSubframeWithOwnerElement):

10:40 AM Changeset in webkit [258338] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Drop unused LogGlobalDiagnosticMessageWithValue IPC message
https://bugs.webkit.org/show_bug.cgi?id=208974
<rdar://problem/59682189>

Reviewed by Chris Dumez.

I added these messages for ITP, but we later switched to tracking network sessions
individually and no longer need this "global" message.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::logGlobalDiagnosticMessageWithValue): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
10:10 AM Changeset in webkit [258337] by Chris Dumez
  • 11 edits in trunk/Source/WebKit

Networking process should kill the WebContent process if an invalid IPC message is received from it
https://bugs.webkit.org/show_bug.cgi?id=208999

Reviewed by Geoffrey Garen.

If the NetworkProcess receives a bad IPC from a WebProcess, it now sends an IPC to the UIProcess
asking for said WebProcess to be terminated.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveInvalidMessage):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessage):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
I noticed when testing this patch that the decoder was sometimes not marked as invalid even though
decoding failed (verified this by not decoding enough data or decoding too much data). As a result,
the IPC message would get ignored but didReceiveInvalidMessage() would not get called. To address
this, I know mark the decoder as invalid anytime decoding fails, instead of asserting that it is
already invalid.

  • Shared/ProcessTerminationReason.h:
  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::wkProcessTerminationReason):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::terminateWebProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

10:09 AM Changeset in webkit [258336] by Simon Fraser
  • 6 edits
    2 adds in trunk

REGRESSION (r254054): finance.google.com watch list renders initially then disappears for 5+ seconds before reappearing
https://bugs.webkit.org/show_bug.cgi?id=208972
<rdar://problem/59727171>

Reviewed by Zalan Bujtas.
Source/WebCore:

After r254054 we could get a style change in which opacity was unchanged, but
hasAutoUsedZIndex() in the style changed (because Adjuster::adjustAnimatedStyle() can set it).

In this case we failed to trigger layout, which means that we failed to recompute visual
overflow when a layer changed from being self-painting to non-self-painting (which affects
visual overflow computation and has hasAutoUsedZIndex() as input). We'd thus fail to paint some
renderers because their visual overflow didn't intersect the paint dirty rect.

Fix by having RenderStyle::changeRequiresLayout() return true if hasAutoUsedZIndex() differs
between the styles. This has minimal performance impact; rareNonInheritedDataChangeRequiresLayout()
already returns true if opacity, filters and other stacking-context-affecting properties change.

Test: fast/overflow/animation-recompute-overflow.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::addOverflowFromChild):
(WebCore::RenderBox::addLayoutOverflow):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout const):

LayoutTests:

Ref test, and some rebaselines where repaint order changed.

  • css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
  • fast/overflow/animation-recompute-overflow-expected.html: Added.
  • fast/overflow/animation-recompute-overflow.html: Added.
  • platform/ios/css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
9:32 AM Changeset in webkit [258335] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Remove unused GetWebCoreStatistics message
https://bugs.webkit.org/show_bug.cgi?id=209001
<rdar://problem/59682747>

Reviewed by Chris Dumez.

  • WebProcess/WebProcess.cpp:

(WebKit::fromCountedSetToHashMap): Deleted.
(WebKit::getWebCoreMemoryCacheStatistics): Deleted.
(WebKit::WebProcess::getWebCoreStatistics): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
9:28 AM Changeset in webkit [258334] by ddkilzer@apple.com
  • 6 edits in trunk/Source/WebKit

WebPasteboardProxy::SetPasteboardBufferForType should validate its size parameter
<https://webkit.org/b/208902>
<rdar://problem/60181117>

Reviewed by Chris Dumez.

  • Platform/IPC/Connection.h:

(MESSAGE_CHECK_BASE):

  • Define in terms of MESSAGE_CHECK_COMPLETION_BASE() with a no-op completion handler.

(MESSAGE_CHECK_COMPLETION_BASE):

  • Rename from MESSAGE_CHECK_BASE() and add completion handler parameter.
  • Platform/SharedMemory.h:

(WebKit::SharedMemory::Handle::size const): Add.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(MESSAGE_CHECK):

  • Define macro to use in WebPasteboardProxy::setPasteboardBufferForType().
  • Undefine macro at end of source file due to unified sources.

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

  • Add IPC::Connection& parameter after change to WebPasteboardProxy.messages.in. Use with MESSAGE_CHECK().
  • Validate size parameter using MESSAGE_CHECK(). Because SharedMemory::Handle::size() returns a size_t value, we do not need to check size <= std::numeric_limits<size_t>::max().
  • Add static_cast<size_t>() to size parameter to denote type change.
  • UIProcess/WebPasteboardProxy.h:

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

  • Add IPC::Connection& parameter after change to WebPasteboardProxy.messages.in.
  • UIProcess/WebPasteboardProxy.messages.in:

(SetPasteboardBufferForType):

  • Add 'WantsConnection' attribute to add IPC::Connection& parameter to WebPasteboardProxy::setPasteboardBufferForType().
9:19 AM Changeset in webkit [258333] by dbates@webkit.org
  • 4 edits in trunk

FocusController::setFocusedElement() should tell client of refocused element
https://bugs.webkit.org/show_bug.cgi?id=208880

Reviewed by Wenson Hsieh.

Source/WebCore:

If the specified new focus element is non-nullptr and is already focused then tell the client
that the element was re-focused so that it may update its input state, if needed. On iOS, this
lets the UI process evaluate again whether to start an input session (i.e. bring up the keyboard),
which may have been disallowed when the element was originally focused (say, it was programmatically
focused and there was no hardware keyboard attached).

  • page/FocusController.cpp:

(WebCore::FocusController::setFocusedElement):

Tools:

Adds a test to ensure that calling -selectPositionAtPoint on an already focused element tries
to start an input session. Currently, it does not even try.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TEST):

8:47 AM Changeset in webkit [258332] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.28.0

WPE WebKit 2.28.0

8:47 AM Changeset in webkit [258331] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.28.0 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.28.0.
8:38 AM Changeset in webkit [258330] by commit-queue@webkit.org
  • 13 edits
    4 adds in trunk

Implement wildcard behavior for Cross-Origin-Expose-Headers
https://bugs.webkit.org/show_bug.cgi?id=208800

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-12
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update improved test results and add a test for testing
xhr and wildcard behavior for Cross-Origin-Expose-Headers behavior.

  • web-platform-tests/fetch/api/cors/cors-expose-star.sub.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.worker-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-cors-exposed-header-names.https-expected.txt:
  • web-platform-tests/xhr/cors-expose-star.sub.any-expected.txt: Added.
  • web-platform-tests/xhr/cors-expose-star.sub.any.html: Added.
  • web-platform-tests/xhr/cors-expose-star.sub.any.js: Added.

(sharedHeaders.string_appeared_here.async_test):
(string_appeared_here.async_test):

  • web-platform-tests/xhr/resources/top.txt: Added.

Source/WebCore:

Implement wildcard behavior for Cross-Origin-Expose-Headers [1] while also
checking for credentials mode.

Test: imported/w3c/web-platform-tests/xhr/cors-expose-star.sub.any.html

[1] https://fetch.spec.whatwg.org/#ref-for-concept-response-cors-exposed-header-name-list%E2%91%A2

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::create):
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
(WebCore::FetchResponse::BodyLoader::start):

  • Modules/fetch/FetchResponse.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didFinishLoading):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

  • platform/network/ResourceResponseBase.h:
8:36 AM Changeset in webkit [258329] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Provide orientation to GPUProcess when it will start to capture
https://bugs.webkit.org/show_bug.cgi?id=208911

Reviewed by Eric Carlson.

Provide orientation to GPUProcess whenever starting to capture.
This fixes the case of spinning the GPUProcess/starting capture in landscape mode.
Do not send orientation to GPUProcess if it is not yet started as an optimization.

Manually tested.

  • UIProcess/WebPageProxy.cpp:
8:25 AM Changeset in webkit [258328] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Use #!/usr/bin/python3 shebang to run generate-gtkdoc
https://bugs.webkit.org/show_bug.cgi?id=208970

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-12
Reviewed by Daniel Bates.

Fedora and Ubuntu are both patching generate-gtkdoc to use #!/usr/bin/python3 rather than
#!/usr/bin/env python.

#!/usr/bin/env and /usr/bin/python are both banned in Fedora packages. I guess Ubuntu
probably has similar rules.

Note this is the only script that attempts to use /usr/bin/python in tarball builds.
Everything else that does so is probably only used by webkit-build.

https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_multiple_python_runtimes

  • gtkdoc/generate-gtkdoc:
8:17 AM Changeset in webkit [258327] by eric.carlson@apple.com
  • 7 edits
    1 delete in trunk/Source/WebKit

Remove TextTrackPrivateRemote.messages.in
https://bugs.webkit.org/show_bug.cgi?id=208935

Reviewed by Don Olmstead.

No new tests, no functional change.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/TextTrackPrivateRemote.messages.in: Removed.
8:14 AM Changeset in webkit [258326] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove no longer used code in LibWebRTCMediaEndpoint to handle remote streams
https://bugs.webkit.org/show_bug.cgi?id=208919

Reviewed by Eric Carlson.

These stream APIs are legacy now and not useful anymore.
Stop implementing the corresponding callbacks and remove related code.
Coverd by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addRemoteStream): Deleted.
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack): Deleted.
(WebCore::LibWebRTCMediaEndpoint::OnAddStream): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
7:09 AM Changeset in webkit [258325] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Curl] sort out MS vs Seconds confusion in Cookies
https://bugs.webkit.org/show_bug.cgi?id=208964

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-03-12
Reviewed by Don Olmstead.

Making sure curl parser is storing expires using millis in the code. Using consistent time
functions around the changed code.

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::getAllCookies):
(WebCore::CookieJarDB::setCookie):

  • platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::parseExpiresMS):
(WebCore::CookieUtil::parseCookieAttributes):

7:05 AM Changeset in webkit [258324] by youenn@apple.com
  • 18 edits in trunk/Source

Move AudioSession interruption listener code to AudioSession
https://bugs.webkit.org/show_bug.cgi?id=208714

Reviewed by Jer Noble.

Source/WebCore:

Move AudioSession interruption detection code from MediaSessionManagerIOS helper to AudioSessionIOS.
Add interruption observer capabilities to AudioSession and make MediaSessionManagerIOS an observer of it.
Manually tested.

  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(-[WebInterruptionObserverHelper initWithCallback:]):
(-[WebInterruptionObserverHelper dealloc]):
(-[WebInterruptionObserverHelper clearCallback]):
(-[WebInterruptionObserverHelper interruption:]):
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSessionPrivate::~AudioSessionPrivate):
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):

  • platform/audio/ios/MediaSessionHelperIOS.h:
  • platform/audio/ios/MediaSessionHelperIOS.mm:

(-[WebMediaSessionHelper initWithCallback:]):

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):

Source/WebKit:

Make RemoteAudioSessionProxyManager an observer for AudioSession interruptions.
When being interrupted, notify all WebProcesses and trigger begin/end interruption mechanisms.
We only send interruption to sessions that are active in RemoteAudioSessionProxyManager.
Minor refactorting to move manager proxies from a map to a weak hash set.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::audioSessionProxy):

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setPreferredBufferSize):
(WebKit::RemoteAudioSessionProxy::tryToSetActive):

  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::~RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess):
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):
(WebKit::RemoteAudioSessionProxyManager::beginAudioSessionInterruption):
(WebKit::RemoteAudioSessionProxyManager::endAudioSessionInterruption):

  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:
6:55 AM Changeset in webkit [258323] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[GPUP] Use standard int type in RemoteMediaPlayerState
https://bugs.webkit.org/show_bug.cgi?id=208962

Reviewed by Eric Carlson.

An unsigned long long is at least 64-bits so use uint64_t instead. This issue
was found when compiling out the GPU Process. No specialization of unsigned long
long was found which resulted in errors. This appears to be a non-Cocoa problem.

  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::decode):

6:41 AM Changeset in webkit [258322] by youenn@apple.com
  • 14 edits in trunk/Source/WebKit

GPUProcess should ensure UIProcess granted capture access to a WebProcess making a capture request
https://bugs.webkit.org/show_bug.cgi?id=208910

Reviewed by Eric Carlson.

When UIProcess receives a getUserMedia request, it will send to GPUProcess a notification of what is allowed.
GPUProcess stores for each connection to web process whether microphone, camera and/or display are allowed.
We do not disable access for a given process for now.
A future refactoring should probably streamline the implementation so that, in case capture happens in GPUProcess,
GPUProcess receives the getUserMedia request, asks permission to UIProcess and, upon granted permission, creates directly the sources.

Covered by existing tests.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::updateCaptureAccess):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::allowsAudioCapture const):
(WebKit::GPUConnectionToWebProcess::allowsVideoCapture const):
(WebKit::GPUConnectionToWebProcess::allowsDisplayCapture const):

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):
(WebKit::GPUProcess::updateCaptureAccess):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::updateCaptureAccess):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:
6:30 AM Changeset in webkit [258321] by Antti Koivisto
  • 12 edits
    14 adds in trunk

Accurate style invalidation for user action pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=208859
<rdar://problem/55196888>

Reviewed by Zalan Bujtas.

Source/WebCore:

Currently :hover, :focus, :focus-within and :active lack fine grained invalidation using
rule sets like we do with class and attribute selectors.

This can be added easily following the same pattern.

Tests: fast/selectors/style-invalidation-hover-change-descendants.html

fast/selectors/style-invalidation-hover-change-siblings.html
fast/selectors/style-invalidation-focus-change-descendants.html
fast/selectors/style-invalidation-focus-change-siblings.html
fast/selectors/style-invalidation-focus-within-change-descendants.html
fast/selectors/style-invalidation-focus-within-change-siblings.html

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

(WebCore::Element::setActive):
(WebCore::Element::setFocus):
(WebCore::Element::setHasFocusWithin):
(WebCore::Element::setHovered):

Use PseudoClassChangeInvalidation.

  • dom/Element.h:

(WebCore::Element::setHasFocusWithin): Deleted.

  • page/FrameViewLayoutContext.cpp:

(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker):

  • style/PseudoClassChangeInvalidation.cpp: Added.

(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):

Compute invalidation rule set for a pseudo class change.

(WebCore::Style::PseudoClassChangeInvalidation::invalidateStyleWithRuleSets):

  • style/PseudoClassChangeInvalidation.h: Added.

(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::~PseudoClassChangeInvalidation):

  • style/RuleFeature.cpp:

(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::Style::RuleFeatureSet::collectFeatures):

Collect pseudo class features, similar to classes/attributes.

(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):

  • style/RuleFeature.h:
  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::collectFeatures const):
(WebCore::Style::ensureInvalidationRuleSets):

Make more generic to allow enum key.

(WebCore::Style::ScopeRuleSets::pseudoClassInvalidationRuleSets const):

Create pseudo class invalidation ruleset.

  • style/StyleScopeRuleSets.h:

LayoutTests:

  • fast/selectors/style-invalidation-focus-change-descendants-expected.txt: Added.
  • fast/selectors/style-invalidation-focus-change-descendants.html: Added.
  • fast/selectors/style-invalidation-focus-change-siblings-expected.txt: Added.
  • fast/selectors/style-invalidation-focus-change-siblings.html: Added.
  • fast/selectors/style-invalidation-focus-within-change-descendants-expected.txt: Added.
  • fast/selectors/style-invalidation-focus-within-change-descendants.html: Added.
  • fast/selectors/style-invalidation-focus-within-change-siblings-expected.txt: Added.
  • fast/selectors/style-invalidation-focus-within-change-siblings.html: Added.
  • fast/selectors/style-invalidation-hover-change-descendants-expected.txt: Added.
  • fast/selectors/style-invalidation-hover-change-descendants.html: Added.
  • fast/selectors/style-invalidation-hover-change-siblings-expected.txt: Added.
  • fast/selectors/style-invalidation-hover-change-siblings.html: Added.
3:39 AM Changeset in webkit [258320] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Drop unused EnableEnumeratingAllNetworkInterfaces / DisableEnumeratingAllNetworkInterfaces IPC messages
https://bugs.webkit.org/show_bug.cgi?id=208973
<rdar://problem/59683940>

Reviewed by Youenn Fablet.

Remove two unused IPC messages.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::disableEnumeratingAllNetworkInterfaces): Deleted.
(WebKit::WebPage::enableEnumeratingAllNetworkInterfaces): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:37 AM Changeset in webkit [258319] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, expected to fail but passed
https://bugs.webkit.org/show_bug.cgi?id=208987

Unreviewed gardening.

  • platform/wpe/TestExpectations:
2:50 AM Changeset in webkit [258318] by Diego Pino Garcia
  • 3 edits
    1 add in trunk/LayoutTests

[WPE] Gardening, update TestExpectations and baselines
https://bugs.webkit.org/show_bug.cgi?id=208986

Unreviewed gardening.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-datalist-crash-expected.txt: Added.
1:10 AM Changeset in webkit [258317] by commit-queue@webkit.org
  • 8 edits in trunk

[GPU Process] GraphicsContextStateChange must accumulate fill and stroke fields as single properties
https://bugs.webkit.org/show_bug.cgi?id=208971

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-12
Reviewed by Simon Fraser.

Source/WebCore:

Setting the fill or the stroke should set one field: color, gradient or
pattern. When detecting a change any of them, accumulate() should copy
all of the fields from the source state to the destination state.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextStateChange::accumulate):

  • platform/graphics/GraphicsContext.h:

LayoutTests:

Adjust the change-flags values in the displaylists tests since the first
bit was not used.

  • displaylists/canvas-display-list-expected.txt:
  • displaylists/extent-includes-shadow-expected.txt:
  • displaylists/extent-includes-transforms-expected.txt:
  • displaylists/layer-dispay-list-expected.txt:
12:48 AM Changeset in webkit [258316] by graouts@webkit.org
  • 18 edits
    2 copies
    1 add in trunk/Source/WebCore

AnimationTimeline should not have multiple HashMaps with raw Element* keys
https://bugs.webkit.org/show_bug.cgi?id=208079
<rdar://problem/59687906>

Reviewed by Ryosuke Niwa.

We introduce a new ElementAnimationRareData class that holds the KeyframeEffectStack previously owned by ElementRareData as well as a few maps and lists
owned by AnimationTimeline which would use raw Element pointers as keys. Specifically, this is what changed:

  • AnimationTimeline::m_elementToRunningCSSTransitionByCSSPropertyID → ElementAnimationRareData::runningTransitionByProperty()
  • AnimationTimeline::m_elementToCompletedCSSTransitionByCSSPropertyID → ElementAnimationRareData::completedTransitionByProperty()
  • AnimationTimeline::m_elementToCSSAnimationsCreatedByMarkupMap → ElementAnimationRareData::animationsCreatedByMarkup()
  • AnimationTimeline::m_elementToCSSTransitionsMap → ElementAnimationRareData::transitions()
  • AnimationTimeline::m_elementToCSSAnimationsMap → ElementAnimationRareData::cssAnimations()
  • AnimationTimeline::m_elementToAnimationsMap → ElementAnimationRareData::webAnimations()

For convenience, these new members are exposed via Element directly.

No change in behavior, so no new tests.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationPlaybackEventInit.h:
  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::animationWasAddedToElement):
(WebCore::removeCSSTransitionFromMap):
(WebCore::AnimationTimeline::animationWasRemovedFromElement):
(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement):
(WebCore::AnimationTimeline::animationsForElement const):
(WebCore::AnimationTimeline::removeCSSAnimationCreatedByMarkup):
(WebCore::AnimationTimeline::willDestroyRendererForElement):
(WebCore::AnimationTimeline::elementWasRemoved):
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForElement):
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::propertyInStyleMatchesValueForTransitionInMap):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):
(WebCore::removeAnimationFromMapForElement): Deleted.
(WebCore::AnimationTimeline::ensureRunningTransitionsByProperty): Deleted.

  • animation/AnimationTimeline.h:
  • animation/ComputedEffectTiming.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::transitionDidComplete):

  • animation/ElementAnimationRareData.cpp: Copied from Source/WebCore/animation/ComputedEffectTiming.h.

(WebCore::ElementAnimationRareData::ElementAnimationRareData):
(WebCore::ElementAnimationRareData::~ElementAnimationRareData):
(WebCore::ElementAnimationRareData::ensureKeyframeEffectStack):

  • animation/ElementAnimationRareData.h: Added.

(WebCore::ElementAnimationRareData::keyframeEffectStack):
(WebCore::ElementAnimationRareData::webAnimations):
(WebCore::ElementAnimationRareData::cssAnimations):
(WebCore::ElementAnimationRareData::transitions):
(WebCore::ElementAnimationRareData::animationsCreatedByMarkup):
(WebCore::ElementAnimationRareData::setAnimationsCreatedByMarkup):
(WebCore::ElementAnimationRareData::completedTransitionByProperty):
(WebCore::ElementAnimationRareData::runningTransitionsByProperty):

  • animation/KeyframeEffect.h:
  • animation/OptionalEffectTiming.h:
  • animation/WebAnimation.h:
  • animation/WebAnimationTypes.h: Copied from Source/WebCore/animation/WebAnimationUtilities.h.

(WebCore::WebAnimationsMarkableDoubleTraits::isEmptyValue):
(WebCore::WebAnimationsMarkableDoubleTraits::emptyValue):

  • animation/WebAnimationUtilities.h:

(WebCore::WebAnimationsMarkableDoubleTraits::isEmptyValue): Deleted.
(WebCore::WebAnimationsMarkableDoubleTraits::emptyValue): Deleted.

  • dom/Element.cpp:

(WebCore::Element::animationRareData const):
(WebCore::Element::ensureAnimationRareData):
(WebCore::Element::keyframeEffectStack const):
(WebCore::Element::ensureKeyframeEffectStack):
(WebCore::Element::hasKeyframeEffects const):
(WebCore::Element::webAnimations):
(WebCore::Element::cssAnimations):
(WebCore::Element::transitions):
(WebCore::Element::animationsCreatedByMarkup):
(WebCore::Element::setAnimationsCreatedByMarkup):
(WebCore::Element::completedTransitionByProperty):
(WebCore::Element::runningTransitionsByProperty):

  • dom/Element.h:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::elementAnimationRareData):
(WebCore::ElementRareData::useTypes const):
(WebCore::ElementRareData::ensureAnimationRareData):
(WebCore::ElementRareData::keyframeEffectStack): Deleted.
(WebCore::ElementRareData::setKeyframeEffectStack): Deleted.

  • dom/Node.cpp:

(WebCore::stringForRareDataUseType):

  • dom/NodeRareData.h:
12:08 AM Changeset in webkit [258315] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208977

Unreviewed gardening.

  • platform/gtk/TestExpectations:

Mar 11, 2020:

9:57 PM Changeset in webkit [258314] by jer.noble@apple.com
  • 9 edits in trunk/Source

Adopt AVSampleBufferVideoOutput
https://bugs.webkit.org/show_bug.cgi?id=208951

Reviewed by Eric Carlson.

Source/WebCore:

Adopt AVSampleBufferVideoOutput, used for extracting decoded samples from an AVSampleBufferDisplayLayer.

Rather than use a separate decompression session when we need to, e.g., paint samples into WebGL, we will
add a AVSBVO to the AVSBDL and use it to extract CVPixelBuffers when asked.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isVideoOutputAvailable const):

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:
  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:
9:25 PM Changeset in webkit [258313] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

Removed unused textElements member from AccessibilityText structure.
https://bugs.webkit.org/show_bug.cgi?id=208967

Reviewed by Chris Fleizach.

The textElements member of AccessibilityText is not used by any client
and its computation is causing crashes in IsolatedTree mode. So this
change removes it.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityText::AccessibilityText):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::accessibilityText const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
9:24 PM Changeset in webkit [258312] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GPU Process] encodeNativeImage() should pass imageSize to GraphicsContext::drawNativeImage()
https://bugs.webkit.org/show_bug.cgi?id=208936

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-11
Reviewed by Myles C. Maxfield.

Passing an empty FloatSize makes drawNativeImage() draws nothing to
the ShareableBitmap

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeNativeImage):

9:19 PM Changeset in webkit [258311] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

RemoteImageBuffer::getImageData() has to clear its DisplayList after calling flushDrawingContext()
https://bugs.webkit.org/show_bug.cgi?id=208931

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-11
Reviewed by Myles C. Maxfield.

Instead of letting every caller to flushDrawingContextAndWaitCommit() or
flushDrawingContext() be responsible of clearing the DisplayList, we can
make these functions take this responsibility.

  • WebProcess/GPU/graphics/RemoteImageBuffer.h:
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:

(WebKit::RemoteImageBufferMessageHandler::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContextAndWaitCommit):

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
8:19 PM Changeset in webkit [258310] by don.olmstead@sony.com
  • 9 edits in trunk/Source

Non-unified build fixes early March 2020 edition Take 2
https://bugs.webkit.org/show_bug.cgi?id=208968

Unreviewed build fix.

Source/WebCore:

  • editing/TextIterator.cpp:
  • editing/TextIterator.h:
  • editing/TextManipulationController.cpp:
  • editing/VisibleSelection.cpp:
  • editing/VisibleUnits.cpp:

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

7:55 PM Changeset in webkit [258309] by don.olmstead@sony.com
  • 12 edits
    5 adds in trunk/Source/WebKit

[GPUP] Add entry points for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=208965

Reviewed by Michael Catanzaro.

Add a CMake target for the GPU Process that is optionally defined based on
whether the process is enabled.

Add an entry point for the GPU Process for unix and windows ports. Use this
as the source for the GPU Process by specifying it in the Platform CMake file.

Add in hooks for both Windows and GLib to launch the GPU Process if it is
enabled in the port.

  • CMakeLists.txt:
  • GPUProcess/EntryPoint/unix/GPUProcessMain.cpp: Added.

(main):

  • GPUProcess/EntryPoint/win/GPUProcessMain.cpp: Added.

(main):

  • GPUProcess/GPUProcessMain.h: Added.
  • PlatformFTW.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • Shared/ProcessExecutablePath.h:
  • Shared/glib/ProcessExecutablePathGLib.cpp:

(WebKit::executablePathOfGPUProcess):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/win/ProcessLauncherWin.cpp:

(WebKit::processName):

7:48 PM Changeset in webkit [258308] by wenson_hsieh@apple.com
  • 4 edits in trunk/Source/WebCore

Large single select elements are incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=208966

Reviewed by Tim Horton.

Adjusts several size and margin values for menu lists (i.e. the default appearance of non-multiple select
elements) to reflect recent changes in macOS. Additionally, adds a workaround for <rdar://problem/60350699>,
which causes text inside many form controls (including select buttons) to be incorrectly sized.

  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::systemFontSizeFor):
(WebCore::ThemeMac::controlFont const):

  • rendering/RenderThemeMac.mm:

Replace calls to +[NSFont systemFontSizeForControlSize:] with ThemeMac::systemFontSizeFor(NSControlSize size)
in order to work around <rdar://problem/60350699>.

(WebCore::RenderThemeMac::updateCachedSystemFontDescription const):
(WebCore::RenderThemeMac::setFontFromControlSize const):
(WebCore::RenderThemeMac::controlSizeForSystemFont const):
(WebCore::RenderThemeMac::popupButtonMargins const):
(WebCore::menuListButtonSizes):

6:50 PM Changeset in webkit [258307] by Russell Epstein
  • 1 copy in tags/Safari-610.1.7

Tag Safari-610.1.7.

6:43 PM Changeset in webkit [258306] by Russell Epstein
  • 2 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258304. rdar://problem/60351239

[macOS] Register with accessibility when the WebContent process starts
https://bugs.webkit.org/show_bug.cgi?id=208960

Reviewed by Brent Fulgham.

When we reenabled CF prefs direct mode in <https://bugs.webkit.org/show_bug.cgi?id=208690>, we started to register
with accessibility when we received a message to do so from the UI process. This would typically happen when the user
enabled accessibility. On macOS, this notification does not work the same way as on iOS, and it is assumed that
accessibility should always be enabled. Therefore we should go back to registering with accessibility on startup of
the WebContent process on macOS.

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeProcess): (WebKit::WebProcess::unblockAccessibilityServer):

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

6:35 PM Changeset in webkit [258305] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[GPUP] Add special handling of MediaTime within message generator
https://bugs.webkit.org/show_bug.cgi?id=208958

Reviewed by Eric Carlson.

When compiling the GPU Process sources without unified sources there were
numerous compilation errors around MediaTime. Only GPU Process .messages.in
files reference this type so there was no special handling within messages.py.
Adding explicit references to MediaTime so the proper header is used and all
sources compile.

  • Scripts/webkit/messages.py:
6:22 PM Changeset in webkit [258304] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Register with accessibility when the WebContent process starts
https://bugs.webkit.org/show_bug.cgi?id=208960

Reviewed by Brent Fulgham.

When we reenabled CF prefs direct mode in <https://bugs.webkit.org/show_bug.cgi?id=208690>, we started to register
with accessibility when we received a message to do so from the UI process. This would typically happen when the user
enabled accessibility. On macOS, this notification does not work the same way as on iOS, and it is assumed that
accessibility should always be enabled. Therefore we should go back to registering with accessibility on startup of
the WebContent process on macOS.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::unblockAccessibilityServer):

6:22 PM Changeset in webkit [258303] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

AX: accessibilityReplaceRange:withText: doesn't post an AXValueChanged notification like when typing with kb
https://bugs.webkit.org/show_bug.cgi?id=208332
<rdar://problem/58489685>

Patch by Canhai Chen <canhai_chen@apple.com> on 2020-03-11
Reviewed by Chris Fleizach.

Source/WebCore:

When accessibilityReplaceRange:withText: is called to insert or replace text, there should be a
AXValueChanged notification posted with the correct user info to notify the AX client that the text value
has been changed with detailed info about the change.

Post a notification in Editor::replaceSelectionWithFragment for EditAction::Insert edit type
with replaced text and selection.

Add a new test for text replacement value change notification in editable div, text input, and textarea,
including direct text insertion and replace-and-insert.

Test: accessibility/mac/replace-text-with-range-value-change-notification.html

  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):

  • editing/ReplaceSelectionCommand.h:

(WebCore::ReplaceSelectionCommand::documentFragmentPlainText const):

LayoutTests:

Test text replacement value change notification in editable div, text input, and textarea,
including direct text insertion and replace-and-insert.

  • accessibility/mac/replace-text-with-range-value-change-notification-expected.txt: Added.
  • accessibility/mac/replace-text-with-range-value-change-notification.html: Added.
6:10 PM Changeset in webkit [258302] by don.olmstead@sony.com
  • 9 edits in trunk/Source/WebKit

[GPUP] RemoteAudioDestination classes should require ENABLE(WEB_AUDIO)
https://bugs.webkit.org/show_bug.cgi?id=208956

Reviewed by Dean Jackson.

RemoteAudioDestinationProxy uses AudioBus directly. For ports that don't
ENABLE(WEB_AUDIO) there is no implementation and linker errors will occur after
building with ENABLE(GPU_PROCESS).

Add guards for ENABLE(WEB_AUDIO) around relevant implementations.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteAudioDestinationManager.cpp:
  • GPUProcess/media/RemoteAudioDestinationManager.h:
  • GPUProcess/media/RemoteAudioDestinationManager.messages.in:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in:
5:33 PM Changeset in webkit [258301] by Russell Epstein
  • 3 edits in branches/safari-610.1.7-branch/Source/WebCore

Cherry-pick r258297. rdar://problem/60347323

AX: Isolated tree: enabling secondary thread for the wrong clients
https://bugs.webkit.org/show_bug.cgi?id=208950

Reviewed by Chris Fleizach.

Removed incorrect call to _AXUIElementUseSecondaryAXThread and wrap it
in initializeSecondaryAXThread with the appropriate checks.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::isolatedTreeFocusedObject): (WebCore::AXObjectCache::initializeSecondaryAXThread): (WebCore::AXObjectCache::isolatedTreeRootObject):
  • accessibility/AXObjectCache.h:

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

5:33 PM Changeset in webkit [258300] by Russell Epstein
  • 6 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258296. rdar://problem/60348995

Add a parameter to allow ignoring app-bound domain categorization
https://bugs.webkit.org/show_bug.cgi?id=208949
<rdar://problem/60239187>

Reviewed by Brent Fulgham.

Introduce a new parameter to ignore app-bound domain categorization
for specific WebViews.

  • UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::ignoresAppBoundDomains const): (API::PageConfiguration::setIgnoresAppBoundDomains):
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _ignoresAppBoundDomains]): (-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

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

5:30 PM Changeset in webkit [258299] by Justin Fan
  • 2 edits in trunk/LayoutTests

[WebGL] Additional WebGL bot gardening
https://bugs.webkit.org/show_bug.cgi?id=208961

Unreviewed test gardening.

  • webgl/TestExpectations:
4:58 PM Changeset in webkit [258298] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r258294.
https://bugs.webkit.org/show_bug.cgi?id=208957

Introduced API failure (Requested by perarne on #webkit).

Reverted changeset:

"[macOS] _AXSApplicationAccessibilityEnabled should not be
called"
https://bugs.webkit.org/show_bug.cgi?id=208953
https://trac.webkit.org/changeset/258294

Patch by Commit Queue <commit-queue@webkit.org> on 2020-03-11

4:56 PM Changeset in webkit [258297] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

AX: Isolated tree: enabling secondary thread for the wrong clients
https://bugs.webkit.org/show_bug.cgi?id=208950

Reviewed by Chris Fleizach.

Removed incorrect call to _AXUIElementUseSecondaryAXThread and wrap it
in initializeSecondaryAXThread with the appropriate checks.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isolatedTreeFocusedObject):
(WebCore::AXObjectCache::initializeSecondaryAXThread):
(WebCore::AXObjectCache::isolatedTreeRootObject):

  • accessibility/AXObjectCache.h:
4:53 PM Changeset in webkit [258296] by Kate Cheney
  • 6 edits in trunk/Source/WebKit

Add a parameter to allow ignoring app-bound domain categorization
https://bugs.webkit.org/show_bug.cgi?id=208949
<rdar://problem/60239187>

Reviewed by Brent Fulgham.

Introduce a new parameter to ignore app-bound domain categorization
for specific WebViews.

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::ignoresAppBoundDomains const):
(API::PageConfiguration::setIgnoresAppBoundDomains):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _ignoresAppBoundDomains]):
(-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

4:49 PM Changeset in webkit [258295] by jer.noble@apple.com
  • 26 edits in trunk/Source

[EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
https://bugs.webkit.org/show_bug.cgi?id=208923

Reviewed by Eric Carlson.

Source/WebCore:

When AVStreamDataParser encounters an initialization segment indicating encrypted content, it
will issue a -streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID: message
to its delegate. If the parser is already associated with an AVContentKeySession, it will instead
allow the session to handle the initialization segment and the delagete method will not be called.

When the latter situation occurs, we can detect that the -didProvideRequest callback did not
occur due to the client calling MediaKeySession.generateRequest() and therefore must have been
due to parsing an encrypted segment. In response, store the request in a list of "unexpected"
requests to be checked the next time a MediaKeySession tries to generateRequest(). Then, we will
pass the initalizationData and type to HTMLMediaElement through a new client interface, where it
will use that initializationData to issue an "encrypted" event. If the client passes that same
initializationData back into MediaKeySession, the "unexpected" request can be found, and re-used.

Drive-by fixes: Added a ton of debug logging messages to the CDMPrivate classes.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::CDM):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/CDMClient.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeySystemAccess.cpp:

(WebCore::MediaKeySystemAccess::createMediaKeys):

  • Modules/encryptedmedia/MediaKeySystemAccess.h:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):
(WebCore::MediaKeys::attachCDMClient):
(WebCore::MediaKeys::detachCDMClient):
(WebCore::MediaKeys::attemptToResumePlaybackOnClients):
(WebCore::MediaKeys::unrequestedInitializationDataReceived):
(WebCore::MediaKeys::nextChildIdentifier const):

  • Modules/encryptedmedia/MediaKeys.h:

(WebCore::MediaKeys::create): Deleted.
(WebCore::MediaKeys::cdmInstance): Deleted.
(WebCore::MediaKeys::cdmInstance const): Deleted.

  • Modules/encryptedmedia/MediaKeys.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::cdmClientUnrequestedInitializationDataReceived):

  • html/HTMLMediaElement.h:
  • platform/encryptedmedia/CDMFactory.h:
  • platform/encryptedmedia/CDMInstance.h:

(WebCore::CDMInstance::setClient):
(WebCore::CDMInstance::clearClient):
(WebCore::CDMInstance::setLogger):

  • platform/encryptedmedia/CDMInstanceSession.h:

(WebCore::CDMInstanceSession::setLogger):
(WebCore::CDMInstanceSession::setClient):

  • platform/encryptedmedia/CDMPrivate.h:

(WebCore::CDMPrivate::setLogger):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::logChannel):
(WebCore::CDMPrivateFairPlayStreaming::setLogger):
(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::logChannel):
(WebCore::initTypeForRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setServerCertificate):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::clearClient):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::hasRequest const):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/LoggerHelper.h:

(WTF::LoggerHelper::childLogIdentifier): Made static.

4:27 PM Changeset in webkit [258294] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] _AXSApplicationAccessibilityEnabled should not be called
https://bugs.webkit.org/show_bug.cgi?id=208953

Reviewed by Brent Fulgham.

This function should only be called on iOS, not on macOS.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

3:42 PM Changeset in webkit [258293] by jiewen_tan@apple.com
  • 30 edits in trunk

[WebAuthn] Formalize the Keychain schema
https://bugs.webkit.org/show_bug.cgi?id=183533
<rdar://problem/43347926>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new test contents within existing files.

  • Modules/webauthn/AuthenticatorAssertionResponse.cpp:

(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

Modifies the constructors to accept userEntity.name.

  • Modules/webauthn/cbor/CBORValue.h:

Adds a FIXME.

  • testing/MockWebAuthenticationConfiguration.h:

(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::decode):

  • testing/MockWebAuthenticationConfiguration.idl:

Modifies the test infra to use Credential ID as the unique identifier for a credential instead of
the original combination of RP ID and user handle.

Source/WebKit:

This patch formalizes the schema for the Keychain as follows:
kSecAttrLabel: RP ID
kSecAttrApplicationLabel: Credential ID (auto-gen by Keychain)
kSecAttrApplicationTag: { "id": UserEntity.id, "name": UserEntity.name } (CBOR encoded)
Noted, the vale of kSecAttrApplicationLabel is automatically generated by the Keychain, which is a SHA-1 hash of
the public key.

According to the Step 7. from https://www.w3.org/TR/webauthn/#op-make-cred, the following fields are mandatory

  1. rpId (rpEntity.id);
  2. userHandle (userEntity.id), this is required for authenticators that support resident keys;
  3. credentialId.

Some other optional fields are:
(from https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialrpentity)

  1. rpEntity.name;
  2. rpEnitty.icon;

(from https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialuserentity)

  1. userEntity.displayName;
  2. userEntity.name;
  3. userEntity.icon;

(from https://www.w3.org/TR/webauthn/#sign-counter)

  1. signature counter.

Among the six possible fields, only 4. is chosen to store. Here is why:
For rpEntity, rpEntity.id which is either the domain or the eTLD + 1 of the website is
sufficient enough to either classify the credential or serving the UI. Also, this is the only
trustworthy information that the UserAgent produce. Others could potentially be used by
malicious websites for attacking the Keychain or spoofing/phishing users when being displayed
in the UI. Also, rpEnitty.icon is a URL to the website's favicon, which if not implemented
correctly can be used for tracking.

For userEntity, userEntity.name is the human readable version of userEntity.id, and therefore
is chosen to store such that later on WebKit can pass it to UI client to help users disambiguate
different credentials. And it is necessary as userEntity.id is not guaranteed to be human
readable. Others are abandoned for the very same reason as above.

We hard code a zero value for 'signature counter'. While this is a theoretically interesting
technique for a RP to detect private key cloning, it is unlikely to be useful in practice.
We store the private keys in our SEP. This counter would only be a meaningful protection if
adversaries were able to extract private key data from the SEP without Apple noticing, but
were not able to manipulate this counter to fool the RP.

In terms of the schema,
1) RP ID is needed to query all credentials related, and therefore it needs a column and kSecAttrLabel
is supposed to be human readable;
2) kSecAttrApplicationLabel is the auto generated programmatical identifier for a SecItem, and
therefore is suitable as the credential ID. Given the input to the SHA-1 is generated by us, and
it is only needed to be powerful enough to be unique across the keychain within a device, and potentially
to be unique across different other credential ID for the same user. The SHA-1 collision attack
doesn't seem valid here.
3) kSecAttrApplicationTag is the only other column Keychain allows applications to modify. Therefore,
UserEntity.id and UserEntity.name is bundled to use this slot. The reason to use CBOR here is that
it is more friendly then JSON to encode binaries, and it is used widely in WebAuthn.

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

(WebKit::LocalAuthenticatorInternal::toArrayBuffer):
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::filterResponses const):

Tools:

Modifies the test infra to use Credential ID as the unique identifier for a credential instead of
the original combination of RP ID and user handle.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::cleanUpKeychain):
(WTR::TestRunner::keyExistsInKeychain):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistsInKeychain):

LayoutTests:

New tests are added and all tests are modified to use Credential ID to identify a credential instead
of { RP ID, user handle }.

  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/util.js:
3:26 PM Changeset in webkit [258292] by Alan Coon
  • 2 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258289. rdar://problem/60341123

[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945

Unreviewed temporary compile fix.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

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

3:26 PM Changeset in webkit [258291] by Alan Coon
  • 3 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258288. rdar://problem/60341123

[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945

Reviewed by Tim Horton.

Check that accessibility library is present before attempting to call functions in it.

No new tests, since I am not able to reproduce.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

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

3:22 PM Changeset in webkit [258290] by Alan Coon
  • 2 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258225. rdar://problem/60342513

File upload cancels before files can be uploaded.
https://bugs.webkit.org/show_bug.cgi?id=208846
<rdar://problem/60244249>

Reviewed by Tim Horton.

With the new UIContextMenus, we needed to cancel in order for everything to be
reset correctly in WebCore. But this can only be done in the animation completion
handler, but we only want to cancel if we aren't presenting a different picker.

  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]): (-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]): (-[WKFileUploadPanel ensureContextMenuInteraction]):

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

3:18 PM Changeset in webkit [258289] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945

Unreviewed temporary compile fix.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

3:01 PM Changeset in webkit [258288] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945

Reviewed by Tim Horton.

Check that accessibility library is present before attempting to call functions in it.

No new tests, since I am not able to reproduce.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

2:57 PM Changeset in webkit [258287] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r257502): HitTestLocation::HitTestLocation(const FloatPoint&, const FloatQuad&) should set m_isRectBased to true
https://bugs.webkit.org/show_bug.cgi?id=208947

Reviewed by Wenson Hsieh.

Partial revert of r257502. I accidentally removed initialization of m_isRectBased when refactoring
the code in HitTestLocation::HitTestLocation(const FloatPoint&, const FloatQuad&). Revert this to
be faithful to the code before my change.

  • rendering/HitTestLocation.cpp:
2:43 PM Changeset in webkit [258286] by keith_miller@apple.com
  • 6 edits in trunk

Test262-runner should always consider crashes as new failures
https://bugs.webkit.org/show_bug.cgi?id=208943

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

BigInt.asUintN() / BigInt.asIntN() should not crash when called even if we have
not implemented them yet...

  • runtime/BigIntConstructor.cpp:

(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):

Tools:

Right now the runner will consider crashes with no output as passes, which is obviously bad.
Since we should never crash on a conformance test we should consider a crash as a new failure
100% of the time.

  • Scripts/test262/Runner.pm:

(processFile):
(runTest):
(processResult):

2:32 PM Changeset in webkit [258285] by Alan Coon
  • 4 edits in branches/safari-610.1.7-branch/Source

Cherry-pick r258284. rdar://problem/60341123

[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Source/WebKit:

<rdar://problem/60330751>

Reviewed by Brent Fulgham.

Check that accessibility library is present before attempting to use constants from it.

No new tests, since I am unable to reproduce.

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

Source/WTF:

Reviewed by Brent Fulgham.

Add macro to optionally soft link library.

  • wtf/cocoa/SoftLinking.h:

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

2:25 PM Changeset in webkit [258284] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Source/WebKit:

<rdar://problem/60330751>

Reviewed by Brent Fulgham.

Check that accessibility library is present before attempting to use constants from it.

No new tests, since I am unable to reproduce.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

Source/WTF:

Reviewed by Brent Fulgham.

Add macro to optionally soft link library.

  • wtf/cocoa/SoftLinking.h:
2:02 PM Changeset in webkit [258283] by achristensen@apple.com
  • 4 edits in trunk/Source

Enable safe browsing warnings in Mac Catalyst WebKit
https://bugs.webkit.org/show_bug.cgi?id=208944
<rdar://problem/58854302>

Reviewed by Tim Horton.

Source/WebKit:

I manually verified using the steps in the radar that it works as one would hope.

  • Configurations/WebKit.xcconfig:

Source/WTF:

  • wtf/PlatformHave.h:
2:00 PM Changeset in webkit [258282] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

icloud.com Notes text in titles and headings is distorted
https://bugs.webkit.org/show_bug.cgi?id=208908
<rdar://problem/58874371>

Reviewed by Zalan Bujtas.

Source/WebCore:

icloud.com Notes determines if a font has finished loading by measuring it repeatedly.
Depending on the state of the page, we may slice the text differently in different
circumstances. These slices are all supposed to sum together equivalently, but
floating point precision may cause the results to be slightly off.

WidthIterator::applyFontTransforms() was summing a large list of numbers, and then
subtracting the same large list of numbers. A more robust design would be to sum
it twice, and then subtract the two sums.

Test: fast/text/shaping-width-precision.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):

LayoutTests:

  • fast/text/shaping-width-precision-expected.txt: Added.
  • fast/text/shaping-width-precision.html: Added.
1:47 PM Changeset in webkit [258281] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208939

Unreviewed gardening.

  • platform/wpe/TestExpectations:
1:32 PM Changeset in webkit [258280] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the macCatalyst build after r258250

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions):

1:26 PM Changeset in webkit [258279] by keith_miller@apple.com
  • 5 edits
    5 adds in trunk

Throws incorrectly a syntax error when declaring a top level catch variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=189914

Reviewed by Saam Barati.

JSTests:

  • ChakraCore/test/es6/globalParamCatchNewTargetSyntaxError.baseline-jsc:
  • stress/catch-destructuring-shadow-lexical-const-variable-global.js: Added.

(catch):

  • stress/catch-destructuring-shadow-lexical-variable-class.js: Added.

(Foo):
(Bar):
(Baz):

  • stress/catch-destructuring-shadow-lexical-variable-function.js: Added.

(foo):
(bar):

  • stress/catch-destructuring-shadow-lexical-variable-global.js: Added.

(catch):

  • stress/catch-destructuring-shadow-var-global.js: Added.

(catch):

  • test262/expectations.yaml:

Source/JavaScriptCore:

When we are parsing catch block parameters we should increment the statement depth so we don't think
we are trying to shadow top level lexical variables in the same statement depth.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseTryStatement):

1:22 PM Changeset in webkit [258278] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

SVG filter triggers unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=207444
rdar://problem/59297004

Reviewed by Simon Fraser.

SVG filter code marks DOM nodes dirty and schedules style recalc outside of the SVG root
while in layout. This could lead to unstable layout and cause battery drain.
(See webkit.org/b/208903)

  • rendering/RenderLayer.cpp: Remove filterNeedsRepaint(). It's a dangerously misleading name and should

not be part of RenderLayer.
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::notifyFinished):

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):

1:19 PM Changeset in webkit [258277] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Terminate the Network / Plugin processes when receiving invalid IPC from them
https://bugs.webkit.org/show_bug.cgi?id=208933
<rdar://problem/58026473>

Reviewed by Geoffrey Garen.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didReceiveInvalidMessage):

1:09 PM Changeset in webkit [258276] by graouts@webkit.org
  • 5 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207566
<rdar://problem/59355382>

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

LayoutTests/imported/w3c:

We silence the unhandled Promise warning so that the test output is both cleaner and more stable.

  • web-platform-tests/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
1:06 PM Changeset in webkit [258275] by graouts@webkit.org
  • 5 edits in trunk/LayoutTests

REGRESSION: (r255821) [ iOS Mac wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html
https://bugs.webkit.org/show_bug.cgi?id=207278
<rdar://problem/59195524>

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

LayoutTests/imported/w3c:

We silence the unhandled Promise warning so that the test output is both cleaner and more stable.

  • web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html:

LayoutTests:

  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:04 PM Changeset in webkit [258274] by graouts@webkit.org
  • 4 edits in trunk

[Mac wk2 Release] imported/w3c/web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state.html flaky fail
https://bugs.webkit.org/show_bug.cgi?id=206746
<rdar://problem/58867580>

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

Source/WebCore:

Because we could end up in situation where localTime was very marginally smaller than endTime inside of WebAnimation::play(), we would end up
with an unresolved hold time and we would return before calling WebAnimation::timingDidChange() and thus scheduling an animation update from
the timeline because we'd assume it was paused. As a result, the animation would never end and the test would wait for a "finish" event which
would never come.

We now account for an epsilon value when comparing times to account for such situations.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::play):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
12:50 PM Changeset in webkit [258273] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the macCatalyst build after r258250

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
12:34 PM Changeset in webkit [258272] by Chris Dumez
  • 4 edits in trunk

Assertion hit under WebPageProxy::suspendCurrentPageIfPossible() when bypassing certificate warning page
https://bugs.webkit.org/show_bug.cgi?id=208927
<rdar://problem/55448331>

Reviewed by Alex Christensen.

Source/WebKit:

When suspending a previous page after a process-swap, we refuse to do the suspension if the currently
committed URL does not match the url of the current back/forward list item. This makes sense since we
will store the suspended page on the back/forward list item and restore that back when navigating back
to that item. I had a debug assertion in there to help me figure out how this could happen. It turns
out that calling loadAlternateHTML on the view will replace the content of the view with the provided
HTML string, update the committed URL but not create a new back/forward list item. This is so that
if you reload or go/back to this back/forward list item, we will attempt to load the original URL
again. This would however trip my assertion. I am therefore removing my debug assertion and adding API
test coverage.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::suspendCurrentPageIfPossible):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:34 AM Changeset in webkit [258271] by Diego Pino Garcia
  • 5 edits in trunk/Tools

[GTK] Switch EWS api-gtk bot from buildAndTest to testOnly
https://bugs.webkit.org/show_bug.cgi?id=208860

Reviewed by Carlos Alberto Lopez Perez.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Added 'api-gtk'.

  • BuildSlaveSupport/ews-build/config.json:
  • BuildSlaveSupport/ews-build/factories.py:

(BuildFactory.init): Call InstallGTKDependencies() if platform is
GTK.
(TestFactory.init): Call InstallGTKDependencies() if platform is
GTK.
(GTKBuildFactory):
(GTKBuildFactory.init): Deleted.
(GTKBuildAndTestFactory): Deleted.
(GTKBuildAndTestFactory.init): Deleted.
(GTKAPIBuildAndTestFactory): Deleted.

  • BuildSlaveSupport/ews-build/loadConfig.py:
11:01 AM Changeset in webkit [258270] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r257915?) [ Mac ] accessibility/accessibility-node-memory-management.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208930

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:42 AM Changeset in webkit [258269] by commit-queue@webkit.org
  • 9 edits
    1 add in trunk/Source/WebKit

Introduce ResourceLoadStatisticsParameters and move members from NetworkSessionCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=208895

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-11
Reviewed by Youenn Fablet.

No change in behavior yet, but this will help us organize things better.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • Shared/ResourceLoadStatisticsParameters.h: Added.

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • WebKit.xcodeproj/project.pbxproj:
10:30 AM Changeset in webkit [258268] by Chris Dumez
  • 8 edits
    1 copy
    1 add in trunk

Defer async scripts until DOMContentLoaded or first paint, whichever comes first
https://bugs.webkit.org/show_bug.cgi?id=208896

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebbaseline WPT test due to script execution timing change.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085-expected.txt:

Source/WebCore:

Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In
Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization.
However, this seems overly aggressive on pages like wikipedia and it is sufficient
to defer those scripts until first-paint to get the performance win.

  • dom/Document.cpp:

(WebCore::Document::shouldDeferAsynchronousScriptsUntilParsingFinishes const):

  • page/Settings.yaml:

Source/WebKit:

Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In
Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization.
However, this seems overly aggressive on pages like wikipedia and it is sufficient
to defer those scripts until first-paint to get the performance win.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

10:05 AM Changeset in webkit [258267] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Consolidate detachment of document timeline into Document::commonTeardown.
https://bugs.webkit.org/show_bug.cgi?id=208786
<rdar://problem/59936716>

Patch by Jack Lee <Jack Lee> on 2020-03-11
Reviewed by Ryosuke Niwa.

Move detachment of DocumentTimeline to Document::commonTeardown().

No new tests. Covered by existing document tests.

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):
(WebCore::Document::commonTeardown):
(WebCore::Document::prepareForDestruction):

9:50 AM Changeset in webkit [258266] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Unreviewed, reverting r258263.
https://bugs.webkit.org/show_bug.cgi?id=208922

it is breaking internal builds (Requested by youenn on
#webkit).

Reverted changeset:

"Move AudioSession interruption listener code to AudioSession"
https://bugs.webkit.org/show_bug.cgi?id=208714
https://trac.webkit.org/changeset/258263

9:41 AM Changeset in webkit [258265] by Alan Coon
  • 2 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258252. rdar://problem/60310741

[iOS] A syscall is denied by the sandbox
https://bugs.webkit.org/show_bug.cgi?id=208892
<rdar://problem/60294880>

Reviewed by Brent Fulgham.

Add denied syscall to sandbox on iOS.

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

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

9:41 AM Changeset in webkit [258264] by Alan Coon
  • 2 edits in branches/safari-610.1.7-branch/Source/WebKit

Cherry-pick r258247. rdar://problem/60305091

Some common domains should always be App-bound domains
https://bugs.webkit.org/show_bug.cgi?id=208893

<rdar://problem/60280943>

Reviewed by Brent Fulgham.

Some domains, like about:blank and pages loaded from files should
always be considered app-bound.

  • UIProcess/WebPageProxy.cpp: (WebKit::shouldBeTreatedAsAppBound): (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

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

8:46 AM Changeset in webkit [258263] by youenn@apple.com
  • 18 edits in trunk/Source

Move AudioSession interruption listener code to AudioSession
https://bugs.webkit.org/show_bug.cgi?id=208714

Reviewed by Jer Noble.

Source/WebCore:

Move AudioSession interruption detection code from MediaSessionManagerIOS helper to AudioSessionIOS.
Add interruption observer capabilities to AudioSession and make MediaSessionManagerIOS an observer of it.
Manually tested.

  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(-[WebInterruptionObserverHelper initWithCallback:]):
(-[WebInterruptionObserverHelper dealloc]):
(-[WebInterruptionObserverHelper clearCallback]):
(-[WebInterruptionObserverHelper interruption:]):
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSessionPrivate::~AudioSessionPrivate):
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):

  • platform/audio/ios/MediaSessionHelperIOS.h:
  • platform/audio/ios/MediaSessionHelperIOS.mm:

(-[WebMediaSessionHelper initWithCallback:]):

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):

Source/WebKit:

Make RemoteAudioSessionProxyManager an observer for AudioSession interruptions.
When being interrupted, notify all WebProcesses and trigger begin/end interruption mechanisms.
We only send interruption to sessions that are active in RemoteAudioSessionProxyManager.
Minor refactorting to move manager proxies from a map to a weak hash set.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::audioSessionProxy):

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setPreferredBufferSize):
(WebKit::RemoteAudioSessionProxy::tryToSetActive):

  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::~RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess):
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):
(WebKit::RemoteAudioSessionProxyManager::beginAudioSessionInterruption):
(WebKit::RemoteAudioSessionProxyManager::endAudioSessionInterruption):

  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:
7:50 AM Changeset in webkit [258262] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, update TestExpectations related with WebGL 2.0.0 tests
https://bugs.webkit.org/show_bug.cgi?id=208916

Unreviewed gardening.

  • platform/wpe/TestExpectations:
7:47 AM Changeset in webkit [258261] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add unit test to prevent multiple schedulers for a builder.
https://bugs.webkit.org/show_bug.cgi?id=208917

Reviewed by Carlos Alberto Lopez Perez.

  • BuildSlaveSupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest.test_multiple_scheduers_for_builder): Added unit test.
(TagsForBuilderTest): Fixed a typo.

7:40 AM Changeset in webkit [258260] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in KeyframeEffect::getAnimatedStyle
https://bugs.webkit.org/show_bug.cgi?id=208318
<rdar://problem/59848234>

Patch by Jack Lee <Jack Lee> on 2020-03-11
Reviewed by Antoine Quint.

Source/WebCore:

Quit getAnimatedStyle if element is rendererless.

Test: fast/animation/keyframe-rendererless-element-crash.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getAnimatedStyle):

LayoutTests:

Quit getAnimatedStyle if element is rendererless.

  • fast/animation/keyframe-rendererless-element-crash-expected.txt: Added.
  • fast/animation/keyframe-rendererless-element-crash.html: Added.
5:44 AM Changeset in webkit [258259] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208912

Unreviewed gardening.

  • platform/wpe/TestExpectations:
3:48 AM Changeset in webkit [258258] by graouts@webkit.org
  • 2 edits
    5 deletes in trunk/LayoutTests

Regression r258148: js/dom/navigator-maxtouchpoints.html is consistently failing on windows
https://bugs.webkit.org/show_bug.cgi?id=208856

Unreviewed test gardening.

Since Pointer Events are now enabled by default everywhere, we can remove platform-specific results
and rely on the generic expectation where the navigator.maxTouchPoints property is 0.

  • js/dom/navigator-maxtouchpoints-expected.txt:
  • platform/gtk/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
  • platform/ios/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
  • platform/mac/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
  • platform/win/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
  • platform/wpe/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
2:53 AM Changeset in webkit [258257] by Diego Pino Garcia
  • 1 edit
    2 deletes in trunk/LayoutTests

[WPE] Gardening, remove WPE specific expected results
https://bugs.webkit.org/show_bug.cgi?id=208909

Unreviewed gardening.

  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt: Removed.
2:20 AM Changeset in webkit [258256] by Philippe Normand
  • 2 edits in trunk/Tools

[GTK] Failing API tests under the Flatpak SDK environment
https://bugs.webkit.org/show_bug.cgi?id=208871

Reviewed by Michael Catanzaro.

The load-failed signal callback should return a boolean result,
otherwise we enter in unknown territory depending on how the
toolchain compiles this, possibly triggering bad behavior (with
GCC 9.2 from the Flatpak SDK) or not caring at all (with current
GCC toolchain on buildbots).

Patch suggested by Michael Catanzaro.

  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:

(loadFailedCallback):

2:00 AM Changeset in webkit [258255] by youenn@apple.com
  • 9 edits in trunk

[iOS] Unskip fast/mediastream tests
https://bugs.webkit.org/show_bug.cgi?id=208636

Reviewed by Eric Carlson.

Source/WebCore:

Add label to the settings so that we correctly send this information back to WebProcess.
Covered by existing tests.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::settings):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::settings):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::settings):

LayoutTests:

  • fast/mediastream/MediaStream-video-element-expected.txt:
  • fast/mediastream/MediaStream-video-element.html:

Do not output sourceBuffer which is not supported in all platforms.

  • fast/mediastream/MediaStreamTrack-getSettings-expected.txt:
  • platform/ios/TestExpectations:

Mar 10, 2020:

11:22 PM Changeset in webkit [258254] by commit-queue@webkit.org
  • 6 edits in trunk

[OpenSSL] Implement WebCrypto APIs for AES-CTR and AES-KW
https://bugs.webkit.org/show_bug.cgi?id=208186

Patch by Tomoki Imai <Tomoki Imai> on 2020-03-10
Reviewed by Fujii Hironori.

Source/WebCore:

Added WebCrypto implementations for the following algorithms with OpenSSL.

  • AES-CTR
  • AES-KW

Enabled WebCrypto LayoutTests for AES-CTR and AES-KW.

  • crypto/openssl/CryptoAlgorithmAES_CTROpenSSL.cpp:

(WebCore::aesAlgorithm): Added. Helper function to select which AES-CTR algorithm to be used by checking key size.
(WebCore::crypt): Added. Helper function shared by platformEncrypt/platformDecrypt.
(WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): Implemented.
(WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): Implemented.

  • crypto/openssl/CryptoAlgorithmAES_KWOpenSSL.cpp:

(WebCore::aesAlgorithm): Added. Helper function to select which AES-KW algorithm to be used by checking key size.
(WebCore::cryptWrapKey): Added. Helper function for platformWrapKey.
(WebCore::cryptUnwrapKey): Added. Helper function for platformUnwrapKey.
(WebCore::CryptoAlgorithmAES_KW::platformWrapKey): Implemented.
(WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey): Implemented.

  • crypto/openssl/CryptoAlgorithmRegistryOpenSSL.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Registered CryptoAlgorithmAES_CTR and CryptoAlgorithmAES_KW.

LayoutTests:

Enabled WebCrypto LayoutTests for AES-CTR and AES-KW along with the implementations.

  • platform/wincairo/TestExpectations:
10:44 PM Changeset in webkit [258253] by don.olmstead@sony.com
  • 23 edits in trunk/Source

[GPU Process] Work towards compiling out on non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=208899

Reviewed by Darin Adler.

Source/WebCore:

Add in additional headers required for GPU Process build.

  • Headers.cmake:

Source/WebKit:

Work through some compilation issues on non-Cocoa ports when attempting to build
out the GPU Process. Fix platform guards for some methods. Fix compilation issues
for non-unified builds.

Add in CMake listing of messages.in and include directories required for building
with ENABLE_GPU_PROCESS.

  • CMakeLists.txt:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):

  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/GPUProcess.cpp:
  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h:
  • GPUProcess/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):

  • GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:
  • GPUProcess/graphics/RemoteRenderingBackendProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::getConfiguration):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenGravity):
(WebKit::RemoteMediaPlayerProxy::updateVideoFullscreenInlineImage):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
(WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::notifyTrackModeChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • UIProcess/GPU/GPUProcessProxy.h:
  • WebProcess/GPU/GPUProcessConnection.cpp:
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:
  • WebProcess/GPU/media/AudioTrackPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/TextTrackPrivateRemote.h:
9:51 PM Changeset in webkit [258252] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] A syscall is denied by the sandbox
https://bugs.webkit.org/show_bug.cgi?id=208892
<rdar://problem/60294880>

Reviewed by Brent Fulgham.

Add denied syscall to sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:25 PM Changeset in webkit [258251] by Ross Kirsling
  • 7 edits in trunk/JSTests

Re-import test262 to acquire DST fix
https://bugs.webkit.org/show_bug.cgi?id=208901

Reviewed by Don Olmstead.

  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/AggregateError/newtarget-proto-fallback.js:
  • test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
  • test262/test/built-ins/Array/prototype/indexOf/15.4.4.14-4-4.js:
  • test262/test/built-ins/Date/parse/without-utc-offset.js:
  • test262/test262-Revision.txt:
9:07 PM Changeset in webkit [258250] by Darin Adler
  • 18 edits in trunk/Source

Make TextIterator::range return a SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=208797

Reviewed by Don Olmstead.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange): Updated since
TextIterator::range returns a SimpleRange. Also use TextIterator::node where
appropriate instead of repeating the code for it here.
(WebCore::AXObjectCache::lengthForRange): Use TextIterator::node.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::stringForRange const): Use TextIterator::node.
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Ditto.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange const): Ditto.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Use TextIterator::node and createLiveRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added include

of SimpleRange and removed "using namespace HTMLNames".
(AXAttributeStringSetStyle): Use HTMLNames namespace explicitly.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
Use TextIterator::node.
(-[WebAccessibilityObjectWrapper subrole]): Use HTMLNames namespace explicitly.

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::collectTextRanges): Use createLiveRange
here since we don't want to convert move the class to SimpleRange at this time.

  • dom/Position.cpp: Added include of Range.h.
  • dom/RangeBoundaryPoint.h: Removed a bogus "const" on the return value of

RangeBoundaryPoint::toPosition.

  • editing/TextIterator.cpp:

(WebCore::BitStack::BitStack): Deleted.
(WebCore::BitStack::size const): Deleted.
(WebCore::TextIterator::range const): Return a SimpleRange.
(WebCore::TextIterator::node const): Updated for the above.
(WebCore::CharacterIterator::range const): Use SimpleRange right up until the
return statement, where we do createLiveRange. Will come back and remove that soon.
(WebCore::TextIterator::rangeFromLocationAndLength): Use createLiveRange in
one place, SimpleRange in another.

  • editing/TextIterator.h: Removed include of "Range.h" since we can just use

a forward declaration instead. Removed unneeded forward declarations. Simplified
the BitStack and TextIteratorCopyableText classes by initializing data members
and removing explicit definitions of the constructors and destructors. Took out
a stray "explicit" that wasn't needed. Changed the return value of
TextIterator::range to SimpleRange.

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::ParagraphContentIterator): Call
createLiveRange.
(WebCore::ParagraphContentIterator::advance): Ditto.
(WebCore::ParagraphContentIterator::startPosition): Ditto.
(WebCore::ParagraphContentIterator::endPosition): Ditto.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange): Use createLiveRange.

  • editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedStringFromRange): Use SimpleRange instead
of a live range.

Source/WebKit:

  • WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:

(-[WKDOMTextIterator currentRange]): Use createLiveRange.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: Added includes.

Source/WebKitLegacy/mac:

  • WebView/WebTextIterator.mm:

(-[WebTextIterator currentRange]): Use createLiveRange.

8:26 PM Changeset in webkit [258249] by Simon Fraser
  • 5 edits
    2 adds in trunk

Track "scrolling scope" on RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=208620

Reviewed by Zalan Bujtas.
Source/WebCore:

The scrolling scope code added in r257920 failed to recompute m_contentsScrollingScope
when hasCompositedScrollableOverflow() changed, causing bugs on gmail.

Recompute the m_contentsScrollingScope to match or not match the m_boxScrollingScope
based on whether the layer is composited-scrollable.

Test: fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPosition):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::isScrolledByOverflowScrollLayer):

LayoutTests:

  • fast/scrolling/mac/absolute-in-overflow-scroll-dynamic-expected.html: Added.
  • fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html: Added.
  • fast/scrolling/mac/absolute-in-overflow-scroll.html: Fix typo.
7:40 PM Changeset in webkit [258248] by don.olmstead@sony.com
  • 9 edits in trunk/Source

Non-unified build fixes early March 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=208897

Unreviewed build fix.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.h:
  • dom/BoundaryPoint.h:
  • dom/StaticRange.cpp:
  • editing/FrameSelection.cpp:
  • loader/cache/CachedResourceRequest.cpp:
  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

Source/WebKit:

  • NetworkProcess/NetworkLoadChecker.h:
7:00 PM Changeset in webkit [258247] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Some common domains should always be App-bound domains
https://bugs.webkit.org/show_bug.cgi?id=208893

<rdar://problem/60280943>

Reviewed by Brent Fulgham.

Some domains, like about:blank and pages loaded from files should
always be considered app-bound.

  • UIProcess/WebPageProxy.cpp:

(WebKit::shouldBeTreatedAsAppBound):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

6:35 PM Changeset in webkit [258246] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r253759): Web Inspector: Audits: results folder doesn't get selected by pressing Arrow Down key
https://bugs.webkit.org/show_bug.cgi?id=208679
<rdar://problem/60108942>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.initialLayout):
(WI.AuditNavigationSidebarPanel.prototype._handleAuditManagerEditingChanged):
We do actually want to prevent repeat selection, as we may end up attempting to select the
same WI.TreeElement twice due to the nature of WI.SelectionController, which would call
through to WI.NavigationSidebarPanel.prototype.showDefaultContentView() which deselects
any selected WI.TreeElement. Reselecting the previously selected WI.TreeElement when
exiting edit mode is much more of a special case than any of the ways for moving selection
to a WI.FolderTreeElement, so add logic just for that case instead of affecting the entire
WI.TreeOutline. When restoring the selection after leaving edit mode, if the currently
selected WI.TreeElement was also the previously selected WI.TreeElement, deselect and
reselect it so we're "reset" back to a fresh state.

6:32 PM Changeset in webkit [258245] by Devin Rousso
  • 3 edits in trunk/Source/WebKit

Web Inspector: make WebKit::WebInspectorProxy::m_isOpening GTK only
https://bugs.webkit.org/show_bug.cgi?id=208831
<rdar://problem/57720692>

Reviewed by Brian Burg.

  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::open):

6:24 PM Changeset in webkit [258244] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS): editing/selection/ios/selection-after-changing-text-with-callout-menu.html intermittently fails
https://bugs.webkit.org/show_bug.cgi?id=208898

Reviewed by Wenson Hsieh.

iOS no longer shows the callout bar upon Cmd+A. Click on the selection to bring up the callout bar manually.

  • editing/selection/ios/selection-after-changing-text-with-callout-menu.html:
5:42 PM Changeset in webkit [258243] by Alan Coon
  • 2 edits in branches/safari-610.1.7-branch/Source/WebCore

Cherry-pick r258229. rdar://problem/60299543

REGRESSION (r257920): inbox flickers and disappears when scrolling gmail
https://bugs.webkit.org/show_bug.cgi?id=208883
rdar://problem/60287447

Partially revert r257920 since it caused gmail scrolling flickers.

  • rendering/RenderLayerCompositor.cpp: (WebCore::isScrolledByOverflowScrollLayer):

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

5:42 PM Changeset in webkit [258242] by Alan Coon
  • 2 edits in branches/safari-610.1.7-branch/Source/WebCore

Cherry-pick r258226. rdar://problem/60299189

Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724
<rdar://problem/60168306>

Temporarily revert r258025 while investigating a crash.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

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

5:28 PM Changeset in webkit [258241] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

5:02 PM Changeset in webkit [258240] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[CoreIPC] WebPasteboardProxy::SetPasteboardBufferForType uses "0" for both uint64_t and a pointer value
<https://webkit.org/b/208879>
<rdar://problem/60165624>

Reviewed by Wenson Hsieh.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

  • Change 0 to nullptr to make code easier to read.
4:41 PM Changeset in webkit [258239] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Nullptr crash in CompositeEditCommand::moveParagraphWithClones when indenting non-enclosed elements.
https://bugs.webkit.org/show_bug.cgi?id=208628
<rdar://problem/52011509>

Patch by Jack Lee <Jack Lee> on 2020-03-10
Reviewed by Ryosuke Niwa.

When indenting a non-enclosed paragraph, quit if start of contents is not a descendant or sibling of outer block.

Source/WebCore:

Test: fast/editing/indent-non-enclosed-element-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::indentIntoBlockquote):

LayoutTests:

  • fast/editing/indent-non-enclosed-element-crash-expected.txt: Added.
  • fast/editing/indent-non-enclosed-element-crash.html: Added.
4:36 PM Changeset in webkit [258238] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] incomplete type 'WebCore::ScrollingStateFrameScrollingNode' named in nested name specifier
https://bugs.webkit.org/show_bug.cgi?id=208882

Reviewed by Simon Fraser.

No new tests, build fix.

  • page/scrolling/ScrollingTreeScrollingNode.cpp: Add include of ScrollingStateFrameScrollingNode when ENABLE(SCROLLING_THREAD) is true.
3:57 PM Changeset in webkit [258237] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/audio/ios/MediaSessionHelperIOS.mm:

(MediaSessionHelperiOS::providePresentingApplicationPID):
Fix an unused parameter warning.

3:54 PM Changeset in webkit [258236] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

[ macOS iOS ] imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208890

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
3:41 PM Changeset in webkit [258235] by Andres Gonzalez
  • 2 edits in trunk/Source/WebKit

Enable accessibility IsolatedTree in WebKit.
https://bugs.webkit.org/show_bug.cgi?id=208881

Reviewed by Chris Fleizach.

Sets the default value of accessibility IsolatedTree support to true.

  • Shared/WebPreferences.yaml:
3:37 PM Changeset in webkit [258234] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r257944?) [ Mac wk2 ] fast/images/decode-render-animated-image.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208889

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:21 PM Changeset in webkit [258233] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/css-custom-paint/image.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=208887

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
3:04 PM Changeset in webkit [258232] by Alan Coon
  • 1 copy in tags/Safari-610.1.6.3

Tag Safari-610.1.6.3.

3:02 PM Changeset in webkit [258231] by Alan Coon
  • 8 edits in branches/safari-610.1.6-branch/Source

Versioning.

2:47 PM Changeset in webkit [258230] by Justin Fan
  • 3 edits in trunk/LayoutTests

[WebGL] Additional gardening for webgl bot DEQP expectations
https://bugs.webkit.org/show_bug.cgi?id=208884

Unreviewed test gardening.

  • webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt:
  • webgl/TestExpectations:
2:27 PM Changeset in webkit [258229] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

REGRESSION (r257920): inbox flickers and disappears when scrolling gmail
https://bugs.webkit.org/show_bug.cgi?id=208883
rdar://problem/60287447

Partially revert r257920 since it caused gmail scrolling flickers.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::isScrolledByOverflowScrollLayer):

2:21 PM Changeset in webkit [258228] by Alan Coon
  • 1 copy in tags/Safari-610.1.6.2

Tag Safari-610.1.6.2.

2:18 PM Changeset in webkit [258227] by Alan Coon
  • 8 edits in branches/safari-610.1.6-branch/Source

Versioning.

1:09 PM Changeset in webkit [258226] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724
<rdar://problem/60168306>

Temporarily revert r258025 while investigating a crash.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

12:16 PM Changeset in webkit [258225] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

File upload cancels before files can be uploaded.
https://bugs.webkit.org/show_bug.cgi?id=208846
<rdar://problem/60244249>

Reviewed by Tim Horton.

With the new UIContextMenus, we needed to cancel in order for everything to be
reset correctly in WebCore. But this can only be done in the animation completion
handler, but we only want to cancel if we aren't presenting a different picker.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKFileUploadPanel ensureContextMenuInteraction]):

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

[JSC] Fix iso-subspace static_assert for JSJavaScriptCallFramePrototype
https://bugs.webkit.org/show_bug.cgi?id=208874

Reviewed by Saam Barati.

This static_assert should ensure the condition for JSJavaScriptCallFramePrototype, not for JSInjectedScriptHostPrototype.

  • inspector/JSJavaScriptCallFramePrototype.h:
11:46 AM Changeset in webkit [258223] by youenn@apple.com
  • 6 edits in trunk/Source

Make sure that ServiceWorkerFrameLoaderClient lifetime exceeds its frame lifetime
https://bugs.webkit.org/show_bug.cgi?id=208855
<rdar://problem/60187332>

Reviewed by Geoffrey Garen.

Source/WebCore:

Add lifetime management of the loader client to SWContextManager instead of its connection, which has a shorter lifetime.
No JS observable change of behavior.

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::addServiceWorkerFrameLoaderClient):
(WebCore::SWContextManager::removeServiceWorkerFrameLoaderClient):

  • workers/service/context/SWContextManager.h:

Source/WebKit:

In case connection is destroyed, for instance due to network process crashing,
we destroy all service worker frame loader clients.
This is too soon as service worker thread proxy is refcounted and can last longer.
For that reason, we now let the SWContextManager handle the lifetime of the frame loader clients.
Drive-by fix: generate a new frame identifier instead of using an internal counter which can be wrong in case of new connection
and might clash with other frame identifiers now that service workers can run in process with pages.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::ServiceWorkerFrameLoaderClient::create):
(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient):
(WebKit::ServiceWorkerFrameLoaderClient::frameLoaderDestroyed):
(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
11:30 AM Changeset in webkit [258222] by Diego Pino Garcia
  • 1 edit
    9 adds in trunk/LayoutTests

[WPE] Gardening, emit new baselines of WebGL 1.0.3 conformance tests
https://bugs.webkit.org/show_bug.cgi?id=208854

Unreviewed gardening.

  • platform/wpe/webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt: Added.
  • platform/wpe/webgl/1.0.3/conformance/misc/webgl-specific-expected.txt: Added.
  • platform/wpe/webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt: Added.
  • platform/wpe/webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt: Added.
11:25 AM Changeset in webkit [258221] by jer.noble@apple.com
  • 9 edits
    2 adds in trunk/Source/WebCore

Add logging for Modern EME methods.
https://bugs.webkit.org/show_bug.cgi?id=205519

Reviewed by Eric Carlson.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::sessionClosed):
(WebCore::MediaKeySession::logChannel const):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):

  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/NavigatorEME.cpp:

(WTF::LogArgument<Vector<T>>::toString):
(WTF::LogArgument<Optional<T>>::toString):
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
(WebCore::tryNextSupportedConfiguration):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/encryptedmedia/CDMLogging.cpp: Added.

(WebCore::toJSONObject):
(WebCore::toJSONString):
(WTF::LogArgument<WebCore::CDMKeySystemConfiguration>::toString):
(WTF::LogArgument<WebCore::CDMMediaCapability>::toString):
(WTF::LogArgument<WebCore::CDMRestrictions>::toString):
(WTF::LogArgument<WebCore::CDMEncryptionScheme>::toString):
(WTF::LogArgument<WebCore::CDMKeyStatus>::toString):
(WTF::LogArgument<WebCore::CDMMessageType>::toString):
(WTF::LogArgument<WebCore::CDMRequirement>::toString):
(WTF::LogArgument<WebCore::CDMSessionType>::toString):

  • platform/encryptedmedia/CDMLogging.h: Added.
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
11:14 AM Changeset in webkit [258220] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

Sync FeatureList.pm with CMake definitions
https://bugs.webkit.org/show_bug.cgi?id=208866

Reviewed by Michael Catanzaro.

  • Scripts/webkitperl/FeatureList.pm:
10:52 AM Changeset in webkit [258219] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove the special DisplayList handling in CanvasRenderingContext2DBase
https://bugs.webkit.org/show_bug.cgi?id=208828

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-10
Reviewed by Myles C. Maxfield.

Remove DisplayListDrawingContext and use DisplayList::DrawingContext
instead. Remove 'tracksDisplayListReplay' since it is always 'false'.
Remove contextDisplayListMap() since items are added to it only if
'tracksDisplayListReplay' is true which never happens.

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::getContext):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::~CanvasRenderingContext2DBase):
(WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):
(WebCore::DisplayListDrawingContext::DisplayListDrawingContext): Deleted.
(WebCore::contextDisplayListMap): Deleted.
(WebCore::CanvasRenderingContext2DBase::setTracksDisplayListReplay): Deleted.
(WebCore::CanvasRenderingContext2DBase::displayListAsText const): Deleted.
(WebCore::CanvasRenderingContext2DBase::replayDisplayListAsText const): Deleted.

  • html/canvas/CanvasRenderingContext2DBase.h:

(WebCore::CanvasRenderingContext2DBase::tracksDisplayListReplay const): Deleted.

  • platform/graphics/displaylists/DisplayListDrawingContext.h:
10:47 AM Changeset in webkit [258218] by Alan Coon
  • 1 copy in branches/safari-609.2.1.2-branch

New branch.

10:44 AM Changeset in webkit [258217] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add unit tests for commit queue factory
https://bugs.webkit.org/show_bug.cgi?id=208862

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestCommitQueueFactory):
(TestCommitQueueFactory.test_commit_queue_factory): Added unit-test for commit-queue factory.

10:43 AM Changeset in webkit [258216] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Status bubble should only display important messages in pop-over - part 3
https://bugs.webkit.org/show_bug.cgi?id=208865

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Added more strings to STEPS_TO_HIDE.

10:36 AM Changeset in webkit [258215] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebCore

[MSE] Use CMSampleBufferGetOutputPresentationTimeStamp / CMSampleBufferGetOutputDuration for all presentation times and durations
https://bugs.webkit.org/show_bug.cgi?id=208827

Reviewed by Eric Carlson.

CMSampleBufferGetOutputPresentationTimeStamp takes into account pre-roll trim durations and
movie edit lists, and as such, should be used as the "correct" value for "presentation
time".

outputPresentationTime() is inconsistently used, so rather than replacing all references of
outputPresentationTime() with presentationTime(), simply redefine presetationTime() in terms
of CMSampleBufferGetPresentationTimeStamp() and remove outputPresentationTime() entirely.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::updateMinimumUpcomingPresentationTime):

  • platform/MediaSample.h:

(WebCore::MediaSample::outputPresentationTime const): Deleted.
(WebCore::MediaSample::outputDuration const): Deleted.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::calculateTimelineOffset):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::presentationTime const):
(WebCore::MediaSampleAVFObjC::duration const):
(WebCore::MediaSampleAVFObjC::outputDuration const):
(WebCore::MediaSampleAVFObjC::dump const):
(WebCore::MediaSampleAVFObjC::toJSONString const):
(WebCore::MediaSampleAVFObjC::outputPresentationTime const): Deleted.

  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::adaptVideoSample):

10:26 AM Changeset in webkit [258214] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Add release logging for when a navigation by a third-party (or untrusted) iframe is blocked
https://bugs.webkit.org/show_bug.cgi?id=208863

Reviewed by Youenn Fablet.

Add release logging for when a navigation by a third-party (or untrusted) iframe is blocked, to
help identify potential regressions in behavior.

  • dom/Document.cpp:

(WebCore::Document::canNavigate):
(WebCore::Document::frameID const):
(WebCore::Document::isAlwaysOnLoggingAllowed const):

  • dom/Document.h:
9:59 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
9:27 AM Changeset in webkit [258213] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

Do not create a service worker connection if service worker is not enabled in network process
https://bugs.webkit.org/show_bug.cgi?id=208851

Reviewed by Simon Fraser.

In case of navigation redirection, we were trying to go to service worker without checking the service worker entitlement.
Instead, we should check the service worker entitlement and return early in that case.

Covered by manually running minibrowser on simulator.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::isServiceWorkerAllowed const):
(WebKit::NetworkConnectionToWebProcess::createFetchTask):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):

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

(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::startWithServiceWorker):

9:15 AM Changeset in webkit [258212] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208853

Unreviewed gardening.

  • platform/wpe/TestExpectations:
9:11 AM Changeset in webkit [258211] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] MiniBrowser: Close child WebViews when exiting
https://bugs.webkit.org/show_bug.cgi?id=208689

Reviewed by Carlos Garcia Campos.

Store created views so we can release them before exiting.

  • MiniBrowser/wpe/main.cpp:

(webViewClose):
(createWebView):
(main):

8:12 AM Changeset in webkit [258210] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Add ValidateCommiterAndReviewer and ValidateChangeLogAndReviewer build steps in commit-queue
https://bugs.webkit.org/show_bug.cgi?id=208861

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(Factory.init): Remove verifycqplus parameter.
(CommitQueueFactory): Inherit from factory.BuildFactory base class instead of custom Factory class.
(CommitQueueFactory.init): Add required build steps, especially ValidateCommiterAndReviewer,
UpdateWorkingDirectory and ValidateChangeLogAndReviewer.

7:56 AM Changeset in webkit [258209] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

Flaky Test: svg/custom/object-sizing-explicit-height.xhtml
https://bugs.webkit.org/show_bug.cgi?id=208592

Unreviewed test gardening

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:42 AM Changeset in webkit [258208] by youenn@apple.com
  • 19 edits in trunk/Source

Remove SampleBufferDisplayLayer sync IPC
https://bugs.webkit.org/show_bug.cgi?id=208804

Reviewed by Eric Carlson.

Source/WebCore:

Add an initialize method to initialize the sample buffer display layer.
It takes a completion handler so that the initialization can be asynchronous.
Update the player to, on initialization callback, create the necessary observers and hook the fullscreen manager.

Update MediaPlayerPrivateMediaStreamAVFObjC to no longer expose rootLayer and rootLayerBoundsDidChange.
This was used by the root layer observer.
Instead, pass the root layer to the observer when starting the observer and pass a callback to the observer.
Covered by existing tests.

  • platform/graphics/avfoundation/SampleBufferDisplayLayer.cpp:

(WebCore::SampleBufferDisplayLayer::create):

  • platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::create):
(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::initialize):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(-[WebRootSampleBufferBoundsChangeListener initWithCallback:]):
(-[WebRootSampleBufferBoundsChangeListener invalidate]):
(-[WebRootSampleBufferBoundsChangeListener begin:]):
(-[WebRootSampleBufferBoundsChangeListener stop]):
(-[WebRootSampleBufferBoundsChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
(-[WebRootSampleBufferBoundsChangeListener initWithParent:]): Deleted.
(-[WebRootSampleBufferBoundsChangeListener begin]): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayer const): Deleted.

Source/WebKit:

Implement the initialize method as an async IPC.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::RemoteSampleBufferDisplayLayer):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::updatePreferences):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:

(WebKit::SampleBufferDisplayLayer::create):
(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::initialize):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp:

(WebKit::SampleBufferDisplayLayerManager::createLayer):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.h:
7:26 AM Changeset in webkit [258207] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/webmessaging/Channel_postMessage_Blob.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi

Unreviewed test gardening

  • platform/mac/TestExpectations:
7:06 AM Changeset in webkit [258206] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[Cairo] Use std::unique_ptr for cairo_path_t
https://bugs.webkit.org/show_bug.cgi?id=208808

Reviewed by Sergio Villar Senin.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::clipForPatternFilling):
(WebCore::Cairo::drawPathShadow):

  • platform/graphics/cairo/CairoUniquePtr.h:

(WebCore::CairoPtrDeleter<cairo_path_t>::operator() const):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::appendPathToCairoContext):

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::Path):
(WebCore::Path::operator=):
(WebCore::Path::addPath):
(WebCore::Path::applySlowCase const):

6:56 AM Changeset in webkit [258205] by eocanha@igalia.com
  • 3 edits in trunk/LayoutTests

REGRESSION(r257977): [GTK] http/tests/media/hls/video-cookie.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=208803

Reviewed by Philippe Normand.

Supply Content-Length, so WebKit GStreamer can actually know when the download has finished
without mistaking EOF with a stall.

  • http/tests/media/resources/video-cookie-check-cookie.php: Supply Content-Length.
  • platform/gtk/TestExpectations: Removed the test as failing.
6:50 AM Changeset in webkit [258204] by Carlos Garcia Campos
  • 7 edits
    2 deletes in trunk/Source/WebCore

[Cairo] Remove PlatformPathCairo
https://bugs.webkit.org/show_bug.cgi?id=208807

Reviewed by Darin Adler.

We have a class CairoPath defined in PlatformPathCairo.h that simply wraps a cairo_t. We can use the cairo_t
directly as PlatformPath and simplify the cairo path implementation.

  • platform/SourcesCairo.txt:
  • platform/graphics/Path.h:

(WebCore::Path::platformPath const):

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::fillRectWithRoundedHole):
(WebCore::Cairo::fillPath):
(WebCore::Cairo::strokePath):
(WebCore::Cairo::clipPath):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::appendWebCorePathToCairoContext):

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::Font::platformPathForGlyph const):

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::Path):
(WebCore::Path::ensurePlatformPath):
(WebCore::Path::operator=):
(WebCore::Path::clear):
(WebCore::Path::isEmptySlowCase const):
(WebCore::Path::currentPointSlowCase const):
(WebCore::Path::translate):
(WebCore::Path::moveToSlowCase):
(WebCore::Path::addLineToSlowCase):
(WebCore::Path::addRect):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcSlowCase):
(WebCore::Path::addArcTo):
(WebCore::Path::addEllipse):
(WebCore::Path::addPath):
(WebCore::Path::closeSubpath):
(WebCore::Path::boundingRectSlowCase const):
(WebCore::Path::strokeBoundingRect const):
(WebCore::Path::contains const):
(WebCore::Path::strokeContains const):
(WebCore::Path::applySlowCase const):
(WebCore::Path::transform):

  • platform/graphics/cairo/PlatformPathCairo.cpp: Removed.
  • platform/graphics/cairo/PlatformPathCairo.h: Removed.
6:21 AM Changeset in webkit [258203] by Philippe Normand
  • 2 edits in trunk/Tools

[GTK] API favicon test flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=208189

Reviewed by Carlos Garcia Campos.

Sometimes the favicon changes already during the load. Keeping
track of it in the WebView favicon property notification handler
gets us rid of the race.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:

(testFaviconDatabaseGetFavicon):

6:02 AM Changeset in webkit [258202] by youenn@apple.com
  • 12 edits in trunk

[iOS] Make sure a MediStreamTrack clone does not interrupt the being cloned track
https://bugs.webkit.org/show_bug.cgi?id=208634

Reviewed by Eric Carlson.

Source/WebCore:

Covered by reenabled tests.

  • platform/mediastream/RealtimeMediaSourceFactory.h:

(WebCore::SingleSourceFactory::activeSource): .

Source/WebKit:

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::VideoFactory::setActiveSource):
Do nothing since GPUProcess will handle the muting itself if it creates multiple sources.

  • WebProcess/cocoa/UserMediaCaptureManager.h:

LayoutTests:

  • fast/mediastream/MediaStream-clone.html:
  • fast/mediastream/MediaStreamTrack-clone.html:
  • fast/mediastream/mediastreamtrack-video-clone.html:
  • platform/ios/TestExpectations:
  • platform/ios/mediastream/getUserMedia-single-capture.html:

muting is now longer synchronous in WebProcess since it relies on GPUProcess factory to mute the remote track.
Update the test to account for this.
Also, make sure to use a different device, so that we do not use a track cloning under the hood.

  • webrtc/multi-video.html:
5:53 AM Changeset in webkit [258201] by youenn@apple.com
  • 12 edits in trunk/Source

Remove sync IPC when creating a remote capture source
https://bugs.webkit.org/show_bug.cgi?id=208816

Reviewed by Eric Carlson.

Source/WebCore:

Add a whenInitialized method to allow for async creation of realtime media source.
Use this method when creating a MediaStream for getUserMedia/getDisplayMedia.
Covered by existing tests.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::create):

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::createMediaStream):

Source/WebKit:

Use whenInitialized to wait for the async IPC that tells whether the remote source was created successfully.
Use the async response to gather the capabilities so as to remove the corresponding sync IPC.

  • Platform/IPC/Connection.h:

(IPC::AsyncReplyError::create):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::didFail):
(WebKit::UserMediaCaptureManager::Source::setAsReady):
(WebKit::UserMediaCaptureManager::Source::setCapabilities):
(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::Source::capabilities):

5:49 AM Changeset in webkit [258200] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Do not process RTC Network messages coming from NetworkProcess if LibWebRTCNetwork is not active
https://bugs.webkit.org/show_bug.cgi?id=207376

Reviewed by Eric Carlson.

In case LibWebRTCNetwork is not active, we do not have instantiated any peer connection.
We do not have started any related RTC thread so we are not expecting any RTC message from Network Process.
Exit early in that case.

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::isActive const):

5:37 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
5:33 AM Changeset in webkit [258199] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, !USE(GSTREAMER_GL) build fix after r258197.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::platformLayerBuffer):

5:27 AM Changeset in webkit [258198] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Generate commit-queue status bubble from new EWS
https://bugs.webkit.org/show_bug.cgi?id=208811

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubbles_for_patch):

5:10 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
5:08 AM Changeset in webkit [258197] by Philippe Normand
  • 10 edits in trunk/Source/WebCore

[GStreamer][GL] External OES textures rendering support
https://bugs.webkit.org/show_bug.cgi?id=208572

Patch by Philippe Normand <philn@igalia.com> on 2020-03-10
Reviewed by Žan Doberšek.

For hardware that contains native YUV samplers, some drivers may
only support external-oes import of YUV textures, so by supporting
this texture target in the MediaPlayer we can avoid some costly
operations in the pipeline.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::platformLayerBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:

(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawTextureExternalOES):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::clone):
(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
5:08 AM Changeset in webkit [258196] by graouts@webkit.org
  • 1 edit in trunk/LayoutTests/platform/win/js/dom/navigator-maxtouchpoints-expected.txt

Regression r258148: js/dom/navigator-maxtouchpoints.html is consistently failing on windows
https://bugs.webkit.org/show_bug.cgi?id=208856

Unreviewed test gardening.

Following the removal of ENABLE_POINTER_EVENTS, the feature is on by default everywhere and this test should now return 0 instead of undefined.

  • platform/win/js/dom/navigator-maxtouchpoints-expected.txt:
4:48 AM Changeset in webkit [258195] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

REGRESSION(r258182): [GTK] Remove reference to unrequestedTextCheckingSequence
https://bugs.webkit.org/show_bug.cgi?id=208852

Reviewed by Carlos Garcia Campos.

unrequestedTextCheckingSequence was removed in r258182. This variable
was still used in an assertion, which broke GTK Debug build.

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::TextChecker::requestCheckingOfString):

4:27 AM Changeset in webkit [258194] by commit-queue@webkit.org
  • 8 edits
    1 move
    3 adds
    4 deletes in trunk

Align with Origin header changes
https://bugs.webkit.org/show_bug.cgi?id=199261

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-10
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import fetch/origin tests.

  • resources/import-expectations.json:
  • web-platform-tests/fetch/origin/assorted.window-expected.txt: Added.
  • web-platform-tests/fetch/origin/assorted.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/origin/no-cors.any.html.
  • web-platform-tests/fetch/origin/assorted.window.js: Added.

(promise_test.async const):
(promise_test):
(await.new.Promise):
(async const):
(navigationReferrerPolicy):
(fetchReferrerPolicy):
(referrerPolicyTestString):

  • web-platform-tests/fetch/origin/no-cors.any-expected.txt: Removed.
  • web-platform-tests/fetch/origin/no-cors.any.js: Removed.
  • web-platform-tests/fetch/origin/no-cors.any.worker-expected.txt: Removed.
  • web-platform-tests/fetch/origin/no-cors.any.worker.html: Removed.
  • web-platform-tests/fetch/origin/resources/redirect-and-stash.py:

(main):

  • web-platform-tests/fetch/origin/resources/referrer-policy.py: Added.

(main):

  • web-platform-tests/fetch/origin/resources/w3c-import.log:
  • web-platform-tests/fetch/origin/w3c-import.log:

Source/WebCore:

Call generateOriginHeader in more places so that we comply
more with "append a request Origin header" algorithm [1].

Test: imported/w3c/web-platform-tests/fetch/origin/assorted.window.html

[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::submitForm):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):

4:10 AM Changeset in webkit [258193] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.28.0

WebKitGTK 2.28.0

4:09 AM Changeset in webkit [258192] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.0 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.28.0.
2:55 AM Changeset in webkit [258191] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Drop unused DisableICECandidateFiltering / EnableICECandidateFiltering IPC messages
https://bugs.webkit.org/show_bug.cgi?id=208843
<rdar://problem/59683940>

Reviewed by Youenn Fablet.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):
(WebKit::WebPage::disableICECandidateFiltering): Deleted.
(WebKit::WebPage::enableICECandidateFiltering): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:19 AM Changeset in webkit [258190] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/JSTests

JSC 32bits is failing on new test stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js
https://bugs.webkit.org/show_bug.cgi?id=206864

Patch by Paulo Matos <Paulo Matos> on 2020-03-10
Reviewed by Yusuke Suzuki.

Add new test to memory limited devices - behaviour is the same as
numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js
but it creates 25 threads instead of 100.

  • stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Added.

(let.theCode):

1:32 AM Changeset in webkit [258189] by ysuzuki@apple.com
  • 4 edits in trunk/Source/WebCore
REGRESSION: (r257905) [ Mac wk2 Debug ] ASSERTION FAILED: !m_isolatedWorld->isNormal()
m_wrapper !m_jsFunction

https://bugs.webkit.org/show_bug.cgi?id=208642

Reviewed by Darin Adler.

This patch fixes stale assertions and comments in JSEventListener.h, which has various problems.

  1. This assertion is saying, "If m_wrapper is dead, m_jsFunction must be dead". This is wrong. Given that we have conservative GC, JSC never guarantees such a condition. Even if m_wrapper is dead, m_jsFunction can be alive by various reasons: conservative GC finds it, user code stores this function somewhere reachable from the root, etc. The reason why this wrong assertion exists here is because the JSEventListener code and assertion assume that m_jsFunction is nullptr when it is not initialized, and once it is initialized, it should be non nullptr. This is wrong because Weak<> can collect it if it is not retained. This !m_jsFunction check mixes "it is not initialized" and "it is already initialized but collected". The correct assertion should be checking m_wrapper and m_jsFunction are alive (not checking deadness, which is not guaranteed) if the event-listener is once initialized. This patch adds m_isInitialized member to track this status separately from m_wrapper and m_jsFunction.
  2. JSEventListener::jsFunction has if (!m_jsFunction) condition. But this is not correct. This can revive JSFunction if it is collected because m_wrapper is gone or some way, but this is not expected behavior. The correct way is checking m_isInitialized. Once the event-listener is initialized, keeping m_wrapper and m_jsFunction alive is the responsibility of JSEventListener's owner.
  3. The comments about "zombie m_jsFunctions" is wrong. We are using JSC::Weak<>. So if the object gets collected, it returns nullptr, not getting a zombie pointer.
  4. We are emitting write-barrier in a wrong order. In the heavily stressed scenario, it is possible that concurrent marking scans JSEventListener just after we emit the write-barrier, and this marking misses the assigned value. We must emit a write-barrier after the assignment. If the write-barrier code is written after the assignment, it correctly offers memory fence to ensure this ordering.
  5. We also remove "world is not normal, anything is allowed" assertion. The assertion is allowing non-normal world to get dead m_wrapper. But skipping event handlers only in non-normal world does not make sense. And it is originally added as a hack to avoid assertions caused by non-normal world.

While we are not sure which test is causing, it seems that we found a real bug by fixing this assertion[1].

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

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::visitJSFunction):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::wrapper const):
(WebCore::JSEventListener::setWrapperWhenInitializingJSFunction const):
(WebCore::JSEventListener::jsFunction const):
(WebCore::JSEventListener::setWrapper const): Deleted.

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction const):

1:28 AM Changeset in webkit [258188] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.28

Merge r258143 - Tail calls are broken on ARM_THUMB2 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=197797

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/tail-call-with-spilled-registers.js: Added.

Source/JavaScriptCore:

prepareForTailCall operation expects that header size + parameters
size is aligned with stack (alignment is 16-bytes for every architecture).
This means that headerSizeInBytes + argumentsIncludingThisInBytes needs
to be multiple of 16. This was not being preserved during getter IC code
for 32-bits. The code generated was taking in account only
headerSizeInRegisters (it is 4 on 32-bits) and argumentsIncludingThis
(that is always 1 for getters) and allocating 32-bytes when applying
operation (headerSize + argumentsIncludingThis) * 8 - sizeof(CallerFrameAndPC).
This results in a stack frame with size of 40 bytes (after we push
lr and sp). Since prepareForTailCall expects frames to be
16-bytes aligned, it will then calculate the top of such frame
considering it is 48 bytes, cloberring values of previous frame and
causing unexpected behavior. This patch is fixing how this IC code
calculates the stack frame using roundArgumentCountToAlignFrame(numberOfParameters)
aligning with what we do on code without IC installed.
This was not a problem for getter and setter IC on 64-bits because
roundArgumentCountToAlignFrame(1) == 1 and roundArgumentCountToAlignFrame(2) == 3
while it is roundArgumentCountToAlignFrame(1) == 2 and
roundArgumentCountToAlignFrame(2) == 2 for MIPS and ARMv7.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

1:28 AM Changeset in webkit [258187] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/bmalloc

Merge r258142 - Build failure on ppc64le if unix is undefined
https://bugs.webkit.org/show_bug.cgi?id=207906

Patch by Mike Gorse <mgorse@suse.com> on 2020-03-09
Reviewed by Yusuke Suzuki.

  • bmalloc/BPlatform.h: Check for unix along with unix.
12:11 AM Changeset in webkit [258186] by yoshiaki.jitsukawa@sony.com
  • 1 edit in trunk/Source/WebKit/Platform/unix/ModuleUnix.cpp

Unreviewed, fix "no return statement".

Note: See TracTimeline for information about the timeline view.