Timeline



Nov 21, 2020:

10:09 PM Changeset in webkit [270159] by commit-queue@webkit.org
  • 3 edits
    1 move in trunk/Source/WebCore

Convert PlatformXRCocoa.cpp to Objective C++
https://bugs.webkit.org/show_bug.cgi?id=219242

Patch by Ada Chan <adachan@apple.com> on 2020-11-21
Reviewed by Tim Horton.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/xr/cocoa/PlatformXRCocoa.mm: Renamed from Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.cpp.
9:51 PM Changeset in webkit [270158] by sihui_liu@apple.com
  • 16 edits
    12 adds in trunk

Implement audio capture for SpeechRecognition on macOS
https://bugs.webkit.org/show_bug.cgi?id=218855
<rdar://problem/71331001>

Reviewed by Youenn Fablet.

Source/WebCore:

Introduce SpeechRecognizer, which performs audio capture and speech recogntion operations. On start,
SpeechRecognizer creates a SpeechRecognitionCaptureSource and starts audio capturing. On stop, SpeechRecognizer
clears the source and stops recognizing. SpeechRecognizer can only handle one request at a time, so calling
start on already started SpeechRecognizer would cause ongoing request to be aborted.

Tests: fast/speechrecognition/start-recognition-then-stop.html

fast/speechrecognition/start-second-recognition.html

  • Headers.cmake:
  • Modules/speech/SpeechRecognitionCaptureSource.cpp: Added.

(WebCore::SpeechRecognitionCaptureSource::SpeechRecognitionCaptureSource):

  • Modules/speech/SpeechRecognitionCaptureSource.h: Added.
  • Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp: Added. SpeechRecognitionCaptureSourceImpl provides

implementation of SpeechRecognitionCaptureSource on when ENABLE(MEDIA_STREAM) is true.
(WebCore::nextLogIdentifier):
(WebCore::nullLogger):
(WebCore::SpeechRecognitionCaptureSourceImpl::SpeechRecognitionCaptureSourceImpl):
(WebCore::SpeechRecognitionCaptureSourceImpl::~SpeechRecognitionCaptureSourceImpl):
(WebCore::SpeechRecognitionCaptureSourceImpl::audioSamplesAvailable): Push data to buffer, signal main thread to
pull from buffer and invoke data callback.
(WebCore::SpeechRecognitionCaptureSourceImpl::sourceStarted):
(WebCore::SpeechRecognitionCaptureSourceImpl::sourceStopped):
(WebCore::SpeechRecognitionCaptureSourceImpl::sourceMutedChanged):

  • Modules/speech/SpeechRecognitionCaptureSourceImpl.h: Added.
  • Modules/speech/SpeechRecognizer.cpp: Added.

(WebCore::SpeechRecognizer::SpeechRecognizer):
(WebCore::SpeechRecognizer::reset):
(WebCore::SpeechRecognizer::start):
(WebCore::SpeechRecognizer::startInternal):
(WebCore::SpeechRecognizer::stop):
(WebCore::SpeechRecognizer::stopInternal):

  • Modules/speech/SpeechRecognizer.h: Added.

(WebCore::SpeechRecognizer::currentClientIdentifier const):

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/MediaUtilities.cpp: Added.

(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):

  • platform/cocoa/MediaUtilities.h: Added.
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: Move code for creating CMSampleBufferRef to

MediaUtilities.h/cpp so it can shared between SpeechRecognition and UserMedia, as Speech recognition backend
will take CMSampleBufferRef as input.
(WebCore::createAudioFormatDescription): Deleted.
(WebCore::createAudioSampleBuffer): Deleted.

Source/WebKit:

  • UIProcess/SpeechRecognitionPermissionManager.cpp:

(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): Check and enable mock devices based on
preference as SpeechRecognition needs it for testing.

  • UIProcess/SpeechRecognitionServer.cpp:

(WebKit::SpeechRecognitionServer::start):
(WebKit::SpeechRecognitionServer::requestPermissionForRequest):
(WebKit::SpeechRecognitionServer::handleRequest):
(WebKit::SpeechRecognitionServer::stop):
(WebKit::SpeechRecognitionServer::abort):
(WebKit::SpeechRecognitionServer::invalidate):
(WebKit::SpeechRecognitionServer::sendUpdate):
(WebKit::SpeechRecognitionServer::stopRequest): Deleted.
(WebKit::SpeechRecognitionServer::abortRequest): Deleted.

  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::syncIfMockDevicesEnabledChanged):

  • UIProcess/WebPageProxy.h:

LayoutTests:

  • TestExpectations:
  • fast/speechrecognition/start-recognition-in-removed-iframe.html: mark test as async to avoid flakiness.
  • fast/speechrecognition/start-recognition-then-stop-expected.txt: Added.
  • fast/speechrecognition/start-recognition-then-stop.html: Added.
  • fast/speechrecognition/start-second-recognition-expected.txt: Added.
  • fast/speechrecognition/start-second-recognition.html: Added.
  • platform/wk2/TestExpectations:
8:51 PM Changeset in webkit [270157] by Chris Dumez
  • 6 edits
    4 adds in trunk

Poor resampling quality when using AudioContext sampleRate parameter
https://bugs.webkit.org/show_bug.cgi?id=219201

Reviewed by Geoff Garen.

Source/WebCore:

MultiChannelResampler uses a SincResampler per audio channel. In MultiChannelResampler::process(),
it was calling SincResampler::process() for each channel, which would potentially end up calling
MultiChannelResampler::ChannelProvider::provideInput() to provide channel data used for resampling.
The issue was that MultiChannelResampler::ChannelProvider::provideInput() is implemented in such
a way that things will break if provideInput() gets called more than once per channel. When using
an AudioContext's sample rate larger than the hardware sample rate, provideInput() was getting
called more than once per channel and this resulted in very poor resampling quality.

To address the issue, MultiChannelResampler::process() now processes the data in chunks that
are small enough to guarantee that MultiChannelResampler::ChannelProvider::provideInput() will
never get called more than once per audio channel.

The fix is based on the corresponding MultiChannelResampler / SincResampler implementation in
Chrome:

Tests: webaudio/audiocontext-large-samplerate.html

webaudio/audiocontext-low-samplerate.html

  • platform/audio/MultiChannelResampler.cpp:

(WebCore::MultiChannelResampler::ChannelProvider::setProvider):
(WebCore::MultiChannelResampler::ChannelProvider::setCurrentChannel):
(WebCore::MultiChannelResampler::process):

  • platform/audio/MultiChannelResampler.h:
  • platform/audio/SincResampler.cpp:

(WebCore::calculateChunkSize):
(WebCore::SincResampler::updateRegions):

  • platform/audio/SincResampler.h:

LayoutTests:

Add layout test coverage that would hit assertions in debug.

  • webaudio/audiocontext-large-samplerate-expected.txt: Added.
  • webaudio/audiocontext-large-samplerate.html: Added.
  • webaudio/audiocontext-low-samplerate-expected.txt: Added.
  • webaudio/audiocontext-low-samplerate.html: Added.
7:54 PM Changeset in webkit [270156] by Simon Fraser
  • 10 edits in trunk/Source

Propagate the 'wheelEventGesturesBecomeNonBlocking' setting to the ScrollingTree
https://bugs.webkit.org/show_bug.cgi?id=219241

Reviewed by Tim Horton.

Propagate the 'wheelEventGesturesBecomeNonBlocking' setting to the ScrollingTree
via the ScrollingStateFrameScrollingNode, as we do for other settings.

Source/WebCore:

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
(WebCore::AsyncScrollingCoordinator::wheelEventGesturesBecomeNonBlocking const):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::applicableProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setWheelEventGesturesBecomeNonBlocking):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::setAsyncFrameOrOverflowScrollingEnabled): Deleted.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::setAsyncFrameOrOverflowScrollingEnabled):
(WebCore::ScrollingTree::wheelEventGesturesBecomeNonBlocking const):
(WebCore::ScrollingTree::setWheelEventGesturesBecomeNonBlocking):

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):

7:03 PM Changeset in webkit [270155] by Chris Dumez
  • 6 edits
    4 deletes in trunk

Unreviewed, reverting r270141.

Caused assertions on bots

Reverted changeset:

"Poor resampling quality when using AudioContext sampleRate
parameter"
https://bugs.webkit.org/show_bug.cgi?id=219201
https://trac.webkit.org/changeset/270141

3:03 PM Changeset in webkit [270154] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

AccessibilityObject::FocusedUIElement should not call AXObjectCache::focusedUIElementForPage that can return an isolated object.
https://bugs.webkit.org/show_bug.cgi?id=219238

Reviewed by Chris Fleizach.

Since AXObjectCache::focusedUIElementForPage can return an isolated
object, AccessibilityObject::focusedUIElement should not use it to
determine the focused object. This causes that isolated objects may be
accessed on the main thread when they shouldn't, and even infinite
recursion if this happens when the isolated tree is being built.
This patch changes AccessibilityObject::focusedUIElement to call
AXObjectCache::focusedObjectForPage that always returns another AccessibilityObject.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedObjectForPage):
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::focusedObject): Deleted.

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::focusedUIElement const):

12:46 PM Changeset in webkit [270153] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Move current logicalLeft from ContinuousContent to LineStatus
https://bugs.webkit.org/show_bug.cgi?id=219237

Reviewed by Antti Koivisto.

Retain the content logical right in the LineStatus instead (this is used to measure text properly (see xPos) while finding hyphen position).

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::reset):

  • layout/inlineformatting/InlineContentBreaker.h:

(WebCore::Layout::InlineContentBreaker::ContinuousContent::logicalWidth const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::logicalLeft const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineCandidate::reset):
(WebCore::Layout::LineBuilder::nextContentForLine):
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):

12:12 PM Changeset in webkit [270152] by Simon Fraser
  • 10 edits in trunk/Source

Add an Experimental Features for wheel event gestures becoming non-blocking
https://bugs.webkit.org/show_bug.cgi?id=219236

Reviewed by Sam Weinig.
Source/WebCore:

Add a feature flag for the behavior that is being added via webkit.org/b/218764,
which is that only the first wheel event in a gesture is cancelable.

  • platform/cocoa/VersionChecks.h:

Source/WebKit:

Add a feature flag for the behavior that is being added via webkit.org/b/218764,
which is that only the first wheel event in a gesture is cancelable.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWheelEventGesturesBecomeNonBlocking):

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

Add a feature flag for the behavior that is being added via webkit.org/b/218764,
which is that only the first wheel event in a gesture is cancelable.

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultWheelEventGesturesBecomeNonBlocking):

Source/WTF:

Add a feature flag for the behavior that is being added via webkit.org/b/218764,
which is that only the first wheel event in a gesture is cancelable.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
12:04 PM Changeset in webkit [270151] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Treat floats as soft wrap opportunities
https://bugs.webkit.org/show_bug.cgi?id=219235

Reviewed by Antti Koivisto.

While floats are not part of the inline content and they are not supposed to introduce soft wrap opportunities,
e.g. [text][float box][float box][text][float box][text] is essentially just [text][text][text]
figuring out whether a float (or set of floats) should stay on the line or not (and handle potentially out of order inline items)
brings in unnecessary complexity (and apparently Blink works like this too).

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):

11:43 AM Changeset in webkit [270150] by Antti Koivisto
  • 8 edits in trunk

[LFC][Integration] Remove ensureLineBoxes call from RenderedPosition constructor
https://bugs.webkit.org/show_bug.cgi?id=219164

Reviewed by Zalan Bujtas.

Source/WebCore:

It is not needed anymore. We can use LFC line layout through the editing code.

  • dom/Position.cpp:

(WebCore::Position::ensureLineBoxes const): Deleted.

  • dom/Position.h:
  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::RenderedPosition):

  • editing/RenderedPosition.h:

(WebCore::RenderedPosition::rootBox): Deleted.

LayoutTests:

  • accessibility/mac/attachment-element-replacement-character-expected.txt:
  • platform/ios/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
11:08 AM Changeset in webkit [270149] by BJ Burg
  • 7 edits in trunk

Web Inspector: implement Multimap.prototype.take()
https://bugs.webkit.org/show_bug.cgi?id=219231

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Base/Multimap.js:

(Multimap.prototype.take):

  • UserInterface/Base/Utilities.js:

(value):

LayoutTests:

  • inspector/unit-tests/multimap-expected.txt:
  • inspector/unit-tests/multimap.html:
  • inspector/unit-tests/set-utilities.html:
9:24 AM Changeset in webkit [270148] by Aditya Keerthi
  • 6 edits in trunk

Space between minute and meridiem fields in time inputs is too large
https://bugs.webkit.org/show_bug.cgi?id=219217
<rdar://problem/71637133>

Reviewed by Devin Rousso.

Source/WebCore:

The space between minute and meridiem fields in time inputs appears two
CSS pixels larger than a space character. This appearance is due to the
presence of a 1px padding on field elements, which exists to prevent
selected fields from appearing squished.

To fix, apply a negative margin on each side of the element that has a
space character. This pulls fields closer together and negates the
effect of the field padding on the appearance of the space.

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditBuilder::visitLiteral):

LayoutTests:

Rebaselined tests to match new appearance.

  • platform/mac-catalina/fast/forms/time/time-input-rendering-basic-expected.txt:
  • platform/mac-mojave/fast/forms/time/time-input-rendering-basic-expected.txt:
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.txt:
8:33 AM Changeset in webkit [270147] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

[LFC][Integration] Use inline iterator in collectSelectionRects
https://bugs.webkit.org/show_bug.cgi?id=219233

Reviewed by Zalan Bujtas.

Convert these iOS only functions.

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::selectionHeight const):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathRun::logicalTop const):
(WebCore::LayoutIntegration::PathRun::logicalBottom const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionRects):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionRects):

  • rendering/RenderText.cpp:

(WebCore::RenderText::collectSelectionRects):

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

[LFC][Integration] LayoutIntegration::Line::rect is way too ambiguous
https://bugs.webkit.org/show_bug.cgi?id=219230

Reviewed by Antti Koivisto.

Line::rect() is actually the line box (see https://www.w3.org/TR/css-inline-3/#line-box).

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::lineBoxTop const):
(WebCore::LayoutIntegration::Line::lineBoxBottom const):
(WebCore::LayoutIntegration::Line::lineBoxLeft const):
(WebCore::LayoutIntegration::Line::lineBoxRight const):
(WebCore::LayoutIntegration::Line::rect const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::lineBoxTop const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lineBoxBottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalHeight const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::updateMinimumPageHeight):
(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):

6:02 AM Changeset in webkit [270145] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

[LFC][Integration] Remove redundant lineBoxWidth from Line
https://bugs.webkit.org/show_bug.cgi?id=219208

Reviewed by Antti Koivisto.

Line::lineBoxWidth() is incorrectly returning the content logical width. By definition it is the available horizontal space
for the content and therefore it equals to Line::rect().width().

  1. Replace lineLogicalRect with lineBoxLogicalRect.
  2. Remove redundant lineBoxWidth() from Line.
  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::displayBoxForTextRun const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedContentHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const):
(WebCore::Layout::LineBox::logicalTopLeft const):
(WebCore::Layout::LineBox::logicalSize const):

  • layout/inlineformatting/InlineLineGeometry.h:

(WebCore::Layout::InlineLineGeometry::lineBoxLogicalRect const):
(WebCore::Layout::InlineLineGeometry::moveVertically):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
(WebCore::Layout::InlineLineGeometry::logicalRect const): Deleted.
(WebCore::Layout::InlineLineGeometry::lineBoxLogicalSize const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::lineOverflowWidth):
(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::rect const):
(WebCore::LayoutIntegration::Line::lineBoxWidth const): Deleted.

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

5:13 AM Changeset in webkit [270144] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Remove InlineLineGeometry::logicalLeft/top/bottom/right/width/height helper functions
https://bugs.webkit.org/show_bug.cgi?id=219226

Reviewed by Antti Koivisto.

This is in preparation for having lineBoxLogicalRect() on InlineLineGeometry. It makes it absolutely clear
of what type of logical rect we have here.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedContentHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineLineGeometry.h:

(WebCore::Layout::InlineLineGeometry::logicalLeft const): Deleted.
(WebCore::Layout::InlineLineGeometry::logicalRight const): Deleted.
(WebCore::Layout::InlineLineGeometry::logicalTop const): Deleted.
(WebCore::Layout::InlineLineGeometry::logicalBottom const): Deleted.
(WebCore::Layout::InlineLineGeometry::logicalWidth const): Deleted.
(WebCore::Layout::InlineLineGeometry::logicalHeight const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

4:56 AM Changeset in webkit [270143] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC][Integration] Add contentLogicalOffset and contentLogicalWidth to InlineLineGeometry(Line)
https://bugs.webkit.org/show_bug.cgi?id=219220

Reviewed by Antti Koivisto.

This helps to match the legacy root inline box's geometry where
line left + content offset == root inline box left edge
line left + content offset + content width = root inline box right edge

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineGeometry.h:

(WebCore::Layout::InlineLineGeometry::contentOffset const):
(WebCore::Layout::InlineLineGeometry::contentWidth const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
(WebCore::Layout::InlineLineGeometry::horizontalAlignmentOffset const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentOffset const):
(WebCore::LayoutIntegration::Line::contentWidth const):
(WebCore::LayoutIntegration::Line::horizontalAlignmentOffset const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft const):
(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalRight const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):

12:11 AM Changeset in webkit [270142] by jiewen_tan@apple.com
  • 12 edits
    31 copies
    1 add in trunk

[WebAuthn] Implement SPI for AuthenticationServices.Framework
https://bugs.webkit.org/show_bug.cgi?id=218893
<rdar://problem/71364731>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by API tests.

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:
  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:

Tweaks some macros to expose an empty struct for ports that have WebAuthn disabled.

Source/WebKit:

This patch implements the SPI for AuthenticationServices.Framework, which is more or less a direct
translation of the WebAuthn Web IDLs and a thin wrapper on top of functionalities of the WebAuthn
process.

It deprecates the existing _WKWebAuthenticationPanel SPI which is for Safari to show UI only. This
patch does not just repurpose the SPI but also modifies some of the implementations. The most noticeable one
is the change of ownerships. Prior to this change, AuthenticatorManager owns the APIWebAuthenticationPanel.
Now, it's the opposite way.

Since there will be a period of time that the deprecated implementation will coexist with the new implementation,
this path also marks things that are meant to deprecate in the future to reduce confusions.

  • UIProcess/API/APIWebAuthenticationPanel.cpp:

(API::WebAuthenticationPanel::WebAuthenticationPanel):
(API::WebAuthenticationPanel::handleRequest):
(API::WebAuthenticationPanel::cancel const):

  • UIProcess/API/APIWebAuthenticationPanel.h:

Implements the plumbing for the new SPI and owns the AuthenticatorManager now.

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

(-[_WKAuthenticationExtensionsClientOutputs initWithAppid:]):
(-[_WKAuthenticatorResponse initWithRawId:extensions:]):
(-[_WKAuthenticatorAssertionResponse initWithRawId:extensions:authenticatorData:signature:userHandle:]):
(-[_WKAuthenticatorAttestationResponse initWithRawId:extensions:attestationObject:]):
(-[_WKAuthenticatorSelectionCriteria init]):
(-[_WKPublicKeyCredentialCreationOptions initWithRp:user:pubKeyCredParams:]):
(-[_WKPublicKeyCredentialDescriptor initWithType:identifier:]):
(-[_WKPublicKeyCredentialEntity initWithName:]):
(-[_WKPublicKeyCredentialParameters initWithType:alg:]):
(-[_WKPublicKeyCredentialRequestOptions init]):
(-[_WKPublicKeyCredentialRpEntity initWithName:]):
(-[_WKPublicKeyCredentialUserEntity initWithName:identifier:displayName:]):
(-[_WKWebAuthenticationPanel init]):
(vectorFromNSData):
(encodeEntity):
(publicKeyCredentialRpEntity):
(publicKeyCredentialUserEntity):
(publicKeyCredentialParameters):
(authenticatorTransport):
(authenticatorTransports):
(publicKeyCredentialDescriptors):
(authenticatorAttachment):
(userVerification):
(authenticatorSelectionCriteria):
(attestationConveyancePreference):
(authenticationExtensionsClientInputs):
(+[_WKWebAuthenticationPanel convertToCoreCreationOptionsWithOptions:]):
(wkAuthenticatorAttestationResponse):
(-[_WKWebAuthenticationPanel makeCredentialWithHash:options:completionHandler:]):
(+[_WKWebAuthenticationPanel convertToCoreRequestOptionsWithOptions:]):
(wkAuthenticatorAssertionResponse):
(-[_WKWebAuthenticationPanel getAssertionWithHash:options:completionHandler:]):
(+[_WKWebAuthenticationPanel isUserVerifyingPlatformAuthenticatorAvailable]):
Implements the SPI.

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:

Marks things as to deprecate.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):
(): Deleted.

Nov 20, 2020:

5:45 PM Changeset in webkit [270141] by Chris Dumez
  • 6 edits
    4 adds in trunk

Poor resampling quality when using AudioContext sampleRate parameter
https://bugs.webkit.org/show_bug.cgi?id=219201

Reviewed by Geoff Garen.

Source/WebCore:

MultiChannelResampler uses a SincResampler per audio channel. In MultiChannelResampler::process(),
it was calling SincResampler::process() for each channel, which would potentially end up calling
MultiChannelResampler::ChannelProvider::provideInput() to provide channel data used for resampling.
The issue was that MultiChannelResampler::ChannelProvider::provideInput() is implemented in such
a way that things will break if provideInput() gets called more than once per channel. When using
an AudioContext's sample rate larger than the hardware sample rate, provideInput() was getting
called more than once per channel and this resulted in very poor resampling quality.

To address the issue, MultiChannelResampler::process() now processes the data in chunks that
are small enough to guarantee that MultiChannelResampler::ChannelProvider::provideInput() will
never get called more than once per audio channel.

The fix is based on the corresponding MultiChannelResampler / SincResampler implementation in
Chrome:

Tests: webaudio/audiocontext-large-samplerate.html

webaudio/audiocontext-low-samplerate.html

  • platform/audio/MultiChannelResampler.cpp:

(WebCore::MultiChannelResampler::ChannelProvider::setProvider):
(WebCore::MultiChannelResampler::ChannelProvider::setCurrentChannel):
(WebCore::MultiChannelResampler::process):

  • platform/audio/MultiChannelResampler.h:
  • platform/audio/SincResampler.cpp:

(WebCore::calculateChunkSize):
(WebCore::SincResampler::updateRegions):

  • platform/audio/SincResampler.h:

LayoutTests:

Add layout test coverage that would hit assertions in debug.

  • webaudio/audiocontext-large-samplerate-expected.txt: Added.
  • webaudio/audiocontext-large-samplerate.html: Added.
  • webaudio/audiocontext-low-samplerate-expected.txt: Added.
  • webaudio/audiocontext-low-samplerate.html: Added.
5:27 PM Changeset in webkit [270140] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

'run-analysis' script should schedule retries for A/B tests even after chart analysis failure.
https://bugs.webkit.org/show_bug.cgi?id=219116

Reviewed by Ryosuke Niwa.

Anlyzing charts and schedule retries for A/B tests on run-analysis script are independent task.
It should not skip scheduling retries even when chart analysis part fails.

  • tools/run-analysis.js:

(async analysisLoop): Change the logic so that chart analysis failure will not stop scheduling retries.
Fix a typo for 'notificationRemoteAPI'.

5:11 PM Changeset in webkit [270139] by Chris Dumez
  • 2 edits in trunk/LayoutTests

(r267253) [ Mac ] webaudio/AudioParam/audioparam-processing.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=219228
<rdar://problem/71643007>

Reviewed by Geoffrey Garen.

The test was running subtests in parallel using Promise.all(), causing the output
lines to sometimes be out of order. We now enforce the ordering of the subtests
to make sure that the output is consistent.

  • webaudio/AudioParam/audioparam-processing.html:
4:51 PM Changeset in webkit [270138] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Fix a bug that platform groups cannot be updated on 'admin/platform'.
https://bugs.webkit.org/show_bug.cgi?id=219118

Reviewed by Ryosuke Niwa.

Admins should be able to update platform group on 'admin/platform'.
Update the assertion on BuildbotTriggerable._pullBuildbotOnAllSyncers so that when there is no
corresponding entry in buildRequestByGroup, the test group for the request should be finished.

  • public/admin/platforms.php:
  • tools/js/buildbot-triggerable.js: Updated the assert statement.

(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers):

4:51 PM Changeset in webkit [270137] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Silence ApplicationCache related errors when running http/tests/inspector/network/x-frame-options.html
https://bugs.webkit.org/show_bug.cgi?id=218830

  • http/tests/inspector/network/x-frame-options.html:

This makes the test output deterministic, even after trying to message a frame that has been destroyed.
The actual fix was the revision referred to in the bugzilla, but this was needed to make the test not print out mostly-unrelated errors.

4:38 PM Changeset in webkit [270136] by Kate Cheney
  • 56 edits
    2 copies
    2 adds in trunk

PCM: Persist pending ad clicks and attributions so they can survive browser restart
https://bugs.webkit.org/show_bug.cgi?id=219134
<rdar://problem/70470129>

Reviewed by John Wilander.
Source/WebCore:

This patch migrates PCM data to be stored on disk and
updates naming of various PCM data to match naming agreed
upon in standards bodies:

  • source -> sourceSite
  • campaign/campaignID -> sourceID
  • destination -> attributeOnSite
  • conversion/conversionValue -> attributionTriggerData
  • unconverted -> unattributed
  • convert(ed) -> attribute(d)

Tests: http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html

http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::maxAge):
(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::attributeAndGetEarliestTimeToSend):
(WebCore::PrivateClickMeasurement::hasHigherPriorityThan const):
(WebCore::PrivateClickMeasurement::reportURL const):
(WebCore::PrivateClickMeasurement::json const):
(WebCore::PrivateClickMeasurement::parseConversionRequest): Deleted.
(WebCore::PrivateClickMeasurement::convertAndGetEarliestTimeToSend): Deleted.
Renaming.

(WebCore::PrivateClickMeasurement::markAsExpired): Deleted.
(WebCore::PrivateClickMeasurement::hasExpired const): Deleted.
(WebCore::PrivateClickMeasurement::markConversionAsSent): Deleted.
(WebCore::PrivateClickMeasurement::wasConversionSent const): Deleted.
We can remove the *Expired() functions as they were only indicators
for the HashMap storage to know what attributions to delete. This is
now handled by SQLite. Similarly, we can remove the markConversionAsSent
and wasConversionSent functions because a sent attribution will not
be stored in the database, so this value will always be false.

(WebCore::PrivateClickMeasurement::toString const): Deleted.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::SourceID::SourceID):
(WebCore::PrivateClickMeasurement::SourceSite::SourceSite):
(WebCore::PrivateClickMeasurement::SourceSite::operator== const):
(WebCore::PrivateClickMeasurement::SourceSite::deletedValue):
(WebCore::PrivateClickMeasurement::SourceSite::constructDeletedValue):
(WebCore::PrivateClickMeasurement::SourceSiteHash::hash):
(WebCore::PrivateClickMeasurement::SourceSiteHash::equal):
(WebCore::PrivateClickMeasurement::AttributeOnSite::AttributeOnSite):
(WebCore::PrivateClickMeasurement::AttributeOnSite::operator== const):
(WebCore::PrivateClickMeasurement::AttributeOnSite::deletedValue):
(WebCore::PrivateClickMeasurement::AttributeOnSite::constructDeletedValue):
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::hash):
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::equal):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::AttributionTriggerData):
Renaming.

(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::sourceSite const):
(WebCore::PrivateClickMeasurement::attributeOnSite const):
(WebCore::PrivateClickMeasurement::timeOfAdClick const):
(WebCore::PrivateClickMeasurement::setEarliestTimeToSend):
(WebCore::PrivateClickMeasurement::sourceID):
(WebCore::PrivateClickMeasurement::attributionTriggerData):
(WebCore::PrivateClickMeasurement::setAttribution):
Now that we store data on disk, we need a more flexible constructor
and more functions to rebuild PCM objects from the database.

(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::encode const):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::SourceSite>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::SourceSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::SourceSite>::isDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::isDeletedValue):
(WebCore::PrivateClickMeasurement::Campaign::Campaign): Deleted.
(WebCore::PrivateClickMeasurement::Campaign::isValid const): Deleted.
(WebCore::PrivateClickMeasurement::Source::Source): Deleted.
(WebCore::PrivateClickMeasurement::Source::operator== const): Deleted.
(WebCore::PrivateClickMeasurement::Source::matches const): Deleted.
(WebCore::PrivateClickMeasurement::Source::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::Source::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::Source::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::Source::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::Source::isDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::SourceHash::hash): Deleted.
(WebCore::PrivateClickMeasurement::SourceHash::equal): Deleted.
(WebCore::PrivateClickMeasurement::Destination::Destination): Deleted.
(WebCore::PrivateClickMeasurement::Destination::operator== const): Deleted.
(WebCore::PrivateClickMeasurement::Destination::matches const): Deleted.
(WebCore::PrivateClickMeasurement::Destination::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::Destination::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::Destination::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::Destination::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::Destination::isDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::DestinationHash::hash): Deleted.
(WebCore::PrivateClickMeasurement::DestinationHash::equal): Deleted.
(WebCore::PrivateClickMeasurement::Conversion::Conversion): Deleted.
(WebCore::PrivateClickMeasurement::Conversion::isValid const): Deleted.
(WebCore::PrivateClickMeasurement::source const): Deleted.
(WebCore::PrivateClickMeasurement::destination const): Deleted.
Renaming.

(WebCore::PrivateClickMeasurement::isEmpty const): Deleted.
Not needed anymore, the database uses Optionals to indicate an empty result.

(WebCore::PrivateClickMeasurement::Conversion::encode const): Deleted.
(WebCore::PrivateClickMeasurement::Conversion::decode): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::isDeletedValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::isDeletedValue): Deleted.
Renaming.

Source/WebKit:

This patch migrates Private Click Measurement to use SQLite,
which is beneficial because it requires less in-memory storage and
persists PCM data across browser sessions. It also updates naming
to match naming agreed upon in standards bodies:

  • source -> sourceSite
  • campaign/campaignID -> sourceID
  • destination -> attributeOnSite
  • conversion/conversionValue -> attributionTriggerData
  • unconverted -> unattributed
  • convert(ed) -> attribute(d)

This adds 3 SQLite tables: one for clicks that haven't been
attributed, one for attributions that haven't been sent, and one to
store the last time the reports were sent to make sure reports get
sent as soon as possible if needed after a browser restart.

Behavior is identical to existing PCM implementation with the addition
of persistence. Existing PCM tests confirm no regressions.

Reviewed by John Wilander.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::createTableQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements):
New queries to interact with PCM data.

(WebKit::ResourceLoadStatisticsDatabaseStore::updateTimerLastFired):
(WebKit::ResourceLoadStatisticsDatabaseStore::timerLastFired):
(WebKit::ResourceLoadStatisticsDatabaseStore::updatePrivateClickMeasurementAttributionTimes):
Set earliestTimeToSend to be the original value minus the time passed since the last timer fire
for each entry. If the result is less than 0, set to 0 so the report gets sent immediately.

(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
Creates a PCM object from data in the database.

(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttributions):
These functions use database queries to implement PCM functionality with exactly the same
behavior as the in-memory PCM implementation.

(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::updateTimerLastFired):
(WebKit::WebResourceLoadStatisticsStore::insertPrivateClickMeasurement):
(WebKit::WebResourceLoadStatisticsStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):
(WebKit::WebResourceLoadStatisticsStore::allAttributedPrivateClickMeasurement):
(WebKit::WebResourceLoadStatisticsStore::clearPrivateClickMeasurement):
(WebKit::WebResourceLoadStatisticsStore::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::WebResourceLoadStatisticsStore::clearExpiredPrivateClickMeasurement):
(WebKit::WebResourceLoadStatisticsStore::privateClickMeasurementToString):
(WebKit::WebResourceLoadStatisticsStore::clearSentAttributions):
(WebKit::WebResourceLoadStatisticsStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):

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

(WebKit::NetworkProcess::firePrivateClickMeasurementTimerImmediately):
(WebKit::NetworkProcess::simulateResourceLoadStatisticsSessionRestart):
(WebKit::NetworkProcess::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
Test functions to help simulate a browser restart after PCM data has expired during
a session close. This is the only behavior change from the existing PCM implementation.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

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

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately):
(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
Move constructor to cpp file to call startTimer(5_s) which will kick
off sending any reports that have expired in the database. We should
wait 5 seconds so we are sure ITP is up and running.

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::startTimer):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::clearSentAttributions):
(WebKit::PrivateClickMeasurementManager::updateTimerLastFired):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toString const):
(WebKit::PrivateClickMeasurementManager::setConversionURLForTesting):
(WebKit::PrivateClickMeasurementManager::markAllUnattributedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::storeUnconverted): Deleted.
(WebKit::PrivateClickMeasurementManager::handleConversion): Deleted.
(WebKit::PrivateClickMeasurementManager::convert): Deleted.
(WebKit::PrivateClickMeasurementManager::firePendingConversionRequests): Deleted.
(WebKit::PrivateClickMeasurementManager::markAllUnconvertedAsExpiredForTesting): Deleted.
Implementation moved to ResourceLoadStatisticsDatabaseStore.

  • NetworkProcess/PrivateClickMeasurementManager.h:

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager): Deleted.
Moved to cpp file.

(WebKit::PrivateClickMeasurementManager::m_sessionID): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageMarkAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WKPageSimulateResourceLoadStatisticsSessionRestart):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::WebPageProxy::simulateResourceLoadStatisticsSessionRestart):

  • UIProcess/WebPageProxy.h:

Testing support.

Tools:

Add support for testing of expired ad-clicks and attributions.
Update names after Private Click Measurement standards discussions.

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

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

(WTR::TestRunner::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WTR::TestRunner::simulateResourceLoadStatisticsSessionRestart):

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

(WTR::TestController::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WTR::TestController::simulateResourceLoadStatisticsSessionRestart):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Added layout test coverage. Removed 'Conversion request sent:'
category in the toString() method because it will always be false.
Sent conversions are purged from the database, so it is not a useful
piece of information to report. Updated naming based on standards
coversations.

  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt:
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt:
  • http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start-expected.txt: Added.
  • http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html: Copied from LayoutTests/http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html.
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt: Added.
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html: Copied from LayoutTests/http/tests/privateClickMeasurement/send-attribution-conversion-request.html.
  • http/tests/privateClickMeasurement/resources/conversionReport.php:
  • http/tests/privateClickMeasurement/resources/getConversionData.php:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt:
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt:
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt:
3:03 PM Changeset in webkit [270135] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Assign top/left to LineBox
https://bugs.webkit.org/show_bug.cgi?id=219218

Reviewed by Antti Koivisto.

It makes the LineBox class more aligned with the spec (https://www.w3.org/TR/css-inline-3/#line-box).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalWidth const):
(WebCore::Layout::LineBox::logicalHeight const):
(WebCore::Layout::LineBox::logicalTopLeft const):
(WebCore::Layout::LineBox::logicalSize const):
(WebCore::Layout::LineBox::setLogicalHeight):

2:37 PM Changeset in webkit [270134] by Devin Rousso
  • 81 edits in trunk/Source/WebInspectorUI

Web Inspector: drop shown/hidden in favor of attached/detached
https://bugs.webkit.org/show_bug.cgi?id=218678

Reviewed by Brian Burg.

  • UserInterface/Views/View.js:

(WI.View.prototype.removeSubview):
Ensure that detached is called before the node is removed from the DOM so that any state
currently held in the DOM can be recorded (e.g. scroll position).

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype.attached):
(WI.ContentBrowserTabContentView.prototype.showNavigationSidebarPanel):
(WI.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
(WI.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange):
(WI.ContentBrowserTabContentView.prototype._detailsSidebarCollapsedStateDidChange):
(WI.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected):
(WI.ContentBrowserTabContentView.prototype.shown): Deleted.
(WI.ContentBrowserTabContentView.prototype.hidden): Deleted.

  • UserInterface/Views/SingleSidebar.js:

(WI.SingleSidebar.prototype.willSetSelectedSidebarPanel):
(WI.SingleSidebar.prototype.didSetSelectedSidebarPanel):
(WI.SingleSidebar.prototype.didSetCollapsed):
Ensure that any state modifications happen before adding/removing the selected sidebar panel
to/from the DOM so that it (and the previously selected sidebar panel) doesn't re-layout
multiple times.

  • UserInterface/Views/ConsoleDrawer.js:

(WI.ConsoleDrawer.prototype.set collapsed):
(WI.ConsoleDrawer.prototype.attached): Added.
(WI.ConsoleDrawer.prototype.shown): Deleted.
Add special logic in collapsed since this is never removed from the DOM.

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView):
(WI.ConsoleTabContentView.prototype.attached): Added.
(WI.ConsoleTabContentView.prototype.detached): Added.
(WI.ConsoleTabContentView.prototype.shown): Deleted.
Remember whether the split console was expanded before the Console Tab is shown and restore
that state after the Console Tab is hidden.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype.get height):
(WI.TimelineOverview.prototype.attached):
(WI.TimelineOverview.prototype.detached):
(WI.TimelineOverview.prototype.recordWasFiltered):
(WI.TimelineOverview.prototype.selectRecord):
(WI.TimelineOverview.prototype.updateLayoutIfNeeded):
(WI.TimelineOverview.prototype.layout):
(WI.TimelineOverview.prototype._instrumentAdded):
(WI.TimelineOverview.prototype._timelineRulerMouseClicked):
(WI.TimelineOverview.prototype._viewModeDidChange):
(WI.TimelineOverview.prototype.get visible): Deleted.
(WI.TimelineOverview.prototype.shown): Deleted.
(WI.TimelineOverview.prototype.hidden): Deleted.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WI.TimelineOverviewGraph):
(WI.TimelineOverviewGraph.prototype.get hidden):
(WI.TimelineOverviewGraph.prototype.set hidden):
(WI.TimelineOverviewGraph.prototype.needsLayout):
(WI.TimelineOverviewGraph.prototype.get visible): Deleted.
(WI.TimelineOverviewGraph.prototype.shown): Deleted.
(WI.TimelineOverviewGraph.prototype.hidden): Deleted.

  • UserInterface/Views/CPUTimelineOverviewGraph.js:

(WI.CPUTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:

(WI.HeapAllocationsTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WI.LayoutTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/MediaTimelineOverviewGraph.js:

(WI.MediaTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/MemoryTimelineOverviewGraph.js:

(WI.MemoryTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/NetworkTimelineOverviewGraph.js:

(WI.NetworkTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WI.RenderingFrameTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/ScriptTimelineOverviewGraph.js:

(WI.ScriptTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/TimelineView.js:

(WI.TimelineView.prototype.needsLayout): Deleted.
Add a special hidden instead of the previously inherited visible so that the existing
logic for editing timeline instruments stays (mostly) the same.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WI.ApplicationCacheFrameContentView):
(WI.ApplicationCacheFrameContentView.prototype.attached):
(WI.ApplicationCacheFrameContentView.prototype.detached):
(WI.ApplicationCacheFrameContentView.prototype.layout):
(WI.ApplicationCacheFrameContentView.prototype.updateStatus):
(WI.ApplicationCacheFrameContentView.prototype.shown): Deleted.
(WI.ApplicationCacheFrameContentView.prototype.closed): Deleted.
(WI.ApplicationCacheFrameContentView.prototype._maybeUpdate): Deleted.
(WI.ApplicationCacheFrameContentView.prototype._markDirty): Deleted.
(WI.ApplicationCacheFrameContentView.prototype._updateStatus): Deleted.
(WI.ApplicationCacheFrameContentView.prototype._update): Deleted.
No need to maintain a separate "dirty" flag based on visibility since attached/detached
are called whenever the view is added/removed to/from the DOM.

  • UserInterface/Debug/DebugContentView.js:

(WI.DebugContentView.prototype.attached): Added.
(WI.DebugContentView.prototype.detached): Added.
(WI.DebugContentView.prototype.shown): Deleted.
(WI.DebugContentView.prototype.hidden): Deleted.

  • UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype.attached): Added.
(WI.AnimationDetailsSidebarPanel.prototype.shown): Deleted.

  • UserInterface/Views/AuditTabContentView.js:

(WI.AuditTabContentView.prototype.attached): Added.
(WI.AuditTabContentView.prototype.detached): Added.
(WI.AuditTabContentView.prototype.shown): Deleted.
(WI.AuditTabContentView.prototype.hidden): Deleted.

  • UserInterface/Views/AuditTestContentView.js:

(WI.AuditTestContentView.prototype.attached): Added.
(WI.AuditTestContentView.prototype.detached): Added.
(WI.AuditTestContentView.prototype.shown): Deleted.
(WI.AuditTestContentView.prototype.hidden): Deleted.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.attached): Added.
(WI.CPUTimelineView.prototype.shown): Deleted.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype.attached): Added.
(WI.CanvasSidebarPanel.prototype.detached): Added.
(WI.CanvasSidebarPanel.prototype.shown): Deleted.
(WI.CanvasSidebarPanel.prototype.hidden): Deleted.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype.attached):
(WI.DOMTreeContentView.prototype.detached):
(WI.DOMTreeContentView.prototype.shown): Deleted.
(WI.DOMTreeContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView.prototype.attached):
(WI.ElementsTabContentView.prototype.shown): Deleted.

  • UserInterface/Views/FontResourceContentView.js:

(WI.FontResourceContentView.prototype.attached):
(WI.FontResourceContentView.prototype.detached):
(WI.FontResourceContentView.prototype.shown): Deleted.
(WI.FontResourceContentView.prototype.hidden): Deleted.

  • UserInterface/Views/HeapSnapshotClusterContentView.js:

(WI.HeapSnapshotClusterContentView.prototype.attached): Added.
(WI.HeapSnapshotClusterContentView.prototype.shown): Deleted.

  • UserInterface/Views/HeapSnapshotContentView.js:

(WI.HeapSnapshotContentView.prototype.attached): Added.
(WI.HeapSnapshotContentView.prototype.detached): Added.
(WI.HeapSnapshotContentView.prototype.shown): Deleted.
(WI.HeapSnapshotContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.attached): Added.
(WI.ImageResourceContentView.prototype.detached): Added.
(WI.ImageResourceContentView.prototype.shown): Deleted.
(WI.ImageResourceContentView.prototype.hidden): Deleted.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WI.LayerTreeDetailsSidebarPanel.prototype.attached):
(WI.LayerTreeDetailsSidebarPanel.prototype.detached): Added.
(WI.LayerTreeDetailsSidebarPanel.prototype.shown): Deleted.
(WI.LayerTreeDetailsSidebarPanel.prototype.hidden): Deleted.

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView.prototype.attached): Added.
(WI.Layers3DContentView.prototype.detached): Added.
(WI.Layers3DContentView.prototype.shown): Deleted.
(WI.Layers3DContentView.prototype.hidden): Deleted.

  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView.prototype.attached): Added.
(WI.LayersTabContentView.prototype.shown): Deleted.

  • UserInterface/Views/LayoutTimelineView.js:

(WI.LayoutTimelineView.prototype.attached): Added.
(WI.LayoutTimelineView.prototype.detached): Added.
(WI.LayoutTimelineView.prototype.shown): Deleted.
(WI.LayoutTimelineView.prototype.hidden): Deleted.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.attached): Added.
(WI.LogContentView.prototype.showCustomFindBanner):
(WI.LogContentView.prototype.get supportsSave):
(WI.LogContentView.prototype.shown): Deleted.

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView.prototype.attached): Added.
(WI.MemoryTimelineView.prototype.shown): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.attached): Added.
(WI.NavigationSidebarPanel.prototype.shown): Deleted.

  • UserInterface/Views/NetworkDetailView.js:

(WI.NetworkDetailView.prototype.attached): Added.
(WI.NetworkDetailView.prototype.shown): Deleted.
(WI.NetworkDetailView.prototype.hidden): Deleted.

  • UserInterface/Views/NetworkResourceDetailView.js:

(WI.NetworkResourceDetailView.prototype.attached): Added.
(WI.NetworkResourceDetailView.prototype.shown): Deleted.

  • UserInterface/Views/OverviewTimelineView.js:

(WI.OverviewTimelineView.prototype.attached): Added.
(WI.OverviewTimelineView.prototype.shown): Deleted.

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype.attached): Added.
(WI.RecordingContentView.prototype.detached): Added.
(WI.RecordingContentView.prototype.shown): Deleted.
(WI.RecordingContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ResourceClusterContentView.js:

(WI.ResourceClusterContentView.prototype.attached): Added.
(WI.ResourceClusterContentView.prototype.shown): Deleted.

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype.detached): Added.
(WI.ResourceHeadersContentView.prototype.hidden): Deleted.

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView.prototype.attached): Added.
(WI.SearchTabContentView.prototype.shown): Deleted.

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView.prototype.attached): Added.
(WI.ShaderProgramContentView.prototype.shown): Deleted.
(WI.ShaderProgramContentView.prototype.hidden): Deleted.

  • UserInterface/Views/SidebarPanel.js:

(WI.SidebarPanel.prototype.attached): Added.
(WI.SidebarPanel.prototype.detached): Added.
(WI.SidebarPanel.prototype.shown): Deleted.
(WI.SidebarPanel.prototype.hidden): Deleted.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.attached): Added.
(WI.SourceCodeTextEditor.prototype.detached): Added.
(WI.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
(WI.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled):
(WI.SourceCodeTextEditor.prototype.shown): Deleted.
(WI.SourceCodeTextEditor.prototype.hidden): Deleted.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.detached):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hidden): Deleted.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.detached):
(WI.SpreadsheetStyleProperty.prototype.hidden): Deleted.

  • UserInterface/Views/StyleDetailsPanel.js:

(WI.StyleDetailsPanel):
(WI.StyleDetailsPanel.prototype.attached):
(WI.StyleDetailsPanel.prototype.markAsNeedsRefresh):
(WI.StyleDetailsPanel.prototype.nodeStylesRefreshed):
(WI.StyleDetailsPanel.prototype._nodeStylesNeedsRefreshed):
(WI.StyleDetailsPanel.prototype.shown): Deleted.
(WI.StyleDetailsPanel.prototype.hidden): Deleted.

  • UserInterface/Views/TabContentView.js:

(WI.TabContentView.prototype.attached): Added.
(WI.TabContentView.prototype.restoreStateFromCookie):
(WI.TabContentView.prototype.shown): Deleted.

  • UserInterface/Views/Table.js:

(WI.Table.prototype.attached): Added.
(WI.Table.prototype.restoreScrollPosition): Deleted.

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.attached): Added.
(WI.TextEditor.prototype.layout):
(WI.TextEditor.prototype._revealPendingPositionIfPossible):
(WI.TextEditor.prototype.get visible): Deleted.
(WI.TextEditor.prototype.shown): Deleted.
(WI.TextEditor.prototype.hidden): Deleted.

  • UserInterface/Views/TimelineDataGrid.js:

(WI.TimelineDataGrid.prototype.detached): Added.
(WI.TimelineDataGrid.prototype.shown): Deleted.
(WI.TimelineDataGrid.prototype.hidden): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype.attached): Added.
(WI.TimelineRecordingContentView.prototype.detached): Added.
(WI.TimelineRecordingContentView.prototype.initialLayout): Added.
(WI.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WI.TimelineRecordingContentView.prototype._update):
(WI.TimelineRecordingContentView.prototype._handleTimelineViewRecordSelected):
(WI.TimelineRecordingContentView.prototype._handleTimelineViewScannerShow):
(WI.TimelineRecordingContentView.prototype._handleTimelineViewScannerHide):
(WI.TimelineRecordingContentView.prototype._handleTimelineViewNeedsEntireSelectedRange):
(WI.TimelineRecordingContentView.prototype.shown): Deleted.
(WI.TimelineRecordingContentView.prototype.hidden): Deleted.

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.prototype.attached): Added.
(WI.TimelineTabContentView.prototype.detached): Added.
(WI.TimelineTabContentView.prototype._inspectorVisibilityChanged):
(WI.TimelineTabContentView.prototype.shown): Deleted.
(WI.TimelineTabContentView.prototype.hidden): Deleted.

  • UserInterface/Views/WebSocketContentView.js:

(WI.WebSocketContentView.prototype.attached): Added.
(WI.WebSocketContentView.prototype.detached): Added.
(WI.WebSocketContentView.prototype.shown): Deleted.
(WI.WebSocketContentView.prototype.hidden): Deleted.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WI.JavaScriptLogViewController.prototype._appendConsoleMessageView):
Move logic inside shown/hidden to attached/detached.
Use isAttached instead of visible.

  • UserInterface/Models/BackForwardEntry.js:

(WI.BackForwardEntry.prototype.prepareToShow):
(WI.BackForwardEntry.prototype.prepareToHide):

  • UserInterface/Views/AuditTestGroupContentView.js:

(WI.AuditTestGroupContentView.prototype.attached): Added.
(WI.AuditTestGroupContentView.prototype.detached): Added.
(WI.AuditTestGroupContentView.prototype._addTest):
(WI.AuditTestGroupContentView.prototype._handleTestGroupTestRemoved):
(WI.AuditTestGroupContentView.prototype.shown): Deleted.
(WI.AuditTestGroupContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel.prototype.shown): Deleted.

  • UserInterface/Views/ClusterContentView.js:

(WI.ClusterContentView.prototype.shown): Deleted.
(WI.ClusterContentView.prototype.hidden): Deleted.

  • UserInterface/Views/CollectionContentView.js:

(WI.CollectionContentView.prototype.addContentViewForItem):
(WI.CollectionContentView.prototype.removeContentViewForItem):
(WI.CollectionContentView.prototype.shown): Deleted.
(WI.CollectionContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ComputedStyleSection.js:

(WI.ComputedStyleSection.prototype.hidden): Deleted.

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.attached): Added.
(WI.ContentBrowser.prototype.shown): Deleted.
(WI.ContentBrowser.prototype.hidden): Deleted.

  • UserInterface/Views/ContentView.js:

(WI.ContentView.prototype.get visible): Deleted.
(WI.ContentView.prototype.set visible): Deleted.
(WI.ContentView.prototype.shown): Deleted.
(WI.ContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ContentViewContainer.js:

(WI.ContentViewContainer.prototype.showContentView):
(WI.ContentViewContainer.prototype.showBackForwardEntryForIndex):
(WI.ContentViewContainer.prototype.replaceContentView):
(WI.ContentViewContainer.prototype.closeContentView):
(WI.ContentViewContainer.prototype.attached): Added.
(WI.ContentViewContainer.prototype.detached): Added.
(WI.ContentViewContainer.prototype._disassociateFromContentView):
(WI.ContentViewContainer.prototype._showEntry):
(WI.ContentViewContainer.prototype.shown): Deleted.
(WI.ContentViewContainer.prototype.hidden): Deleted.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth):
(WI.GeneralStyleDetailsSidebarPanel.prototype.attached): Added.
(WI.GeneralStyleDetailsSidebarPanel.prototype._showPanel):
(WI.GeneralStyleDetailsSidebarPanel.prototype.hidden): Deleted.
(WI.GeneralStyleDetailsSidebarPanel.prototype.shown): Deleted.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WI.HeapAllocationsTimelineView.prototype.showHeapSnapshotList):
(WI.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord):
(WI.HeapAllocationsTimelineView.prototype.showHeapSnapshotDiff):
(WI.HeapAllocationsTimelineView.prototype.shown): Deleted.
(WI.HeapAllocationsTimelineView.prototype.hidden): Deleted.

  • UserInterface/Views/MediaTimelineView.js:

(WI.MediaTimelineView.prototype.shown): Deleted.
(WI.MediaTimelineView.prototype.hidden): Deleted.

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.prototype.shown): Deleted.
(WI.NetworkTabContentView.prototype.hidden): Deleted.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.detached): Added.
(WI.NetworkTableContentView.prototype._hideDetailView):
(WI.NetworkTableContentView.prototype._showDetailView):
(WI.NetworkTableContentView.prototype.shown): Deleted.
(WI.NetworkTableContentView.prototype.hidden): Deleted.

  • UserInterface/Views/NetworkTimelineView.js:

(WI.NetworkTimelineView.prototype.shown): Deleted.
(WI.NetworkTimelineView.prototype.hidden): Deleted.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WI.RenderingFrameTimelineView.prototype.shown): Deleted.
(WI.RenderingFrameTimelineView.prototype.hidden): Deleted.

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype.shown): Deleted.
(WI.ScriptContentView.prototype.hidden): Deleted.

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WI.ScriptDetailsTimelineView.prototype.shown): Deleted.
(WI.ScriptDetailsTimelineView.prototype.hidden): Deleted.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.set collapsed):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.hidden): Deleted.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.hidden): Deleted.

  • UserInterface/Views/TextContentView.js:

(WI.TextContentView.prototype.shown): Deleted.
(WI.TextContentView.prototype.hidden): Deleted.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.shown): Deleted.
(WI.TextResourceContentView.prototype.hidden): Deleted.
Remove shown/hidden calls since that state is propagated to subviews by WI.View logic.

2:29 PM Changeset in webkit [270133] by Lauro Moura
  • 9 edits
    3 copies
    3 moves
    1 delete in trunk/LayoutTests

[GTK][WPE] Rebaseline and gardening

Unreviewed test gardening.

The meter and progress tests had to be rebaselined and split after
r270044.

  • platform/glib/TestExpectations: Add missing entries.
  • platform/glib/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/glib/webaudio/BiquadFilter/tail-time-peaking-expected.txt:

Removed. Uneeded after r269972.

  • platform/glib/webaudio/audioworklet-addModule-failure-expected.txt:

Rebaseline after r270033.

  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: Copied from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-element-expected.txt.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt: Copied from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt: Copied from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-styles-expected.txt.
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Rebaselined after r270023.

  • platform/glib/TestExpectations: Remove entry after test removal.
  • platform/wpe/fast/dom/HTMLMeterElement/meter-element-expected.txt: Renamed from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-element-expected.txt.
  • platform/wpe/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt: Renamed from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt.
  • platform/wpe/fast/dom/HTMLMeterElement/meter-styles-expected.txt: Renamed from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-styles-expected.txt.
  • platform/wpe/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Rebaselined after r270023.

2:04 PM Changeset in webkit [270132] by ggaren@apple.com
  • 5 edits in trunk

Use a Version 1 CFRunLoopSource for faster task dispatch
https://bugs.webkit.org/show_bug.cgi?id=202874

Reviewed by Simon Fraser.

Source/WTF:

This performance bottleneck showed up in IndexedDB. We worked around it
by switching to WorkQueueMessageReceiver. Now it's showing up again
in the GPU Process.

  • wtf/RunLoop.h: Added a mach port. We use this for wake-up.
  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::performWork): Use the standard declaration for a
Version 1 run loop source callback.

(WTF::RunLoop::RunLoop): Use a dummy mach port for wake-ups. The default
wake-up mechanism uses pthread APIs, which cost hundreds of microseconds
per invocation, even on the most modern hardware. In contrast, a mach
message takes about nine microseconds.

(WTF::RunLoop::~RunLoop): Free the mach port.

(WTF::RunLoop::wakeUp): Copy-pasted code to signal a mach port. The
message payload doesn't matter because we're just trying to achieve
a wakeup, kind of like calling a void() function.

Tools:

Fixed a test incompatibiilty.

  • TestWebKitAPI/cocoa/UtilitiesCocoa.mm:

(TestWebKitAPI::Util::spinRunLoop): Be sure to run the runloop until
it runs out of sources to handle.

The SuspendServiceWorkerProcessBasedOnClientProcesses test invokes
spinRunLoop while adding items to the runloop. Under those conditions,
whether a given source will fire or not in a single invocation of
CFRunLoopRunInMode is undefined behavior.

1:27 PM Changeset in webkit [270131] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Revert r270124. Made the test worse.
https://bugs.webkit.org/show_bug.cgi?id=219212

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:21 PM Changeset in webkit [270130] by Simon Fraser
  • 24 edits in trunk/Source

Dispatch main-thread overflow scrolls to the scrolling thread as we do for page scrolls
https://bugs.webkit.org/show_bug.cgi?id=219213

Reviewed by Tim Horton.
Source/WebCore:

Unify the behavior of overflow scrolling and page scrolling for synchronous scrolls.

Somewhat surprisingly, synchronous page scrolls move layers via a dispatch to the scrolling thread in
FrameView::handleWheelEventForScrolling(), but overflow scrolls just did main thread compositing updates
to set the new layer positions.

A future patch will require that the "began" event for a synchronous scroll gets back to the scrolling thread,
so unify these code paths to have overflow scrolls also leverage handleWheelEventAfterMainThread(), via
RenderLayer::handleWheelEventForScrolling().

There's some fallout from this. ThreadedScrollingTree::handleWheelEventAfterMainThread() calls into handleWheelEventWithNode(),
but in this special case that codepath needs to know that we're in a special "post main thread" mode that should

  1. Behave as if the node is latched, i.e. don't propagate to parent nodes, and target the node if if it's scrolled to a the min or max to allow rubberbanding
  2. Scroll even if the node has synchronous scrolling reasons

This mode is represented by the EventTargeting value.

Finally, EventHandler::handleWheelEventInternal() should only clear latching state if the content has called preventDefault()
on the event.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):

  • page/scrolling/ScrollLatchingController.cpp:

(WebCore::ScrollLatchingController::updateAndFetchLatchingStateForFrame):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEventWithNode):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::canHandleWheelEvent const):
(WebCore::ScrollingTreeScrollingNode::handleWheelEvent):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::handleWheelEventForScrolling):

  • rendering/RenderLayer.h:

Source/WebKit:

Unify the behavior of overflow scrolling and page scrolling for synchronous scrolls.

Somewhat surprisingly, synchronous page scrolls move layers via a dispatch to the scrolling thread in
FrameView::handleWheelEventForScrolling(), but overflow scrolls just did main thread compositing updates
to set the new layer positions.

A future patch will require that the "began" event for a synchronous scroll gets back to the scrolling thread,
so unify these code paths to have overflow scrolls also leverage handleWheelEventAfterMainThread(), via
RenderLayer::handleWheelEventForScrolling().

There's some fallout from this. ThreadedScrollingTree::handleWheelEventAfterMainThread() calls into handleWheelEventWithNode(),
but in this special case that codepath needs to know that we're in a special "post main thread" mode that should

  1. Behave as if the node is latched, i.e. don't propagate to parent nodes, and target the node if if it's scrolled to a the min or max to allow rubberbanding
  2. Scroll even if the node has synchronous scrolling reasons

This mode is represented by the EventTargeting value.

Finally, EventHandler::handleWheelEventInternal() should only clear latching state if the content has called preventDefault()
on the event.

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleWheelEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::handleWheelEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h:
12:56 PM Changeset in webkit [270129] by James Darpinian
  • 868 edits
    10 copies
    12 moves
    147 adds
    9 deletes in trunk

Update ANGLE 2020-11-12
https://bugs.webkit.org/show_bug.cgi?id=218877

Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

  • Excessively large list of upstream changes omitted.

LayoutTests:

  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt: Test fixed.
12:54 PM Changeset in webkit [270128] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Integration] Rename LineIteratorLegacy::logicalLeft/right to contentLeft/right
https://bugs.webkit.org/show_bug.cgi?id=219215

Reviewed by Antti Koivisto.

These functions are supposed to return the position where the content starts/ends inside the line box (see text-alignment as an example
where the line's logical left edge is not where content starts).

(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::selectionRect const):
(WebCore::LayoutIntegration::PathLine::contentLogicalLeft const):
(WebCore::LayoutIntegration::PathLine::contentLogicalRight const):
(WebCore::LayoutIntegration::PathLine::logicalLeft const): Deleted.
(WebCore::LayoutIntegration::PathLine::logicalRight const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LineIteratorLegacyPath::contentLogicalLeft const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::contentLogicalRight const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalLeft const): Deleted.
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalRight const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft const):
(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalRight const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalLeft const): Deleted.
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalRight const): Deleted.

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect const):
(WebCore::RenderLineBreak::collectSelectionRects):

12:48 PM Changeset in webkit [270127] by Chris Dumez
  • 9 edits
    3 adds in trunk

AudioWorkletProcessor::process() may get called on non-audio worklet thread and crash
https://bugs.webkit.org/show_bug.cgi?id=219209

Reviewed by Geoffrey Garen.

Source/WebCore:

If the AudioContext is already running when the AudioWorklet becomes ready, then the
AudioWorkletNode::process() was getting called on the CoreAudio rendering thread instead
of the AudioWorklet thread. This was causing us to run the AudioWorkletProcessor's JS
on the wrong thread, which would cause flaky crashes in release and assertion hits in
debug.

To address the issue, I updated AudioWorkletNode::process() to output silence when
it is called on another thread than the AudioWorklet thread. Also, if the AudioContext
is already running when the AudioWorklet becomes ready, we need to restart the
AudioDestination so that we switch the audio rendering from the CoreAudio rendering
thread to the AudioWorklet thread.

Test: http/wpt/webaudio/the-audio-api/the-audioworklet-interface/context-already-rendering.html

  • Modules/webaudio/AudioDestinationNode.h:

(WebCore::AudioDestinationNode::restartRendering):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::isWorkletThread):
(WebCore::AudioWorkletNode::process):

  • Modules/webaudio/AudioWorkletNode.h:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::addAudioParamDescriptors):
(WebCore::BaseAudioContext::workletIsReady):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::uninitialize):
(WebCore::DefaultAudioDestinationNode::startRendering):
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::restartRendering):
(WebCore::DefaultAudioDestinationNode::setChannelCount):

  • Modules/webaudio/DefaultAudioDestinationNode.h:

LayoutTests:

Add layout test coverage.

  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/context-already-rendering-expected.txt: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/context-already-rendering.html: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/basic-processor.js: Added.

(BasicProcessor.prototype.process):
(BasicProcessor):

11:58 AM Changeset in webkit [270126] by Lauro Moura
  • 5 edits
    1 move
    1 add
    1 delete in trunk

canvas: drawImage should not raise IndexSizeError on empty sources
https://bugs.webkit.org/show_bug.cgi?id=219068

Reviewed by Noam Rosenthal.

Source/WebCore:

Per 4.12.5.1.14 Drawing images[1] point 5, if the src rect has one of the dimensions zero, return silently.

[1] https://html.spec.whatwg.org/multipage/canvas.html#drawing-images

Covered by existing tests and fixes WPT offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource flakiness

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage): Return early instead of raising an exception if the rect is empty.

LayoutTests:

Update baselines and tests with new drawImage behavior of not raising IndexSizeError on empty src rects.

  • http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap-expected.txt: Updated with new drawImage behavior
  • http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html: Updated with new drawImage behavior
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Removed.
11:37 AM Changeset in webkit [270125] by Simon Fraser
  • 15 edits in trunk/Source

Rename some wheel-event handling functions for clarity
https://bugs.webkit.org/show_bug.cgi?id=219211

Reviewed by Tim Horton.
Source/WebCore:

There are too many functions called wheelEvent() or handleWheelEvent(), making it hard
to know which phase of handling they apply to. So rename some to handleWheelEventForScrolling(),
which applies to the "default handling" phase after DOM event dispatch.

In addition, make ScrollableArea's handleWheelEventForScrolling() virtual and have FrameView
override it (a future patch will also add an override in RenderLayer).

Rename ScrollingCoordinator::performDefaultWheelEventHandling() to use handleWheelEventForScrolling()
for clarity.

  • page/EventHandler.cpp:

(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::defaultWheelEventHandler):

  • page/FrameView.cpp:

(WebCore::FrameView::handleWheelEventForScrolling):
(WebCore::FrameView::wheelEvent): Deleted.

  • page/FrameView.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::processWheelEventForScrolling):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinator::performDefaultWheelEventHandling): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinatorMac::performDefaultWheelEventHandling): Deleted.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinatorNicosia::performDefaultWheelEventHandling): Deleted.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::handleWheelEventForScrolling):
(WebCore::ScrollableArea::handleWheelEvent): Deleted.

  • platform/ScrollableArea.h:

Source/WebKit:

There are too many functions called wheelEvent() or handleWheelEvent(), making it hard
to know which phase of handling they apply to. So rename some to handleWheelEventForScrolling(),
which applies to the "default handling" phase after DOM event dispatch.

In addition, make ScrollableArea's handleWheelEventForScrolling() virtual and have FrameView
override it (a future patch will also add an override in RenderLayer).

Rename ScrollingCoordinator::performDefaultWheelEventHandling() to use handleWheelEventForScrolling()
for clarity.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleWheelEvent):

11:12 AM Changeset in webkit [270124] by Truitt Savell
  • 2 edits in trunk/LayoutTests

http/tests/security/contentSecurityPolicy/1.1/plugintypes-affects-child.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=219212

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:40 AM Changeset in webkit [270123] by Alan Bujtas
  • 34 edits in trunk

[LFC][Integration] Enable inline-block
https://bugs.webkit.org/show_bug.cgi?id=218889

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

  • platform/ios/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios/fast/css/named-images-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt:
  • platform/ios/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/ios/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/ios/svg/transforms/svg-css-transforms-clip-path-expected.txt:
  • platform/ios/svg/transforms/svg-css-transforms-expected.txt:
  • platform/ios/transforms/3d/general/perspective-units-expected.txt:
  • platform/ios/transforms/svg-vs-css-expected.txt:
  • platform/mac-catalina/fast/css/text-overflow-input-expected.txt:
  • platform/mac-mojave/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/mac/fast/css/named-images-expected.txt:
  • platform/mac/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/mac/fast/text/international/bidi-LDB-2-CSS-expected.txt:

These are progressions where the content is subpixel taller than the computed height for the containing block:

  • platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.txt:
  • platform/mac/svg/transforms/svg-css-transforms-expected.txt:
  • platform/mac/transforms/3d/general/perspective-units-expected.txt:
  • platform/mac/transforms/svg-vs-css-expected.txt:
10:11 AM Changeset in webkit [270122] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed fix for my build fix.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _appendAppLinkOpenActionsForURL:actions:elementInfo:]):
You have to spell DEPRECATED correctly for this to work.

9:56 AM Changeset in webkit [270121] by Ryan Haddad
  • 7 edits in trunk/Source/WebCore

Unreviewed, reverting r270064.

Broke the macCatayst build

Reverted changeset:

"Link against the ANGLE Shared Library"
https://bugs.webkit.org/show_bug.cgi?id=218539
https://trac.webkit.org/changeset/270064

9:54 AM Changeset in webkit [270120] by don.olmstead@sony.com
  • 17 edits
    1 delete in trunk

Remove quota module
https://bugs.webkit.org/show_bug.cgi?id=219206

Reviewed by Anders Carlsson.

.:

Remove the ability to set ENABLE_QUOTA. The Storage Quota API is deprecated and no
WebKit port is enabling it.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/WebCore:

Remove the files and any reference to the quota module.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/quota/DOMWindow+Quota.idl: Removed.
  • Modules/quota/DOMWindowQuota.cpp: Removed.
  • Modules/quota/DOMWindowQuota.h: Removed.
  • Modules/quota/Navigator+StorageQuota.idl: Removed.
  • Modules/quota/NavigatorStorageQuota.cpp: Removed.
  • Modules/quota/NavigatorStorageQuota.h: Removed.
  • Modules/quota/StorageErrorCallback.cpp: Removed.
  • Modules/quota/StorageErrorCallback.h: Removed.
  • Modules/quota/StorageErrorCallback.idl: Removed.
  • Modules/quota/StorageInfo.cpp: Removed.
  • Modules/quota/StorageInfo.h: Removed.
  • Modules/quota/StorageInfo.idl: Removed.
  • Modules/quota/StorageQuota.cpp: Removed.
  • Modules/quota/StorageQuota.h: Removed.
  • Modules/quota/StorageQuota.idl: Removed.
  • Modules/quota/StorageQuotaCallback.h: Removed.
  • Modules/quota/StorageQuotaCallback.idl: Removed.
  • Modules/quota/StorageUsageCallback.h: Removed.
  • Modules/quota/StorageUsageCallback.idl: Removed.
  • Modules/quota/WorkerNavigator+StorageQuota.idl: Removed.
  • Modules/quota/WorkerNavigatorStorageQuota.cpp: Removed.
  • Modules/quota/WorkerNavigatorStorageQuota.h: Removed.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WTF:

Remove the ENABLE_QUOTA macro.

  • wtf/PlatformEnable.h:

Tools:

Remove the option to ENABLE_QUOTA.

  • Scripts/webkitperl/FeatureList.pm:
9:47 AM Changeset in webkit [270119] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Hit test runs in reverse order
https://bugs.webkit.org/show_bug.cgi?id=219205

Reviewed by Zalan Bujtas.

In overlap case the latter boxes should be hit first.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::hitTest):

9:46 AM Changeset in webkit [270118] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the build with recent SDKs.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _appendAppLinkOpenActionsForURL:actions:elementInfo:]):

8:09 AM Changeset in webkit [270117] by youenn@apple.com
  • 7 edits in trunk

Make webrtc/captureCanvas-webrtc-software-h264-*.html tests use codecs in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=219147

Reviewed by Eric Carlson.

Source/WebCore:

Expose internals setting to disable WebRTC codecs in GPU process.
Covered by existing tests.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setWebRTCPlatformCodecsInGPUProcessEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

  • webrtc/captureCanvas-webrtc-software-h264-baseline.html:
  • webrtc/captureCanvas-webrtc-software-h264-high.html:
8:09 AM Changeset in webkit [270116] by svillar@igalia.com
  • 8 edits in trunk

[css-flex] Images as flex items should use the overridingLogicalWidth when defined to compute the logical height
https://bugs.webkit.org/show_bug.cgi?id=219195

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Replaced 15 FAIL by PASS expectations.

  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt:

Source/WebCore:

This is the same fix than the one we did in r270073 but for the other axis. RenderReplaced should use the overridingLogicalWidth
whenever defined instead of the specified logical width to compute the logical height using an intrinsic aspect ratio.
The overriding width is set by flex containers that need to stretch/shrink their items. The current code was not considering
this case and thus, the intrinsic (non-stretched) logical height was used to compute the logical width,
meaning that the stretching set by the flexbox container was ignored.

This patch allows WebKit to pass 15 subtests in already existing aspect ratio flexbox tests from WPT.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalHeight const): Use the overriding logical width if defined in presence of a valid aspect ratio.

7:45 AM Changeset in webkit [270115] by don.olmstead@sony.com
  • 8 edits in trunk/Source/WebCore

Use final in generated callback code
https://bugs.webkit.org/show_bug.cgi?id=219169

Reviewed by Darin Adler.

Generated callbacks descend from ContextDestructionObserver and are final. The
scriptExecutionContext method is not virtual so adding override errors. Remove the virtual
for that case and mark the destructor as final.

Regenerated bindings through run-bindings-tests.

  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/test/JS/JSTestCallbackFunction.h:
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.h:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
  • bindings/scripts/test/JS/JSTestCallbackInterface.h:
  • bindings/scripts/test/JS/JSTestVoidCallbackFunction.h:
6:57 AM Changeset in webkit [270114] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move horizontal space tracking from Line to LineBuilder
https://bugs.webkit.org/show_bug.cgi?id=219185

Reviewed by Antti Koivisto.

Let's move the available horizontal space tracking from Line to LineBuilder. Since the LineBuilder decides what to put on the line
the Line object does not need to know how much available space there is.
This is also in preparation for adding float support on (vertically) stretchy lines where the horizontal available space may vary
depending on how much the inline level boxes stretch the line vertically.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::removeCollapsibleContent):
(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::visuallyCollapsePreWrapOverflowContent):
(WebCore::Layout::Line::moveLogicalLeft):
(WebCore::Layout::Line::moveLogicalRight): Deleted.

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::contentLogicalWidth const):
(WebCore::Layout::Line::horizontalConstraint const): Deleted.
(WebCore::Layout::Line::availableWidth const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::commitFloats):
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):
(WebCore::Layout::LineBuilder::rebuildLine):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::availableWidth const):

6:57 AM Changeset in webkit [270113] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, GTK build warning fix

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp: Mark configurationForRemoteInspector

as override of corresponding parent class method declaration.

6:49 AM Changeset in webkit [270112] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.30.3

WPE WebKit 2.30.3

6:49 AM Changeset in webkit [270111] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.30.3.
6:47 AM Changeset in webkit [270110] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Take alignment offset into account when computing line iterator logicalLeft
https://bugs.webkit.org/show_bug.cgi?id=219197

Reviewed by Zalan Bujtas.

This fixes editing/style/text-indent.html with LFC editing enabled.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::logicalLeft const):

5:32 AM Changeset in webkit [270109] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] BoxGeometry only tracks the reserved horizontal/vertical space for the scrollbars
https://bugs.webkit.org/show_bug.cgi?id=219178

Reviewed by Antti Koivisto.

BoxGeometry does not care whether it's a horizontal or vertical scrollbar. It only cares about the space we need to reserve for them.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

  • layout/layouttree/LayoutBoxGeometry.cpp:

(WebCore::Layout::BoxGeometry::BoxGeometry):
(WebCore::Layout::BoxGeometry::paddingBox const):

  • layout/layouttree/LayoutBoxGeometry.h:

(WebCore::Layout::BoxGeometry::borderBoxHeight const):
(WebCore::Layout::BoxGeometry::borderBoxWidth const):
(WebCore::Layout::BoxGeometry::verticalSpaceForScrollbar const):
(WebCore::Layout::BoxGeometry::horizontalSpaceForScrollbar const):
(WebCore::Layout::BoxGeometry::setVerticalSpaceForScrollbar):
(WebCore::Layout::BoxGeometry::setHorizontalSpaceForScrollbar):
(WebCore::Layout::BoxGeometry::verticalScrollbarWidth const): Deleted.
(WebCore::Layout::BoxGeometry::horizontalScrollbarHeight const): Deleted.
(WebCore::Layout::BoxGeometry::setVerticalScrollbarWidth): Deleted.
(WebCore::Layout::BoxGeometry::setHorizontalScrollbarHeight): Deleted.

5:24 AM Changeset in webkit [270108] by Alan Bujtas
  • 34 edits in trunk

Unreviewed, reverting r270070.

broke an API test

Reverted changeset:

"[LFC][Integration] Enable inline-block"
https://bugs.webkit.org/show_bug.cgi?id=218889
https://trac.webkit.org/changeset/270070

4:25 AM Changeset in webkit [270107] by youenn@apple.com
  • 41 edits
    13 copies
    4 moves
    11 adds
    2 deletes in trunk

Add support for RTCRtpScriptTransform
https://bugs.webkit.org/show_bug.cgi?id=219148

Reviewed by Eric Carlson.

Source/WebCore:

We introduce RTCRtpScriptTransform which processes encoded frames in a worker for either RTCRtpSender or RTCRtpReceiver.
The model follows AudioWorkletNode in the sense that we create a RTCRtpScriptTransform object in main thread that is used with RTCRtp objects.
The RTCRtpScriptTransform takes a name and a worker as parameters to create a RTCRtpScriptTransformer counter part in a worker.
Before that, RTCRtpScriptTransformer constructors are registered in the worker with a specific name.
A message port is shared between RTCRtpScriptTransform and RTCRtpScriptTransformer.

RTCRtpScriptTransform keeps a weak pointer to RTCRtpScriptTransformer so that we keep all ref counting of RTCRtpScriptTransformer in the worker thread.
To make sure RTCRtpScriptTransformer stays alive for long enough, we set a pending activity when RTCRtpScriptTransform is linked to its RTCRtpScriptTransformer.
The pending activity is then removed either at worker closure or RTCRtpScriptTransform being no longer doing processing.

We expose individual compressed frames as RTCEncodedAudioFrame and RTCEncodedVideoFrame.
Accessor is limited to the raw data but additional getters should be added later on.

To implement RTCRtpScriptTransformer, we have to be able to create WritableStream with native sinks.
This is why we introduce WritableStreamSink and WritableStream C++ classes.
Binding between native frames and streams is done through RTCRtpReadableStreamSource and RTCRtpWritableStreamSink.

Test: http/wpt/webrtc/webrtc-transform.html and http/wpt/webrtc/sframe-transform.html.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCEncodedAudioFrame.cpp: Added.

(WebCore::RTCEncodedAudioFrame::RTCEncodedAudioFrame):

  • Modules/mediastream/RTCEncodedAudioFrame.h: Added.

(WebCore::RTCEncodedAudioFrame::create):

  • Modules/mediastream/RTCEncodedAudioFrame.idl: Added.
  • Modules/mediastream/RTCEncodedFrame.h: Added.
  • Modules/mediastream/RTCEncodedFrame.cpp: Added.
  • Modules/mediastream/RTCEncodedVideoFrame.cpp: Added.

(WebCore::RTCEncodedVideoFrame::RTCEncodedVideoFrame):

  • Modules/mediastream/RTCEncodedVideoFrame.h: Added.

(WebCore::RTCEncodedVideoFrame::create):

  • Modules/mediastream/RTCEncodedVideoFrame.idl: Added.
  • Modules/mediastream/RTCRtpReceiver+Transform.idl:
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::setTransform):
(WebCore::RTCRtpReceiver::transform):

  • Modules/mediastream/RTCRtpReceiver.h:
  • Modules/mediastream/RTCRtpReceiverWithTransform.h:

(WebCore::RTCRtpReceiverWithTransform::transform):
(WebCore::RTCRtpReceiverWithTransform::setTransform):

  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::RTCRtpSFrameTransform::initializeTransformer):

  • Modules/mediastream/RTCRtpSFrameTransform.h:

(WebCore::RTCRtpSFrameTransform::isAttached const):

  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransform.cpp: Added.

(WebCore::RTCRtpScriptTransform::create):
(WebCore::RTCRtpScriptTransform::RTCRtpScriptTransform):
(WebCore::RTCRtpScriptTransform::~RTCRtpScriptTransform):
(WebCore::RTCRtpScriptTransform::setTransformer):
(WebCore::RTCRtpScriptTransform::initializeBackendForReceiver):
(WebCore::RTCRtpScriptTransform::initializeBackendForSender):
(WebCore::RTCRtpScriptTransform::willClearBackend):
(WebCore::RTCRtpScriptTransform::initializeTransformer):

  • Modules/mediastream/RTCRtpScriptTransform.h: Added.
  • Modules/mediastream/RTCRtpScriptTransform.idl: Added.
  • Modules/mediastream/RTCRtpScriptTransformProvider.idl: Added.
  • Modules/mediastream/RTCRtpScriptTransformer.cpp: Added.

(WebCore::RTCRtpReadableStreamSource::create):
(WebCore::RTCRtpReadableStreamSource::close):
(WebCore::RTCRtpReadableStreamSource::enqueue):
(WebCore::RTCRtpWritableStreamSink::create):
(WebCore::RTCRtpWritableStreamSink::RTCRtpWritableStreamSink):
(WebCore::RTCRtpWritableStreamSink::write):
(WebCore::RTCRtpScriptTransformer::create):
(WebCore::RTCRtpScriptTransformer::RTCRtpScriptTransformer):
(WebCore::RTCRtpScriptTransformer::~RTCRtpScriptTransformer):
(WebCore::RTCRtpScriptTransformer::start):
(WebCore::RTCRtpScriptTransformer::clear):

  • Modules/mediastream/RTCRtpScriptTransformer.h: Added.

(WebCore::RTCRtpScriptTransformer::setCallback):
(WebCore::RTCRtpScriptTransformer::port):
(WebCore::RTCRtpScriptTransformer::startPendingActivity):
(WebCore::RTCRtpScriptTransformer::activeDOMObjectName const):
(WebCore::RTCRtpScriptTransformer::stopPendingActivity):

  • Modules/mediastream/RTCRtpScriptTransformer.idl: Added.
  • Modules/mediastream/RTCRtpScriptTransformerConstructor.h: Added.
  • Modules/mediastream/RTCRtpScriptTransformerConstructor.idl: Added.
  • Modules/mediastream/RTCRtpSender+Transform.idl:
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::setTransform):
(WebCore::RTCRtpSender::transform):

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSenderWithTransform.h:

(WebCore::RTCRtpSenderWithTransform::transform):
(WebCore::RTCRtpSenderWithTransform::setTransform):

  • Modules/mediastream/RTCRtpTransform.cpp:

(WebCore::RTCRtpTransform::from):
(WebCore::RTCRtpTransform::RTCRtpTransform):
(WebCore::RTCRtpTransform::~RTCRtpTransform):
(WebCore::RTCRtpTransform::isAttached const):
(WebCore::RTCRtpTransform::attachToReceiver):
(WebCore::RTCRtpTransform::attachToSender):
(WebCore::RTCRtpTransform::clearBackend):
(WebCore::RTCRtpTransform::detachFromReceiver):
(WebCore::RTCRtpTransform::detachFromSender):

  • Modules/mediastream/RTCRtpTransform.h:

(WebCore::RTCRtpTransform::internalTransform):

  • Modules/mediastream/RTCRtpTransformBackend.h:
  • Modules/mediastream/RTCRtpTransformableFrame.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp:

(WebCore::LibWebRTCRtpTransformBackend::setInputCallback):
(WebCore::LibWebRTCRtpTransformBackend::Transform):

  • Modules/streams/WritableStreamSink.h: Added.
  • Modules/streams/WritableStreamSink.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::ReadableStreamDefaultController::enqueue):

  • bindings/js/ReadableStreamDefaultController.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/js/WritableStream.cpp: Added.

(WebCore::WritableStream::create):

  • bindings/js/WritableStream.h: Added.

(WebCore::JSWritableStreamWrapperConverter::toWrapped):
(WebCore::WritableStream::WritableStream):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • dom/EventTargetFactory.in:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockRTCRtpTransform.cpp:

(WebCore::MockRTCRtpTransformer::transform):

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::registerRTCRtpScriptTransformer):
(WebCore::DedicatedWorkerGlobalScope::createRTCRtpScriptTransformer):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.cpp:

(WebCore::Worker::addRTCRtpScriptTransformer):
(WebCore::Worker::createRTCRtpScriptTransformer):
(WebCore::Worker::postTaskToWorkerGlobalScope):

  • workers/Worker.h:
  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postTaskToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskToWorkerGlobalScope):

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerObjectProxy.h:

(WebCore::WorkerObjectProxy::postTaskToWorkerObject):

LayoutTests:

  • http/wpt/webrtc/routines.js: Added.

(createConnections):

  • http/wpt/webrtc/script-transform.js: Added.

(MockRTCRtpTransformer):
(MockRTCRtpTransformer.prototype.start):
(MockRTCRtpTransformer.prototype.process):

  • http/wpt/webrtc/sframe-transform-expected.txt: Added.
  • http/wpt/webrtc/sframe-transform.html: Added.
  • http/wpt/webrtc/webrtc-transform-expected.txt: Renamed from LayoutTests/webrtc/webrtc-transform-expected.txt.
  • http/wpt/webrtc/webrtc-transform.html: Renamed from LayoutTests/webrtc/webrtc-transform.html.
  • platform/glib/TestExpectations:
  • webrtc/script-transform.js: Added.

(MockRTCRtpTransformer):
(MockRTCRtpTransformer.prototype.start):

4:19 AM Changeset in webkit [270106] by Philippe Normand
  • 7 edits
    1 copy
    1 move
    1 add in trunk

[MSE] Infinite loop in sample eviction when duration is NaN
https://bugs.webkit.org/show_bug.cgi?id=218228

Reviewed by Darin Adler.

Source/WebCore:

Avoid infinite loop in evictCodedFrames for live streams

When playing live streams the MediaSource DOM duration attribute has no meaning
and would thus be set as +inf. When seeks are triggered to positions prior to
the current playback position the SourceBuffer might attempt to free some space
in order to keep the amount of memory used under control. It proceeds in 2
steps:

  1. Attempt to free space represented by buffered range from media start up until current playback position - 30 seconds.
  2. If step 1 didn't free enough memory, attempt to release memory represented by buffered ranges starting from current playback position + 30 seconds until media duration.

Step 2 here wasn't taking into account the case where MediaSource.duration is
actually invalid, and thus was entering an infinite loop.

Test: media/media-source/live-rewind-seek-and-evict.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::evictCodedFrames):

Source/WTF:

  • wtf/MediaTime.h: New isFinite() method, to check if the MediaTime is valid and represents

a finite value, eg not NaN or Infinite.

LayoutTests:

  • media/media-source/live-rewind-seek-and-evict-expected.txt: Renamed from LayoutTests/platform/glib/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt.
  • media/media-source/live-rewind-seek-and-evict.html: Added.
  • media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt:
  • media/media-source/mock-media-source.js:

(makeAInit):

  • platform/mac/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Copied from LayoutTests/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt.
4:13 AM Changeset in webkit [270105] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.30.3

WebKitGTK 2.30.3

4:13 AM Changeset in webkit [270104] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.3 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.30.3.
3:48 AM Changeset in webkit [270103] by Fujii Hironori
  • 4 edits in trunk

[TextureMapper] Hidden surface removal issue for nested transform-style:perserve-3d in Snow Stack demo
https://bugs.webkit.org/show_bug.cgi?id=218969

Reviewed by Carlos Garcia Campos.

Source/WebCore:

r267711 enabled a depth buffer for a perserve-3d layer, but it
didn't work nicely for nested perserve-3d, for example Snow Stack
demo. It needs a intermediate surface to properly render
interchangeably nested perserve-3d and non perserve-3d layers, for
example transforms/3d/point-mapping/3d-point-mapping-deep.html.
This change supports only simply nested perserve-3d layers such
like Snow Stack demo.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren): Added
Preserves3DScope to call beginPreserves3D and endPreserves3D.

LayoutTests:

  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png: Rebaselined.
3:40 AM Changeset in webkit [270102] by Chris Lord
  • 87 edits
    1 copy
    23 adds in trunk

Enable font functions on OffscreenCanvas for main-thread
https://bugs.webkit.org/show_bug.cgi?id=219088

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update test expectations for OffscreenCanvas text tests and add where
they were missing.

  • web-platform-tests/html/canvas/offscreen/text/*:

Source/WebCore:

Move some font-related code from CanvasRenderingContext2D to
CanvasRenderingContext2DBase so it can be shared by OffscreenCanvas
and enable font functions on the OffscreenCanvas rendering context.
Font setting only works when a Document is available, so this only
enables drawing/measuring of text on the main thread.

No new tests. Rebaselined existing tests.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::measureText):
(WebCore::CanvasRenderingContext2D::fontProxy const):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::font const):
(WebCore::toCanvasTextAlign):
(WebCore::fromCanvasTextAlign):
(WebCore::CanvasRenderingContext2DBase::textAlign const):
(WebCore::CanvasRenderingContext2DBase::setTextAlign):
(WebCore::toCanvasTextBaseline):
(WebCore::fromCanvasTextBaseline):
(WebCore::CanvasRenderingContext2DBase::textBaseline const):
(WebCore::CanvasRenderingContext2DBase::setTextBaseline):
(WebCore::CanvasRenderingContext2DBase::setDirection):
(WebCore::CanvasRenderingContext2DBase::canDrawTextWithParams):
(WebCore::CanvasRenderingContext2DBase::normalizeSpaces):
(WebCore::CanvasRenderingContext2DBase::drawText):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
(WebCore::CanvasRenderingContext2DBase::measureTextInternal):
(WebCore::CanvasRenderingContext2DBase::textOffset):

  • html/canvas/CanvasRenderingContext2DBase.h:

(WebCore::CanvasRenderingContext2DBase::fontProxy):

  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::setFont):
(WebCore::OffscreenCanvasRenderingContext2D::direction const):
(WebCore::OffscreenCanvasRenderingContext2D::fontProxy const):
(WebCore::OffscreenCanvasRenderingContext2D::fillText):
(WebCore::OffscreenCanvasRenderingContext2D::strokeText):
(WebCore::OffscreenCanvasRenderingContext2D::measureText):

  • html/canvas/OffscreenCanvasRenderingContext2D.h:
  • html/canvas/OffscreenCanvasRenderingContext2D.idl:

LayoutTests:

Enable running OffscreenCanvas text tests.

  • platform/glib/TestExpectations:
3:05 AM Changeset in webkit [270101] by youenn@apple.com
  • 18 edits
    3 adds in trunk

Add support for RTCPeerConnection.onicecandidateerror event
https://bugs.webkit.org/show_bug.cgi?id=169644

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Expose RTCPeerConnection.onicecandidateerror and use it for wrong STUN/TURN server URLs.
For that matter, add RTCPeerConnectionIceErrorEvent as per spec with a slight change to the init directory to keep the same terminology between event and init dictionary.

Covered by updated webrtc/stun-server-filtering.html test.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::iceServersFromConfiguration):
(WebCore::iceServersFromConfiguration): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp: Added.

(WebCore::RTCPeerConnectionIceErrorEvent::create):
(WebCore::RTCPeerConnectionIceErrorEvent::RTCPeerConnectionIceErrorEvent):
(WebCore::RTCPeerConnectionIceErrorEvent::eventInterface const):

  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.h: Added.
  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • dom/EventNames.in:

LayoutTests:

  • webrtc/rtcpeerconnection-error-messages-expected.txt:
  • webrtc/stun-server-filtering.html:
2:47 AM Changeset in webkit [270100] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r270021 - Protect WebSocketChannel before calling client methods
https://bugs.webkit.org/show_bug.cgi?id=216791

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-11-19
Reviewed by Youenn Fablet.

Ensure we keep a reference to the WebSocketChannel before calling client methods that might close the channel.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::close):
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::resume):

2:40 AM Changeset in webkit [270099] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.30

Merge r269837 - [TextureMapper] The edges of blur backdrop-filter look gradient tranparent
https://bugs.webkit.org/show_bug.cgi?id=218645
<rdar://problem/71356999>

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The blur backdrop-filter needs a larger input image than an output
image. However, it's not easy to get a larger input image in the
edges of the windows. Cocoa port is doing extrapolation by
duplicating edges pixels of the input image which has the same
size with the output image (Bug 146215). Take the same approach.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions): Don't
inflate the local bounding rect by the outsets for backdrop
layers.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(sampleColorAtRadius): Don't clamp 'coord'.

LayoutTests:

  • platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png: Added.
2:40 AM Changeset in webkit [270098] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.30

Merge r269772 - [GTK][WPE] CSS backdrop overlay corners are not rounded on results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=215445

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Pass the backdropFiltersRect from CoordinatedGraphicsLayer through Nicosia to TextureMapperLayer. The
latter will use this value to clip when painting the backdrop layer.

Based on a patch created by Carlos Garcia Campos <cgarcia@igalia.com>.

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::setBackdropFiltersRect):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setBackdropFilters):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

Source/WebKit:

Pass the backdropFiltersRect from the state to TextureMapperLayer.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateSceneState):

LayoutTests:

Update expectations for passing tests.

  • platform/glib/TestExpectations:
2:40 AM Changeset in webkit [270097] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Merge r269599 - [TextureMapper] backdrop-filter should use the identity transform to render the root layer
https://bugs.webkit.org/show_bug.cgi?id=218699

Reviewed by Don Olmstead.

Source/WebCore:

Even thouth CSS reflections mirror the content, backdrop-filter in
the reflection doesn't. It sees through the background.
css3/filters/backdrop/backdrop-filter-with-reflection.html is the
test case.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
Removed TextureMapperPaintOptions::isReplica.

LayoutTests:

  • platform/glib/TestExpectations: Unmarked

css3/filters/backdrop/{backdrop-filter-with-reflection-add-backdrop.html,
backdrop-filter-with-reflection-value-change.html,backdrop-filter-with-reflection.html}

2:39 AM Changeset in webkit [270096] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.30

Merge r269588 - [TextureMapper] The top and left sides of drop-shadow are clipped
https://bugs.webkit.org/show_bug.cgi?id=218647

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::computeOverlapRegions incorrectly calculated
the local bounding rect for top and left of outsets.

The drop-shadow was incorrectly blended with the content.

Test: compositing/filters/drop-shadow.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions): Stopped
using std::max for the left and top of outsets. Stopped taking the
unite with unfilteredTargetRect because outsets are always
positive.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

Fixed sourceOver().

LayoutTests:

  • compositing/filters/drop-shadow-expected.html: Added.
  • compositing/filters/drop-shadow.html: Added.
2:39 AM Changeset in webkit [270095] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.30

Merge r269570 - TextureMapperLayer::computeOverlapRegions: Accumulate nested replica transform matrices recursively
https://bugs.webkit.org/show_bug.cgi?id=218364

Reviewed by Don Olmstead.

Source/WebCore:

Transformed nested reflection layers were wrongly clipped because
computeOverlapRegions applied replica transform matrices
incorrectly.

Test: compositing/reflections/nested-reflection-opacity2.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::resolveOverlaps):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • compositing/reflections/nested-reflection-opacity2-expected.html: Added.
  • compositing/reflections/nested-reflection-opacity2.html: Added.
2:39 AM Changeset in webkit [270094] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269569 - [GraphicsLayerTextureMapper] reflection masks aren't applied
https://bugs.webkit.org/show_bug.cgi?id=218429

Reviewed by Don Olmstead.

The backing store of the mask layer of replica layers aren't
updated at all since r178111.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
Use updateBackingStoreIncludingSubLayers for the replica layer to
update backing stores recursively instead of updating only one
layer by using updateBackingStoreIfNeeded.

2:39 AM Changeset in webkit [270093] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.30

Merge r269328 - [TextureMapper] Crashed in TextureMapperLayer::paintUsingOverlapRegions
https://bugs.webkit.org/show_bug.cgi?id=214817
<rdar://problem/66489090>

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::paintUsingOverlapRegions has the expression
overlapRegion.bounds().size().area() which crashes for a very
large layer.

computeOverlapRegions returned very large overlap and non-overlap
regions without taking the clip bounds into account.

Change computeOverlapRegions to return clipped regions.
paintUsingOverlapRegions no longer needs to clip the returned
regions.

Test: compositing/tiling/huge-layer-with-opacity.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • compositing/tiling/huge-layer-with-opacity-expected.html: Added.
  • compositing/tiling/huge-layer-with-opacity.html: Added.
2:38 AM Changeset in webkit [270092] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.30

Merge r269204 - [TextureMapper] Replica layers don't blend correctly because computeOverlapRegions doesn't take TextureMapperPaintOptions::transform into account
https://bugs.webkit.org/show_bug.cgi?id=218307

Reviewed by Don Olmstead.

Source/WebCore:

Blending in replica layers didn't work as expected because
computeOverlapRegions didn't take the transform of
TextureMapperPaintOptions into account. Rendering replica layers
are achieved by using the transform.

TextureMapperLayer::paintWithIntermediateSurface also should take
the transform. commitSurface no longer needs to transform by it.

Test: compositing/reflections/opacity-in-reflection.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • compositing/reflections/opacity-in-reflection-expected.html: Added.
  • compositing/reflections/opacity-in-reflection.html: Added.
2:38 AM Changeset in webkit [270091] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269116 - TextureMapperLayer::paintWithIntermediateSurface: Reduce BitmapTextures by unifying replicaSurface and mainSurface
https://bugs.webkit.org/show_bug.cgi?id=217943

Reviewed by Don Olmstead.

TextureMapperLayer::paintWithIntermediateSurface was using two
BitmapTextures for the main layer and replica layer. But, a single
BitmapTexture suffices. Create a BitmapTexture and render both
layers onto it.

No new tests, no behavior changes.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):

  • platform/graphics/texmap/TextureMapperLayer.h:
2:38 AM Changeset in webkit [270090] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.30

Merge r269072 - [TextureMapper][GTK] Test compositing/clipping/border-radius-stacking-context-clip.html is failing
https://bugs.webkit.org/show_bug.cgi?id=214868

Reviewed by Carlos Garcia Campos.

Source/WebCore:

If a replica layer has m_state.pos, m_layerTransforms.combined
should be translated by them.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeTransformsRecursive):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unmarked compositing/clipping/border-radius-stacking-context-clip.html.
  • platform/gtk/compositing/reflections/nested-reflection-transformed-expected.png: Updated.
  • platform/gtk/compositing/reflections/nested-reflection-transformed2-expected.png: Updated.
  • platform/gtk/compositing/reflections/reflection-positioning2-expected.png: Updated.
2:37 AM Changeset in webkit [270089] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269040 - [WPE] REGRESSION(r268992) Redefinition of min() inside TextureMapperShaderProgram for GLES > 3.0
https://bugs.webkit.org/show_bug.cgi?id=218231

Reviewed by Sergio Villar Senin.

Remove the definition of the min() function and replace its usage with an if. This works for
every GLSL version.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):
(WebCore::STRINGIFY): Deleted.

2:37 AM Changeset in webkit [270088] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r268992 - [TextureMapper] min(genIType) isn't supported for GLSL ES < 3.0
https://bugs.webkit.org/show_bug.cgi?id=218164

Reviewed by Don Olmstead.

Nothing is drawn in AC mode of WinCairo port since r268923.
r268923 added a shader code of using min of int type which is
supported since GLSL ES 3.0.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp: Added fragmentTemplateES to define int type of min.

(WebCore::TextureMapperShaderProgram::create):

2:37 AM Changeset in webkit [270087] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269765 - [GTK][WPE] FilterInfo must cleared when reusing BitmapTextureGL
https://bugs.webkit.org/show_bug.cgi?id=218854

Reviewed by Carlos Garcia Campos.

Clear the FilterInfo attribute when reusing a BitmapTextureGL.

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::didReset):

2:36 AM Changeset in webkit [270086] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269179 - [GTK] Direct composited images may not be rendered after a window resize
https://bugs.webkit.org/show_bug.cgi?id=218292

Reviewed by Carlos Garcia Campos.

Ensure that valid buffers passed for ImageBackings are not destroyed until the
CoordinatedGraphicsScene consumes them.

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp:

(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):

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

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):

2:36 AM Changeset in webkit [270085] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.30

Merge r268923 - [GTK][WPE] Implement antialiased rounded rectangle clipping in TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=174457

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Implement rounded rectangle clipping in TextureMapperGL, supporting up to 10 simultaneous
rounded rectangle clips. TextureMapper::beginClip() now receives a rounded rectangle, and
it applies the appropriate clipping method as required.

The rounded rectangle clip implementation uses the fragment shader to calculate whether
each pixel is inside the defined rounded rectangles, and paints or skips it as needed.

  • platform/graphics/texmap/ClipStack.cpp:

(WebCore::ClipStack::addRoundedRect):

  • platform/graphics/texmap/ClipStack.h:

(WebCore::ClipStack::State::State):
(WebCore::ClipStack::roundedRectComponents const):
(WebCore::ClipStack::roundedRectInverseTransformComponents const):
(WebCore::ClipStack::roundedRectCount const):
(WebCore::ClipStack::isRoundedRectClipEnabled const):
(WebCore::ClipStack::isRoundedRectClipAllowed const):

  • platform/graphics/texmap/TextureMapper.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::prepareRoundedRectClip):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::beginRoundedRectClip):
(WebCore::TextureMapperGL::beginClip):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:

Source/WebKit:

Use the new TextureMapper::beginClip() method that receives a FloatRoundedRect.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):

LayoutTests:

Update expectations for passing test.

  • platform/gtk/TestExpectations:
2:36 AM Changeset in webkit [270084] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269909 - REGRESSION(r269579) [WPE] Many tests with scrolling flaky after this revision
https://bugs.webkit.org/show_bug.cgi?id=218859

Reviewed by Simon Fraser.

Set scrolling node ID correctly on CoordinatedGraphicsLayer.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setScrollingNodeID):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
2:35 AM Changeset in webkit [270083] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269579 - [GTK][WPE] Scrolling with mouse wheel doesn't work on iframes with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=214179

Reviewed by Žan Doberšek.

Implement ScrollingTree::scrollingNodeForPoint in
ScrollingTreeNicosia. This fixes overflow and iframe scrolling when
async scrolling is enabled on WPE and GTK ports.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::collectDescendantLayersAtPoint):
(WebCore::ScrollingTreeNicosia::scrollingNodeForPoint):

  • page/scrolling/nicosia/ScrollingTreeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::accessPending):

2:16 AM Changeset in webkit [270082] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Merge r269955 - [WPE][GTK] Update Outlook user agent quirk
https://bugs.webkit.org/show_bug.cgi?id=219049

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-18
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Users report that our user agent quirk for Outlook no longer works. Problem is
outlook.live.com has moved to outlook.office.com. Thanks to Adrian Vovk for rebuilding
WebKit to confirm that this patch fixes the issue.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

2:16 AM Changeset in webkit [270081] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r269620 - [GTK] Crash in WebKit::DropTarget::drop
https://bugs.webkit.org/show_bug.cgi?id=217482

Reviewed by Michael Catanzaro.

If we don't have selection data when drop is called, just return early to let leave continue. Also change
accept() to receive the drop context and position to be set after leaving any previous operation.

  • UIProcess/API/gtk/DropTarget.h:
  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):
(WebKit::DropTarget::drop):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):

2:15 AM WebKitGTK/2.30.x edited by Carlos Garcia Campos
(diff)
2:15 AM Changeset in webkit [270080] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r269505 - [GTK] Application cannot override drag&drop callbacks
https://bugs.webkit.org/show_bug.cgi?id=218562

Patch by Milan Crha <mcrha@redhat.com> on 2020-11-06
Reviewed by Michael Catanzaro.

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget): Use g_signal_connect_after(), thus
any descendants can override the callbacks.
(WebKit::DropTarget::didPerformAction): Always call gdk_drag_status(),
to have gtk+ notified about drag progress.

2:15 AM Changeset in webkit [270079] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r269504 - [GTK] dlopen libWPEBackend-fdo-1.0.so.1 instead of libWPEBackend-fdo-1.0.so
https://bugs.webkit.org/show_bug.cgi?id=218584

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-06
Reviewed by Carlos Garcia Campos.

wpe_loader_init() tries to dlopen a development symlink, but these will not usually be
installed. It only works in the GNOME flatpak runtime because we don't use devel split
rules in the GNOME runtime, but we really ought to, and freedesktop-sdk already does, so
it's going to break upstream too once that gets implemented. It's easier for everyone if
we tackle this now. Since all major distros except Arch Linux use devel split, this patch
is really required for almost every distro to use WPE renderer.

The downside is that this makes it harder to update the wpebackend-fdo library version,
since minor changes there will now unnecessarily break WebKit. This is not good, but it's
better than forcing distros to apply this same patch downstream. I considered trying a bunch
of different library versions in a loop in order to maximize the chance of success in case
the wpebackend-fdo library version increases in the future, but it's probably nicer to just
be careful about not changing its library version until we find a better solution for this.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

2:15 AM Changeset in webkit [270078] by Carlos Garcia Campos
  • 9 edits
    4 adds
    2 deletes in releases/WebKitGTK/webkit-2.30

Merge r269436 - Consider blocking ports 5060 and 5061
https://bugs.webkit.org/show_bug.cgi?id=218557
<rdar://problem/71031479>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.any.html: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.any.js: Added.

(BLOCKED_PORTS_LIST.map):

  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker.html: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.html: Removed.
  • web-platform-tests/tools/wptserve/wptserve/utils.py:

(is_bad_port):

  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

  • wtf/URL.cpp:

(WTF::portAllowed):

LayoutTests:

2:14 AM Changeset in webkit [270077] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30

Merge r269586 - Enable llint asm on aarch64 when USE(64KB_PAGE_BLOCK) is enabled
https://bugs.webkit.org/show_bug.cgi?id=218613

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-09
Reviewed by Carlos Alberto Lopez Perez.

Normally we fall back to cloop when JIT is not supported. But on aarch64, llint asm is well-
supported, so it is safe to use that here. This will only happen on aarch64, and only when
USE(64KB_PAGE_BLOCK) is enabled, which should probably only be used by RHEL and SUSE.
Everyone else should get the JIT.

  • Source/cmake/WebKitFeatures.cmake:
2:14 AM Changeset in webkit [270076] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Merge r269396 - Add new build option USE(64KB_PAGE_BLOCK)
https://bugs.webkit.org/show_bug.cgi?id=217989

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-04
Reviewed by Yusuke Suzuki.

.:

Why do we need this option? Because JSC and bmalloc both want to know the userspace page
size at compile time, which is impossible on Linux because it's a runtime setting. We
cannot test the system page size at build time in hopes that it will be the same on the
target system, because (a) cross compiling wouldn't work, and (b) the build system could
use a different page size than the target system (which will be true for Fedora aarch64,
because Fedora is built using RHEL), so the best we can do is guess based on the target CPU
architecture. In practice, guessing works for all architectures except aarch64 (unless
unusual page sizes are used), but it fails for aarch64 because distros are split between
using 4 KB and 64 KB pages there. Most distros (including Fedora) use 4 KB, but RHEL uses
64 KB. SUSE actually supports both. Since there is no way to guess correctly, the best we
can do is provide an option for it. You should probably only use this if building for
aarch64. Otherwise, known CPUs except PowerPC will use 4 KB, while PowerPC and unknown CPUs
will use 64 KB (see wtf/PageBlock.h). aarch64 will continue to default to 4 KB because this
is a much better default on systems where it doesn't crash.

Having one flag will help avoid mistakes. E.g. both RHEL and SUSE were manually passing
-DENABLE_JIT=OFF and -DUSE_SYSTEM_MALLOC=ON, but we missed -DENABLE_C_LOOP=ON and
-DENABLE_SAMPLING_PROFILER=OFF, so wound up running with both JIT and cloop disabled, a
configuration not otherwise used on Linux (and not supported by GTK or WPE ports). It will
be easier to not mess up if we only have to pass one special build option. This will also
allow us to stop patching PageBlock.h downstream, because I don't like downstream patches
that we have to keep forever.

  • Source/cmake/WebKitFeatures.cmake:

Source/WTF:

  • wtf/PageBlock.h:
2:14 AM Changeset in webkit [270075] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r269948 - Unreviewed. Fix the build with GCC 10

Add a temporary workaround for a GCC 10 bug.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

1:40 AM Changeset in webkit [270074] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Migrate WebKitTestServer to libsoup 2.48 API
https://bugs.webkit.org/show_bug.cgi?id=219160

Patch by Frederic Wang <fwang@igalia.com> on 2020-11-20
Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::WebKitTestServer): SOUP_SERVER_INTERFACE and soup_server_get_port are
deprecated. The libsoup doc recommends to use soup_server_listen* and soup_server_get_uris
instead. Existing code uses 127.0.0.1 (https or http) which corresponds to calling
soup_server_listen_local with thIPV4_ONLY (and HTTPS or HTTP) option.

1:33 AM Changeset in webkit [270073] by svillar@igalia.com
  • 8 edits in trunk

[css-flex] Images as flex items should use the overridingLogicalHeight when defined to compute the logical width
https://bugs.webkit.org/show_bug.cgi?id=218975

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Replaced 19 FAIL by PASS expectations.

  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt:

Source/WebCore:

RenderReplaced should use the overridingLogicalHeight whenever defined instead of the specified logical height to compute the logical
width using an intrinsic aspect ratio. The overriding height is set by flex containers that need to stretch/shrink their items.
The current code was not considering this case and thus, the intrinsic (non-stretched) logical height was used to compute the logical width,
meaning that the stretching set by the flexbox container was ignored.

Note that it isn't enough to check that there is an overriding height, we must also check that the replaced element has an intrinsic size.
Replaced elements with intrinsic ratios but without intrinsic sizes are handled in a separate code path (it's actually undefined behaviour).
That's why it isn't enough to verify that the element has an aspect ratio, because most SVG graphics actually have defined intrinsic ratios
but not intrinsic sizes.

This allows us to pass an additional 19 subtests in 5 flexbox WPT tests.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalWidth const): Use the overriding logical height if defined in presence of a valid aspect ratio.

Nov 19, 2020:

11:33 PM Changeset in webkit [270072] by Wenson Hsieh
  • 4 edits in trunk

REGRESSION (r259151): The "Convert Text to Traditional Chinese" services menu action is broken
https://bugs.webkit.org/show_bug.cgi?id=219190
<rdar://problem/71438389>

Reviewed by Tim Horton.

Source/WebKit:

Some system services, such as "Convert Text to (Traditional|Simplified) Chinese", use `-[NSServicesMenuRequestor
readSelectionFromPasteboard:]` to insert the contents of the given pasteboard into the current selection. After
the changes in r259151, this requires the UI process to explicitly grant access to the contents of the given
pasteboard, on behalf of the web content process.

Fix the bug by adding the missing call to grantAccessToCurrentPasteboardData. This is only called from API in
the UI process, so it cannot be abused by a compromised web content process to grab the contents of
NSPasteboard.

Test: PasteHTML.ReadSelectionFromPasteboard

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::readSelectionFromPasteboard):

Tools:

Add an API test to exercise -readSelectionFromPasteboard:.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:

(TEST):

11:26 PM Changeset in webkit [270071] by Fujii Hironori
  • 13 edits in trunk/Source

[TextureMapper] Remove m_textureMapper from TextureMapperLayer
https://bugs.webkit.org/show_bug.cgi?id=219191

Reviewed by Carlos Garcia Campos.

Source/WebCore:

TextureMapperLayer had m_textureMapper to get the TextureMapper
pointer. However, it was used only by the root layer. The child
layers needed to traverse up to the root layer to get the
TextureMapper pointer. It's more efficient to pass TextureMapper
reference as an argument.

No behavior changes.

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/graphics/texmap/BitmapTexture.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::flushCompositingState):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paint):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperTile.cpp:

(WebCore::TextureMapperTile::updateContents):

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::ensureRootLayer):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::compositeLayersToContext):
(WebKit::LayerTreeHost::flushPendingLayerChanges):
(WebKit::LayerTreeHost::LayerTreeHost):

Source/WebKitLegacy/win:

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::compositeLayersToContext):
(AcceleratedCompositingContext::flushPendingLayerChanges):

9:59 PM Changeset in webkit [270070] by Alan Bujtas
  • 34 edits in trunk

[LFC][Integration] Enable inline-block
https://bugs.webkit.org/show_bug.cgi?id=218889

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

  • platform/ios/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios/fast/css/named-images-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt:
  • platform/ios/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/ios/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/ios/svg/transforms/svg-css-transforms-clip-path-expected.txt:
  • platform/ios/svg/transforms/svg-css-transforms-expected.txt:
  • platform/ios/transforms/3d/general/perspective-units-expected.txt:
  • platform/ios/transforms/svg-vs-css-expected.txt:
  • platform/mac-catalina/fast/css/text-overflow-input-expected.txt:
  • platform/mac-mojave/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/mac/fast/css/named-images-expected.txt:
  • platform/mac/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/mac/fast/text/international/bidi-LDB-2-CSS-expected.txt:

These are progressions where the content is subpixel taller than the computed height for the containing block:

  • platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.txt:
  • platform/mac/svg/transforms/svg-css-transforms-expected.txt:
  • platform/mac/transforms/3d/general/perspective-units-expected.txt:
  • platform/mac/transforms/svg-vs-css-expected.txt:
9:56 PM Changeset in webkit [270069] by commit-queue@webkit.org
  • 32 edits in trunk

Code formatting: change instances of "@synthesize a=b" to "@synthesize a = b".
https://bugs.webkit.org/show_bug.cgi?id=219094

Patch by Hoa Dinh <dvh@apple.com> on 2020-11-19
Reviewed by Wenson Hsieh.

There was a mix of "@synthesize a=b" and "@synthesize a = b" in the codebase.
Most of the instances are "@synthesize a = b", with spaces around the equal sign.
With https://bugs.webkit.org/show_bug.cgi?id=219092, we're changing the behavior of
the code style checker to require spaces around the equal sign.
The change replace all the instances of "@synthesize a=b" with "@synthesize a = b".

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
  • platform/graphics/cocoa/WebGPULayer.mm:
  • platform/mac/VideoFullscreenInterfaceMac.mm:
  • platform/mac/WebPlaybackControlsManager.mm:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

Source/WebKit:

  • NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm:
  • UIProcess/API/Cocoa/WKPreviewActionItem.mm:
  • UIProcess/API/Cocoa/_WKThumbnailView.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/QuickLookThumbnailLoader.mm:
  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:
  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
  • UIProcess/mac/ViewGestureControllerMac.mm:
  • UIProcess/mac/WKFullScreenWindowController.mm:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

Source/WebKitLegacy/mac:

  • WebView/WebFullScreenController.mm:
  • WebView/WebView.mm:

Tools:

  • DumpRenderTree/DumpRenderTreeFileDraggingSource.m:
  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:
  • MiniBrowser/mac/BrowserWindowController.m:
  • TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:
  • TestWebKitAPI/Tests/WebKit/mac/CustomBundleObject.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.mm:
  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
  • TestWebKitAPI/mac/TestDraggingInfo.mm:
  • TestWebKitAPI/mac/TestFontOptions.mm:
9:48 PM Changeset in webkit [270068] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

check-webkit-style: requires spaces around the equal sign for Objective-C @synthesize.
https://bugs.webkit.org/show_bug.cgi?id=219092

Patch by Hoa Dinh <dvh@apple.com> on 2020-11-19
Reviewed by Wenson Hsieh.

Teach the Objective-C style checker to prefer @synthesize a = b over @synthesize a=b. As a followup,
<webkit.org/b/219094> will apply this style rule in existing @synthesize statements in WebKit.

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

(check_spacing):

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

(CppStyleTest):

8:32 PM Changeset in webkit [270067] by commit-queue@webkit.org
  • 19 edits
    2 copies
    1 add in trunk/Source

Turn on ENABLE_WEBXR for Cocoa
https://bugs.webkit.org/show_bug.cgi?id=219171

Patch by Ada Chan <adachan@apple.com> on 2020-11-19
Reviewed by Tim Horton.

Source/WebCore:

  • Modules/webxr/WebXRRigidTransform.h:
  • Modules/webxr/WebXRSystem.h:
  • Modules/webxr/WebXRView.h:
  • Modules/webxr/XREye.idl:
  • Modules/webxr/XRHandedness.idl:
  • Modules/webxr/XRReferenceSpaceType.idl:
  • Modules/webxr/XRSessionMode.idl:
  • Modules/webxr/XRTargetRayMode.idl:
  • Modules/webxr/XRVisibilityState.idl:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCallbackData.h:
  • dom/ActiveDOMCallback.h:
  • platform/xr/cocoa/PlatformXRCocoa.cpp: Copied from Source/WebCore/Modules/webxr/XRTargetRayMode.idl.
  • platform/xr/cocoa/PlatformXRCocoa.h: Copied from Source/WebCore/Modules/webxr/XREye.idl.
  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::Impl::queue const):
(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const):
(PlatformXR::Instance::Impl::Impl):
(PlatformXR::Instance::Impl::~Impl):
(PlatformXR::Instance::enumerateImmersiveXRDevices):

  • platform/xr/openxr/PlatformXROpenXR.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformUse.h:
6:48 PM Changeset in webkit [270066] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable private instance and static fields
https://bugs.webkit.org/show_bug.cgi?id=219179

Reviewed by Mark Lam.

Enable private instance and static fields. We are not supporting private methods and static private methods yet.

  • runtime/OptionsList.h:
5:41 PM Changeset in webkit [270065] by Aditya Keerthi
  • 11 edits
    11 adds in trunk

[iOS][FCR] Add new look for progress bars
https://bugs.webkit.org/show_bug.cgi?id=218864
<rdar://problem/71334958>

Reviewed by Darin Adler and Wenson Hsieh.

Source/WebCore:

Tests: fast/forms/ios/form-control-refresh/progress/filled-appearance.html

fast/forms/ios/form-control-refresh/progress/indeterminate-appearance.html
fast/forms/ios/form-control-refresh/progress/rtl-appearance.html
fast/forms/ios/form-control-refresh/progress/style-height.html
fast/forms/ios/form-control-refresh/progress/style-width.html

  • platform/graphics/FloatRoundedRect.h:

(WebCore::FloatRoundedRect::Radii::Radii):

Added a new initializer to be used when all radii have the same value
but the horizontal and vertical components of an individual radius are
not equal.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::animationRepeatIntervalForProgressBar const):
(WebCore::RenderTheme::animationDurationForProgressBar const):

  • rendering/RenderTheme.h: Updated methods to take const parameter.
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::animationRepeatIntervalForProgressBar const):
(WebCore::RenderThemeAdwaita::animationDurationForProgressBar const):

  • rendering/RenderThemeAdwaita.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintProgressBar):
(WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar const):
(WebCore::RenderThemeIOS::paintProgressBarFCR):

Updated appearance of determinate progress bars to match UIKit.

Added an animated indeterminate progress bar, by implementing the
animationRepeatIntervalForProgressBar method in RenderThemeIOS. This
matches RenderThemeMac. On macOS, the animation start time and the
current time are forwarded to CoreUI for drawing. However, on iOS, we
use this information to paint the animated progress bar ourselves.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: Renamed constant for accuracy.

(WebCore::RenderThemeMac::animationRepeatIntervalForProgressBar const):

LayoutTests:

Added tests to verify different states and appearances of native progress bars.

  • fast/forms/ios/form-control-refresh/progress/filled-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/progress/filled-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/progress/indeterminate-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/progress/indeterminate-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/progress/rtl-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/progress/rtl-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/progress/style-height-expected.html: Added.
  • fast/forms/ios/form-control-refresh/progress/style-height.html: Added.
  • fast/forms/ios/form-control-refresh/progress/style-width-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/progress/style-width.html: Added.
5:40 PM Changeset in webkit [270064] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

Link against the ANGLE Shared Library
https://bugs.webkit.org/show_bug.cgi?id=218539
<rdar://problem/69062211>

Reviewed by Tim Horton.

Weak link against libANGLE-shared.dylib.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • Sources.txt: Stop compiling ANGLEWebKitBridge.
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::isANGLEAvailable): Add a helper to check if ANGLE loaded properly.
(WebCore::GraphicsContextGLOpenGL::create):

5:23 PM Changeset in webkit [270063] by James Darpinian
  • 2 edits
    1 add
    1 delete in trunk

Improve update-angle script and move to Tools/Scripts
https://bugs.webkit.org/show_bug.cgi?id=218831

Reviewed by Kenneth Russell.

update-angle fetches changes from upstream ANGLE into Source/ThirdParty/ANGLE,
updates WebKit's build files and helps merge WebKit's local changes.

Source/ThirdParty/ANGLE:

  • Moved to Tools/Scripts so that it doesn't overwrite itself during the update process.
  • Reversed direction of rebase. Before the script rebased ANGLE on WebKit; now it rebases WebKit's ANGLE changes on upstream ANGLE master. This makes a lot more sense and results in fewer changes to rebase. This requires the use of git-filter-repo to make the rebase not prohibitively slow.
  • Removed bash dependency.
  • Fixed all issues identified by shellcheck.
  • Fixed changes.diff to show added files, while filtering files added by WebKit's build process.
  • Fixed changes.diff to ignore whitespace changes.
  • Added --regenerate-changes-diff option to update changes.diff in between ANGLE updates.
  • Updated [angle_]commit.h generation for upstream changes.
  • Removed need to run the script multiple times during the rebase process.
  • update-angle.sh: Removed.

Tools:

  • Moved to Tools/Scripts so that it doesn't overwrite itself during the update process.
  • Reversed direction of rebase. Before the script rebased ANGLE on WebKit; now it rebases WebKit's ANGLE changes on upstream ANGLE master. This makes a lot more sense and results in fewer changes to rebase. This requires the use of git-filter-repo to make the rebase not prohibitively slow.
  • Removed bash dependency.
  • Fixed all issues identified by shellcheck.
  • Fixed changes.diff to show added files, while filtering files added by WebKit's build process.
  • Fixed changes.diff to ignore whitespace changes.
  • Added --regenerate-changes-diff option to update changes.diff in between ANGLE updates.
  • Updated [angle_]commit.h generation for upstream changes.
  • Removed need to run the script multiple times during the rebase process.
  • Scripts/update-angle: Added.
5:16 PM Changeset in webkit [270062] by dino@apple.com
  • 3 edits
    3 adds in trunk/Source/ThirdParty/ANGLE

Add schemes for ANGLE to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=217546
rdar://69062082

Reviewed by Alex Christensen.

  • Configurations/Base.xcconfig: Update paths for built frameworks.
  • ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (dynamic).xcscheme: Added.
  • ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (static).xcscheme: Added.
  • ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE.xcscheme: Added.
5:11 PM Changeset in webkit [270061] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Unreviewed rollout of r269890 and r269911 due to EME issues on Mac Mini.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
5:05 PM Changeset in webkit [270060] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Web Inspector: Unable to Show JavaScript Console in empty tab in Safari Technology Preview
https://bugs.webkit.org/show_bug.cgi?id=211590
<rdar://problem/63000159>

Reviewed by Simon Fraser.

We used to launch the initial process for the inspected page from inside
WebInspectorProxy::connect(). I thought this was a good bottleneck to
make sure the inspected page has a process to inspect.

However, while WebInspectorProxy::connect() gets called by functions by
WebInspectorProxy::show(), it does not get called by
WebInspectorProxy::showConsole() for example.

To address this, I have moved the code that launches the inspected page's
initial process from WebInspectorProxy::connect() to
WebInspectorProxy::createFrontendPage(). This seems like a much better
bottleneck.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::createFrontendPage):

5:03 PM Changeset in webkit [270059] by ggaren@apple.com
  • 9 edits in trunk

[Mac] LayoutTest fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=175592

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::Source):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h: Renamed

m_canvasChangedTimer to m_captureCanvasTimer because the timer invokes
captureCanvas() when it fires.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:

Removed m_pendingSelectedTrackCheck because track update is sync now.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
Invoke checkSelectedVideoTrack() and updateTracks() synchronously.
Otherwise, we can miss the first frame rendered to our track.
(Technically, there was no upper bound on the number of frames we might
miss; but in practice, we tended to miss just the first one.)

LayoutTests:

There were two bugs here: (1) This test was flaky; (2) WebKit's canvas
capture implementation was flaky. Debugging them together was a lot of
fun!

  • fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events-expected.txt:

Reflect the fact that the test draws earlier now.

  • fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html:

Fixed (1): Define our WebGL shader before running the script that
references it. Otherwise, we might try to run the shader before the
HTML parser has parsed it.

Improved detection of (2): Draw to the canvas immediately instead of
waiting for an async event. This should more precisely test whether
the very first canvas frame gets captured or not.

  • platform/mac/TestExpectations: Unmark test as flaky.
5:00 PM Changeset in webkit [270058] by Chris Dumez
  • 3 edits
    1 delete in trunk/LayoutTests

Unreviewed, some more iOS gardening after r270037.

  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/click_events_on_input-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/order-of-events/mouse-events/mouseover-out-expected.txt: Removed.
4:57 PM UpdatingANGLE edited by James Darpinian
(diff)
4:46 PM Changeset in webkit [270057] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Source

Unreviewed build fix.

4:46 PM Changeset in webkit [270056] by Chris Dumez
  • 3 edits
    2 adds in trunk

Crash under JSC::Heap::acquireAccessSlow() / JSC::Heap::releaseAccess() when starting an AudioWorklet
https://bugs.webkit.org/show_bug.cgi?id=219183
<rdar://problem/71188544>

Reviewed by Mark Lam.

Source/WebCore:

When audio rendering has already started when the AudioWorklet is constructed, it is possible for
AudioWorkletGlobalScope::handlePreRenderTasks() to get called initially on the initial audio
rendering thread instead of the audio worklet thread. Once the AudioWorklet is ready, the next
rendering quantums will actually get processed on the audio worklet thread. However, there is a
race when audio rendering has already started when the AudioWorklet gets created. This is not
normally an issue. However, AudioWorkletGlobalScope::handlePreRenderTasks() grabs a JavaScript
Lock and it is only safe to do so on the thread where we constructed the VM (i.e. the Audio
Worklet thread). To address the issue, we now only grab the lock if we are on the audio worklet
thread. Note that this lock is only used to delay the draining of the microtask queue until the
end of the rendering quantum.

Test: webaudio/worklet-crash.html

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::handlePreRenderTasks):

LayoutTests:

Add layout test coverage.

  • webaudio/worklet-crash-expected.txt: Added.
  • webaudio/worklet-crash.html: Added.
4:43 PM Changeset in webkit [270055] by Chris Dumez
  • 2 edits
    5 deletes in trunk/LayoutTests

Unreviewed, skip some of the tests imported in r270037 on iOS because they are timing out.

  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/auxclick_event-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/click_event_target_child_parent-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/click_event_target_siblings-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/mouse/layout_change_should_fire_mouseover-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/order-of-events/focus-events/focus-expected.txt: Removed.
4:23 PM Changeset in webkit [270054] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Resolve baseline search path for Big Sur as default version
https://bugs.webkit.org/show_bug.cgi?id=219176
<rdar://problem/71597951>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/port/mac.py:

(MacPort.default_baseline_search_path):

3:16 PM Changeset in webkit [270053] by Alan Coon
  • 1 copy in tags/Safari-611.1.6

Tag Safari-611.1.6.

3:08 PM Changeset in webkit [270052] by sbarati@apple.com
  • 5 edits in trunk/Source

Use os_thread_self_restrict_rwx_is_supported instead of pthread_jit_write_protect_supported_np on Apple Internal SDK builds
https://bugs.webkit.org/show_bug.cgi?id=219099
<rdar://problem/71547048>

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • assembler/FastJITPermissions.h:

(useFastJITPermissions):
(threadSelfRestrictRWXToRW):
(threadSelfRestrictRWXToRX):

Source/WTF:

  • wtf/PlatformHave.h:
  • wtf/PlatformUse.h:
2:11 PM Changeset in webkit [270051] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

ASSERT NOT REACHED in WebCore::DisplayList::DrawImageBuffer::apply seen with TestWebKitAPI.DisplayListTests.ReplayWithMissingResource
https://bugs.webkit.org/show_bug.cgi?id=219175

Reviewed by Tim Horton.

We're currently hitting debug assertions when applying native image and image buffer display list items after
r270002, due to the fact that applyImageBufferItem and applyNativeImageItem return WTF::nullopt in the
case where the image resources are present, so we proceed by attempting to apply the item with only the graphics
context.

Fix this by checking the item type and always return early after calling either applyImageBufferItem or
applyNativeImageItem.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::Replayer::applyItem):

2:08 PM Changeset in webkit [270050] by Chris Dumez
  • 2 edits
    13 adds in trunk/LayoutTests

Unreviewed, land iOS baselines after r270037.

  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/auxclick_event-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/click_event_target_child_parent-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/click_event_target_siblings-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/click/click_events_on_input-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/mouse/layout_change_should_fire_mouseover-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/order-of-events/focus-events/focus-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/uievents/order-of-events/mouse-events/mouseover-out-expected.txt: Added.
1:37 PM Changeset in webkit [270049] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Do not stretch the border box with the scrollbars
https://bugs.webkit.org/show_bug.cgi?id=219174

Reviewed by Antti Koivisto.

Scrollbars are placed "between" the border and the padding box and they never stretch the border box. They may shrink the padding box though.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

1:06 PM Changeset in webkit [270048] by Chris Dumez
  • 7 edits in trunk

Regression(r267865) Geolocation API's error callback should be nullable
https://bugs.webkit.org/show_bug.cgi?id=219165

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/geolocation-API/PositionOptions.https-expected.txt:

Source/WebCore:

Geolocation API's error callback should be nullable. The callback is nullable in both Firefox
and Chrome and there is at least one WPT test that fails unless the error callback is nullable.

The specification does not have this parameter as nullable. However, it is particularly risky
to be the only engine matching the specification here, especially considering that we used to
match other browser engines.

No new tests, updated / rebaselined existing tests.

  • Modules/geolocation/Geolocation.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/Geolocation/argument-types-expected.txt:
  • fast/dom/Geolocation/argument-types.html:
1:05 PM Changeset in webkit [270047] by Darin Adler
  • 1 edit
    1 delete in trunk/LayoutTests/imported/w3c

Remove extra copy of html5lib left over from an earlier Web Platform Tests import
https://bugs.webkit.org/show_bug.cgi?id=219170

Reviewed by Youenn Fablet.

The new location is imported/w3c/web-platform-tests/tools/third_party/html5lib and
we already have another copy of the library there.

  • web-platform-tests/tools/html5lib: Removed.
12:51 PM Changeset in webkit [270046] by Chris Dumez
  • 4 edits in trunk

Unable to fetch an audio worklet module using a data URL
https://bugs.webkit.org/show_bug.cgi?id=219166

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

  • web-platform-tests/worklets/audio-worklet-import.https-expected.txt:

Source/WebCore:

Allow fetching an audio worklet module using a data URL.

No new tests, rebaselined existing test.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):

12:50 PM Changeset in webkit [270045] by Chris Dumez
  • 5 edits
    64 adds in trunk/LayoutTests

Import web-platform-tests/compat tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219126

Reviewed by Sam Weinig.

Import web-platform-tests/compat tests from usptream dd35c2b21b76772123.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/compat/*: Added.
12:48 PM Changeset in webkit [270044] by Alan Bujtas
  • 12 edits in trunk

[Legacy Line Layout] Inline box's subpixel vertical top position should be enclosed
https://bugs.webkit.org/show_bug.cgi?id=219142

Reviewed by Antti Koivisto.

Source/WebCore:

While the "logical top" here has floating point resolution, the "ascent" is integer type.
The implicit integral flooring may produce a short line box and it makes the inline box "sticks out" of the containing block.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::computeLogicalBoxHeights):

LayoutTests:

  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
  • platform/mac/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt:
12:45 PM Changeset in webkit [270043] by commit-queue@webkit.org
  • 9 edits
    1 add in trunk

[JSC] Add support for static private class fields
https://bugs.webkit.org/show_bug.cgi?id=214297

Patch by Xan López <Xan Lopez> on 2020-11-19
Reviewed by Yusuke Suzuki.

JSTests:

Copy V8 tests for static private fields and add the test262
flag. Also add a couple more of our own tests for the sake of
completeness.

  • stress/class-fields-static-private-harmony.js: Added, with a couple additional tests.
  • stress/resources/harmony-support.js:

(assertDoesNotThrow): added.

  • test262/config.yaml:

Source/JavaScriptCore:

Static private fields come trivially now that both private and
static (public) fields are implemented.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass): accept static private fields if the runtime option allows it.

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions): usePrivateStaticClassFields depends on usePrivateClassFields.

  • runtime/OptionsList.h: add runtime option to enable static private fields.
  • tools/JSDollarVM.cpp: add a method to check for private symbols in the stress tests.

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

12:00 PM Changeset in webkit [270042] by don.olmstead@sony.com
  • 65 edits in trunk/Source/WebCore

Use final in generated wrapper owner code
https://bugs.webkit.org/show_bug.cgi?id=219098

Reviewed by Yusuke Suzuki.

Generated wrapper owner code descends from JSC::WeakHandleOwner which declares two
virtual methods, isReachableFromOpaqueRoots and finalize. The generated code can descend
from JSC::WeakHandleOwner directly or through JSNode. JSNode is generated by the script
so those methods are marked with override. For all other cases a final class can be used
and then those methods are maked accordingly.

Regenerated bindings through run-bindings-tests.

  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h:
  • bindings/scripts/test/JS/JSTestCEReactions.h:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
  • bindings/scripts/test/JS/JSTestCallTracer.h:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestConditionalIncludes.h:
  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.h:
  • bindings/scripts/test/JS/JSTestDefaultToJSON.h:
  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h:
  • bindings/scripts/test/JS/JSTestDomainSecurity.h:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:
  • bindings/scripts/test/JS/JSTestEnabledForContext.h:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
  • bindings/scripts/test/JS/JSTestIterable.h:
  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h:
  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h:
  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestMapLike.h:
  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOperationConditional.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.h:
  • bindings/scripts/test/JS/JSTestReadOnlySetLike.h:
  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestSetLike.h:
  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h:
  • bindings/scripts/test/JS/JSTestStringifier.h:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
11:51 AM Changeset in webkit [270041] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for crash in Accessibility::performFunctionOnMainThread.
https://bugs.webkit.org/show_bug.cgi?id=219168

Reviewed by Chris Fleizach.

AXIsolatedObject::performFunctionOnMainThread captures the this pointer
to be accessed on the main thread. But since the same object can be
accessed concurrently on the AX thread, Accessibility::performFunctionOnMainThread
must be blocking even though the caller doesn't expect a return value.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::performFunctionOnMainThread):

11:43 AM Changeset in webkit [270040] by Fujii Hironori
  • 3 edits
    2 adds in trunk

[TextureMapperGL] The invert filter wrongly inverts pre-multiplied alpha color
https://bugs.webkit.org/show_bug.cgi?id=219144

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Test: compositing/filters/invert-transparent.html

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp: Take alpha value as an argument.

LayoutTests:

  • compositing/filters/invert-transparent-expected.html: Added.
  • compositing/filters/invert-transparent.html: Added.
11:40 AM Changeset in webkit [270039] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix OptionSet initialization after r270019

Unreviewed.

The OptionSet constructor was asserting when used directly with
ElementFactories::Type::All.

Based on original patch by Philippe Normand.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner):

10:49 AM Changeset in webkit [270038] by Jonathan Bedard
  • 4 edits
    3 copies
    4 adds in trunk/Tools

[webkitscmpy] Support remote Subversion repository
https://bugs.webkit.org/show_bug.cgi?id=218827
<rdar://problem/71304485>

Rubber-stamped by Aakash Jain.

It is possible to interact with a Subversion repository without the svn command. This is useful
for services hosted in environments where installing binaries is burdensome, or in cases where
tools are running without a checkout.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, add dependencies.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/init.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote: Added.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/init.py: Added.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py: Added.

(Svn): Interact with a remote Subversion repository without using the svn command.
(Svn.is_webserver): Check if the provided url matches the pattern for a Subversion server.
(Svn.init):
(Svn.is_svn):
(Svn._latest): Return the latest revision.
(Svn.info): Return the bits of the svn info command that are used in code.
(Svn.default_branch):
(Svn.list):
(Svn.branches): List all branches.
(Svn.tags): List all tags.
(Svn._cache_path): Return path to json cache.
(Svn._cache_lock): Filesystem lock used to prevent contention over the json cache, this
is particularly important during testing.
(Svn._cache_revisions): Cache the identifier/revision mapping.
(Svn._branch_for): Given a commit, determine which branch that commit is on.
(Svn._commit_count): Determine the amount of commits on a branch since branching.
(Svn.commit): Return a commit object given a revision, branch, identifier or tag.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote: Added.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/init.py: Added.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py: Added.

(Scm):
(Scm.from_url): Given a URL, attempt to determine what kind of remote API is available.
(Scm.init):

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py: Added.

(Svn): Mock requests needed to interact with a remote Subversion repository.
(Svn.latest): Return the most recent commit on any branch.
(Svn.branches): Return branches at some revision.
(Svn.tags): Return tags at some revision.
(Svn.range): Give a start and end revision, along with a tag or branch,
return all commits in that range.
(Svn.request): Handle a small subset of requests to a Subversion server.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestLocalSvn): Moved from TestSvn.
(TestRemoteSvn): Added.
(TestSvn): Moved to TestLocalSvn.

9:37 AM Changeset in webkit [270037] by Chris Dumez
  • 5 edits
    167 adds in trunk/LayoutTests

Import web-platform-tests/uievents tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219131

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import web-platform-tests/uievents tests from upstream dd35c2b21b76772123f76a.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/uievents/*: Added.

LayoutTests:

  • tests-options.json:
9:37 AM Changeset in webkit [270036] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Build failed due to unknown values in LLIntDesiredOffsets.h
https://bugs.webkit.org/show_bug.cgi?id=219158

Reviewed by Don Olmstead.

CMake uses the contents of the variables OFFLINE_ASM and GENERATOR as part of the
dependencies that cause LLIntDesiredOffsets.h to be regenerated, so add to them
those files missing from the lists.

  • CMakeLists.txt: Update OFFLINE_ASM and GENERATOR lists.
9:32 AM Changeset in webkit [270035] by pvollan@apple.com
  • 7 edits
    2 adds in trunk

[macOS] Issue sandbox extension to Web Inspector service
https://bugs.webkit.org/show_bug.cgi?id=219041
<rdar://problem/71495287>

Reviewed by Brent Fulgham.

Source/WebKit:

In preparation of blocking this service in the WebContent process, a sandbox extension should be issued if Safari's Develop menu is enabled.
This extension will also be dynamically issued to all WebContent processes, if the Develop menu preference changes, by observing this
preference.

  • UIProcess/Cocoa/WebInspectorPreferenceObserver.h: Added.
  • UIProcess/Cocoa/WebInspectorPreferenceObserver.mm: Added.

(+[WKWebInspectorPreferenceObserver sharedInstance]):
(-[WKWebInspectorPreferenceObserver init]):
(-[WKWebInspectorPreferenceObserver observeValueForKeyPath:ofObject:change:context:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::enableRemoteInspectorIfNeeded):

  • UIProcess/WebProcessPool.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Allow MiniBrowser to read preferences from the domain com.apple.Safari.SandboxBroker.

  • MiniBrowser/MiniBrowser.entitlements:
9:26 AM Changeset in webkit [270034] by Alan Coon
  • 2 edits in branches/safari-611.1.6-branch/Source/WebCore

Cherry-pick r270000. rdar://problem/71588990

REGRESSION (r269895): Google Maps expanded route options are missing background color
https://bugs.webkit.org/show_bug.cgi?id=219119
<rdar://problem/71510412>

Reviewed by Said Abou-Hallawa.

No new tests, yet. Test is pending.

  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::drawPlatformImage): r199071 removed the state save/restore around the CG implementation of drawNativeImage, explicitly saving and restoring the few things it knew that the implementation would change. However, it failed to save/restore the composite operator.

This was mostly not a problem, because e.g. canvas always hands down the
global op. However, in r269895, I added code that passes in a /different/
compositing operator, and it gets stuck on the context.

Save and restore the composite operator and blend mode like we do for other properties.

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

9:23 AM Changeset in webkit [270033] by Chris Dumez
  • 9 edits in trunk

Worklet.addModule() should reject promise with an AbortError when the network load fails
https://bugs.webkit.org/show_bug.cgi?id=219135

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing (or keep failing with slighly different
output).

  • web-platform-tests/worklets/audio-worklet-credentials.https-expected.txt:
  • web-platform-tests/worklets/audio-worklet-import.https-expected.txt:

Source/WebCore:

Worklet.addModule() should reject promise with an AbortError when the network load fails:

This also aligns our behavior with Blink.

No new tests, rebaselined existing tests.

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::notifyFinished):

LayoutTests:

Update existing tests to reflect behavior change.

  • http/wpt/webaudio/audioworklet-addModule-cors.sub.https.html:
  • webaudio/audioworklet-addModule-failure-expected.txt:
  • webaudio/audioworklet-addModule-failure.html:
8:34 AM Changeset in webkit [270032] by Chris Dumez
  • 9 edits
    3 moves in trunk/LayoutTests

Resync web-platform-tests/beacon tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219123

Reviewed by Sam Weinig.

Resync web-platform-tests/beacon tests from upstream dd35c2b21b76772123f7.

  • web-platform-tests/beacon/headers/header-content-type-and-body-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt.
  • web-platform-tests/beacon/headers/header-content-type-and-body.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/beacon/headers/header-content-type.html.
  • web-platform-tests/beacon/headers/w3c-import.log:
  • web-platform-tests/beacon/resources/content-type-and-body.py: Renamed from LayoutTests/imported/w3c/web-platform-tests/beacon/resources/content-type.py.

(main):

  • web-platform-tests/beacon/resources/w3c-import.log:
8:04 AM Changeset in webkit [270031] by commit-queue@webkit.org
  • 5 edits
    62 deletes in trunk/LayoutTests

Unreviewed, reverting r270009.
https://bugs.webkit.org/show_bug.cgi?id=219162

Added two broken tests on ios

Reverted changeset:

"Import web-platform-tests/compat tests from usptream"
https://bugs.webkit.org/show_bug.cgi?id=219126
https://trac.webkit.org/changeset/270009

8:02 AM Changeset in webkit [270030] by ap@apple.com
  • 2 edits in trunk/Tools

Make block-spammers autoinstall requests
https://bugs.webkit.org/show_bug.cgi?id=219137

Reviewed by Jonathan Bedard.

  • Scripts/block-spammers: Move the webkitpy import first, making autoinstaller

is available for subsequent imports.

7:34 AM Changeset in webkit [270029] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use inline iterator in CompositeEditCommand::deleteInsignificantText
https://bugs.webkit.org/show_bug.cgi?id=219155

Reviewed by Zalan Bujtas.

Reduce direct InlineBox access.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::deleteInsignificantText):

6:36 AM Changeset in webkit [270028] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension to audio service if Media in the GPU process is not enabled
https://bugs.webkit.org/show_bug.cgi?id=219051
<rdar://problem/71500898>

Reviewed by Youenn Fablet.

Issue sandbox extension to com.apple.audio.audiohald for the WebContent process on macOS if Media in the GPU process is not enabled.

  • UIProcess/WebPageProxy.cpp:

(WebKit::mediaRelatedMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:
6:19 AM Changeset in webkit [270027] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable non-text content with floats
https://bugs.webkit.org/show_bug.cgi?id=219122

Reviewed by Antti Koivisto.

Non-text content may stretch the line and we don't yet have support for dynamic float avoiding (as the line grows).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

6:18 AM Changeset in webkit [270026] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Allow subpixel difference in the computed containing block height when switching between line layout systems
https://bugs.webkit.org/show_bug.cgi?id=219143

Reviewed by Antti Koivisto.

With all the seemingly random flooring, ceiling and rounding in the legacy line layout codebase,
it's really difficult to subpixel match the end result in a sane way in IFC as we start supporting more complex content.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::ensureLineBoxes):

6:17 AM Changeset in webkit [270025] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] nextLinePosition should use iterator
https://bugs.webkit.org/show_bug.cgi?id=219152

Reviewed by Zalan Bujtas.

The last major piece of direct InlineBox access in editing code.

  • dom/Position.cpp:

(WebCore::InlineBoxAndOffset::InlineBoxAndOffset): Deleted.
(WebCore::Position::inlineBoxAndOffset const): Deleted.

No longer needed.

  • dom/Position.h:
  • editing/VisibleUnits.cpp:

(WebCore::previousLineCandidatePosition):
(WebCore::nextLineCandidatePosition):
(WebCore::isTextOrLineBreakRun):
(WebCore::previousTextOrLineBreakRun):
(WebCore::nextTextOrLineBreakRun):
(WebCore::startTextOrLineBreakRun):
(WebCore::endTextOrLineBreakRun):
(WebCore::logicallyPreviousRun):
(WebCore::logicallyNextRun):
(WebCore::wordBreakIteratorForMinOffsetBoundary):
(WebCore::wordBreakIteratorForMaxOffsetBoundary):
(WebCore::visualWordPosition):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
(WebCore::previousRootInlineBoxCandidatePosition): Deleted.
(WebCore::nextRootInlineBoxCandidatePosition): Deleted.
(WebCore::CachedLogicallyOrderedLeafBoxes::size const): Deleted.
(WebCore::CachedLogicallyOrderedLeafBoxes::firstBox const): Deleted.
(WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes): Deleted.
(WebCore::CachedLogicallyOrderedLeafBoxes::previousTextOrLineBreakBox): Deleted.
(WebCore::CachedLogicallyOrderedLeafBoxes::nextTextOrLineBreakBox): Deleted.
(WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves const): Deleted.

The iterarator handles logical order caching for InlineBoxes, no need for a separate cache.

(WebCore::logicallyPreviousBox): Deleted.
(WebCore::logicallyNextBox): Deleted.

6:07 AM Changeset in webkit [270024] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r267995): [GTK][WPE] media controls and form fields icons are no longer rendered
https://bugs.webkit.org/show_bug.cgi?id=219156

Reviewed by Adrian Perez de Castro.

Since r267995 we are now handling fragments in data URLs, which means we can't use '#' in the svg contents, we
need to use %23 instead.

  • Modules/mediacontrols/mediaControlsAdwaita.css:

(audio::-webkit-media-controls-mute-button,):
(audio::-webkit-media-controls-mute-button.muted,):
(audio::-webkit-media-controls-play-button,):
(audio::-webkit-media-controls-play-button.paused,):
(audio::-webkit-media-controls-toggle-closed-captions-button,):
(video::-webkit-media-controls-fullscreen-button):
(video::-webkit-media-controls-fullscreen-button.exit):

  • css/themeAdwaita.css:

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

5:59 AM Changeset in webkit [270023] by Martin Robinson
  • 19 edits
    1 delete in trunk

Make scroll-padding independent of scroll-snap and have it affect scrollIntoView
https://bugs.webkit.org/show_bug.cgi?id=219073

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/scrollIntoView-scrollPadding-expected.txt: Updated to reflect newly passing test.

Source/WebCore:

The scroll-padding CSS property is now available even when scroll-snap is not
enabled at compile-time. Also make scroll-snap affect positioning during
scrollIntoView operations.

  • Sources.txt: Remove ScrollSnapPoints.cpp, because it is no longer necessary.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • css/CSSComputedStyleDeclaration.cpp: Enable scroll-padding and scroll-padding-* unconditionally.

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Ditto.

  • css/CSSProperties.json: Ditto.
  • css/StyleProperties.cpp: Ditto.

(WebCore::StyleProperties::getPropertyValue const): Ditto.
(WebCore::StyleProperties::asText const): Ditto.

  • css/parser/CSSPropertyParser.cpp: Ditto.

(WebCore::CSSPropertyParser::parseSingleValue): Ditto.
(WebCore::CSSPropertyParser::parseShorthand): Ditto.

  • rendering/RenderLayer.cpp: Ditto.

(WebCore::expandScrollRectToVisibleTargetRectToIncludeScrollPadding): Added this helper
function which expands the target rectangle to include scroll padding from the container.
This creates the affect that the container has a padding rectangle.
(WebCore::RenderLayer::scrollRectToVisible): Now expand target rectangle to include
scroll container padding. Also put some code into a lambda to simplify things.

  • rendering/RenderLayerModelObject.cpp: Ditto.

(WebCore::scrollSnapContainerRequiresUpdateForStyleUpdate): Ditto.

  • rendering/style/RenderStyle.cpp: Ditto.

(WebCore::RenderStyle::scrollPadding const): Ditto.
(WebCore::RenderStyle::setScrollPaddingTop): Ditto.
(WebCore::RenderStyle::setScrollPaddingBottom): Ditto.
(WebCore::RenderStyle::setScrollPaddingLeft): Ditto.
(WebCore::RenderStyle::setScrollPaddingRight): Ditto.
(WebCore::RenderStyle::initialScrollSnapType): Ditto.
(WebCore::RenderStyle::initialScrollSnapAlign): Ditto.
(WebCore::RenderStyle::scrollSnapType const): Ditto.
(WebCore::RenderStyle::scrollSnapAlign const): Ditto.
(WebCore::RenderStyle::setScrollSnapType): Ditto.

  • rendering/style/RenderStyle.h: Ditto.

(WebCore::RenderStyle::initialScrollPadding): Ditto.

  • rendering/style/StyleRareNonInheritedData.cpp: Have scroll-padding related properties

be stored directly on StyleRareNonInheritedData.
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h: Ditto.
  • rendering/style/StyleScrollSnapPoints.cpp: Removed.
  • rendering/style/StyleScrollSnapPoints.h:

LayoutTests:

  • TestExpectations: Mark some tests as passing.
  • platform/mac-wk1/TestExpectations: Mark one test as failing due to WebKit1 scrollbars.
5:55 AM Changeset in webkit [270022] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE] Prevent elements getting stuck in a pressed state when scrolling on a touchscreen
https://bugs.webkit.org/show_bug.cgi?id=218903

Patch by Joshua Watt <JPEW.hacker@gmail.com> on 2020-11-19
Reviewed by Adrian Perez de Castro.

Stops the scroll gesture controller from eating touch up events and
preventing them from propagating to the page when the controller is
handling a scroll event. If the scroll logic prevents the events from
propagating to the page, elements on the page (e.g. buttons) can get
stuck in a pressed state when the user lifts their finger.

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

4:59 AM Changeset in webkit [270021] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Protect WebSocketChannel before calling client methods
https://bugs.webkit.org/show_bug.cgi?id=216791

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-11-19
Reviewed by Youenn Fablet.

Ensure we keep a reference to the WebSocketChannel before calling client methods that might close the channel.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::close):
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::resume):

4:24 AM Changeset in webkit [270020] by Chris Lord
  • 10 edits
    3 adds in trunk/LayoutTests/imported/w3c

Update WPT OffscreenCanvas text tests
https://bugs.webkit.org/show_bug.cgi?id=219151

Reviewed by Noam Rosenthal.

Sync WPT OffscreenCanvas text tests with c12517985bca8a3fafd1d3f4.

  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.html:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.worker.js:

(t.step):

  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.html:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.worker.js:

(t.step):

  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.html:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.worker.js:

(t.step):

  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.html:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.worker.js:

(t.step):

  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.html: Added.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.js: Added.

(t_fail.t.step_func):
(t.step):

  • web-platform-tests/html/canvas/offscreen/text/w3c-import.log:
12:54 AM Changeset in webkit [270019] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GStreamer] GStreamerRegistryScanner cleanups and improvements
https://bugs.webkit.org/show_bug.cgi?id=219078

Reviewed by Philippe Normand.

We are creating the factories and keeping them alive forever, because GStreamerRegistryScanner is singleton. We
can just delete them after the initialization and then create the factories we need on demand when checking AV1
codecs. This patch includes some other minor fixes and cleanups (missing const, avoid using blackList, etc.)

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::ElementFactories::ElementFactories): Create the factories for the given types.
(WebCore::GStreamerRegistryScanner::ElementFactories::~ElementFactories): Destroy the factories.
(WebCore::GStreamerRegistryScanner::ElementFactories::elementFactoryTypeToString): Return a string for the given
factory type, used for logging.
(WebCore::GStreamerRegistryScanner::ElementFactories::factory const): Return the factory for the given type.
(WebCore::GStreamerRegistryScanner::ElementFactories::hasElementForMediaType const): Moved here now receiving a
factory type instead of the factory itself.
(WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner): Create a ElementFactories for all the types and
pass it to the initializers.
(WebCore::GStreamerRegistryScanner::mimeTypeSet const): Use release assert and remove the return.
(WebCore::GStreamerRegistryScanner::isContainerTypeSupported const): Ditto.
(WebCore::GStreamerRegistryScanner::fillMimeTypeSetFromCapsMapping): It receives a ElementFactories now.
(WebCore::GStreamerRegistryScanner::initializeDecoders): Ditto.
(WebCore::GStreamerRegistryScanner::initializeEncoders): Ditto.
(WebCore::GStreamerRegistryScanner::isCodecSupported const): Make the received code name const.
(WebCore::GStreamerRegistryScanner::areAllCodecsSupported const): Use const references to iterate the codecs.
(WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const): Create a ElementFactories for the appropriate
type and use to check if the given codec is supported.
(WebCore::GStreamerRegistryScanner::isConfigurationSupported const): Make mediaConfiguration parameter const.
(WebCore::GStreamerRegistryScanner::~GStreamerRegistryScanner): Deleted.
(WebCore::GStreamerRegistryScanner::mimeTypeSet): Deleted.
(WebCore::GStreamerRegistryScanner::hasElementForMediaType const): Deleted.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:
12:40 AM Changeset in webkit [270018] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

Nullptr crash in RenderObject::parent
https://bugs.webkit.org/show_bug.cgi?id=218484
<rdar://problem/70985057>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Let's imagine the following scenario:

BODY

LI contenteditable=true

DIV

If the current visible selection is on DIV and we try to execute document.execCommand("InsertOrderedList") then
the current code will first try to fix the orphaned LI before inserting a new list. Fixing the orphaned
LI means that a new list tag must be created between BODY and LI. There is one caveat though, and is that the
InsertNodeBeforeCommand requires that the parent of the new node (in this case the BODY) must be richly editable
(something that is not happening in the example above). That's why we need to ensure that this precondition is met
before trying to fix the orphaned list item.

Test: fast/editing/insert-list-in-orphaned-list-item-crash.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild): Early return if the parent is not richly editable.
(WebCore::InsertListCommand::doApplyForSingleParagraph): Fixed a typo.

LayoutTests:

Added new test case.

  • fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt: Added.
  • fast/editing/insert-list-in-orphaned-list-item-crash.html: Added.
12:16 AM Changeset in webkit [270017] by Diego Pino Garcia
  • 4 edits
    5 deletes in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Move common GTK and WPE failures to GLIB.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/svg-bounds-expected.txt: Removed.
  • platform/gtk/fast/shrink-wrap/rect-shrink-wrap-expected.txt: Removed.
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.sub-expected.txt: Removed.

Nov 18, 2020:

10:08 PM Changeset in webkit [270016] by Chris Dumez
  • 7 edits
    83 adds in trunk/LayoutTests

Import web-platform-tests/worklets tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219121

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import web-platform-tests/worklets tests from usptream dd35c2b21b76772123f76.

  • resources/import-expectations.json:
  • web-platform-tests/worklets/*: Added.

LayoutTests:

  • tests-options.json:
8:11 PM Changeset in webkit [270015] by commit-queue@webkit.org
  • 15 edits in trunk

[WASM-References] Remove subtyping rule for externref and funcref
https://bugs.webkit.org/show_bug.cgi?id=218885

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-11-18
Reviewed by Yusuke Suzuki.

Make funcref is not a subtype of externref.
The spec: https://webassembly.github.io/reference-types/core/
The PR for removing subtype from the spec:
https://github.com/WebAssembly/reference-types/pull/87.

JSTests:

  • wasm/references/func_ref.js:

(assert.eq.instance.exports.fix.fun):
(assert.eq.instance.exports.fix):

  • wasm/references/validation.js:

Source/JavaScriptCore:

  • wasm/WasmFormat.h:

(JSC::Wasm::isSubtype):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

8:02 PM Changeset in webkit [270014] by Chris Dumez
  • 5 edits
    25 adds in trunk/LayoutTests

Import web-platform-tests/geolocation-API tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219128

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import web-platform-tests/geolocation-API tests from usptream dd35c2b21b76772123f76.

  • resources/import-expectations.json:
  • web-platform-tests/geolocation-API/META.yml: Added.
  • web-platform-tests/geolocation-API/PositionOptions.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/PositionOptions.https.html: Added.
  • web-platform-tests/geolocation-API/clearWatch_TypeError-expected.txt: Added.
  • web-platform-tests/geolocation-API/clearWatch_TypeError.html: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_IDL.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_IDL.https.html: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_TypeError-expected.txt: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_TypeError.html: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_permission_allow.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_permission_allow.https.html: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_permission_deny.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/getCurrentPosition_permission_deny.https.html: Added.
  • web-platform-tests/geolocation-API/idlharness.https.window-expected.txt: Added.
  • web-platform-tests/geolocation-API/idlharness.https.window.html: Added.
  • web-platform-tests/geolocation-API/idlharness.https.window.js: Added.
  • web-platform-tests/geolocation-API/non-secure-contexts.http-expected.txt: Added.
  • web-platform-tests/geolocation-API/non-secure-contexts.http.html: Added.
  • web-platform-tests/geolocation-API/support.js: Added.

(setup):
(dummyFunction):
(positionToString):
(errorToString):

  • web-platform-tests/geolocation-API/w3c-import.log: Added.
  • web-platform-tests/geolocation-API/watchPosition_TypeError-expected.txt: Added.
  • web-platform-tests/geolocation-API/watchPosition_TypeError.html: Added.
  • web-platform-tests/geolocation-API/watchPosition_permission_deny.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/watchPosition_permission_deny.https.html: Added.

LayoutTests:

Skip tests that are timing out.

8:00 PM Changeset in webkit [270013] by Yousuke.Kimoto@sony.com
  • 2 edits in trunk/Source/WTF

[WTF] Fix a condition to check if statvfs() succeeds in getVolumeFreeSpace()
https://bugs.webkit.org/show_bug.cgi?id=219138

Reviewed by Alexey Proskuryakov.

statvfs() returns Zero on success but getVolumeFreeSpace() treats a non Zero value
as a succes case. The condition is oppsite to the spec of statvfs().

  • wtf/posix/FileSystemPOSIX.cpp:
7:59 PM Changeset in webkit [270012] by Kocsen Chung
  • 1 copy in tags/Safari-611.1.5.3

Tag Safari-611.1.5.3.

7:55 PM Changeset in webkit [270011] by Kocsen Chung
  • 8 edits in branches/safari-611.1.5-branch/Source

Versioning.

WebKit-7611.1.5.3

7:40 PM Changeset in webkit [270010] by Chris Dumez
  • 13 edits
    19 adds in trunk/LayoutTests

Resync web-platform-tests/FileAPI tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219125

Reviewed by Sam Weinig.

Resync web-platform-tests/FileAPI tests from upstream dd35c2b21b76772123f7.

  • web-platform-tests/FileAPI/file/File-constructor-expected.txt:
  • web-platform-tests/FileAPI/file/File-constructor.html:
  • web-platform-tests/FileAPI/file/resources/echo-content-escaped.py: Added.

(escape_byte):
(main):

  • web-platform-tests/FileAPI/file/resources/w3c-import.log: Added.
  • web-platform-tests/FileAPI/file/send-file-form-controls.tentative-expected.txt: Added.
  • web-platform-tests/FileAPI/file/send-file-form-controls.tentative.html: Added.
  • web-platform-tests/FileAPI/file/send-file-form-punctuation.tentative-expected.txt: Added.
  • web-platform-tests/FileAPI/file/send-file-form-punctuation.tentative.html: Added.
  • web-platform-tests/FileAPI/file/send-file-form-utf-8.html:
  • web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative.html:
  • web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative.html:
  • web-platform-tests/FileAPI/file/send-file-formdata-controls.tentative-expected.txt: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata-controls.tentative.html: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata-expected.txt: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata-punctuation.tentative-expected.txt: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata-punctuation.tentative.html: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata-utf-8-expected.txt: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata-utf-8.html: Added.
  • web-platform-tests/FileAPI/file/send-file-formdata.html: Added.
  • web-platform-tests/FileAPI/file/w3c-import.log:
  • web-platform-tests/FileAPI/fileReader-expected.txt:
  • web-platform-tests/FileAPI/fileReader.html:
  • web-platform-tests/FileAPI/support/send-file-form-helper.js:

(escapeString):
(const.formPostFileUploadTest):

  • web-platform-tests/FileAPI/support/send-file-formdata-helper.js: Added.

(const.formDataPostFileUploadTest):

  • web-platform-tests/FileAPI/support/w3c-import.log:
  • web-platform-tests/FileAPI/url/url-charset.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-charset.window.html: Added.
  • web-platform-tests/FileAPI/url/url-charset.window.js: Added.

(async_test.t.t.add_cleanup):
(async_test.t.win.onload.t.step_func_done):

  • web-platform-tests/FileAPI/url/w3c-import.log:
7:38 PM Changeset in webkit [270009] by Chris Dumez
  • 4 edits
    62 adds in trunk/LayoutTests

Import web-platform-tests/compat tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219126

Reviewed by Sam Weinig.

Import web-platform-tests/compat tests from usptream dd35c2b21b76772123.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/compat/*: Added.
7:17 PM Changeset in webkit [270008] by Chris Dumez
  • 2 edits
    28 adds in trunk/LayoutTests/imported/w3c

Import web-platform-tests/entries-api tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=219127

Reviewed by Sam Weinig.

Import web-platform-tests/entries-api tests from usptream dd35c2b21b76772123f76a1.

  • resources/import-expectations.json:
  • web-platform-tests/entries-api/META.yml: Added.
  • web-platform-tests/entries-api/README.md: Added.
  • web-platform-tests/entries-api/idlharness.window-expected.txt: Added.
  • web-platform-tests/entries-api/idlharness.window.html: Added.
  • web-platform-tests/entries-api/idlharness.window.js: Added.
  • web-platform-tests/entries-api/support.js: Added.

(entry_test):
(getEntriesAsPromise):

  • web-platform-tests/entries-api/support/a/b/c/3.txt: Added.
  • web-platform-tests/entries-api/support/a/b/c/d/1.txt: Added.
  • web-platform-tests/entries-api/support/a/b/c/d/2.txt: Added.
  • web-platform-tests/entries-api/support/a/b/c/d/w3c-import.log: Added.
  • web-platform-tests/entries-api/support/a/b/c/w3c-import.log: Added.
  • web-platform-tests/entries-api/support/upload.txt: Added.
  • web-platform-tests/entries-api/support/upload/file.txt: Added.
  • web-platform-tests/entries-api/support/upload/subdir/1.txt: Added.
  • web-platform-tests/entries-api/support/upload/subdir/2.txt: Added.
  • web-platform-tests/entries-api/support/upload/subdir/3.txt: Added.
  • web-platform-tests/entries-api/support/upload/subdir/w3c-import.log: Added.
  • web-platform-tests/entries-api/support/upload/w3c-import.log: Added.
  • web-platform-tests/entries-api/support/w3c-import.log: Added.
  • web-platform-tests/entries-api/w3c-import.log: Added.
7:16 PM Changeset in webkit [270007] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Menu Bar support for app highlights in book.
https://bugs.webkit.org/show_bug.cgi?id=219117

Reviewed by Wenson Hsieh.

Add menu stubs in iOS to support highlights for books in modern webkit.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView setupAppHighlightMenus]):
(-[WKContentView createHighlightInCurrentGroupWithRange:]):
(-[WKContentView createHighlightInNewGroupWithRange:]):

6:53 PM Changeset in webkit [270006] by Wenson Hsieh
  • 13 edits in trunk

Rename MetaCommandSwitchTo to MetaCommandSwitchToItemBuffer
https://bugs.webkit.org/show_bug.cgi?id=219130

Reviewed by Tim Horton.

Source/WebCore:

Rename MetaCommandSwitchTo to MetaCommandSwitchToItemBuffer. The new name helps to clarify that this item is
about changing or swapping between display list item buffers, rather than image buffers.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::MetaCommandSwitchToItemBuffer::MetaCommandSwitchToItemBuffer):
(WebCore::DisplayList::MetaCommandSwitchTo::MetaCommandSwitchTo): Deleted.
(WebCore::DisplayList::MetaCommandSwitchTo::identifier const): Deleted.

Source/WebKit:

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

6:32 PM Changeset in webkit [270005] by Ross Kirsling
  • 7 edits in trunk

[JSC] Reinstate String#at
https://bugs.webkit.org/show_bug.cgi?id=219124

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/at-method.js: Re-add tests.
  • test262/config.yaml: Re-enable feature.
  • test262/expectations.yaml:

"at/prop-desc.js" failures are due to a typo; will be fixed in https://github.com/tc39/test262/pull/2908.

Source/JavaScriptCore:

At this week's TC39 meeting, consensus was achieved on renaming item() *and* keeping it for strings too.
Accordingly, this patch reinstates String.prototype.at behind the existing useAtMethod runtime option.

  • builtins/StringPrototype.js:

(at):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

5:42 PM Changeset in webkit [270004] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webitscmpy] Branch point incorrect for Git checkouts
https://bugs.webkit.org/show_bug.cgi?id=219132
<rdar://problem/71561569>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commit): Banca-point is the distance from the primordial commit minus the distance from
the default branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
5:37 PM Changeset in webkit [270003] by ap@apple.com
  • 4 edits
    14 deletes in trunk/Tools

Remove IRC bots from webkitpy
https://bugs.webkit.org/show_bug.cgi?id=219111

Reviewed by Jonathan Bedard and Aakash Jain.

We haven't been running any IRC bots for a while, this is dead code.

  • Scripts/webkitpy/common/net/irc: Removed.
  • Scripts/webkitpy/thirdparty/irc: Removed.
  • Scripts/webkitpy/tool/bot/irc_command.py: Removed.
  • Scripts/webkitpy/tool/bot/irc_command_unittest.py: Removed.
  • Scripts/webkitpy/tool/bot/ircbot.py: Removed.
  • Scripts/webkitpy/tool/bot/ircbot_unittest.py: Removed.
  • Scripts/webkitpy/tool/bot/sheriff.py: Removed.
  • Scripts/webkitpy/tool/bot/sheriff_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/init.py:
  • Scripts/webkitpy/tool/commands/newcommitbot.py: Removed.
  • Scripts/webkitpy/tool/commands/newcommitbot_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/perfalizer.py: Removed.
  • Scripts/webkitpy/tool/commands/perfalizer_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/sheriffbot.py: Removed.
  • Scripts/webkitpy/tool/commands/sheriffbot_unittest.py: Removed.
  • Scripts/webkitpy/tool/main.py:

(WebKitPatch):
(WebKitPatch.init):
(WebKitPatch.path):
(WebKitPatch.command_completed):
(WebKitPatch.handle_global_options):
(WebKitPatch.ensure_irc_connected): Deleted.
(WebKitPatch.irc): Deleted.

  • Scripts/webkitpy/tool/mocktool.py:

(MockTool.init):
(MockTool.path):
(MockTool.ensure_irc_connected): Deleted.
(MockTool.irc): Deleted.

5:20 PM Changeset in webkit [270002] by Wenson Hsieh
  • 15 edits
    2 adds in trunk

[Concurrent display lists] Add a way for display lists to partially replay
https://bugs.webkit.org/show_bug.cgi?id=219067

Reviewed by Simon Fraser.

Source/WebCore:

Make it possble for a display list replayer to stop early in the middle of processing a display list. This
capability is a prerequisite to three items:

  • Allow display list processing in the GPU process to pause when encountering missing cached resources.
  • Allow the GPU process to replay display list item buffers that contain display list data targeting different

destination image buffers.

  • Allow the GPU process to prematurely halt display list processing and perform a MESSAGE_CHECK to terminate

the web content process, in the case of an invalid display list item (e.g. decoding failure).

See below for more details.

Test: DisplayListTests.ReplayWithMissingResource

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::flushDrawingContextAndCommit):
(WebCore::ImageBuffer::submitDisplayList): Deleted.

Remove the generic submitDisplayList method on ImageBuffer; instead, call directly into
RemoteImageBuffer::submitDisplayList to replay display lists.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::platformCALayerPaintContents):

Adjust several call sites of replay() to grab the tracked display list from the ReplayResult.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::asText const):
(WebCore::DisplayList::DisplayList::dump const):

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::iterator::operator* const):

Pull the iterator value out into a separate Value struct, and include the size of the current display list
item in the item buffer.

  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::replayDisplayList):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::Replayer::applyItem):

Make this private helper method return an optional flag indicating whether display list replay should stop.

(WebCore::DisplayList::Replayer::replay):

Make replay() return a ReplayResult, which contains the tracked display list (if tracking is enabled), as well
as the number of bytes of display list item data that were consumed, and the reason why display list replay
stopped (the default reason being ReplayedAllItems).

  • platform/graphics/displaylists/DisplayListReplayer.h:

(WebCore::DisplayList::Replayer::replay):

Source/WebKit:

See WebCore ChangeLog for more details.

  • GPUProcess/graphics/RemoteImageBuffer.h:

Make submitDisplayList on RemoteImageBuffer return a ReplayResult.

(WebKit::RemoteImageBuffer::submitDisplayList):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyDisplayListsFromHandle):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::submitDisplayList):

Tools:

Add a test that exercises partial display list replay.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp: Added.

(TestWebKitAPI::TEST):

4:31 PM Changeset in webkit [270001] by Chris Dumez
  • 7 edits
    1 copy
    1 move
    3 adds
    1 delete in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/WebIDL tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=219120

Reviewed by Alex Christensen.

Resync web-platform-tests/WebIDL tests from upstream dd35c2b21b76772123f.

  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.js:

(test):

  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/legacy-callback-interface-object.html:
  • web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log:
  • web-platform-tests/WebIDL/idlharness.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/idlharness-expected.txt.
  • web-platform-tests/WebIDL/idlharness.any.html: Added.
  • web-platform-tests/WebIDL/idlharness.any.js: Added.
  • web-platform-tests/WebIDL/idlharness.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/idlharness-expected.txt.
  • web-platform-tests/WebIDL/idlharness.any.worker.html: Added.
  • web-platform-tests/WebIDL/idlharness.html: Removed.
  • web-platform-tests/WebIDL/w3c-import.log:
4:27 PM Changeset in webkit [270000] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r269895): Google Maps expanded route options are missing background color
https://bugs.webkit.org/show_bug.cgi?id=219119
<rdar://problem/71510412>

Reviewed by Said Abou-Hallawa.

No new tests, yet. Test is pending.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
r199071 removed the state save/restore around the CG implementation of
drawNativeImage, explicitly saving and restoring the few things it knew
that the implementation would change. However, it failed to save/restore
the composite operator.

This was mostly not a problem, because e.g. canvas always hands down the
global op. However, in r269895, I added code that passes in a /different/
compositing operator, and it gets stuck on the context.

Save and restore the composite operator and blend mode like we do for other properties.

4:15 PM Changeset in webkit [269999] by Aditya Keerthi
  • 7 edits
    1 move in trunk/Source/WebCore

[iOS][FCR] Rename UA style sheet to follow naming convention
https://bugs.webkit.org/show_bug.cgi?id=219108

Reviewed by Tim Horton.

  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/formControlsIOS.css: Renamed from Source/WebCore/css/iOSFormControlRefresh.css.
  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h:
3:50 PM Changeset in webkit [269998] by ysuzuki@apple.com
  • 16 edits in trunk

[JSC] Improve Wasm binary test coverage
https://bugs.webkit.org/show_bug.cgi?id=204843

Reviewed by Darin Adler.

JSTests:

  • wasm/function-tests/grow-memory.js:

(binaryShouldNotParse):

  • wasm/spec-tests/binary-leb128.wast.js:
  • wasm/spec-tests/binary.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

This patch fixes some of bugs in wasm parser so that we validate malformed wasm modules more strictly.

  1. current_memory / grow_memory should have uint8 flag, not varuint32 flag.
  2. global section should have uint8 mutability information, not varuint32.
  3. memory section should have varuint32 memory count.
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseResizableLimits):
(JSC::Wasm::SectionParser::parseMemory):
(JSC::Wasm::SectionParser::parseGlobalType):

  • wasm/wasm.json:

Source/WTF:

LEBDecoder should have more strict validation. One thing is that, we should reject pattern that includes ignored bits.
For example, in uint32_t, we can represent UINT32_MAX in 5 bytes like this.

0xff, 0xff, 0xff, 0xff, 0x0f
0b1111111_1111111_1111111_1111111_1111

Leading bytes has 0x80 trailing marker. And they includes each 7 bit slice. And the last byte includes 0b1111 part.
But we can also make it in the following form

0xff, 0xff, 0xff, 0xff, 0xff
0b1111111_1111111_1111111_1111111_1111

In the above case, the last byte's upper 4 bits are ignored in the result, and this is wrong in LEB128 encoding.
We should reject this input since the last byte includes overflown bits.
This patch adds this validation to WTF.

  • wtf/LEBDecoder.h:

(WTF::LEBDecoder::maxByteLength):
(WTF::LEBDecoder::lastByteMask):
(WTF::LEBDecoder::decodeUInt):
(WTF::LEBDecoder::decodeInt):

Tools:

We add more tests for LEBDecoder. In particular, the added tests focus on the case which overflow bits.

  • TestWebKitAPI/Tests/WTF/LEBDecoder.cpp:

(TestWebKitAPI::toString):
(TestWebKitAPI::testUInt32LEBDecode):
(TestWebKitAPI::TEST):
(TestWebKitAPI::testUInt64LEBDecode):
(TestWebKitAPI::testInt32LEBDecode):
(TestWebKitAPI::testInt64LEBDecode):

3:38 PM Changeset in webkit [269997] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r269227?): Flaky crash in WebCore::DOMPromiseProxy seen with imported/w3c/web-platform-tests/service-workers/service-worker/referrer-toplevel-script-fetch.https.html
https://bugs.webkit.org/show_bug.cgi?id=219009
<rdar://problem/71464073>

Reviewed by Geoffrey Garen.

The lambda in ServiceWorkerContainer::ready() was dereferencing m_readyPromise unconditionally.
This is not correct and we need a null-check since ServiceWorkerContainer::stop() nulls out
m_readyPromise.

No new tests, already covered by existing test that is flakily crashing.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ready):

3:26 PM Changeset in webkit [269996] by Chris Dumez
  • 2 edits
    2 deletes in trunk/LayoutTests/imported/w3c

Unreviewed, drop manual test in web-platform-tests/notifications.

  • web-platform-tests/notifications/shownotification-resolve-manual.https-expected.txt: Removed.
  • web-platform-tests/notifications/shownotification-resolve-manual.https.html: Removed.
  • web-platform-tests/notifications/w3c-import.log:
3:25 PM Changeset in webkit [269995] by Alan Coon
  • 1 copy in tags/Safari-610.4.1

Tag Safari-610.4.1.

3:22 PM Changeset in webkit [269994] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.1.5

Tag Safari-610.3.7.1.5.

3:01 PM Changeset in webkit [269993] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Drop redundant code that tries to bump the QoS of the WebContent main thread of UserInteractive when handling a sync IPC
https://bugs.webkit.org/show_bug.cgi?id=219110

Reviewed by Alex Christensen.

Drop redundant code that tries to bump the QoS of the WebContent main thread of UserInteractive when
handling a sync IPC. Nowadays, we always run the main thread of the WebContent at UserInteractive QoS
(see WTF::Thread::setCurrentThreadIsUserInteractive() call in WebProcess::initializeWebProcess()) so
there is no need to boost the QoS during a sync IPC.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::processIncomingMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::setShouldBoostMainThreadOnSyncMessage): Deleted.

  • Platform/IPC/Decoder.h:

(IPC::Decoder::setQOSClassOverride): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

2:50 PM Changeset in webkit [269992] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add timeout to network requests
https://bugs.webkit.org/show_bug.cgi?id=218994

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(BugzillaMixin.fetch_data_from_url_with_authentication): Added timeout to requests.get() call.
(BugzillaMixin.fetch_data_from_url): Ditto.
(ValidateCommiterAndReviewer.load_contributors_from_trac): Ditto.
(CheckPatchStatusOnEWSQueues.get_patch_status): Ditto.

2:48 PM Changeset in webkit [269991] by Keith Rollin
  • 2 edits in trunk/Tools

Extend check-for-inappropriate-files-in-framework to check for .tmp files
https://bugs.webkit.org/show_bug.cgi?id=219064
<rdar://problem/71519010>

Reviewed by Alexey Proskuryakov.

Some *.tmp files that were generated from post-processing header files
were appearing in *.framework/Headers directories. The problem doesn't
seem to be occurring any more, but update
check-for-inappropriate-files-in-framework to catch it if it does
again.

  • Scripts/check-for-inappropriate-files-in-framework:
2:44 PM Changeset in webkit [269990] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Respect --result-report-flavor on device ports
https://bugs.webkit.org/show_bug.cgi?id=219112
<rdar://problem/71553965>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort.configuration_for_upload): Add flavor to the configuration, if flag passed.

2:42 PM Changeset in webkit [269989] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC][Integration] Line::enclosingRect should only include the border box (exclude vertical margins)
https://bugs.webkit.org/show_bug.cgi?id=219106

Reviewed by Antti Koivisto.

LineIteratorPath::top/bottom expects border box enclosing values (and not margin box values).
(and while we are here, let's just compute the vertical enclosing values and ignore the horizontal aspect of it as the line box always
encloses all the inline level boxes on the line anyway)

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalMarginRectForInlineLevelBox const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const): Deleted.

  • layout/inlineformatting/InlineLineBox.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::enclosingContentTop const):
(WebCore::LayoutIntegration::Line::enclosingContentBottom const):
(WebCore::LayoutIntegration::Line::enclosingContentRect const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::top const):
(WebCore::LayoutIntegration::LineIteratorModernPath::bottom const):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

2:41 PM Changeset in webkit [269988] by Matt Lewis
  • 2 edits in trunk/Tools

Big Sur testers failing to download build products
https://bugs.webkit.org/show_bug.cgi?id=219095

Reviewed by Aakash Jain.

Fixing the url parsing to deal with special characters. Also
reworking the imports to help with transition to python3.

  • CISupport/download-built-product:

(main):

2:34 PM Changeset in webkit [269987] by Chris Dumez
  • 4 edits in trunk/LayoutTests

REGRESSION (r269598): [ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=219008
<rdar://problem/71463894>

LayoutTests/imported/w3c:

Unreviewed, rebaseline test.

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub-expected.txt:

LayoutTests:

Unreviewed, address flakiness by silencing JS CONSOLE messages.

2:26 PM Changeset in webkit [269986] by Ross Kirsling
  • 7 edits
    13 copies
    23 adds
    3 deletes in trunk/JSTests

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

Reviewed by Yusuke Suzuki.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/:
  • test262/test262-Revision.txt:
2:04 PM Changeset in webkit [269985] by Darin Adler
  • 6 edits
    2 deletes in trunk

Remove advanced plug-in feature: small plug-in blocking
https://bugs.webkit.org/show_bug.cgi?id=219101

Reviewed by Anders Carlsson.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::pluginIsSmall): Deleted.
(WebKit::WebPage::createPlugin): Removed code that blocks small plug-ins.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml: Removed BlockingOfSmallPluginsEnabled.

LayoutTests:

  • platform/mac-wk1/TestExpectations: Removed small-plugin-blocked.html.
  • plugins/small-plugin-blocked-expected.txt: Removed.
  • plugins/small-plugin-blocked.html: Removed.
2:04 PM Changeset in webkit [269984] by graouts@webkit.org
  • 7 edits
    3 moves
    1 add in trunk/Source/WebCore

Move <model> code under Modules/model-element
https://bugs.webkit.org/show_bug.cgi?id=219104

Reviewed by Dean Jackson.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/model-element/HTMLModelElement.cpp: Renamed from Source/WebCore/html/HTMLModelElement.cpp.
  • Modules/model-element/HTMLModelElement.h: Renamed from Source/WebCore/html/HTMLModelElement.h.
  • Modules/model-element/HTMLModelElement.idl: Renamed from Source/WebCore/html/HTMLModelElement.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
1:57 PM Changeset in webkit [269983] by Chris Dumez
  • 5 edits in trunk

[iOS] beforeunload event does not fire in MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=219102
<rdar://problem/70550655>

Reviewed by Geoff Garen.

Source/WebCore:

MobileSafari on iOS does not implement WKUIDelegate's runJavaScriptAlertPanelWithMessage because
it never shows any before unload prompt. When the client does not implement this delegate,
Chrome::canRunBeforeUnloadConfirmPanel() returns false and this was causing
FrameLoader::shouldClose() to return early, before even firing the beforeunload event in each
frame. I updated our logic so that we now fire the beforeunload events no matter what and we
merely do not attempt to show the beforeunload prompt when Chrome::canRunBeforeUnloadConfirmPanel()
return false, similarly to what we do when the document does not have a user gesture.

Note that we already fire the pagehide and unload events on iOS so this is not a significant
change in policy.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldClose):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/beforeunload.html:
  • TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:

(-[UIDelegateWithoutRunBeforeUnload webViewDidClose:]):
(-[BeforeUnloadMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

1:47 PM Changeset in webkit [269982] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[iOS] Rebaseline two tests once EWS is updated to iOS 14.2

Unreviewed test gardening.

  • platform/ios/TestExpectations:

Temporarily mark two tests as failing so we don't see false positives on iOS EWS bots
while they are in the process of being updated. We can revert this and rebaseline the
tests once all bots are updated to the newest SDK.

1:38 PM Changeset in webkit [269981] by Kocsen Chung
  • 1 copy in tags/Safari-611.1.5.2

Tag Safari-611.1.5.2.

1:24 PM Changeset in webkit [269980] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip more webaudio tests on Rosetta.

Those tests are still failing on Apple Silicon but not with Rosetta.

  • platform/mac/TestExpectationsRosetta:
1:19 PM Changeset in webkit [269979] by Chris Dumez
  • 4 edits
    2 deletes in trunk/LayoutTests

Drop outdated webaudio/convolution-mono-mono.html test
https://bugs.webkit.org/show_bug.cgi?id=219107

Reviewed by Geoffrey Garen.

Drop outdated webaudio/convolution-mono-mono.html test.

An updated version is already present at:
imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono.html

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/TestExpectationsRosetta:
  • webaudio/convolution-mono-mono-expected.txt: Removed.
  • webaudio/convolution-mono-mono.html: Removed.
1:09 PM Changeset in webkit [269978] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip several webaudio tests on Apple Silicon.

Those tests are no longer failing or flaky on this platform.

  • platform/mac/TestExpectations:
12:50 PM Changeset in webkit [269977] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[iOS][FCR] Use new glyph for -webkit-list-button
https://bugs.webkit.org/show_bug.cgi?id=219040
<rdar://problem/71493560>

Reviewed by Wenson Hsieh.

This updates the appearance of the disclosure button used to view
datalist options for text inputs.

  • css/iOSFormControlRefresh.css:

(input::-webkit-list-button): The glyph is taken from SF Symbols.

12:45 PM Changeset in webkit [269976] by Russell Epstein
  • 8 edits in branches/safari-611.1.5-branch/Source

Versioning.

WebKit-7611.1.5.2

12:28 PM Changeset in webkit [269975] by Aditya Keerthi
  • 5 edits
    11 adds in trunk

[iOS][FCR] Add new look for radio buttons
https://bugs.webkit.org/show_bug.cgi?id=219046
<rdar://problem/71498263>

Reviewed by Wenson Hsieh.

Source/WebCore:

Tests: fast/forms/ios/form-control-refresh/radio/border.html

fast/forms/ios/form-control-refresh/radio/checked-appearance.html
fast/forms/ios/form-control-refresh/radio/disabled-appearance.html
fast/forms/ios/form-control-refresh/radio/ignored-properties.html
fast/forms/ios/form-control-refresh/radio/width-height.html

  • css/iOSFormControlRefresh.css:

(input:matches([type="checkbox"], [type="radio"])):

Use "border: initial" and "box-sizing: border-box" to match macOS, now
that the native radio button styles on macOS and iOS are similar. This
also aligns with the new iOS checkbox style.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintRadioDecorations):

Move away from using paintRadioDecorations to paintRadio for the new
design. This is necessary to avoid painting custom borders and backgrounds
for native checkboxes, matching macOS. Painting both a CSS background as
well as the native checkbox can lead to background bleeding. Customizations
can still be made using "-webkit-appearance: none".

(WebCore::RenderThemeIOS::paintRadio):

A new implementation for painting radio buttons to match the updated
design. If the button is unchecked, a single circle is painted.
Otherwise, an inner and outer circle are painted.

LayoutTests:

Added tests to verify the stylability of native radio buttons and to
verify that different states are painted with a different appearance.

  • fast/forms/ios/form-control-refresh/radio/border-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/radio/border.html: Added.
  • fast/forms/ios/form-control-refresh/radio/checked-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/radio/checked-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/radio/disabled-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/radio/disabled-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/radio/ignored-properties-expected.html: Added.
  • fast/forms/ios/form-control-refresh/radio/ignored-properties.html: Added.
  • fast/forms/ios/form-control-refresh/radio/width-height-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/radio/width-height.html: Added.
12:22 PM Changeset in webkit [269974] by ysuzuki@apple.com
  • 75 edits
    17 adds in trunk

Unreviewed, relanding r269940
https://bugs.webkit.org/show_bug.cgi?id=219076

JSTests:

  • wasm/function-tests/trap-load-shared.js: Added.

(wasmFrameCountFromError):

  • wasm/function-tests/trap-store-shared.js: Added.
  • wasm/js-api/test_memory.js:

(binaryShouldNotParse):

  • wasm/stress/shared-memory-errors.js: Added.

(assert.throws):

  • wasm/stress/shared-wasm-memory-buffer.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:

Source/JavaScriptCore:

ARM64E clang optimizer is broken and optimizing forever if Wasm::MemoryHandle::memory() is inlined.
Putting NEVER_INLINE onto this function for now (unfortunate).

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • llint/LLIntPCRanges.h:

(JSC::LLInt::isWasmLLIntPC):

  • llint/LowLevelInterpreter.asm:
  • llint/WebAssembly.asm:
  • runtime/JSArrayBuffer.h:

(JSC::JSArrayBuffer::toWrappedAllowShared):

  • runtime/JSArrayBufferView.h:
  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::toWrappedAllowShared):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView<Adaptor>::toWrappedAllowShared):

  • runtime/Options.cpp:

(JSC::overrideDefaults):
(JSC::Options::initialize):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):
(JSC::Wasm::enableFastMemory):
(JSC::Wasm::prepareFastMemory):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedBoundsCheckingSize const):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedBoundsCheckingSize):
(JSC::Wasm::Instance::cachedMemorySize const): Deleted.
(JSC::Wasm::Instance::offsetOfCachedMemorySize): Deleted.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::MemoryHandle::MemoryHandle):
(JSC::Wasm::MemoryHandle::~MemoryHandle):
(JSC::Wasm::MemoryHandle::memory const):
(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::create):
(JSC::Wasm::Memory::tryCreate):
(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::growShared):
(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::dump const):
(JSC::Wasm::Memory::~Memory): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.

  • wasm/WasmMemory.h:

(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::operator bool const): Deleted.
(JSC::Wasm::Memory::memory const): Deleted.
(JSC::Wasm::Memory::size const): Deleted.
(JSC::Wasm::Memory::sizeInPages const): Deleted.
(JSC::Wasm::Memory::initial const): Deleted.
(JSC::Wasm::Memory::maximum const): Deleted.
(JSC::Wasm::Memory::mode const): Deleted.
(JSC::Wasm::Memory::check): Deleted.
(JSC::Wasm::Memory::offsetOfMemory): Deleted.
(JSC::Wasm::Memory::offsetOfSize): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::PinnedRegisterInfo::toSave const):

  • wasm/WasmMemoryMode.cpp:

(JSC::Wasm::makeString):

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

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::tryCreate):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::buffer):
(JSC::JSWebAssemblyMemory::growSuccessCallback):

  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyMemoryPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

Source/WebCore:

Tests: js/dom/webassembly-memory-normal-fail.html

js/dom/webassembly-memory-shared-basic.html
js/dom/webassembly-memory-shared-fail.html
storage/indexeddb/shared-memory-structured-clone.html

  • Headers.cmake:
  • Modules/indexeddb/server/IDBSerializationContext.cpp:

(WebCore::IDBServer::IDBSerializationContext::initializeVM):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/IDLTypes.h:
  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):

  • bindings/js/JSDOMConvertBufferSource.h:

(WebCore::Detail::BufferSourceConverter::convert):
(WebCore::Converter<IDLArrayBuffer>::convert):
(WebCore::Converter<IDLDataView>::convert):
(WebCore::Converter<IDLInt8Array>::convert):
(WebCore::Converter<IDLInt16Array>::convert):
(WebCore::Converter<IDLInt32Array>::convert):
(WebCore::Converter<IDLUint8Array>::convert):
(WebCore::Converter<IDLUint16Array>::convert):
(WebCore::Converter<IDLUint32Array>::convert):
(WebCore::Converter<IDLUint8ClampedArray>::convert):
(WebCore::Converter<IDLFloat32Array>::convert):
(WebCore::Converter<IDLFloat64Array>::convert):
(WebCore::Converter<IDLArrayBufferView>::convert):
(WebCore::Converter<IDLAllowSharedAdaptor<T>>::convert):

  • bindings/js/JSDOMConvertUnion.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/SerializedScriptValue.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::initNormalWorld):

  • bindings/js/WebCoreJSClientData.h:
  • bindings/js/WebCoreTypedArrayController.cpp:

(WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController):
(WebCore::WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread):

  • bindings/js/WebCoreTypedArrayController.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(IsAnnotatedType):
(GetAnnotatedIDLType):

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

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObjPrototypeFunction_encodeIntoBody):
(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • bindings/scripts/test/TestObj.idl:
  • dom/TextDecoder.idl:
  • dom/TextDecoderStreamDecoder.idl:
  • dom/TextEncoder.idl:
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):

  • workers/WorkerOrWorkletGlobalScope.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController):

  • workers/WorkerOrWorkletScriptController.h:
  • workers/WorkerThreadType.h: Added.
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):

Source/WTF:

  • wtf/PlatformEnable.h:

LayoutTests:

  • js/dom/resources/webassembly-memory-normal-fail-worker.js: Added.
  • js/dom/resources/webassembly-memory-shared-worker.js: Added.

(onmessage):

  • js/dom/webassembly-memory-normal-fail-expected.txt: Added.
  • js/dom/webassembly-memory-normal-fail.html: Added.
  • js/dom/webassembly-memory-shared-basic-expected.txt: Added.
  • js/dom/webassembly-memory-shared-basic.html: Added.
  • js/dom/webassembly-memory-shared-fail-expected.txt: Added.
  • js/dom/webassembly-memory-shared-fail.html: Added.
  • platform/win/TestExpectations:
  • storage/indexeddb/resources/shared-memory-structured-clone.js: Added.

(prepareDatabase):
(async startTests):
(testSharedWebAssemblyMemory):

  • storage/indexeddb/shared-memory-structured-clone-expected.txt: Added.
  • storage/indexeddb/shared-memory-structured-clone.html: Added.
12:14 PM Changeset in webkit [269973] by Simon Fraser
  • 36 edits
    2 adds in trunk

Propagate wheel event handling back to the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=219050

Reviewed by Chris Dumez.
Source/WebCore:

Prepare to fix webkit.org/b/218764 by adding a way for the main thread to communicate back
to the scrolling thread information about whether the wheel event was dispatched to JS,
and whether preventDefault() was called on it.

The EventHandling enum has bits that are set when the event is dispatched to JS,
when it's canceled, and if default handling happened. These values are filled in
Element::dispatchWheelEvent(). They propagate back to the scrolling thread via
EventHandler::wheelEventWasProcessedByMainThread(), whose macOS implementation
calls into the ScrollingCoordinator, which will set state on the ScrollingTree in
a future patch.

WheelEventTestMonitor gains a "reason" flag to track the async propagation of
wheelEventWasProcessedByMainThread() back to the scrolling thread.

This patch also adds infrastructure for the scrolling thread to specify that wheel events
sent to the main thread will be uncancelable; WheelEventProcessingSteps gains
MainThreadForNonBlockingDOMEventDispatch and MainThreadForBlockingDOMEventDispatch,
and if MainThreadForNonBlockingDOMEventDispatch is set, then we create
WheelEvents with IsCancelable::No. This will be the case for wheel events in
the passive event region.

Rename ScrollingCoordinator::handleWheelEvent() to performDefaultWheelEventHandling()
for clarity, and stop passing the FrameView* which was unused.

Add a missing lock in ThreadedScrollingTree::handleWheelEventAfterMainThread().

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent):

  • dom/Element.h:
  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::create):

  • dom/WheelEvent.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::wheelEventWasProcessedByMainThread):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleWheelEventInternal):

  • page/EventHandler.h:
  • page/FrameView.cpp:

(WebCore::FrameView::wheelEvent):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::dispatchLockedWheelEvent):

  • page/WheelEventTestMonitor.cpp:

(WebCore::operator<<):

  • page/WheelEventTestMonitor.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::wheelEvent):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::wheelEventWasProcessedByMainThread):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::performDefaultWheelEventHandling):
(WebCore::ScrollingCoordinator::wheelEventWasProcessedByMainThread):
(WebCore::ScrollingCoordinator::handleWheelEvent): Deleted.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::determineWheelEventProcessing):
(WebCore::ScrollingTree::handleWheelEvent):

  • page/scrolling/ScrollingTree.h:

(WebCore::WheelEventHandlingResult::needsMainThreadProcessing const):

  • page/scrolling/ScrollingTreeLatchingController.cpp:

(WebCore::ScrollingTreeLatchingController::receivedWheelEvent): Send in WheelEventProcessingSteps which
a future patch will use.

  • page/scrolling/ScrollingTreeLatchingController.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread): There was a missing lock here.
(WebCore::ThreadedScrollingTree::wheelEventWasProcessedByMainThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::performDefaultWheelEventHandling):
(WebCore::nextDeferIdentifier):
(WebCore::ScrollingCoordinatorMac::wheelEventWasProcessedByMainThread):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent): Deleted.

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::performDefaultWheelEventHandling):
(WebCore::ScrollingCoordinatorNicosia::wheelEventWasProcessedByMainThread):
(WebCore::ScrollingCoordinatorNicosia::handleWheelEvent): Deleted.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
  • platform/PlatformEvent.h:
  • platform/PlatformWheelEvent.cpp:

(WebCore::operator<<): Add dumping of EventHandling.

  • platform/PlatformWheelEvent.h:

Source/WebKit:

For now, use MainThreadForBlockingDOMEventDispatch for the default steps (used by non-macOS platforms).

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

Source/WebKitLegacy/win:

Use MainThreadForBlockingDOMEventDispatch.

  • WebView.cpp:

(WebView::mouseWheel):

LayoutTests:

  • fast/events/wheel/wheel-event-in-passive-region-non-cancelable-expected.txt: Added.
  • fast/events/wheel/wheel-event-in-passive-region-non-cancelable.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:02 PM Changeset in webkit [269972] by Chris Dumez
  • 11 edits in trunk/LayoutTests

[Rosetta] webaudio/BiquadFilter/tail-time-*.html tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=219096

Reviewed by Geoffrey Garen.

  • platform/mac/TestExpectationsRosetta:

Unskip tests as they should no longer be flaky.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback):
Strip some text from tests output that tends to cause flakiness.

  • webaudio/BiquadFilter/tail-time-allpass-expected.txt:
  • webaudio/BiquadFilter/tail-time-bandpass-expected.txt:
  • webaudio/BiquadFilter/tail-time-highpass-expected.txt:
  • webaudio/BiquadFilter/tail-time-highshelf-expected.txt:
  • webaudio/BiquadFilter/tail-time-lowpass-expected.txt:
  • webaudio/BiquadFilter/tail-time-lowshelf-expected.txt:
  • webaudio/BiquadFilter/tail-time-notch-expected.txt:
  • webaudio/BiquadFilter/tail-time-peaking-expected.txt:

Rebaseline WPT tests now that their output has been simplified.

11:31 AM Changeset in webkit [269971] by Alan Coon
  • 2 edits in branches/safari-611.1.6-branch/Source/WebKit

Cherry-pick r269966. rdar://problem/71547830

[macOS] Fix message filter sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=219090
<rdar://problem/71522043>

Reviewed by Geoffrey Garen.

The message filter in the WebContent process on macOS needs to allow some additional messages.

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

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

11:31 AM Changeset in webkit [269970] by Alan Coon
  • 2 edits in branches/safari-611.1.6-branch/Source/WebCore

Cherry-pick r269944. rdar://problem/71547824

REGRESSION(r269614): [iOS] WebContent crashes when entering Full Screen video with text captions
https://bugs.webkit.org/show_bug.cgi?id=219065

Reviewed by Tim Horton.

Pass a CGImageRef of the video caption to CALayer instead of passing a
NativeImage which is now a WebCore class.

  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: (WebCore::TextTrackRepresentationCocoa::update):

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

10:42 AM Changeset in webkit [269969] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

Clean up some code in SharedDisplayListHandle
https://bugs.webkit.org/show_bug.cgi?id=219089

Reviewed by Geoff Garen.

Currently, reservedCapacityAtStart is defined as a constant 16 bytes, which is enough to encompass the
contents of the header structure in a shared display list handle (i.e. an 8-byte atomic for the lock, and
another 8 bytes for the unread count).

Instead of hard-coding this, we could simply make this a constexpr function that returns the size of
DisplayListSharedMemoryHeader (rounded up to ensure alignment of all display list item data).

No change in behavior.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):
(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):

  • Shared/SharedDisplayListHandle.h:

(WebKit::SharedDisplayListHandle::headerSize):

  • WebProcess/GPU/graphics/DisplayListWriterHandle.cpp:

(WebKit::DisplayListWriterHandle::resetWritableOffsetIfPossible):

  • WebProcess/GPU/graphics/DisplayListWriterHandle.h:

(WebKit::DisplayListWriterHandle::DisplayListWriterHandle):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

Also add a static assert that the size of a newly allocated buffer is larger than the reserved header capacity.

10:35 AM Changeset in webkit [269968] by graouts@webkit.org
  • 4 edits
    4 copies
    1 add
    1 delete in trunk/LayoutTests

Tests for the <model> element should be in a dedicated top-level directory
https://bugs.webkit.org/show_bug.cgi?id=219077

Reviewed by Dean Jackson.

Move the tests for the <model> element from system-preview/model to the top-level model-element directory.
Tests under this directory run only on macOS and iOS following where the ENABLE_MODEL_ELEMENT is defined.

  • TestExpectations:
  • model-element/model-element-expected.txt: Renamed from LayoutTests/system-preview/model/model-element-expected.txt.
  • model-element/model-element-source-expected.txt: Renamed from LayoutTests/system-preview/model/model-element-source-expected.txt.
  • model-element/model-element-source.html: Renamed from LayoutTests/system-preview/model/model-element-source.html.
  • model-element/model-element.html: Renamed from LayoutTests/system-preview/model/model-element.html.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:14 AM Changeset in webkit [269967] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unskip a few WebAudio tests that are no longer failing on Rosetta since r269853.

  • platform/mac/TestExpectationsRosetta:
10:06 AM Changeset in webkit [269966] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix message filter sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=219090
<rdar://problem/71522043>

Reviewed by Geoffrey Garen.

The message filter in the WebContent process on macOS needs to allow some additional messages.

  • WebProcess/com.apple.WebProcess.sb.in:
10:02 AM Changeset in webkit [269965] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/JSTests

[JSC] Import V8 private instance fields tests
https://bugs.webkit.org/show_bug.cgi?id=219075

Patch by Xan Lopez <Xan Lopez> on 2020-11-18
Reviewed by Yusuke Suzuki.

  • stress/class-fields-private-harmony.js: Added.
9:59 AM Changeset in webkit [269964] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r269774): [ Mac WK2 ] fast/lists/001.html and fast/lists/001-vertical.html are flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=218995

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:51 AM Changeset in webkit [269963] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[Web Animations] Ensure we don't schedule animation udpates when there are no styles to update
https://bugs.webkit.org/show_bug.cgi?id=219071

Reviewed by Simon Fraser.

Source/WebCore:

Test: webanimations/scheduling-of-animation-without-keyframes.html

For keyframe effects that don't interpolate any CSS property, run the same logic that we already run
to determine when to schedule the next animation update in the case where we are running accelerated
animations.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::timeToNextTick const):

LayoutTests:

Add a test that creates animations with various empty keyframes parameters to check that we don't
schedule animation update for them.

  • webanimations/scheduling-of-animation-without-keyframes-expected.txt: Added.
  • webanimations/scheduling-of-animation-without-keyframes.html: Added.
9:45 AM Changeset in webkit [269962] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

Support <source> as a child of <model> to specify the current source
https://bugs.webkit.org/show_bug.cgi?id=219080

Reviewed by Dean Jackson.

Source/WebCore:

Test: system-preview/model/model-element-source.html

  • html/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::sourcesChanged):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::didMoveToNewDocument):

  • html/HTMLModelElement.h:
  • html/HTMLModelElement.idl:
  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedIntoAncestor):
(WebCore::HTMLSourceElement::removedFromAncestor):
(WebCore::HTMLSourceElement::parseAttribute):

LayoutTests:

Add a series of tests for the HTMLModelElement.currentSrc property and its relationship with <source> elements.

  • system-preview/model/model-element-source-expected.txt: Added.
  • system-preview/model/model-element-source.html: Added.
8:58 AM Changeset in webkit [269961] by Russell Epstein
  • 3 edits in branches/safari-610.3.7.1-branch/Source/JavaScriptCore

Cherry-pick r269931. rdar://problem/71540532

Add more info to the RELEASE_ASSERT inside Parser::parseInner
https://bugs.webkit.org/show_bug.cgi?id=219054
<rdar://problem/71506453>

Reviewed by Mark Lam.

We have some crashes here, and it'll be helpful for the crashlogs to have
more info in the register state.

  • parser/Lexer.h: (JSC::Lexer::codeLength):
  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

8:39 AM Changeset in webkit [269960] by Chris Dumez
  • 4 edits in trunk

navigator.clipboard is not exposed on *.localhost pages
https://bugs.webkit.org/show_bug.cgi?id=219020

Reviewed by Wenson Hsieh.

Source/WebCore:

Make sure that if the host falls within ".localhost", the security origin is treated as
potentially trustworthy, as per:

This makes sure that API that are exposed only to secure context (such as navigator.clipboad)
are exposed on subdomains of localhost.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress):

Tools:

Extend API test coverage.

  • TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:

(TestWebKitAPI::TEST_F):

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

[build.webkit.org] Update RunPerlTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219083

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(RunPerlTests):
(RunPerlTests.start): Initialized log observer.
(RunPerlTests.parseOutputLine): Parse each log line as they come.
(RunPerlTests.countFailures): Updated to return failedTestCount.

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

[build.webkit.org] Update RunPythonTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219082

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(RunPythonTests):
(RunPythonTests.start): Initialized log observer.
(RunPythonTests.parseOutputLine): Parse each log line as they come.
(RunPythonTests.countFailures): Updated to return failedTestCount.

8:03 AM Changeset in webkit [269957] by Chris Lord
  • 13 edits
    2 adds in trunk

Make CSS font shorthands parsable within a worker (i.e. without CSSValuePool)
https://bugs.webkit.org/show_bug.cgi?id=202794

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/text-styles/2d.text.font.parse.invalid-expected.txt:

Source/WebCore:

Add functions to make it possible to parse CSS font shorthand
properties without using CSS values, so it can be done safely off of
the main thread. To support and test this, also add functions to make
it possible to resolve those properties into a style without
StyleBuilder and use that within CanvasRenderingContext2D.

No new tests, covered by existing tests.

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

(WebCore::CSSParser::parseFontWorkerSafe):

  • css/parser/CSSParser.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontWeight):
(WebCore::consumeFontStretchKeywordValue):
(WebCore::consumeFontStyle):
(WebCore::consumeFamilyName):

  • css/parser/CSSPropertyParser.h:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeIdentRaw):
(WebCore::CSSPropertyParserHelpers::consumeIdent):
(WebCore::CSSPropertyParserHelpers::consumeIdentRangeRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontVariantCSS21Raw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightKeywordValueRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontStretchKeywordValueRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontStyleKeywordValueRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontStyleRaw):
(WebCore::CSSPropertyParserHelpers::concatenateFamilyName):
(WebCore::CSSPropertyParserHelpers::consumeFamilyNameRaw):
(WebCore::CSSPropertyParserHelpers::consumeGenericFamilyRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontFamilyRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontSizeRaw):
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWorkerSafe):
(WebCore::CSSPropertyParserHelpers::genericFontFamilyFromValueID):

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::consumeIdentRaw):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueFontFamily):

  • style/StyleResolveForFontRaw.cpp: Added.

(WebCore::Style::resolveForFontRaw):

  • style/StyleResolveForFontRaw.h: Added.
7:36 AM Changeset in webkit [269956] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[GPUProcess] Main thread of the GPUProcess should have same priority as main thread of the WebContent
https://bugs.webkit.org/show_bug.cgi?id=219057

Reviewed by Simon Fraser.

Main thread of the GPUProcess should have same priority as main thread of the WebContent since it
is doing rendering on its behalf.

For now, this means that on macOS, the main threads of the GPU and WebContent processes with both
get UserInteractive QoS. On iOS, they will both still get UserInitiated QoS until our RunningBoard
foreground process assertion get fixed to get the right priority (<rdar://problem/71499731>).

  • GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-OSX.plist:

Use _ProcessType=App, similarly as what we do for the WebContent process. If we don't do
this, the process is an adaptive daemon and its QoS can never be higher than UserInitiated.
We need its priority to go to UserInteractive to match the WebContent process.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):
Request UserInteractive QoS for the main thread of the GPUProcess, similarly to what we do
for the main thread of the WebContent process already in WebProcess::InitializeWebProcess().

7:21 AM WebKitGTK/2.30.x edited by Michael Catanzaro
(diff)
7:11 AM Changeset in webkit [269955] by commit-queue@webkit.org
  • 4 edits in trunk

[WPE][GTK] Update Outlook user agent quirk
https://bugs.webkit.org/show_bug.cgi?id=219049

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-18
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Users report that our user agent quirk for Outlook no longer works. Problem is
outlook.live.com has moved to outlook.office.com. Thanks to Adrian Vovk for rebuilding
WebKit to confirm that this patch fixes the issue.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

7:03 AM Changeset in webkit [269954] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

RenderTreeBuilderBlock using an incorrect anonymous parent to attach a new renderer
https://bugs.webkit.org/show_bug.cgi?id=218505

Reviewed by Antti Koivisto.

Let's consider the following simplified render tree:

PARENT
|_beforeChildAnonymousContainer

|_hierarchy of anonymous blocks

|_beforeChild

When RenderTreeBuilderBlock is attaching a new renderer given PARENT and beforeChild, it first tries to attach it to the PARENT
if beforeChild is a direct child of PARENT. Otherwise it assumes that beforeChild is the direct child of an anonymous block which is
in between PARENT and beforeChild. However in some cases, as the one presented above, beforeChild might have a whole hierarchy of
anonymous blocks in between. That's why we cannot assume that beforeChild->parent() is a direct child of PARENT. Instead we should use
beforeChildAnonymousContainer as the parent of the new renderer.

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation): Use beforeChildAnonymousContainer instead of beforeChild->parent().

7:01 AM Changeset in webkit [269953] by weinig@apple.com
  • 21 edits
    1 move in trunk/Source

Address additional feedback from https://bugs.webkit.org/show_bug.cgi?id=218960
https://bugs.webkit.org/show_bug.cgi?id=219044

Reviewed by Alex Christensen.

Source/WebCore:

Address post-review feedback from Darin.

  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/DataDetectorType.h: Added.
  • editing/cocoa/DataDetectorTypes.h: Removed.
  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm:
  • loader/FrameLoader.cpp:
  • page/SettingsBase.h:
  • page/Settings.yaml:

Rename DataDetectorTypes to DataDetectorType.

  • accessibility/ForcedAccessibilityValue.h:

Put the definition all on one line for easier reading.

  • bindings/scripts/CodeGenerator.pm:

(WK_ucfirst):

  • editing/EditingBehaviorType.h:

Special case "ios" so that it doesn't become "Ios" but rather "iOS".

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::setActive):
Fixup comment adding period and making it all one line.

  • page/FrameView.cpp:
  • page/FrameView.h:

Use forward declaration for FrameFlattening enum.

  • page/PDFImageCachingPolicy.h:
  • platform/graphics/cg/PDFDocumentImage.h:

Remove default value enumeration value and replace it with a standalone constexpr.

Source/WebKit:

  • Shared/API/Cocoa/WKDataDetectorTypesInternal.h:

(fromWKDataDetectorTypes):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::detectDataInAllFrames):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::detectDataInAllFrames):
Update for rename of WebCore::DataDetectionTypes to WebCore::DataDetectionType.

4:25 AM Changeset in webkit [269952] by commit-queue@webkit.org
  • 23 edits in trunk/Source/WebCore

GraphicsContextGL should have robust multivalue getters
https://bugs.webkit.org/show_bug.cgi?id=218976

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-18
Reviewed by Simon Fraser.

Change getter calls that are used to obtain single values so that the
value is a normal function return value. This reduces the risk of having
uninitialized out parameter receive location.

Change the getters that are only used to obtain single values so that
the getter itself has the return value. Add a single-value getter for
getters that are used to obtain also multiple values.

Add GCGLSpan type that is used to communicate pair: ptr, number of
elements. This is similar type to std::span in C++20. The type will be
used to receive the multi-value getter results. Use of WTF::Vector as
the return value would be problematic because the call semantics need
the length. Thus the length would be needed to be specified by either
passing in the resized vector or passing in the length. Both of the
options contain redunancy and resizable vector type would still open
interpretation to how the result value would behave. Using std::array
would be problematic because it cannot have dynamic length. GCGLSpan is
not a return value since it does not carry its data. A span is only a
view to existing data store.

The type GCGLSpan will be used to simplify the GPU process
implementation, since the bufSize will be explicitly associated in the
passed data value type, inside the GCGLSpan type.

In subsequent patches GCGLSpan will be used also for multivalue setters,
i.e. arbitrary buffer stores, i.e. const GLtype ptrs.

Use the RobustANGLE variants of the GL API implementation to obtain the
values.

Remove the corresponding RobustANGLE variants from ExtensionsGL, they
are dead code and unused.

Removes requiresRestrictedMaximumTextureSize workaround from ANGLE
GraphicsContextGLOpenGL code, it was dead code (i.e flag always false).
This should be done in ANGLE level.

Fixes cosmetic bugs where uninitialized value was used to store the
location of the gotten property. This value would be unwritten in
edge-cases like GL errors, and thus the read would touch unuinitialized
value.

Fixes a cosmetic bug where uniform block variables code would pass in
too large buffer size to the RobustANGLE call. The bufSize refers to the
number of elements, but the code passed in the size of the buffer (i.e.
number of elements * size of element).

No new tests, a refactor.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::transferToImageBitmap):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::getInt64Parameter):
(WebCore::WebGL2RenderingContext::getTexParameter):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGL2RenderingContext::getMaxDrawBuffers):
(WebCore::WebGL2RenderingContext::getMaxColorAttachments):

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):

  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::initializeAttachments):

  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::cacheActiveAttribLocations):
(WebCore::WebGLProgram::cacheInfoIfNeeded):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getMaxDrawBuffers):
(WebCore::WebGLRenderingContext::getMaxColorAttachments):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::getBufferParameter):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getRenderbufferParameter):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::getBooleanParameter):
(WebCore::WebGLRenderingContextBase::getFloatParameter):
(WebCore::WebGLRenderingContextBase::getIntParameter):
(WebCore::WebGLRenderingContextBase::getUnsignedIntParameter):
(WebCore::WebGLRenderingContextBase::getMaxDrawBuffers):
(WebCore::WebGLRenderingContextBase::getMaxColorAttachments):

  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/GraphicsContextGL.h:

(WebCore::GraphicsContextGL::getFloat):
(WebCore::GraphicsContextGL::getBoolean):
(WebCore::GraphicsContextGL::getInteger):
(WebCore::GraphicsContextGL::getActiveUniformBlocki):

  • platform/graphics/GraphicsTypesGL.h:

(GCGLSpan::GCGLSpan):
(GCGLSpan::operator[]):
(GCGLSpan::operator*):
(std::numeric_limits<size_t>::max):
(makeGCGLSpan):

  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE): Deleted.
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE): Deleted.

  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64):
(WebCore::GraphicsContextGLOpenGL::getInteger64i):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLOpenGL::getProgrami):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getTexParameterf):
(WebCore::GraphicsContextGLOpenGL::getTexParameteri):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBufferParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgramiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv): Deleted.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::ensureEnabled):
(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleanvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getFloatvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferAttachmentParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getIntegervRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getProgramivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getRenderbufferParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getShaderivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getUniformfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getUniformivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribfvRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribivRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribPointervRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getIntegeri_vRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getInteger64vRobustANGLE): Deleted.
(WebCore::ExtensionsGLOpenGLCommon::getInteger64i_vRobustANGLE): Deleted.

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::isEnabled):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegerv):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64):
(WebCore::GraphicsContextGLOpenGL::getInteger64i):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLOpenGL::getProgrami):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getTexParameterf):
(WebCore::GraphicsContextGLOpenGL::getTexParameteri):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribf):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgramiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

3:15 AM Changeset in webkit [269951] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

REGRESSION(r269435): [Debug][GStreamer] Several tests are crashing
https://bugs.webkit.org/show_bug.cgi?id=218735
<rdar://problem/71469947>

Patch by Philippe Normand <pnormand@igalia.com> on 2020-11-18
Reviewed by Carlos Garcia Campos.

Cache the referrer value from the main thread before using it in the GStreamer secondary
thread.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest):
(webKitWebSrcSetMediaPlayer):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
2:55 AM Changeset in webkit [269950] by commit-queue@webkit.org
  • 75 edits
    15 deletes in trunk

Unreviewed, reverting r269940.
https://bugs.webkit.org/show_bug.cgi?id=219076

caused seemingly-infinite build time regression

Reverted changeset:

"[JSC] Implement WebAssembly.Memory with shared"
https://bugs.webkit.org/show_bug.cgi?id=218693
https://trac.webkit.org/changeset/269940

2:44 AM Changeset in webkit [269949] by clopez@igalia.com
  • 2 edits in trunk/Tools

[FlatPak] update-webkitgtk-libs fails after a clean build
https://bugs.webkit.org/show_bug.cgi?id=218724

Reviewed by Philippe Normand.

The issue was caused because when adding a new flatpak repository
via the method FlatpakRepos.add() that repository is not added to
the internal list of available repositories inside the object FlatpakRepos.
So then the check on setup_builddir() added in r268542 failed because
the internal list of repositories on the object FlatpakRepos() was
empty on the first run (after a clean build).
To fix this we ensure to re-generate the internal list of flatpak
repositories any time that a new reporistory is added by calling
FlatpakRepos.update() after FlatpakRepos.add()

On top of that fix, we add another fix to make the code more robust.
Now it allows the generation of toolchains to fail without causing
a fatal error. Also a new check is added in order to retry to generate
the toolchains in the next run if is detected that they were not
correctly generated.

  • flatpak/flatpakutils.py:

(FlatpakRepos.add):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.main):
(WebkitFlatpak.check_toolchains_generated):
(WebkitFlatpak.pack_toolchain):

1:31 AM Changeset in webkit [269948] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix the build with GCC 10

Add a temporary workaround for a GCC 10 bug.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

12:39 AM Changeset in webkit [269947] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WPE][GTK] Update Safari version in user agent header for Safari 14
https://bugs.webkit.org/show_bug.cgi?id=219048

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-18
Reviewed by Carlos Garcia Campos.

See: https://webkit.org/blog/11340/new-webkit-features-in-safari-14/

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

12:28 AM Changeset in webkit [269946] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Release assertion failure in Optional<WebCore::SimpleRange>::operator* via CompositeEditCommand::moveParagraphs
https://bugs.webkit.org/show_bug.cgi?id=218494

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-11-18
Reviewed by Ryosuke Niwa.

Source/WebCore:

This is happening when insert list command is called for a list item containing a body element as a child. When
the tree is iterated looking for the end position, the body element selected as candidate, but a null position
is returned because it's considered to be in a different editing element. This happens because
Node::rootEditableElement() always returns the node itseld for body elements, but it should actually check that
the node is the document body.

Test: editing/inserting/insert-list-with-body-child-crash.html

  • dom/Node.cpp:

(WebCore::Node::isRootEditableElement const): Check node is the document body, not just a body element.
(WebCore::Node::rootEditableElement const): Ditto.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs): Add an assert to ensure it's not called with a null endOfParagraphToMove.

LayoutTests:

  • editing/inserting/insert-list-with-body-child-crash-expected.txt: Added.
  • editing/inserting/insert-list-with-body-child-crash.html: Added.

Nov 17, 2020:

10:37 PM Changeset in webkit [269945] by Diego Pino Garcia
  • 4 edits in trunk/Tools

[buildbot] Add buildAndTest bot for WebKitGTK (GTK4)
https://bugs.webkit.org/show_bug.cgi?id=213016

Reviewed by Carlos Alberto Lopez Perez.

Add a new post-commit bot to test WebKitGTK using GTK4 library.

The bot builds WebKitGTK and runs the following test suites: layout-test, api-test
and webdriver-test.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories.py:

(BuildAndTestAllButJSCFactory):
(BuildAndTestAllButJSCFactory.getProduct):
(BuildAndTestAllButJSCFactory.init):

  • CISupport/build-webkit-org/steps_unittest.py:
10:27 PM Changeset in webkit [269944] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

REGRESSION(r269614): [iOS] WebContent crashes when entering Full Screen video with text captions
https://bugs.webkit.org/show_bug.cgi?id=219065

Reviewed by Tim Horton.

Pass a CGImageRef of the video caption to CALayer instead of passing a
NativeImage which is now a WebCore class.

  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:

(WebCore::TextTrackRepresentationCocoa::update):

10:15 PM Changeset in webkit [269943] by timothy_horton@apple.com
  • 9 edits in trunk/Source/WebKit

GPU-process-hosted RemoteLayerBackingStore should flush off the main thread
https://bugs.webkit.org/show_bug.cgi?id=219063

Reviewed by Simon Fraser.

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):
Construct the ImageBuffer flusher /after/ submitting the final DisplayList,
so that it takes the correct flush identifier.

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::didFlush):
(WebKit::RemoteRenderingBackend::flushDisplayListWasCommitted): Deleted.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::didFlush):
(WebKit::RemoteImageBufferProxy::lastSentFlushIdentifier const):
(WebKit::RemoteImageBufferProxy::waitForDidFlushOnSecondaryThread):
(WebKit::RemoteImageBufferProxy::hasPendingFlush const):
(WebKit::RemoteImageBufferProxy::waitForDidFlushWithTimeout):
(WebKit::ThreadSafeRemoteImageBufferFlusher::ThreadSafeRemoteImageBufferFlusher):
(WebKit::RemoteImageBufferProxy::commitFlushDisplayList): Deleted.
(WebKit::RemoteImageBufferProxy::isPendingFlush const): Deleted.
(WebKit::RemoteImageBufferProxy::timeoutWaitForFlushDisplayListWasCommitted): Deleted.
Some renames:

Rename flushDisplayListWasCommitted to didFlush; this is the back-message from
GPU process to Web Content process that a FlushContext display list item was completed successfully.
Rename isPendingFlush to hasPendingFlush, for grammar.
Rename timeoutWaitForFlushDisplayListWasCommitted to waitForDidFlushWithTimeout, for similar reasons.
Rename waitForFlushDisplayListWasCommitted to waitForDidFlush.
Rename commitFlushDisplayList to didFlush.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::didFlush):
(WebKit::RemoteRenderingBackendProxy::waitForFlushDisplayListWasCommitted): Deleted.
(WebKit::RemoteRenderingBackendProxy::flushDisplayListWasCommitted): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:

Reimplement ThreadSafeRemoteImageBufferFlusher such that it waits
(on the RemoteLayerTreeDrawingArea CommitQueue, in the only current use of it)
for the correct flush reply to come in before continuing. This is analogous
to what we do for in-process buffers, where we call CGContextFlush()
in the flusher.

9:09 PM Changeset in webkit [269942] by Lauro Moura
  • 2 edits
    1 delete in trunk/LayoutTests

[GLIB] Update webaudio baselines after r269853

Unreviewed test gardening.

  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt: Removed.
  • platform/glib/webaudio/BiquadFilter/tail-time-peaking-expected.txt:
9:01 PM Changeset in webkit [269941] by Lauro Moura
  • 4 edits in trunk/LayoutTests

Gardening webrtc/audio-sframe.html flaky crashes

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
7:46 PM Changeset in webkit [269940] by ysuzuki@apple.com
  • 74 edits
    17 adds in trunk

[JSC] Implement WebAssembly.Memory with shared
https://bugs.webkit.org/show_bug.cgi?id=218693

Reviewed by Saam Barati.

JSTests:

  • wasm/function-tests/trap-load-shared.js: Added.

(wasmFrameCountFromError):

  • wasm/function-tests/trap-store-shared.js: Added.
  • wasm/js-api/test_memory.js:

(binaryShouldNotParse):

  • wasm/stress/shared-memory-errors.js: Added.

(assert.throws):

  • wasm/stress/shared-wasm-memory-buffer.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:

Source/JavaScriptCore:

This patch implements shared WebAssembly.Memory. This can be shared between workers like SharedArrayBuffer.
The most interesting thing of shared WebAssembly.Memory is that it is growable. The memory can be grown in
one thread, and immediately, it should be accessible in the other threads.

To achieve that, shared WebAssembly.Memory leverages signaling even if bounds-checking is mainly used.
If the fast memory is enabled, we just use it so that mprotect can make memory grown easily. But if fast memory
is disabled, we allocates requested VA region and perform bounds-checking with this VA. Since WebAssembly.Memory
always requires "maximum" size of memory, we can first allocate VA and map active part of memory first. And
when growing, we perform mprotect to the rest of the memory. Since this VA is not 4GB, we still need to perform
bounds-checking, but we perform bounds-checking with VA size instead of active memory size. As a result, even if
shared WebAssembly.Memory is grown, we do not need to update (1) pointer and (2) bounds-checking size.
The shared bounds-checking WebAssembly.Memory is something like below.

<================================================ maximum ============================><------------ other memory, protected by bounds-checking --...
<======= active ==========><===================== not active yet =====================>
[ if we access this, fault handler will detect it]
pointer bounds checking size

These "growable bound-checking memory" is now managed by wasm memory-manager. And fault handler is used even if fast memory is disabled.
And fault handler also accepts signals from Wasm LLInt code since both bounds-checkings + signalings are required to confine memory access even in
Wasm LLInt. This patch also renamed memory-size and size-register to bounds-checking-size and bounds-checking-size-register since this is no longer
a size of memory.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • llint/LLIntPCRanges.h:

(JSC::LLInt::isWasmLLIntPC):

  • llint/LowLevelInterpreter.asm:
  • llint/WebAssembly.asm:
  • runtime/JSArrayBuffer.h:

(JSC::JSArrayBuffer::toWrappedAllowShared):

  • runtime/JSArrayBufferView.h:
  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::toWrappedAllowShared):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView<Adaptor>::toWrappedAllowShared):

  • runtime/Options.cpp:

(JSC::overrideDefaults):
(JSC::Options::initialize):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):
(JSC::Wasm::enableFastMemory):
(JSC::Wasm::prepareFastMemory):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedBoundsCheckingSize const):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedBoundsCheckingSize):
(JSC::Wasm::Instance::cachedMemorySize const): Deleted.
(JSC::Wasm::Instance::offsetOfCachedMemorySize): Deleted.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::MemoryHandle::MemoryHandle):
(JSC::Wasm::MemoryHandle::~MemoryHandle):
(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::create):
(JSC::Wasm::Memory::tryCreate):
(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::growShared):
(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::dump const):
(JSC::Wasm::Memory::~Memory): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.

  • wasm/WasmMemory.h:

(JSC::Wasm::Memory::addressIsInGrowableOrFastMemory):
(JSC::Wasm::Memory::operator bool const): Deleted.
(JSC::Wasm::Memory::memory const): Deleted.
(JSC::Wasm::Memory::size const): Deleted.
(JSC::Wasm::Memory::sizeInPages const): Deleted.
(JSC::Wasm::Memory::initial const): Deleted.
(JSC::Wasm::Memory::maximum const): Deleted.
(JSC::Wasm::Memory::mode const): Deleted.
(JSC::Wasm::Memory::check): Deleted.
(JSC::Wasm::Memory::offsetOfMemory): Deleted.
(JSC::Wasm::Memory::offsetOfSize): Deleted.
(JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted.

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::PinnedRegisterInfo::toSave const):

  • wasm/WasmMemoryMode.cpp:

(JSC::Wasm::makeString):

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

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::tryCreate):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::buffer):
(JSC::JSWebAssemblyMemory::growSuccessCallback):

  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyMemoryPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

Source/WebCore:

In WebCore, we need three things.

  1. Shared WebAssembly.Memory serialization/deserialization

This patch adds structure-cloning for WebAssembly.Memory to pass it to the other workers. Cloning is available
only when the WebAssembly.Memory is shared mode. And it is only available when we are using it in postMessage.
So we cannot store WebAssembly.Memory in IndexedDB.

  1. WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread

Atomics.wait is usable only in Workers, and *not* usable in Service Workers. When creating VM, we pass WorkerThreadType
and make WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread return appropriate value.

  1. [AllowShared] support for WPT

WPT tests for this are broken, and tests are saying "PASS" while the feature is not implemented at all.
Now, the feature is actually implemented, and WPT tests start showing that [AllowShared] annotation in IDL
is not implemented. [AllowShared] is that, usually, DOM does not accept TypedArray originated from SharedArrayBuffer.
e.g. encodeInto(..., Uint8Array) DOM IDL throws an error if Uint8Array is backed by SharedArrayBuffer.
But in the limited places, we are explicitly allowing this. This is [AllowShared] annotation.
This patch implements that so that we keep passing TextEncoder / TextDecoder tests.

  • Headers.cmake:
  • Modules/indexeddb/server/IDBSerializationContext.cpp:

(WebCore::IDBServer::IDBSerializationContext::initializeVM):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/IDLTypes.h:
  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):

  • bindings/js/JSDOMConvertBufferSource.h:

(WebCore::Detail::BufferSourceConverter::convert):
(WebCore::Converter<IDLArrayBuffer>::convert):
(WebCore::Converter<IDLDataView>::convert):
(WebCore::Converter<IDLInt8Array>::convert):
(WebCore::Converter<IDLInt16Array>::convert):
(WebCore::Converter<IDLInt32Array>::convert):
(WebCore::Converter<IDLUint8Array>::convert):
(WebCore::Converter<IDLUint16Array>::convert):
(WebCore::Converter<IDLUint32Array>::convert):
(WebCore::Converter<IDLUint8ClampedArray>::convert):
(WebCore::Converter<IDLFloat32Array>::convert):
(WebCore::Converter<IDLFloat64Array>::convert):
(WebCore::Converter<IDLArrayBufferView>::convert):
(WebCore::Converter<IDLAllowSharedAdaptor<T>>::convert):

  • bindings/js/JSDOMConvertUnion.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/SerializedScriptValue.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::initNormalWorld):

  • bindings/js/WebCoreJSClientData.h:
  • bindings/js/WebCoreTypedArrayController.cpp:

(WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController):
(WebCore::WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread):

  • bindings/js/WebCoreTypedArrayController.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(IsAnnotatedType):
(GetAnnotatedIDLType):

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

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObjPrototypeFunction_encodeIntoBody):
(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • bindings/scripts/test/TestObj.idl:
  • dom/TextDecoder.idl:
  • dom/TextDecoderStreamDecoder.idl:
  • dom/TextEncoder.idl:
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):

  • workers/WorkerOrWorkletGlobalScope.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController):

  • workers/WorkerOrWorkletScriptController.h:
  • workers/WorkerThreadType.h: Added.
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):

LayoutTests:

  • js/dom/resources/webassembly-memory-normal-fail-worker.js: Added.
  • js/dom/resources/webassembly-memory-shared-worker.js: Added.

(onmessage):

  • js/dom/webassembly-memory-normal-fail-expected.txt: Added.
  • js/dom/webassembly-memory-normal-fail.html: Added.
  • js/dom/webassembly-memory-shared-basic-expected.txt: Added.
  • js/dom/webassembly-memory-shared-basic.html: Added.
  • js/dom/webassembly-memory-shared-fail-expected.txt: Added.
  • js/dom/webassembly-memory-shared-fail.html: Added.
  • platform/win/TestExpectations:
  • storage/indexeddb/resources/shared-memory-structured-clone.js: Added.

(prepareDatabase):
(async startTests):
(testSharedWebAssemblyMemory):

  • storage/indexeddb/shared-memory-structured-clone-expected.txt: Added.
  • storage/indexeddb/shared-memory-structured-clone.html: Added.
7:19 PM Changeset in webkit [269939] by ysuzuki@apple.com
  • 25 edits in trunk

[JSC] Enable static public class fields
https://bugs.webkit.org/show_bug.cgi?id=219058

Reviewed by Saam Barati.

JSTests:

  • stress/big-int-as-property-name.js:
  • stress/class-fields-bytecode-cache.js:
  • stress/class-fields-computed-to-property-key.js:
  • stress/class-fields-function-name.js:
  • stress/class-fields-harmony.js:
  • stress/class-fields-private-use-eval.js:
  • stress/class-fields-proxy-define-property.js:
  • stress/class-fields-stress-instance.js:
  • stress/class-fields-to-property-key-const-string-ftl.js:
  • stress/class-fields-to-property-key-const-symbol-ftl.js:
  • stress/class-fields-to-property-key-slow-object-tostring-ftl.js:
  • stress/class-fields-to-property-key-slow-object-valueof-ftl.js:
  • stress/class-fields-to-property-key-string-object-ftl.js:
  • stress/class-fields-to-property-key-string-or-string-object-ftl.js:
  • stress/class-fields-with-special-names.js:
  • stress/generator-syntax.js:
  • stress/method-name.js:
  • stress/private-name-access-in-computed-property.js:
  • test262/config.yaml:

Source/JavaScriptCore:

Let's flip the runtime flag (usePublicStaticClassFields). And we drop usePublicClassFields flag since it is already shipped.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallValueNode::emitBytecode):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):

  • runtime/OptionsList.h:
5:31 PM Changeset in webkit [269938] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION (r269744): ASSERTION FAILED: m_hasValidContentHeight in WebCore::Layout::BoxGeometry::contentBoxHeight()
https://bugs.webkit.org/show_bug.cgi?id=219004
<rdar://problem/71459284>

Reviewed by Antti Koivisto.

Unfortunately we have to disable all percentage height/width content until after the integration codepath is fixed.
(in this case, the layout code assumes that percentage height values can always be resolved by climbing up on the
ancestor chain -worst case scenario we find the ICB which always has fixed height value.
However the integration codepath does not set the height on the fake ICB (RenderBlockFlow) even when the flow's height
is fixed and the IFC code can't climb farther up on the tree)

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

5:24 PM Changeset in webkit [269937] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Fix for localizableStrings.string in WebCore
https://bugs.webkit.org/show_bug.cgi?id=219060

Unreviewed build fix.

  • WebCore.xcodeproj/project.pbxproj:
4:49 PM Changeset in webkit [269936] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

Use SetForScope to temporarily change members of TextureMapperPaintOptions instead of copying all members
https://bugs.webkit.org/show_bug.cgi?id=219022

Reviewed by Carlos Garcia Campos.

All members of TextureMapperPaintOptions don't need to be copied
just to change some members. Use WTF::SetForScope to temporarily
change members of TextureMapperPaintOptions.

No behavior changes.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::TextureMapperLayer::applyMask):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):

  • platform/graphics/texmap/TextureMapperLayer.h:
4:42 PM Changeset in webkit [269935] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] ASSERTION FAILED: Completion handler should always be called under WebKit::GPUProcess::didReceiveMessage
https://bugs.webkit.org/show_bug.cgi?id=219055
<rdar://problem/71508223>

Reviewed by Alex Christensen.

Make sure GPUProcess::prepareToSuspend() calls its completion handler to avoid delaying suspension
and avoid assertion hits in debug.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::prepareToSuspend):

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

Make sure ProcessThrottler is always holding a ProcessAssertion for its child process
https://bugs.webkit.org/show_bug.cgi?id=219053

Reviewed by Geoff Garen.

Make sure ProcessThrottler is always holding a ProcessAssertion for its child process. Previously, when changing the assertion
type (e.g. when going from background to foreground) we would release the previous assertion and then take the new one.

RunningBoard developers recommend that we wait until the new ProcessAssertion is taken before we release the previous one to
avoid churn. It is also important we always hold a ProcessAssertion at all times for the child process because the child process
may exit otherwise.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::setAssertionType):

4:04 PM Changeset in webkit [269933] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[CMake] generate_offset_extractor.rb missing build dependency for llint/WebAssembly.asm
https://bugs.webkit.org/show_bug.cgi?id=219043

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-17
Reviewed by Don Olmstead.

generate_offset_extractor.rb is missing a build dependency for llint/WebAssembly.asm. If
WebAssembly.asm is modified, generate_offset_extracter.rb needs to be run again.

  • CMakeLists.txt:
4:00 PM Changeset in webkit [269932] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Fix for localizableStrings.string in WebCore
https://bugs.webkit.org/show_bug.cgi?id=219056

Unreviewed build fix.

  • WebCore.xcodeproj/project.pbxproj:
3:53 PM Changeset in webkit [269931] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add more info to the RELEASE_ASSERT inside Parser::parseInner
https://bugs.webkit.org/show_bug.cgi?id=219054
<rdar://problem/71506453>

Reviewed by Mark Lam.

We have some crashes here, and it'll be helpful for the crashlogs to have
more info in the register state.

  • parser/Lexer.h:

(JSC::Lexer::codeLength):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):

3:51 PM Changeset in webkit [269930] by Ryan Haddad
  • 2 edits in trunk/Source/WTF

Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219030

Unreviewed build fix for macCatalyst.

  • wtf/PlatformHave.h:
3:49 PM Changeset in webkit [269929] by commit-queue@webkit.org
  • 15 edits in trunk

Add support for the Wasm i32 sign-extension-ops proposal
https://bugs.webkit.org/show_bug.cgi?id=210302

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-11-17
Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/spec-tests/i32.wast.js:
  • wasm/spec-tests/i64.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

  • llint/LowLevelInterpreter.asm:
  • llint/WebAssembly.asm:
  • offlineasm/arm64.rb:
  • offlineasm/cloop.rb:
  • offlineasm/instructions.rb:
  • offlineasm/x86.rb:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Extend8S>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Extend16S>):

  • wasm/wasm.json:

LayoutTests:

  • workers/wasm-references/test.js:
3:30 PM Changeset in webkit [269928] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[macOS] Stop using RunLoopType=_WebKit starting in Big Sur
https://bugs.webkit.org/show_bug.cgi?id=219052
<rdar://problem/61742969>

Reviewed by Geoffrey Garen.

Stop using RunLoopType=_WebKit starting in Big Sur. This was a temporary hack so that our WebProcesses would get the right
scheduling priority. Starting with Big Sur, the right way to do this is to use _ProcessType=App and restore the RunLoopType
to be NSRunLoop.

After this change, I have verified that the WebContent's main thread still runs at UserInteractive QoS. App Nap is also
still working as expected.

  • Configurations/WebContentService.xcconfig:
  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
2:59 PM Changeset in webkit [269927] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds.

  • rendering/RenderBox.cpp: Add missing LayoutIntegrationLineIterator.h header.
2:39 PM Changeset in webkit [269926] by Alan Coon
  • 1 copy in tags/Safari-611.1.5.1

Tag Safari-611.1.5.1.

2:35 PM Changeset in webkit [269925] by Alan Coon
  • 8 edits in branches/safari-611.1.5-branch/Source

Versioning.

WebKit-7611.1.5.1

2:25 PM Changeset in webkit [269924] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension to trust service if Media in the GPU process is not enabled
https://bugs.webkit.org/show_bug.cgi?id=218986
<rdar://problem/71439885>

Reviewed by Brent Fulgham.

Since Media is using the trust service, issue a sandbox extension to the WebContent process if Media in the GPU process is not enabled.

  • UIProcess/WebPageProxy.cpp:

(WebKit::mediaRelatedMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:
2:14 PM Changeset in webkit [269923] by Andres Gonzalez
  • 10 edits in trunk/Source/WebCore

Implementation of AXCoreObject::innerHTML and outerHTML.
https://bugs.webkit.org/show_bug.cgi?id=219037

Reviewed by Chris Fleizach.

No change in functionality, debugging code.

  • Added innerHTML and outerHTmL methods to AXCoreObject for debugging

purposes.

  • The AXIsolatedObject implementation of these methods forwards the call

to the associated AXObject and does a lazy caching of the Inner/OuterHTML
properties.

  • The AXLogger class is now declared and defined only #if !LOG_DISABLED.
  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::log):
(WebCore::operator<<):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::innerHTML const):
(WebCore::AccessibilityObject::outerHTML const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::innerHTML const):
(WebCore::AXIsolatedObject::outerHTML const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase innerHTML]):
(-[WebAccessibilityObjectWrapperBase outerHTML]):

1:37 PM Changeset in webkit [269922] by commit-queue@webkit.org
  • 17 edits
    2 adds in trunk

[JSC] Add support for static public class fields
https://bugs.webkit.org/show_bug.cgi?id=194095

Patch by Xan López <Xan Lopez> on 2020-11-17
Reviewed by Yusuke Suzuki.

JSTests:

Enable static public fields, and import new stress tests from the
V8 project. Also split the support code into a separate file
(harmony-support.js) to avoid duplication.

  • test262/config.yaml: enable static public fields.
  • stress/class-fields-harmony.js: use the new support file.
  • stress/class-fields-static-harmony.js: Added.
  • stress/resources/harmony-support.js: Added.

Source/JavaScriptCore:

Add support for static public class fields. We can reuse most of
the existing machinery available for instance fields. Like
instance fields, static fields are initialized with a synthetic
function. This is done to allow us to trivially follow the scoping
rules in the spec. As it happens with instance fields this could
be inlined in a future patch.

A lot of small changes in many files are just a matter of doing
s/instance/class/ for variables related to class fields, which
before were assuming there are only instance fields implemented.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock): do s/instanceField/classField/.

  • bytecode/UnlinkedFunctionExecutable.h: ditto.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitNewClassFieldInitializerFunction): ditto.

  • bytecompiler/BytecodeGenerator.h: ditto, plus add a parameter

for static field locations in emitDefineClassElements.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode): save static fields
locations when going through the property list.
(JSC::PropertyListNode::emitSaveComputedFieldName): consider
static fields here too.
(JSC::ClassExprNode::emitBytecode): call the initializer for
static fields as the very last action of the class creation.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createDefineField): field nodes can be static
too now.

  • parser/NodeConstructors.h:

(JSC::DefineFieldNode::DefineFieldNode): ditto.

  • parser/Nodes.h: ditto.
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner): s/instanceField/classField/
(JSC::Parser<LexerType>::parseClass): consider static fields.
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements):
s/instanceField/classField/, and consider static fields.

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse): s/instanceField/classField/
(JSC::parse): ditto.

  • runtime/JSFunction.cpp:

(JSC::JSFunction::setFunctionName): s/instanceField/classField/

  • runtime/OptionsList.h: add option to enable/disable static public fields.
1:14 PM Changeset in webkit [269921] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable percentage type min/max-width/height
https://bugs.webkit.org/show_bug.cgi?id=219045

Reviewed by Antti Koivisto.

The integration layer code does not support them yet.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

1:05 PM Changeset in webkit [269920] by Matt Lewis
  • 2 edits in trunk/Tools

Big Sur testers fail to find proper archives due to architecture keys.
https://bugs.webkit.org/show_bug.cgi?id=219039

Reviewed by Aakash Jain.

  • CISupport/build-webkit-org/config.json:
1:01 PM Changeset in webkit [269919] by Jonathan Bedard
  • 3 edits
    2 adds
    1 delete in trunk/Tools

[webkitcorepy] Support mocking request network calls.
https://bugs.webkit.org/show_bug.cgi?id=218927
<rdar://problem/71389720>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests.py: Moved to requests_.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests_.py: Copied from Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests.py.

(Response): Object mimicking the structure of Requests's response object, useful for mocking.
(Requests): Context manager which will intercept http and https requests to a specific host.
(Requests.exit):

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/mocks/requests_unittest.py: Added.

(MockRequests):
(MockRequests.test_basic):
(MockRequests.test_fallback):

1:00 PM Changeset in webkit [269918] by sihui_liu@apple.com
  • 15 edits
    1 delete in trunk/Source

Add a default action for SpeechRecognition permission request
https://bugs.webkit.org/show_bug.cgi?id=219021

Reviewed by Youenn Fablet.

Source/WebCore:

Manually tested in Minibrowser.

  • en.lproj/Localizable.strings:

Source/WebKit:

When there is no delegate or selector for deciding user permission on speech recognition, force an alert and let
user decide. This is currently what we do for UserMedia permission request, and it makes testing easier.

  • SourcesCocoa.txt:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::decidePolicyForSpeechRecognitionPermissionRequest):

  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::visibleDomain):
(WebKit::alertMessageText):
(WebKit::allowButtonText):
(WebKit::doNotAllowButtonText):
(WebKit::alertForPermission):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForSpeechRecognitionPermissionRequest):

  • UIProcess/Cocoa/UserMediaPermissionRequestProxy.mm: Removed. Moved alert code to MediaPermissionUtilities so

it can be shared between UserMedia and SpeechRecognition.

  • UIProcess/MediaPermissionUtilities.h:
  • UIProcess/SpeechRecognitionPermissionManager.cpp:

(WebKit::SpeechRecognitionPermissionManager::decideByDefaultAction):

  • UIProcess/SpeechRecognitionPermissionManager.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::doDefaultAction):

  • UIProcess/UserMediaPermissionRequestProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestSpeechRecognitionPermissionByDefaultAction):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
12:25 PM Changeset in webkit [269917] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Check com.apple.private.webkit.use-xpc-endpoint only on internal builds
https://bugs.webkit.org/show_bug.cgi?id=215423

Patch by Saagar Jha <saagar@saagarjha.com> on 2020-11-17
Reviewed by Per Arne Vollan.

Signing with com.apple.private entitlements can only be done by Apple internally. Thus,
it should only checked for internal builds.

  • Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint): Wrap check in USE(APPLE_INTERNAL_SDK).

  • Shared/Cocoa/XPCEndpointClient.mm:

(WebKit::XPCEndpointClient::setEndpoint): Wrap check in USE(APPLE_INTERNAL_SDK).

12:24 PM Changeset in webkit [269916] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

[LFC][Integration] Cache inline boxes in logical order to run iterator
https://bugs.webkit.org/show_bug.cgi?id=219031

Reviewed by Zalan Bujtas.

Expand use of the existing cache to cover line traversal. This will make porting code in VisibleUnit.cpp to iterator easier.

Also a bunch of related cleanups.

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::LineIterator::logicalStartRun const):
(WebCore::LayoutIntegration::LineIterator::logicalEndRun const):
(WebCore::LayoutIntegration::LineIterator::logicalStartRunWithNode const):
(WebCore::LayoutIntegration::LineIterator::logicalEndRunWithNode const):

  • layout/integration/LayoutIntegrationLineIterator.h:
  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalStartRun const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalEndRun const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalStartRunWithNode const): Deleted.
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalEndRunWithNode const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::logicalStartRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalEndRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalStartRunWithNode const): Deleted.
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalEndRunWithNode const): Deleted.

  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::RunIterator::traverseNextOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIterator::traversePreviousOnLineInLogicalOrder):
(WebCore::LayoutIntegration::firstTextRunInTextOrderFor):

  • layout/integration/LayoutIntegrationRunIterator.h:
  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::RunIteratorLegacyPath):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextTextRunInTextOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traversePreviousOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::inlineTextBox const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::initializeLogicalOrderCacheForLine):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traverseNextInlineBoxInCacheOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::traversePreviousInlineBoxInCacheOrder):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::nextInlineTextBoxInTextOrder const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextOnLineInLogicalOrder):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousOnLineInLogicalOrder):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::getLogicalStartBoxWithNode const): Deleted.
(WebCore::RootInlineBox::getLogicalEndBoxWithNode const): Deleted.

  • rendering/RootInlineBox.h:
11:34 AM Changeset in webkit [269915] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Speculative fix for localizableStrings.string in WebCore
https://bugs.webkit.org/show_bug.cgi?id=219042

Unreviewed build fix.

  • WebCore.xcodeproj/project.pbxproj:
11:04 AM Changeset in webkit [269914] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[Web Animations] Move all effect-specific parts of WebAnimation::timeToNextTick() to effect classes
https://bugs.webkit.org/show_bug.cgi?id=219028

Reviewed by Antti Koivisto.

Most of WebAnimation::timeToNextTick() is code that is specific to effects. We move this code out to
KeyframeEffect and a virtual method with a default implementation on AnimationEffect. This is the first
step towards adding more smarts to this method such as avoiding style recalcs if there are no keyframes
set up on a KeyframeEffect or running fewer style recalcs when animating a discrete property.

No new tests since this we are just moving code around.

  • animation/AnimationEffect.h:

(WebCore::AnimationEffect::timeToNextTick const):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::timeToNextTick const):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::isCompletelyAccelerated const): Make this method private since it is now only
called by KeyframeEffect.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeToNextTick const):
(WebCore::WebAnimation::isCompletelyAccelerated const): Deleted. This method no longer has any call sites.

  • animation/WebAnimation.h:
10:59 AM Changeset in webkit [269913] by Aditya Keerthi
  • 5 edits
    12 adds in trunk

[iOS][FCR] Add new look for checkboxes
https://bugs.webkit.org/show_bug.cgi?id=218808
<rdar://problem/71286037>

Reviewed by Wenson Hsieh.

Source/WebCore:

Tests: fast/forms/ios/form-control-refresh/checkbox/border.html

fast/forms/ios/form-control-refresh/checkbox/checked-appearance.html
fast/forms/ios/form-control-refresh/checkbox/ignored-properties.html
fast/forms/ios/form-control-refresh/checkbox/indeterminate-appearance.html
fast/forms/ios/form-control-refresh/checkbox/width-height.html

  • css/iOSFormControlRefresh.css:

(input[type="checkbox"]):

Use "border: initial" and "box-sizing: border-box" to match macOS, now
that the native checkbox styles on macOS and iOS are similar.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintCheckboxDecorations):

Move away from using paintCheckboxDecorations to paintCheckbox for the
new design. This is necessary to avoid painting custom borders and
backgrounds for native checkboxes, matching macOS. Painting both a
CSS background as well as the native checkbox can lead to background
bleeding. Customizations can still be made using "-webkit-appearance: none".

(WebCore::RenderThemeIOS::paintCheckbox):

A new implementation for painting checkboxes to match the updated
design. The checkmark drawing was generated using SF Symbols.

LayoutTests:

Added tests to verify the stylability of native checkboxes and to verify
that different checkbox states are painted with a different appearance.

  • fast/forms/ios/form-control-refresh/checkbox/border-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/border.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/checked-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/checked-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/ignored-properties-expected.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/ignored-properties.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/indeterminate-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/indeterminate-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/width-height-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/width-height.html: Added.
10:06 AM Changeset in webkit [269912] by Alan Bujtas
  • 8 edits in trunk

[LFC][Integration] Add even more integral snapping to inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=219011

Reviewed by Antti Koivisto.

It is required to match current legacy inline geometries.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::InlineLevelBox::setLogicalTop):
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalHeight):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::setLogicalTop): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalHeight): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

9:56 AM Changeset in webkit [269911] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Remove access to the unused AppleSNBFBUserClient IOKit class
https://bugs.webkit.org/show_bug.cgi?id=219014
<rdar://problem/70463873>

Reviewed by Eric Carlson.

Although we originally thought this was needed for H.264 decoding, testing shows
that this class is never used in WebKit flows, and is not needed. We should remove it.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:53 AM Changeset in webkit [269910] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611.1.6-branch

Cherry-pick r269895. rdar://problem/71490402

REGRESSION (r269824): YouTube media control bar sometimes flickers
https://bugs.webkit.org/show_bug.cgi?id=219017
<rdar://problem/71454799>

Reviewed by Simon Fraser.

Source/WebKit:

Test: compositing/repaint/transparent-layer-repaint.html

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::display): I accidentally lost the Copy composite operator in r269824, causing the repaint copy-forward to blend instead of just copying. This wreaks havoc on layers with contents with colors that have 0 < alpha < 1, because every repaint means the colors intensify.

LayoutTests:

  • compositing/repaint/transparent-layer-repaint-expected.html: Added.
  • compositing/repaint/transparent-layer-repaint.html: Added. Add a test that:
    • repaints a backingstoreful compositing layer
    • more than once
    • in a small enough area that we use partial repaint
    • with partially-transparent pixels

And then ensures that the background of that layer (the non-repainted part)
remains the color that it should.

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

9:38 AM Changeset in webkit [269909] by Chris Lord
  • 6 edits in trunk/Source/WebCore

REGRESSION(r269579) [WPE] Many tests with scrolling flaky after this revision
https://bugs.webkit.org/show_bug.cgi?id=218859

Reviewed by Simon Fraser.

Set scrolling node ID correctly on CoordinatedGraphicsLayer.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setScrollingNodeID):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
9:28 AM Changeset in webkit [269908] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Stop leaking an XPC transaction in our XPC services
https://bugs.webkit.org/show_bug.cgi?id=219036

Reviewed by Geoffrey Garen.

Stop leaking an XPC transaction in our XPC services on iOS. We were doing this to control the lifetime of our child services
ourselves. However, this is not needed on iOS because the UIProcess takes RunningBoard process assertions on behalf of its
child processes.

I have verified that our child processes do not exit/jetsam early. I have verified that our child processes are in the
correct jetsam band (IDLE/0 when background and FG/10 when foreground). I have also verified that the main thread of these
processes runs at UserInitiated QoS before and after this change.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

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

(WebKit::XPCServiceExit):

9:25 AM Changeset in webkit [269907] by Peng Liu
  • 48 edits
    5 copies
    8 adds in trunk/Source

[Media In GPU Process][MSE] Add infrastructure needed to run MediaPlayerPrivateMediaSourceAVFObjC in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218912

Reviewed by Eric Carlson.

Source/WebCore:

This patch makes the MSE version of MediaPlayer::load() the same as the one in MediaPlayerPrivate
to support running MSE MediaPlayerPrivate(s) in the GPU process.

No new tests, no functional change yet.

  • Headers.cmake:
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::createSourceBufferPrivate):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferTimerFired):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/ContentType.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::loadWithNextMediaEngine):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/MediaSourcePrivate.h:
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::load):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):

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

(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):

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

(WebCore::SourceBufferPrivateAVFObjC::appendCompleted):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::addSourceBuffer):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::load):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::addSourceBuffer):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::append):

Source/WebKit:

Add MediaSourcePrivateRemote/RemoteMediaSourceProxy and SourceBufferPrivateRemote/RemoteSourceBufferProxy,
and setup IPC connections for them.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUProcessSessionParameters.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::loadMediaSource):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/RemoteMediaSourceProxy.cpp: Added.

(WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::~RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::setPrivateAndOpen):
(WebKit::RemoteMediaSourceProxy::duration const):
(WebKit::RemoteMediaSourceProxy::buffered const):
(WebKit::RemoteMediaSourceProxy::seekToTime):
(WebKit::RemoteMediaSourceProxy::monitorSourceBuffers):
(WebKit::RemoteMediaSourceProxy::setLogIdentifier):
(WebKit::RemoteMediaSourceProxy::failedToCreateRenderer):
(WebKit::RemoteMediaSourceProxy::addSourceBuffer):

  • GPUProcess/media/RemoteMediaSourceProxy.h: Added.
  • GPUProcess/media/RemoteMediaSourceProxy.messages.in: Added.
  • GPUProcess/media/RemoteSourceBufferIdentifier.h: Added.
  • GPUProcess/media/RemoteSourceBufferProxy.cpp: Added.

(WebKit::RemoteSourceBufferProxy::create):
(WebKit::RemoteSourceBufferProxy::RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::~RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasAudio const):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasVideo const):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReenqueSamples):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateFastSeekTimeForMediaTime):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::RemoteSourceBufferProxy::append):

  • GPUProcess/media/RemoteSourceBufferProxy.h: Added.
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in: Added.
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaSourcePrivateRemote.cpp: Added.

(WebKit::MediaSourcePrivateRemote::create):
(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::~MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::addSourceBuffer):
(WebKit::MediaSourcePrivateRemote::durationChanged):
(WebKit::MediaSourcePrivateRemote::markEndOfStream):
(WebKit::MediaSourcePrivateRemote::unmarkEndOfStream):
(WebKit::MediaSourcePrivateRemote::readyState const):
(WebKit::MediaSourcePrivateRemote::setReadyState):
(WebKit::MediaSourcePrivateRemote::waitForSeekCompleted):
(WebKit::MediaSourcePrivateRemote::seekCompleted):
(WebKit::MediaSourcePrivateRemote::logChannel const):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.h: Added.
  • WebProcess/GPU/media/RemoteCDMConfiguration.h:
  • WebProcess/GPU/media/RemoteCDMInstanceConfiguration.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
  • WebProcess/GPU/media/RemoteMediaSourceIdentifier.h: Added.
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp: Added.

(WebKit::SourceBufferPrivateRemote::create):
(WebKit::SourceBufferPrivateRemote::SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::~SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::setClient):
(WebKit::SourceBufferPrivateRemote::append):
(WebKit::SourceBufferPrivateRemote::abort):
(WebKit::SourceBufferPrivateRemote::resetParserState):
(WebKit::SourceBufferPrivateRemote::removedFromMediaSource):
(WebKit::SourceBufferPrivateRemote::readyState const):
(WebKit::SourceBufferPrivateRemote::setReadyState):
(WebKit::SourceBufferPrivateRemote::flush):
(WebKit::SourceBufferPrivateRemote::enqueueSample):
(WebKit::SourceBufferPrivateRemote::isReadyForMoreSamples):
(WebKit::SourceBufferPrivateRemote::setActive):
(WebKit::SourceBufferPrivateRemote::notifyClientWhenReadyForMoreSamples):
(WebKit::SourceBufferPrivateRemote::canSetMinimumUpcomingPresentationTime const):
(WebKit::SourceBufferPrivateRemote::setMinimumUpcomingPresentationTime):
(WebKit::SourceBufferPrivateRemote::clearMinimumUpcomingPresentationTime):
(WebKit::SourceBufferPrivateRemote::canSwitchToType):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete):
(WebKit::SourceBufferPrivateRemote::logChannel const):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h: Added.
  • WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in: Added.
9:21 AM Changeset in webkit [269906] by pvollan@apple.com
  • 7 edits in trunk/Source

[macOS] Perform AX TCC check in the UI process
https://bugs.webkit.org/show_bug.cgi?id=218870
<rdar://problem/71339830>

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Add typedef for TCC authentication callback.

  • pal/spi/mac/HIServicesSPI.h:

Source/WebKit:

On behalf of the WebContent process, perform AX TCC check in the UI process on macOS.
This is in preparation of blocking tccd in the WebContent process.

No new tests. It has been manually tested that the WebContent process is allowing VoiceOver
to perform AX requests with this patch.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::isAXAuthenticated):

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

(WebKit::isAXAuthenticatedCallback):
(WebKit::WebProcess::platformInitializeWebProcess):

9:09 AM Changeset in webkit [269905] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] _WKInspectorExtensionHost should conform to NSObject protocol
https://bugs.webkit.org/show_bug.cgi?id=219035

Reviewed by Alex Christensen.

This was overlooked in the initial patch. Without it, we can't call -isEqual: and
similar basic methods on a type of id<_WKInspectorExtensionHost>.

  • UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:
9:07 AM Changeset in webkit [269904] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update ExtractTestResults step for new buildbot (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=218759
<rdar://problem/71246754>

Unreviewed minor follow-up fix.

  • CISupport/build-webkit-org/steps.py:

(ExtractTestResults):

8:38 AM Changeset in webkit [269903] by Lauro Moura
  • 2 edits in trunk/LayoutTests

REGRESSION(r269227) [GTK] editing/selection/navigation-clears-editor-state.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=219019

Reviewed by Chris Dumez.

Apply a similar fix to what was done in
requestidlecallback/requestidlecallback-document-gc.html in the
original revision, giving the timers a spin to allow the released
documents to be collected.

  • editing/selection/navigation-clears-editor-state.html:
8:29 AM Changeset in webkit [269902] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check anchorNode of endingSelection start
https://bugs.webkit.org/show_bug.cgi?id=218492

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-17
Reviewed by Alex Christensen.

Source/WebCore:

Null check anchorNode of endingSelection start.

Test: editing/deleting/delete-contenteditable-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::mergeParagraphs):

LayoutTests:

Add testcase.

  • editing/deleting/delete-contenteditable-crash-expected.txt: Added.
  • editing/deleting/delete-contenteditable-crash.html: Added.
8:04 AM Changeset in webkit [269901] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Preemptive build fix for https://bugs.webkit.org/show_bug.cgi?id=219024

  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

(SOFT_LINK_CLASS):
(-[WKAirPlayRoutePicker show:fromRect:]):

7:31 AM Changeset in webkit [269900] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219030

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-17
Reviewed by Antti Koivisto.

Fix compile for simulator builds.
Rename HAVE_CV_AGX_420_PIXEL_FORMAT_TYPES to
HAVE_COREVIDEO_COMPRESSED_PIXEL_FORMAT_TYPES to better reflect what the ifdef does.

Source/WebCore:

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::pixelRangeFromPixelFormat):
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):

Source/WebCore/PAL:

  • pal/spi/cf/CoreVideoSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:
7:25 AM WebKitGTK/2.30.x edited by Michael Catanzaro
(diff)
6:48 AM Changeset in webkit [269899] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

More non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=219029

Unreviewed.

  • rendering/RenderLayerBacking.cpp:
6:07 AM Changeset in webkit [269898] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Build fails on internal Catalina due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219026

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-17
Reviewed by Antti Koivisto.

Fix compile for macOS versions before Big Sur.

On macOS, only use the private header on Big Sur. On Catalina, use the
manual enums.

Regressed in:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]

  • pal/spi/cf/CoreVideoSPI.h:
4:56 AM Changeset in webkit [269897] by graouts@webkit.org
  • 2 edits in trunk/Source/WTF

Make <model> disabled by default everywhere
https://bugs.webkit.org/show_bug.cgi?id=219027

Reviewed by Devin Rousso.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
2:43 AM Changeset in webkit [269896] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Clean up title-text-property.html
https://bugs.webkit.org/show_bug.cgi?id=219025

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-17
Reviewed by Žan Doberšek.

Remove unused test function, it seems this was added
for debugging purposes.

  • fast/dom/title-text-property.html:
12:28 AM Changeset in webkit [269895] by timothy_horton@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r269824): YouTube media control bar sometimes flickers
https://bugs.webkit.org/show_bug.cgi?id=219017
<rdar://problem/71454799>

Reviewed by Simon Fraser.

Source/WebKit:

Test: compositing/repaint/transparent-layer-repaint.html

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):
I accidentally lost the Copy composite operator in r269824, causing
the repaint copy-forward to blend instead of just copying.
This wreaks havoc on layers with contents with colors that have 0 < alpha < 1,
because every repaint means the colors intensify.

LayoutTests:

  • compositing/repaint/transparent-layer-repaint-expected.html: Added.
  • compositing/repaint/transparent-layer-repaint.html: Added.

Add a test that:

  • repaints a backingstoreful compositing layer
  • more than once
  • in a small enough area that we use partial repaint
  • with partially-transparent pixels

And then ensures that the background of that layer (the non-repainted part)
remains the color that it should.

12:22 AM Changeset in webkit [269894] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Check whether destination still can be selected
https://bugs.webkit.org/show_bug.cgi?id=218491

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-17
Reviewed by Ryosuke Niwa.

Source/WebCore:

Check whether destination still can be selected
after deletion.

Test: editing/deleting/delete-selection-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

LayoutTests:

Add testcase.

  • editing/deleting/delete-selection-crash-expected.txt: Added.
  • editing/deleting/delete-selection-crash.html: Added.
Note: See TracTimeline for information about the timeline view.