Timeline



Feb 28, 2021:

6:26 PM Changeset in webkit [273642] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Consider removing iOS only CSS property alias -webkit-hyphenate-locale introduced in r80288
https://bugs.webkit.org/show_bug.cgi?id=222507

Reviewed by Anders Carlsson.

It's been about 10 years, let's try removing the iOS only CSS property alias for
-webkit-locale, -webkit-hyphenate-locale, and see what happens.

  • css/CSSStyleDeclaration.cpp:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::cssPropertyID):
(WebCore::cssPropertyNameIOSAliasing): Deleted.

  • css/parser/CSSPropertyParser.h:
4:47 PM Changeset in webkit [273641] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Add gc and clearKeptObjects to $262
https://bugs.webkit.org/show_bug.cgi?id=222527

Reviewed by Ross Kirsling.

JSTests:

  • test262/config.yaml:

Source/JavaScriptCore:

Add $262.gc and $262.clearKeptObjects functions. They are required for test262 host-gc-required.
Since all the tests using "host-gc-required" are currently also marked with cleanupSome, we are currently not running them.
But if some more tests are landed in test262 with "host-gc-required", we will run them with these functions.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

4:13 PM Changeset in webkit [273640] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC][IFC] Content left offset means just content left
https://bugs.webkit.org/show_bug.cgi?id=222522

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):

  • layout/inlineformatting/InlineLineBox.cpp:

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

  • layout/inlineformatting/InlineLineBox.h:
  • layout/inlineformatting/InlineLineGeometry.h:

(WebCore::Layout::InlineLineGeometry::contentLogicalLeft const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
(WebCore::Layout::InlineLineGeometry::contentLogicalLeftOffset const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentLeft const):
(WebCore::LayoutIntegration::Line::contentLeftOffset const): Deleted.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft 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:56 PM Changeset in webkit [273639] by Darin Adler
  • 7 edits in trunk/Source

[iOS] Reduce use of retain/release in WAKWindow and remove unneeded methods from that class
https://bugs.webkit.org/show_bug.cgi?id=222330

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/ios/LegacyTileCache.h: Use pragma once, remove unneeded includes,

tweak coding style a bit to match WebKit standard. Removed hasPendingDraw.
added WEBCORE_EXPORT to setTileBordersVisible and setTilePaintCountersVisible
so they can be used in WebKitLegacy.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::hasPendingDraw const): Deleted.

  • platform/ios/wak/WAKWindow.h: Use pragma once, remove unneeded includes,

tweak coding style a bit to match WebKit standard. Removed hasPendingDraw,
setTileControllerShouldUseLowScaleTiles, setTileBordersVisible,
setTilePaintCountsVisible, setAcceleratedDrawingEnabled, freezeVisibleRect,
and unfreezeVisibleRect.

  • platform/ios/wak/WAKWindow.mm: Removed "using namespace WebCore".

Removed unused _WAKKeyWindow global. Converted currentEvent and
gOrientationProvider globals to NeverDestroyed<RetainPtr<>>.
(orientationProvider): Added
(currentEvent): Added.
(-[WAKWindow isKeyWindow]): Remove dead code; this method already always
returns YES.
(-[WAKWindow makeKeyWindow]): Remove dead code. This method wrote to a
global that was never read anywhere.
(-[WAKWindow sendEventSynchronously:]): Use the currentEvent function
and take advantage of the fact that it's a RetainPtr so we don't need a
a local variable named currentEventProtector.
(-[WAKWindow hasPendingDraw]): Deleted. No callers depend on this.
(-[WAKWindow willRotate]): Set _frozenVisibleRect here directly instead
of calling anoether method to do that.
(-[WAKWindow didRotate]): Ditto.
(-[WAKWindow freezeVisibleRect]): Deleted. The method above was the only
caller for this method.
(-[WAKWindow unfreezeVisibleRect]): Ditto.
(+[WAKWindow setOrientationProvider:]): Use the orientationProvider function.
Note, this now retains the passed-in object. This is safe; the only caller
passes in a class, so there's no risk of a retain cycle.
(+[WAKWindow hasLandscapeOrientation]): Use the orientationProvider function.
(-[WAKWindow setTileBordersVisible:]): Deleted. The only caller for this
was in WebKitLegacy, and refactored to use the tile cache directly.
(-[WAKWindow setTilePaintCountsVisible:]): Ditto.
(-[WAKWindow setAcceleratedDrawingEnabled:]): Ditto.
(-[WAKWindow setTileControllerShouldUseLowScaleTiles:]): Deleted. No
callers depend on this.
(+[WAKWindow currentEvent]): Use the currentEvent function.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Call LegacyTileCache functions directly rather
than indirecting through WAKWindow methods.
(-[WebView viewDidMoveToWindow]): Ditto. Also tweaked conditionals a little for clarity.

11:58 AM Changeset in webkit [273638] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBox's horizontalAlignmentOffset is the root inline box's logical left
https://bugs.webkit.org/show_bug.cgi?id=222521

Reviewed by Sam Weinig.

That's where the line content starts.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::m_contentLogicalWidth):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::setLogicalHeight):
(WebCore::Layout::LineBox::horizontalAlignmentOffset const): Deleted.
(WebCore::Layout::LineBox::setHorizontalAlignmentOffset): Deleted.

11:42 AM Changeset in webkit [273637] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Consider removing support for CSS value keywords with the -khtml- prefix
https://bugs.webkit.org/show_bug.cgi?id=222515

Reviewed by Darin Adler.

Try removing re-writing of the -khtml- prefix to -webkit- for CSS value keywords
and see what breaks.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::cssValueKeywordID):

8:22 AM Changeset in webkit [273636] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Every line box must have a root inline box
https://bugs.webkit.org/show_bug.cgi?id=222520

Reviewed by Antti Koivisto.

Let's create the root inline box during LineBox construction as even
an empty LineBox has to have a root inline box.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::m_rootInlineBox):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::rootInlineBox const):
(WebCore::Layout::LineBox::rootInlineBox):

4:29 AM WebKitGTK/2.32.x edited by berto@igalia.com
(diff)
3:59 AM Changeset in webkit [273635] by graouts@webkit.org
  • 10 edits in trunk

Blending of border-image-width should be discrete between "auto" values and other types
https://bugs.webkit.org/show_bug.cgi?id=222516

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Pass an extra 22 WPT interpolation tests for border-image-width. We also get 3 new FAIL results
in css/css-transitions/properties-value-auto-001.html but that test seems incorrect in assuming
there can be a transition for "clip" between "auto" and a non-auto value, at least Chrome and
Firefox both fail the newly-failed tests.

Incidentally, we also get 50 new PASS results from css-grid tests.

  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016-expected.txt:
  • web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt:

Source/WebCore:

The LengthBoxPropertyWrapper::canInterpolate() method checks whether the provided lengths are 0 to see if
they can be blended since 0 lengths can be blended with anything. However, currently Length::isZero() returns
true for "auto" values, which is incorrect, so we change the behavior of isZero() to not work when the type
is LengthType::Auto.

Incidentally, this makes a few css-grid tests progress as well.

  • platform/Length.h:

(WebCore::Length::isZero const):

2:15 AM Changeset in webkit [273634] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Update test262 host environments
https://bugs.webkit.org/show_bug.cgi?id=222525

Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

  1. $262.global should be globalThis of the realm according to test/built-ins/Function/call-bind-this-realm-undef.js
  2. $262.evalScript should uwrap JSProxy to get GlobalObject.

This fixes test262 test/built-ins/Function/call-bind-this-realm-undef.js, it was wrongly tested and failing.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

Feb 27, 2021:

3:07 PM Changeset in webkit [273633] by Kocsen Chung
  • 1 copy in tags/Safari-610.4.3.1.7

Tag Safari-610.4.3.1.7.

3:07 PM Changeset in webkit [273632] by Kocsen Chung
  • 1 copy in tags/Safari-610.4.3.0.4

Tag Safari-610.4.3.0.4.

2:59 PM Changeset in webkit [273631] by Kocsen Chung
  • 4 edits in branches/safari-610.4.3.0-branch/Source/WebCore/Modules/webaudio

Apply patch. rdar://problem/74829324

2:54 PM Changeset in webkit [273630] by Kocsen Chung
  • 8 edits in branches/safari-610.4.3.0-branch/Source

Versioning.

WebKit-7610.4.3.0.4

2:54 PM Changeset in webkit [273629] by Kocsen Chung
  • 4 edits in branches/safari-610.4.3.1-branch/Source/WebCore/Modules/webaudio

Apply patch. rdar://problem/74829334

2:39 PM Changeset in webkit [273628] by Kocsen Chung
  • 8 edits in branches/safari-610.4.3.1-branch/Source

Versioning.

WebKit-7610.4.3.1.7

11:51 AM Changeset in webkit [273627] by weinig@apple.com
  • 5 edits in trunk

Source/WebCore:
Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712
<rdar://problem/70660490>

Reviewed by Simon Fraser.

Remove support for pixel/pos prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.

  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
(WebCore::CSSStyleDeclaration::namedItem):
(WebCore::CSSStyleDeclaration::setNamedItem):

LayoutTests:

Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712

Reviewed by Simon Fraser.

  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:

Update test to reflect removal of pos/pixel prefixes.

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

[LFC][Coverage] Add missing not-yet-modern-line-layout reasons
https://bugs.webkit.org/show_bug.cgi?id=222488

Reviewed by Sam Weinig.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:
6:27 AM Changeset in webkit [273625] by graouts@webkit.org
  • 7 edits in trunk

border-image-slice blending does not account for the fill keyword
https://bugs.webkit.org/show_bug.cgi?id=222513

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Pass an extra 96 WPT tests for border-image-slice.

  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:

Source/WebCore:

The border-image-slice CSS property allows for the "fill" keyword on top of the four values defining the slices.
The presence of this keyword is stored as a bool flag on the NinePieceImage returned by RenderStyle::borderImage(),
while the four slices values are stored as a separate LengthBox on that NinePieceImage. So as we blend the
border-image-slice property using the LengthBoxPropertyWrapper, we only account for the four slices values.

In order to account for the "fill" keyword, we use an OptionSet instead of a single flag to represent different blending
options for CSS properties represented by a LengthBox. This allows us to now indicate that a given property,
namely border-image-slice, supports the "fill" keyword.

If this "fill" keyword flag is set, we force discrete interpolation in the case where the from and to blend values
don't have the same value for "fill". Then, as we blend, we set the "fill" keyword to match the from and to values.

To do this, we add a new RenderStyle::setBorderImageSliceFill() property since the NinePieceImage returned by
RenderStyle::borderImage() is marked const.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setBorderImageSliceFill):

  • rendering/style/RenderStyle.h:
6:25 AM Changeset in webkit [273624] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Null check ArrayBufferView RefPtr
https://bugs.webkit.org/show_bug.cgi?id=221569

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-27
Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Null check ArrayBufferView RefPtr before using it.

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::unsharedImpl):

LayoutTests:

Add test to verify oom situation does not result in a crash.

  • crypto/crypto-random-values-oom-expected.txt: Added.
  • crypto/crypto-random-values-oom.html: Added.
  • platform/win/TestExpectations:
3:49 AM Changeset in webkit [273623] by graouts@webkit.org
  • 9 edits in trunk

Improve blending of LengthBox values
https://bugs.webkit.org/show_bug.cgi?id=222512

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Pass an extra 238 WPT tests across border-image-outset, border-image-slice and border-image-width.
As of this patch, web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation.html
only has PASS results.

  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-width-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:

Source/WebCore:

Blending of LengthBox values used to be handle with a generic wrapper for Length-related types using
LengthVariantPropertyWrapper. However, to properly blend LengthBox values, we need some logic specific
to this value type.

First off, all CSS properties that we represent using a LengthBox disallow negative values, so we update
the blendFunc() implementation for LengthBox to pass in ValueRangeNonNegative to the Length blendFunc().

Then, we need a custom implementation of the canInterpolate() virtual function override so as to cater for
properties that support <length> and <number>, and those that support <length-percentage> and <number>,
namely border-image-width.

Finally, we support the case for discrete blending in the blend() virtual function override.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:33 AM Changeset in webkit [273622] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Unreviewed, reverting r273474 and r273479.
https://bugs.webkit.org/show_bug.cgi?id=222510

Not a speedup after all

Reverted changesets:

"Optimize the code to check if an element delegates focus to
its shadow root or not"
https://bugs.webkit.org/show_bug.cgi?id=222404
https://trac.webkit.org/changeset/273474

"Avoid tree traversals to look for form and canvas elements"
https://bugs.webkit.org/show_bug.cgi?id=222159
https://trac.webkit.org/changeset/273479

12:24 AM Changeset in webkit [273621] by Antti Koivisto
  • 16 edits in trunk

Render tree updates for Text node content mutations should happen during rendering update
https://bugs.webkit.org/show_bug.cgi?id=222406

Reviewed by Simon Fraser.

Source/WebCore:

Calls to Text.insertData and similar should not mutate render tree synchronously.
Instead render tree should be updated during the next rendering update along with
any style changes.

These updates already go via RenderTreeUpdater. We just need to save the information
about which nodes need updating so the next rendering update can pick them up.

This seems to help with some performance benchmarks.

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

Move in-tree check to the updateRendererAfterContentChange and make it use isConnected().

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):

Include the text update when updating the render tree.

(WebCore::Document::updateTextRenderer):

Create a text update that will get flushed during the next rendering update.

(WebCore::Document::needsStyleRecalc const):

We need to recalc if there are pending text updates.

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

(WebCore::Text::splitText):

Use updateRendererAfterContentChange instead of poking render tree directly.

(WebCore::Text::updateRendererAfterContentChange):

  • rendering/updating/RenderTreeUpdater.cpp:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::TreeResolver::resolve):

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::TreeResolver):

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addText):

Merge text updates.

(WebCore::Style::Update::addPossibleRoot):

  • style/StyleUpdate.h:

(WebCore::Style::Update::roots const):
(WebCore::Style::Update:: const): Deleted.

Refcount the nodes since this now has longer lifetime.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::deleteInsignificantText):

Ensure we leave deleteInsignificantText with updated render tree. Clients expect that.
Do layout (instead of just style update) for consistency, deleteInsignificantText does one anyway in beginning.

  • editing/markup.cpp:

(WebCore::replaceChildrenWithFragment):

Pending text update may ref the node so this refcount assert is not correct.

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addText):

LayoutTests:

These are progressions.

  • fast/text/splitText-dirty-lines-expected.txt:
  • imported/blink/fast/css/first-letter-range-insert-expected.txt:

Here we were actually drawing text that didn't exist in DOM anymore.

12:04 AM Changeset in webkit [273620] by Megan Gardner
  • 9 edits
    1 add in trunk

API test for AppHighlights
https://bugs.webkit.org/show_bug.cgi?id=222408

Reviewed by Tim Horton.

Source/WebCore:

Test: TestWebKitAPI.AppHighlights.AppHighlightCreateAndRestore

  • testing/Internals.cpp:

(WebCore::Internals::numberOfAppHighlights):

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

Tools:

  • TestWebKitAPI/PlatformUtilities.h:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm: Added.

(-[AppHighlightDelegate _webView:storeAppHighlight:inNewGroup:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(TEST):
(waitForConditionWithLogging): Deleted.

  • TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:

(TestWebKitAPI::Util::waitForConditionWithLogging):

Feb 26, 2021:

11:29 PM Changeset in webkit [273619] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Tools

[GTK][WPE] Add a script to show a list of bugs closed since a given revision
https://bugs.webkit.org/show_bug.cgi?id=222470

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-26
Reviewed by Adrian Perez de Castro.

It's useful to get a list of specific changes when making releases.

  • Scripts/webkit-filter-log: Added.
11:24 PM Changeset in webkit [273618] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Bogus Response.{status,ok} for successful fetch() requests to a custom URI scheme handler
https://bugs.webkit.org/show_bug.cgi?id=222471

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback): Mark response as having status "200 OK" when
webkit_uri_scheme_request_finish() gets passed a GInputStream.

10:52 PM Changeset in webkit [273617] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Avoid creating functions unnecessarily in builtins
https://bugs.webkit.org/show_bug.cgi?id=222509

Reviewed by Ross Kirsling.

Avoid unnecessary function creation and make them @globalPrivate.

  • builtins/ArrayPrototype.js:

(globalPrivate.maxWithPositives):
(globalPrivate.minWithMaybeNegativeZeroAndPositive):
(copyWithin):
(maxWithPositives): Deleted.
(minWithMaybeNegativeZeroAndPositive): Deleted.

  • builtins/DatePrototype.js:

(globalPrivate.toDateTimeOptionsAnyAll):
(toLocaleString):
(globalPrivate.toDateTimeOptionsDateDate):
(toLocaleDateString):
(globalPrivate.toDateTimeOptionsTimeTime):
(toLocaleTimeString):
(toLocaleString.toDateTimeOptionsAnyAll): Deleted.
(toLocaleDateString.toDateTimeOptionsDateDate): Deleted.
(toLocaleTimeString.toDateTimeOptionsTimeTime): Deleted.

  • builtins/RegExpPrototype.js:

(globalPrivate.getSubstitution):
(overriddenName.string_appeared_here.replace):
(getSubstitution): Deleted.

9:27 PM Changeset in webkit [273616] by Peng Liu
  • 4 edits in trunk/LayoutTests

[GPUP] Refresh test expectations after adding the support to paint GPUP hosted video to 2D canvas and WebGL surfaces
https://bugs.webkit.org/show_bug.cgi?id=222500

Reviewed by Jer Noble.

r273568 adds the support to paint GPU process hosted video in the WebContent process to
2D canvas and WebGL surfaces. This function is used by layout tests no matter
"GPU Process: Canvas Rendering" and "GPU Process: WebGL" are enabled or not.
A lot of tests depending on it are passing now.

  • gpu-process/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
9:27 PM Changeset in webkit [273615] by Peng Liu
  • 16 edits in trunk/Source/WebKit

[GPUP] Replace references to GPUProcessConnection and Connection with WeakPtr<GPUProcessConnection>
https://bugs.webkit.org/show_bug.cgi?id=222492

Reviewed by Eric Carlson.

As we did in r273473, this patch replaces some references to GPUProcessConnection and Connection
with WeakPtr<GPUProcessConnection>. r273473 was for the GPU process, this patch is for web processes.
When the GPU process crashes, the GPUProcessConnection object (as well as its Connection object)
will be destroyed, and the reference will be invalid.

No new tests, fixing test crashes on bots.

  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:

(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::setEnabled):

  • WebProcess/GPU/media/AudioTrackPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:

(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::~MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::addSourceBuffer):
(WebKit::MediaSourcePrivateRemote::durationChanged):
(WebKit::MediaSourcePrivateRemote::setReadyState):
(WebKit::MediaSourcePrivateRemote::setIsSeeking):
(WebKit::MediaSourcePrivateRemote::waitForSeekCompleted):
(WebKit::MediaSourcePrivateRemote::seekCompleted):
(WebKit::MediaSourcePrivateRemote::setTimeFudgeFactor):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::RemoteImageDecoderAVF):
(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
(WebKit::RemoteImageDecoderAVF::setExpectedContentSize):
(WebKit::RemoteImageDecoderAVF::setData):
(WebKit::RemoteImageDecoderAVF::gpuProcessConnection const): Deleted.

  • WebProcess/GPU/media/RemoteImageDecoderAVF.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:

(WebKit::RemoteImageDecoderAVFManager::gpuProcessConnection const):

  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::~SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::append):
(WebKit::SourceBufferPrivateRemote::abort):
(WebKit::SourceBufferPrivateRemote::resetParserState):
(WebKit::SourceBufferPrivateRemote::removedFromMediaSource):
(WebKit::SourceBufferPrivateRemote::setReadyState):
(WebKit::SourceBufferPrivateRemote::setActive):
(WebKit::SourceBufferPrivateRemote::setMediaSourceEnded):
(WebKit::SourceBufferPrivateRemote::setMode):
(WebKit::SourceBufferPrivateRemote::updateBufferedFromTrackBuffers):
(WebKit::SourceBufferPrivateRemote::removeCodedFrames):
(WebKit::SourceBufferPrivateRemote::evictCodedFrames):
(WebKit::SourceBufferPrivateRemote::addTrackBuffer):
(WebKit::SourceBufferPrivateRemote::resetTrackBuffers):
(WebKit::SourceBufferPrivateRemote::clearTrackBuffers):
(WebKit::SourceBufferPrivateRemote::setAllTrackBuffersNeedRandomAccess):
(WebKit::SourceBufferPrivateRemote::setGroupStartTimestamp):
(WebKit::SourceBufferPrivateRemote::setGroupStartTimestampToEndTimestamp):
(WebKit::SourceBufferPrivateRemote::setShouldGenerateTimestamps):
(WebKit::SourceBufferPrivateRemote::reenqueueMediaIfNeeded):
(WebKit::SourceBufferPrivateRemote::resetTimestampOffsetInTrackBuffers):
(WebKit::SourceBufferPrivateRemote::startChangingType):
(WebKit::SourceBufferPrivateRemote::setTimestampOffset):
(WebKit::SourceBufferPrivateRemote::setAppendWindowStart):
(WebKit::SourceBufferPrivateRemote::setAppendWindowEnd):
(WebKit::SourceBufferPrivateRemote::seekToTime):
(WebKit::SourceBufferPrivateRemote::updateTrackIds):
(WebKit::SourceBufferPrivateRemote::bufferedSamplesForTrackId):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/TextTrackPrivateRemote.cpp:

(WebKit::TextTrackPrivateRemote::TextTrackPrivateRemote):
(WebKit::TextTrackPrivateRemote::setMode):

  • WebProcess/GPU/media/TextTrackPrivateRemote.h:
  • WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:

(WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote):
(WebKit::VideoTrackPrivateRemote::setSelected):

  • WebProcess/GPU/media/VideoTrackPrivateRemote.h:

(WebKit::VideoTrackPrivateRemote::create):

7:04 PM Changeset in webkit [273614] by Alan Bujtas
  • 1 edit
    1 add in trunk/PerformanceTests

[Performance test][Line layout] Add test with inline boxes
https://bugs.webkit.org/show_bug.cgi?id=222498

Reviewed by Ryosuke Niwa.

We don't have a performance test on inline boxes yet.

  • Layout/line-layout-inline-level-boxes.html: Added.
6:51 PM Changeset in webkit [273613] by msaboff@apple.com
  • 2 edits in trunk/JSTests

Followup test fix to r273594
https://bugs.webkit.org/show_bug.cgi?id=222506

Reviewed by Yusuke Suzuki.

  • stress/regexp-max-size.js:

(testTooBigBMPRegExp):
(testTooBigNonBMPRegExp):
(testAll):

6:42 PM Changeset in webkit [273612] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Support fast/canvas/webgl/copyBufferSubData.html, fix bugs in fast/canvas/webgl/getBufferSubData-webgl1.html in Metal ANGLE on Simulator
https://bugs.webkit.org/show_bug.cgi?id=222508

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-26
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/BufferMtl.mm:

(rx::BufferMtl::unmap):

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::getMaxSupportedESVersion const):

5:58 PM Changeset in webkit [273611] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Remove bad assertion of AI ArrayMode state in various "by val" opcodes
https://bugs.webkit.org/show_bug.cgi?id=222494
<rdar://73613460>

Reviewed by Filip Pizlo.

JSTests:

  • stress/dont-assert-ai-proved-array-mode.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

It's invalid to ever assert that AI must have proved something. We've been
slowly removing these faulty asserts from the compiler, and this patch
removes some more of them. AI is conservative, and it's not guaranteed
that it will prove X, even if X must be true.

In this particular test case, we are looking at a race between the concurrent
compiler thread and the main thread, and the compilation will be thrown away
because of a Structure transition.

What happened in this particular program is we had a CheckStructure that was
proved to exit in an early run of AI, that is not shown to exit during a later
run of AI. Because of that, in the earlier AI run, we have some narrower type
info (because fewer predecessory type info). This narrower type info allowed
us to elide a CheckArray. The later runs don't have this narrower type info,
because the CheckStructure doesn't exit. The safety of all of this is
guaranteed by the compilation being thrown away because we fired the transition
watchpoint from the earlier Structure seen by AI.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):

5:54 PM Changeset in webkit [273610] by Chris Dumez
  • 37 edits in trunk

Reduce explicit usage of [objC retain] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=222439

Reviewed by Darin Adler.

Reduce explicit usage of [objC retain] in WebKit by using RetainPtr<>.

Source/JavaScriptCore:

  • API/JSContext.mm:

(+[JSContext currentArguments]):
(-[JSContext beginCallbackWithData:calleeValue:thisValue:argumentCount:arguments:]):
(-[JSContext endCallbackWithData:]):

  • API/JSContextInternal.h:
  • API/tests/testapi.mm:

(-[TinyDOMNode initWithVirtualMachine:]):

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

  • editing/cocoa/DataDetection.mm:

(WebCore::resultIsURL):

  • editing/cocoa/HTMLConverter.mm:

(WebDefaultFont):

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

(WebCore::imageDecoderAssetOptions):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

  • platform/ios/QuickLook.mm:

(WebCore::QLPreviewGetSupportedMIMETypesSet):
(WebCore::temporaryFileAttributes):
(WebCore::temporaryDirectoryAttributes):

  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager checkClientStatus]):

  • platform/ios/wak/WebCoreThread.mm:

(SendMessage):
(HandleDelegateSource):
(SendDelegateMessage):
(WebThreadCallDelegate):
(WebRunLoopUnlockInternal):
(RunWebThread):
(WebThreadNSRunLoop):

Source/WebKit:

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::isFeatureFlagEnabled):

  • UIProcess/API/Cocoa/APIContentRuleListStoreCocoa.mm:

(API::ContentRuleListStore::defaultStorePath):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView keyCommands]):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

Source/WebKitLegacy/mac:

  • Misc/WebNSURLExtras.mm:

(-[NSString _webkit_rangeOfURLScheme]):

  • Misc/WebStringTruncator.mm:

(+[WebStringTruncator centerTruncateString:toWidth:]):

  • Storage/WebStorageManager.mm:

(+[WebStorageManager _storageDirectoryPath]):

  • WebCoreSupport/WebEditorClient.mm:

(_WebCreateFragment):

  • WebView/WebHTMLRepresentation.mm:

(+[WebHTMLRepresentation supportedMIMETypes]):
(+[WebHTMLRepresentation supportedMediaMIMETypes]):
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
(+[WebHTMLRepresentation unsupportedTextMIMETypes]):

  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::isFeatureFlagEnabled):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _close]):
(-[WebView _checkDidPerformFirstNavigation]):
(-[WebView setPreferences:]):
(-[WebView preferences]):
(-[WebView setGroupName:]):

  • WebView/WebViewData.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(allowedFontFamilySet):
(-[DRTMockScroller drawKnob]):
(-[DRTMockScroller drawRect:]):
(prepareConsistentTestingEnvironment):

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView selectionRectsAfterPresentationUpdate]):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::allowedFontFamilySet):
(WTR::systemHiddenFontFamilySet):
(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/mac/main.mm:

(disableAppNapInUIProcess):

5:08 PM Changeset in webkit [273609] by Ryan Haddad
  • 2 edits in trunk/Tools

macOS bots should build with ONLY_ACTIVE_ARCH=NO
https://bugs.webkit.org/show_bug.cgi?id=222502

Reviewed by Aakash Jain.

We need this to correctly build for both arm64e and x86_64 and support M1 hardware in our infrastructure.

  • CISupport/build-webkit-org/steps.py:

(CompileWebKit.start):

5:08 PM Changeset in webkit [273608] by Alan Coon
  • 1 copy in tags/Safari-611.1.21

Tag Safari-611.1.21.

4:55 PM Changeset in webkit [273607] by Ryan Haddad
  • 2 edits in trunk/Tools

Move WebGL test bot to Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222501

Reviewed by Aakash Jain.

  • CISupport/build-webkit-org/config.json:
4:54 PM Changeset in webkit [273606] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r273435.
https://bugs.webkit.org/show_bug.cgi?id=222503

Broke a test

Reverted changeset:

"[css-grid] Fix min/max widths of grid affected by ancestor"
https://bugs.webkit.org/show_bug.cgi?id=222100
https://trac.webkit.org/changeset/273435

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

[JSC] Avoid function allocations for non-user-provided Promise then callbacks
https://bugs.webkit.org/show_bug.cgi?id=222490

Reviewed by Keith Miller.

At @performPromiseThen point, callback function objects themselves are not accessible from users
if they are not passed from users. So, we can reuse functions if users do not pass functions.

  • builtins/PromiseOperations.js:

(globalPrivate.promiseEmptyOnFulfilled):
(globalPrivate.promiseEmptyOnRejected):
(globalPrivate.performPromiseThen):
(onFulfilled): Deleted.
(onRejected): Deleted.

4:32 PM Changeset in webkit [273604] by commit-queue@webkit.org
  • 9 edits in trunk

Source/WebCore:
[MSE] WebContent/GPU process will hang when appending data under some circumstances.
https://bugs.webkit.org/show_bug.cgi?id=222462

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-26
Reviewed by Jer Noble.

No new test, this is covered by one of the MSE WPT.

  • platform/MediaSample.h:

Add an optional parameter to MediaSample::divide to use the buffer's end time
to determine where to divide it.

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::didReceiveSample):
When attempting to split the MediaSample so none ends after the
appendWindowEnd attribute, use the MediaSample's end time as split point.

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

(WebCore::MediaSampleAVFObjC::divide):
Expand the divide method to split the content according to the end time.
Side fix; use OutputPresentationTimeStamp thorough the devide method.
All time and duration comparisons made in the SourceBuffer are based on
the Output times, so to ensure consistency we use the output time when
looking on where to split.

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

Update per new declaration. New argument is unused.

Tools:
[MSE] Ensure MediaSample is properly trimmed.
https://bugs.webkit.org/show_bug.cgi?id=222462

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-26
Reviewed by Jer Noble.

  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp:

Update per new MediaSample::divide prototype.

4:29 PM Changeset in webkit [273603] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Length blending should allow for a ValueRange parameter
https://bugs.webkit.org/show_bug.cgi?id=222497

Reviewed by Dean Jackson.

We introduced a new NonNegativeLengthPropertyWrapper in r273001, the fix for bug 222034, with a special
blend() override implementation which would disallow negative values. However, this is something that
should ideally be provided lower down in the blending code in the blend() function on the Length type
itself. This will allow us to blend other non-negative length-related types, such as LengthBox, without
duplicating this code.

We also use this opportunity to not use the { 0, Fixed } value in all cases where we clip to 0, and
instead use the type from the blended values, provided one isn't 0.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::NonNegativeLengthPropertyWrapper::NonNegativeLengthPropertyWrapper):

  • platform/Length.cpp:

(WebCore::blend):

  • platform/Length.h:
4:17 PM Changeset in webkit [273602] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.2

Tag Safari-612.1.5.2.

4:14 PM Changeset in webkit [273601] by Russell Epstein
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.2

4:11 PM Changeset in webkit [273600] by Alan Bujtas
  • 5 edits in trunk

[LFC][Coverage] Do not bail out on text underline position when text-decoration is 'none'
https://bugs.webkit.org/show_bug.cgi?id=222481

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • fast/text/simple-line-layout-with-text-underline-position-expected.html:
  • fast/text/simple-line-layout-with-text-underline-position.html:
3:51 PM Changeset in webkit [273599] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] platform/mac-bigsur/media/media-source/media-source-webm-vp8-malformed-header.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222493

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-26

  • platform/mac-wk1/TestExpectations:
3:48 PM Changeset in webkit [273598] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Revert "Cherry-pick r273560. rdar://problem/74796083"

This reverts commit r273565.

3:45 PM Changeset in webkit [273597] by dino@apple.com
  • 10 edits in trunk/Source/ThirdParty/ANGLE

Fix iOS simulator crashes due to unsupported simulator pixel formats: r8Unorm_srgb, a1bgr5Unorm, b5g6r5Unorm, abgr4Unorm, bgr5A1Unorm, and program generation asserts.

iOS Simulator doesn't support the following packed 16 bit formats natively. While some of these can be emulated, we should fix up the crashing cases first.

Also fix up program generation issues for void fragment shaders

Disable support for PVRTC temporarily, as Non-square / NPOT PVRTC textures are not supported nativley on metal.

https://bugs.webkit.org/show_bug.cgi?id=222458

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-26
Reviewed by Dean Jackson.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitStructDeclaration):
(GenMetalTraverser::emitFunctionReturn):
(GenMetalTraverser::emitFunctionParameter):

  • src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp:

(PipelineStructs::matches const):

  • src/compiler/translator/TranslatorMetalDirect/Pipeline.h:

(sh::PipelineScoped::matches const):

  • src/libANGLE/renderer/metal/TextureMtl.mm:

(rx::TextureMtl::setPerSliceSubImage):

  • src/libANGLE/renderer/metal/gen_mtl_format_table.py:
  • src/libANGLE/renderer/metal/mtl_format_map.json:
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:

(rx::mtl::Format::init):
(rx::mtl::VertexFormat::init):
(rx::mtl::FormatTable::initNativeFormatCapsAutogen):

  • src/libANGLE/renderer/metal/mtl_format_utils.mm:

(rx::mtl::FormatTable::initialize):

  • src/libANGLE/renderer/metal/mtl_resources.mm:

(rx::mtl::Texture::Make2DTexture):
(rx::mtl::Texture::MakeTexture):

3:41 PM Changeset in webkit [273596] by Devin Rousso
  • 4 edits in trunk

[Payment Request] log when the request is cancelled while waiting for the Promise provided to show()/updateWith() to settle
https://bugs.webkit.org/show_bug.cgi?id=222491

Reviewed by Andy Estes.

Source/WebCore:

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::cancel):

LayoutTests:

  • http/tests/paymentrequest/payment-request-show-method.https-expected.txt:
3:30 PM Changeset in webkit [273595] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r273560.
https://bugs.webkit.org/show_bug.cgi?id=222499

reverting an unnecessary change after confirming it did not
fix build issues

Reverted changeset:

"Convert WKMediaPlaybackState NS_ENUM back to NSUInteger type"
https://bugs.webkit.org/show_bug.cgi?id=222475
https://trac.webkit.org/changeset/273560

3:22 PM Changeset in webkit [273594] by msaboff@apple.com
  • 3 edits
    1 add in trunk

unexpected minimumInputSize in setupDisjunctionOffsets for regexp engine(yarr)
https://bugs.webkit.org/show_bug.cgi?id=220357

Reviewed by Saam Barati.

JSTests:

New tests to check the boundary conditions for overflowing a pattern in a RegExp.

  • stress/regexp-max-size.js: Added.

(testMaxRegExp):
(testTooBigRegExp):
(testMaxBMPRegExp):
(testTooBigBMPRegExp):
(testMaxNonBMPRegExp):
(testTooBigNonBMPRegExp):
(testAll):

Source/JavaScriptCore:

Removed an unnecessary ASSERT.
This assert checked that the minimum size wasn't UINT_MAX which I believe was
intended to make sure the minimum size was changed while computing the
disjunction's size and offsets. Those calculations involve checked arithmetic,
which would catch any overflow.

The other part of this patch adds a test that checks this condition as well
as the case where the pattern is one character longer, 232, which triggers
the arithmetic overflow.

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):

3:20 PM Changeset in webkit [273593] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Remove unnecessary WKMediaPlaybackState header from Xcode project file
https://bugs.webkit.org/show_bug.cgi?id=222496
<rdar://problem/74808525>

Reviewed by Brent Fulgham.

  • WebKit.xcodeproj/project.pbxproj:
3:17 PM Changeset in webkit [273592] by weinig@apple.com
  • 5 edits in trunk

Remove non-standard 'css'/'Css' prefixed properties on CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=218158
Source/WebCore:

<rdar://problem/70666307>

Reviewed by Tim Horton.

Remove support for 'css'/'Css' prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.

  • css/CSSStyleDeclaration.cpp:

LayoutTests:

Reviewed by Tim Horton.

  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:

Update test to reflect removal of css prefixes.

2:39 PM Changeset in webkit [273591] by Peng Liu
  • 3 edits in trunk/LayoutTests

Flaky Test: media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html
https://bugs.webkit.org/show_bug.cgi?id=182571

Reviewed by Jer Noble.

Fix a flaky test by:
1) Enable "MockVideoPresentationMode".
2) Wait for a video presentation mode change to complete before moving to the next step in the test.
3) Request the video to exit fullscreen before finish the test (to avoid interference with other tests).

  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen-expected.txt:
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html:
2:26 PM Changeset in webkit [273590] by wilander@apple.com
  • 27 edits
    2 copies
    2 moves in trunk

Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>

Reviewed by Brent Fulgham and informally by Kate Cheney.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):

Now sets two new member variables:

  • Optional<OperatingDate> m_longWindowOperatingDate
  • Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):

Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

Test infrastructure. The same changes as in the DB store.

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

(WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):

Test infrastructure.

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

(WebKit::NetworkProcess::insertExpiredStatisticForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsExpiredStatistic):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.

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

(WTR::TestRunner::setStatisticsExpiredStatistic):

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

(WTR::TestController::setStatisticsExpiredStatistic):

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

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.

Sets numberOfOperatingDaysPassed to 6.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.

Sets numberOfOperatingDaysPassed to 7.

  • http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:

Sets numberOfOperatingDaysPassed to 30.

  • platform/wk2/TestExpectations:

Updated existing expectation with new file name.

2:11 PM Changeset in webkit [273589] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed, add myself to the ConsoleUsage watchlist

  • Scripts/webkitpy/common/config/watchlist:
1:43 PM Changeset in webkit [273588] by BJ Burg
  • 5 edits in trunk/Source/WebKit

Web Inspector: give WebInspectorUIExtensionControllerProxy a chance to teardown when the frontend is about to close
https://bugs.webkit.org/show_bug.cgi?id=222486

Reviewed by Devin Rousso.

Sometimes when closing Web Inspector, the message receiver for WebInspectorUIExtensionControllerProxy
is not removed. Move this teardown into a separate method. It's too late to do this in the destructor
if a lambda has kept a strong reference to the controller beyond the point when the frontend was closed.

Covered by existing API tests, which will hopefully become less flaky as a result.

  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow):

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
Notify the extensions controller that it's time to teardown.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::~WebInspectorUIExtensionControllerProxy):
By the time this destructor runs, we should have already gotten the message to teardown.

(WebKit::WebInspectorUIExtensionControllerProxy::inspectorFrontendWillClose): Added.
Use the soon-to-be-gone m_frontendPage to unregister as a message receiver.

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

Flaky JSC test: stress/atomic-increment-bigint64.js
https://bugs.webkit.org/show_bug.cgi?id=221904

Reviewed by Keith Miller.

bytecode-cache test assumes that code can be cached once it is executed. But this
is not correct for threading tests using JSC shell's agent feature: code is running
different VM in the different thread. And we have no guarantee that this thread destroys
VM when the main thread is finished. So this is possible that bytecode used in that thread
is not committed.

We use Options::forceDiskCache's RELEASE_ASSERT only if it is in main thread.

  • runtime/CodeCache.h:
1:40 PM Changeset in webkit [273586] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: add support for receiving Web Extension events via _WKInspectorExtensionDelegate
https://bugs.webkit.org/show_bug.cgi?id=222252
<rdar://problem/71206685>

Unreviewed, revert one unintentionally changed error code.

Fixes failing API test WKInspectorExtensionHost.UnregisterExtension.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):

1:36 PM Changeset in webkit [273585] by Jonathan Bedard
  • 6 edits
    1 add in trunk/Tools

[webkitcorepy] Move credential access from webkitscmpy
https://bugs.webkit.org/show_bug.cgi?id=222487
<rdar://problem/74801487>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, move keyring libraries.
  • Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py: Add.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version, move keyring libraries.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.credentials): Use webkitcorepy credentials.

1:03 PM Changeset in webkit [273584] by Jonathan Bedard
  • 9 edits in trunk/Tools

[resultsdbpy] Use webkitcorepy requests mocking
https://bugs.webkit.org/show_bug.cgi?id=222443
<rdar://problem/74764567>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/casserole_unittest.py:

(CasseroleTest.test_synchronous): Use webkitcorepy's requests mocking.
(CasseroleTest.test_asynchronous): Ditto.
(CasseroleTest.test_list_like): Ditto.
(MockRequest): Deleted.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context_unittest.py:

(URLFactoryTest.mock): Use webkitcorepy's requests mocking.
(URLFactoryTest.MockRequest): Deleted.
(URLFactoryTest.get): Deleted.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes_unittest.py:

(WebSiteTestCase.decorator): Referenced static files have already been moved.
(WebSiteTestCase.decorator.MockRequest): Deleted.

  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/setup.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests_.py:

(Requests.init): Allow caller to specify certain responses.
(Requests.request):

1:02 PM Changeset in webkit [273583] by Andres Gonzalez
  • 4 edits in trunk

Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:

<rdar://problem/74793445>

Reviewed by Chris Fleizach.

This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.

Tools:

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::textMarkerRangeForRange):

12:44 PM Changeset in webkit [273582] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
https://bugs.webkit.org/show_bug.cgi?id=218637
<rdar://problem/71102126>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-26
Reviewed by Kenneth Russell.

Remove incorrect validation that IOSurface pixel format matches
the pixel format of the texture image being specified.

The "Element" in IOSurface is a block of pixels, while the validation assumed
it means one pixel. The validation failed for a compressed format.

Currently we map non-public YUV formats, to which there is no elequent way
of implementing the validation.
Most likely this started to reproduce if IOSurfaceGetBytesPerElementOfPlane
was changed to produce correct results for the above YUV format.

Later commits could add the validation back for formats that we know the
pixel format type.

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:

(rx::IOSurfaceSurfaceEAGL::validateAttributes):

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

[ews] Commit queue should show commit identifier every time it updates local checkout
https://bugs.webkit.org/show_bug.cgi?id=222287

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/factories.py:

(CommitQueueFactory.init): Added ShowIdentifier step.

  • CISupport/ews-build/factories_unittest.py: Updated unit-test.
12:27 PM Changeset in webkit [273580] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273558. rdar://problem/74800042

Unreviewed, address post-landing review feedback for r273542.

Update a comment and fix a check that was reversed.

  • Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::createOutputBufferForJS const): (WebCore::ScriptProcessorNode::process):

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

12:27 PM Changeset in webkit [273579] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273542. rdar://problem/74800042

Fix threading issue in ScriptProcessorNode::process()
https://bugs.webkit.org/show_bug.cgi?id=222447
<rdar://74700526>

Reviewed by Jer Noble.

It was possible for the audio thread (in ScriptProcessorNode::process())
and the main thread (via ScriptProcessorNode::fireProcessEvent()) to
access the same m_inputBuffers / m_outputBuffers concurrently, causing
crashes. The m_processLock was supposed to avoid this. However, the
scope of the locking in ScriptProcessorNode::process() was insufficient
to protect us. ScriptProcessorNode::process() now grabs the lock very
early, before interacting with any buffers and we make sure not to
modify the buffers when we are unable to grab the lock.

Also, to make sure that the m_inputBuffers / m_outputBuffers are modified
by the main thread only during the scope of the fireProcessEvent() function
(during which we hold the processLock), we no longer pass our internal
buffers to the JS process event handler. Instead, we pass new buffers to
JS and memcpy to and from them. While this is less efficient, this is
actually required because the script could store the buffers it is given
and modify them outside the scope of the process event handler.

  • Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::AudioBuffer): (WebCore::AudioBuffer::topologyMatches const): (WebCore::AudioBuffer::copyTo const): (WebCore::AudioBuffer::clone const):
  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::createInputBufferForJS const): (WebCore::ScriptProcessorNode::createOutputBufferForJS const): (WebCore::ScriptProcessorNode::process): (WebCore::ScriptProcessorNode::fireProcessEvent):
  • Modules/webaudio/ScriptProcessorNode.h:

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

12:27 PM Changeset in webkit [273578] by Alan Coon
  • 5 edits
    4 adds in branches/safari-611-branch

Cherry-pick r273512. rdar://problem/74799698

REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash
https://bugs.webkit.org/show_bug.cgi?id=222402
<rdar://problem/72621268>

Reviewed by Darin Adler and Chris Lord.

Source/WebCore:

It looks like it was simply an oversight from that patch. If the font name is empty,
CanvasRenderingContext2D::setFont() will set the font object to one that doesn't have
its internal FontCascadeFonts pointer set.

Tests: fast/text/canvas-font-resolution-2.html

fast/text/canvas-font-resolution.html

  • html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont):
  • html/canvas/CanvasRenderingContext2DBase.h: (WebCore::CanvasRenderingContext2DBase::FontProxy::isPopulated const):
  • style/StyleResolveForFontRaw.cpp: (WebCore::Style::resolveForFontRaw):

LayoutTests:

  • fast/text/canvas-font-resolution-2-expected.html: Added.
  • fast/text/canvas-font-resolution-2.html: Added.
  • fast/text/canvas-font-resolution-expected.txt: Added.
  • fast/text/canvas-font-resolution.html: Added.

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

12:27 PM Changeset in webkit [273577] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273498. rdar://problem/74800989

[iOS] Crash when playing Dolby Atmos audio tracks with AVAudioTimePitchAlgorithmTimeDomain
https://bugs.webkit.org/show_bug.cgi?id=222420
<rdar://74612532>

Reviewed by Eric Carlson.

CoreAudio throws an assertion when using the TimeDomain pitch-correction algorithm on tracks
with > 2 channels. To work around this assertion for now, only set the pitch-correction
algorithm when the playbackRate is set to a non 0 or 1 value.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::audioTimePitchAlgorithmForMediaPlayerPitchCorrectionAlgorithm): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPreservesPitch): (WebCore::MediaPlayerPrivateAVFoundationObjC::setPitchCorrectionAlgorithm): (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange):

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

12:22 PM Changeset in webkit [273576] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[Cocoa] Send QOS parameters as part of Web process creation parameters
https://bugs.webkit.org/show_bug.cgi?id=222474

Reviewed by Chris Dumez.

In order to save one IPC call when starting a WebContent process, send QOS parameters as part of Web process creation parameters.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

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

(WebKit::WebProcess::platformInitializeWebProcess):

12:21 PM Changeset in webkit [273575] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[Cocoa] Start WebContent process pre-warming when process is initialized
https://bugs.webkit.org/show_bug.cgi?id=222476

Reviewed by Chris Dumez.

Instead of pre-warming in response to a message, the WebContent process can start pre-warming automatically
if it is of a pre-warmed process type. This saves one IPC message on startup of the WebContent process.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.messages.in:
12:09 PM Changeset in webkit [273574] by Devin Rousso
  • 10 edits in trunk/Source/WebKit

Provide the image URL for accessibility image extraction
https://bugs.webkit.org/show_bug.cgi?id=222483
<rdar://problem/74144895>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestImageExtraction):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestImageExtraction):

  • UIProcess/PageClient.h:

(WebKit::PageClient::requestImageExtraction):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::requestImageExtraction):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:
12:00 PM Changeset in webkit [273573] by Alan Coon
  • 1 copy in tags/Safari-611.1.20

Tag Safari-611.1.20.

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

Remove old buildbot version from webkitpy autoinstaller
https://bugs.webkit.org/show_bug.cgi?id=222272

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/autoinstalled/buildbot.py:
11:29 AM Changeset in webkit [273571] by Alan Coon
  • 2 edits in branches/safari-611-branch/LayoutTests

Cherry-pick r273567. rdar://problem/74798808

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Unreviewed test gardening.

  • platform/mac/TestExpectations:

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

11:29 AM Changeset in webkit [273570] by Alan Coon
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r273539. rdar://problem/74798808

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Reviewed by Zalan Bujtas.

Source/WebCore:

Just add UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A to the list.

We have to do some workarounds because not all versions of ICU include this value.
Luckily, these workarounds are compile-time-only, because we we're only using this value
to compare to a value produced by ICU (not a value we pass into ICU).

Test: fast/text/mending-heart.html

  • platform/text/CharacterProperties.h: (WebCore::isEmojiGroupCandidate):

LayoutTests:

  • fast/text/mending-heart-expected.txt: Added.
  • fast/text/mending-heart.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:

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

11:29 AM Changeset in webkit [273569] by Lauro Moura
  • 4 edits
    15 moves in trunk/LayoutTests

[GLIB] Move some css3 blending baselines to glib and update expectations

Unreviewed test gardening.

These tests are passing in GTK and in WPE, so move the baselines to
glib.

The two GTK expectations left are now in GLIB and the PASS flakiness
removed as they are consistently ImageOnlyFailing. Also moved the
other expectations to the compositing section.

  • platform/glib/TestExpectations:
  • platform/glib/css3/blending/svg-blend-color-burn-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-color-burn-expected.txt.
  • platform/glib/css3/blending/svg-blend-color-dodge-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-color-dodge-expected.txt.
  • platform/glib/css3/blending/svg-blend-darken-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-darken-expected.txt.
  • platform/glib/css3/blending/svg-blend-difference-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-difference-expected.txt.
  • platform/glib/css3/blending/svg-blend-exclusion-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-exclusion-expected.txt.
  • platform/glib/css3/blending/svg-blend-hard-light-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-hard-light-expected.txt.
  • platform/glib/css3/blending/svg-blend-lighten-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-lighten-expected.txt.
  • platform/glib/css3/blending/svg-blend-multiply-alpha-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-multiply-alpha-expected.txt.
  • platform/glib/css3/blending/svg-blend-multiply-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-multiply-expected.txt.
  • platform/glib/css3/blending/svg-blend-normal-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-normal-expected.txt.
  • platform/glib/css3/blending/svg-blend-overlay-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-overlay-expected.txt.
  • platform/glib/css3/blending/svg-blend-plus-darker-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-plus-darker-expected.txt.
  • platform/glib/css3/blending/svg-blend-plus-lighter-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-plus-lighter-expected.txt.
  • platform/glib/css3/blending/svg-blend-screen-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-screen-expected.txt.
  • platform/glib/css3/blending/svg-blend-soft-light-expected.txt: Renamed from LayoutTests/platform/gtk/css3/blending/svg-blend-soft-light-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:28 AM Changeset in webkit [273568] by jer.noble@apple.com
  • 20 edits in trunk/Source

[GPUP] Allow painting of GPUP hosted video from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=222461

Reviewed by Eric Carlson.

Source/WebCore:

  • Change the return type of pixelBufferForCurrentTime() to return a RetainPtr<> rather than just a raw pointer.
  • Add utility methods on IOSurface to retrieve an IOSurface from a CVPixelBuffer and to reconstitute a CVPixelBuffer from an IOSurface.
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::pixelBufferForCurrentTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::createFromPixelBuffer):
(WebCore::IOSurface::createPixelBuffer):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia):

Source/WebKit:

Add Cocoa implementations for nativeImageForCurrentTime() and pixelBufferForCurrentTime().
Use those methods to implement paintCurrentFrameInContext().

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime):
(WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::paint):
(WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

10:44 AM Changeset in webkit [273567] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:40 AM Changeset in webkit [273566] by Russell Epstein
  • 1 copy in tags/Safari-612.1.5.1

Tag Safari-612.1.5.1.

10:33 AM Changeset in webkit [273565] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273560. rdar://problem/74796083

Convert WKMediaPlaybackState NS_ENUM back to NSUInteger type
https://bugs.webkit.org/show_bug.cgi?id=222475
<rdar://problem/74787665>

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.h:

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

10:24 AM Changeset in webkit [273564] by pvollan@apple.com
  • 8 edits in trunk/Source

[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>

Reviewed by Eric Carlson.

Source/WebCore:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.

No new tests, covered by existing tests.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder):
(WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder):
(WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder):
(WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder):
(WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder):
(WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebKit:

Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder): Deleted.
(WebKit::WebProcess::enableVP8SWDecoder): Deleted.
(WebKit::WebProcess::enableVP9SWDecoder): Deleted.

  • WebProcess/WebProcess.h:
10:24 AM Changeset in webkit [273563] by Ruben Turcios
  • 8 edits in branches/safari-612.1.5-branch/Source

Versioning.

WebKit-7612.1.5.1

9:54 AM Changeset in webkit [273562] by Devin Rousso
  • 10 edits
    2 adds in trunk

[Payment Request] log if updateWith is not called synchronously
https://bugs.webkit.org/show_bug.cgi?id=222436

Reviewed by Andy Estes.

Source/WebCore:

Test: http/tests/paymentrequest/updateWith-log-error-if-not-synchronous.https.html

  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::shippingAddressChanged):
(WebCore::PaymentRequest::shippingOptionChanged):
(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::dispatchAndCheckUpdateEvent): Added.

  • Modules/paymentrequest/PaymentRequestUpdateEvent.h:

(WebCore::PaymentRequestUpdateEvent::didCallUpdateWith const): Added.

LayoutTests:

  • http/tests/paymentrequest/updateWith-log-error-if-not-synchronous.https.html: Added.
  • http/tests/paymentrequest/updateWith-log-error-if-not-synchronous.https-expected.txt: Added.
  • http/tests/paymentrequest/payment-request-change-shipping-address.https.html:
  • http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
  • http/tests/ssl/applepay/ApplePayBillingAddress.html:
  • http/tests/ssl/applepay/ApplePayPaymentMethodChangeEvent.https.html:

Add updateWith({}) calls to avoid the log.

9:49 AM Changeset in webkit [273561] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS ] fast/text/mending-heart.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=222479

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-26

  • platform/mac/TestExpectations: Test consantly fails. Already marked in test for iOS, updating test expectation to fail for macOS until the test is fixed.
9:40 AM Changeset in webkit [273560] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Convert WKMediaPlaybackState NS_ENUM back to NSUInteger type
https://bugs.webkit.org/show_bug.cgi?id=222475
<rdar://problem/74787665>

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.h:
9:14 AM Changeset in webkit [273559] by Peng Liu
  • 6 edits in trunk/LayoutTests

[GPUP] Clean up TestExpectations related to media tests
https://bugs.webkit.org/show_bug.cgi?id=222456

Reviewed by Simon Fraser.

  • gpu-process/TestExpectations:

Remove a duplicated expectation (imported/w3c/web-platform-tests/fetch/range/general.window.html).
Move webaudio related test expectations to platform/wk2/TestExpectations.

  • platform/ios-wk2/TestExpectations:

webkit.org/b/221821 has been fixed in r273504.

  • platform/mac-wk2/TestExpectations:

Two media capabilities test failures have been fixed in r273504.
Move a test expectation (platform/mac/media/media-source/videoplaybackquality-decompressionsession.html)
to platform/mac/TestExpectations.
Reorganize expectations for tests in webgl/2.0.0/conformance2/textures/video.

  • platform/mac/TestExpectations:

Remove a duplicated test expectation (mediaElementAudioSourceToScriptProcessorTest.html).

  • platform/wk2/TestExpectations:

Track all modern-media-controls test failures in one bug.
Track all canvas related media test failures in one bug.

8:02 AM Changeset in webkit [273558] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address post-landing review feedback for r273542.

Update a comment and fix a check that was reversed.

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):

7:46 AM Changeset in webkit [273557] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Stop using deprecated buildbot.status.builder
https://bugs.webkit.org/show_bug.cgi?id=222373

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:
6:51 AM WebKitFlatpakSDK/DebugWithRR edited by Philippe Normand
(diff)
6:48 AM Changeset in webkit [273556] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Inline boxes should not be referred as inline containers
https://bugs.webkit.org/show_bug.cgi?id=222455

Reviewed by Antti Koivisto.

Inline boxes used to be called inline containers (e.g <span> -> [inline container start] and </span> -> [inline container end]).

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::hasTextRun):
(WebCore::Layout::InlineContentBreaker::processOverflowingContentWithText const):

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

(WebCore::Layout::InlineFormattingContext::usedContentHeight const):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::TrimmableTrailingContent::remove):

  • layout/inlineformatting/InlineLineBuilder.cpp:

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

6:48 AM Changeset in webkit [273555] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Include the inline box in the enclosing geometry only once
https://bugs.webkit.org/show_bug.cgi?id=222454

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

6:19 AM Changeset in webkit [273554] by Alan Bujtas
  • 4 edits in trunk/LayoutTests

Remove unnecessary whitespace (css1/text_properties/text_decoration.html)
https://bugs.webkit.org/show_bug.cgi?id=222446

Reviewed by Antti Koivisto.

Whitespace characters often end up as trailing content and legacy line layout does not trim them properly.
They cause unnecessary noise in renderer tree dumps when switching to modern line layout.

  • css1/box_properties/border.html:
  • css1/text_properties/text_decoration.html:
  • platform/mac/css1/box_properties/border-expected.txt:
  • platform/mac/css1/text_properties/text_decoration-expected.txt:
6:07 AM Changeset in webkit [273553] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix clang compilation error in PlatformXR::ViewData initialization
https://bugs.webkit.org/show_bug.cgi?id=222467

Patch by Imanol Fernandez <imanol> on 2021-02-26
Reviewed by Philippe Normand.

Mixture of designated and non-designated struct initializers is a C99 extension.
Switch to designated initializers to avoid compilation errors in compilers not
supporting the extension.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::DummyInlineDevice::views const):

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::views const):

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::views const):

6:00 AM Changeset in webkit [273552] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. [GTK] Bump version numbers

  • Source/cmake/OptionsGTK.cmake:
4:45 AM Changeset in webkit [273551] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, WPE build fix after SDK r273544 deployment

  • TestWebKitAPI/PlatformWPE.cmake: GLib include path was missing in the TestJavaScriptCore

build.

4:05 AM Changeset in webkit [273550] by youenn@apple.com
  • 12 edits
    1 move
    7 adds in trunk

Add support for WebRTC priority
https://bugs.webkit.org/show_bug.cgi?id=222416

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/webrtc-priority/META.yml: Added.
  • web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel-expected.txt: Added.
  • web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html: Added.
  • web-platform-tests/webrtc-priority/RTCRtpParameters-encodings-expected.txt: Added.
  • web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html: Added.
  • web-platform-tests/webrtc-priority/w3c-import.log: Added.

Source/WebCore:

Implement https://w3c.github.io/webrtc-priority/ by piping priorities between binding and backend.

Tests: imported/w3c/web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html

imported/w3c/web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCRtpEncodingParameters.h:
  • Modules/mediastream/RTCRtpEncodingParameters.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::fromRTCDataChannelInit):
(WebCore::LibWebRTCDataChannelHandler::channelEvent):
(WebCore::fromStdString): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRTCPriorityType):
(WebCore::toRTCPriorityType):
(WebCore::toWebRTCBitRatePriority):
(WebCore::fromWebRTCBitRatePriority):
(WebCore::toRTCEncodingParameters):
(WebCore::fromRTCEncodingParameters):
(WebCore::updateRTCRtpSendParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RTCDataChannelHandler.h:
  • platform/mediastream/RTCPriorityType.h: Renamed from Source/WebCore/Modules/mediastream/RTCPriorityType.h.
3:53 AM Changeset in webkit [273549] by commit-queue@webkit.org
  • 14 edits in trunk

Implement OpenXR port graphics binding
https://bugs.webkit.org/show_bug.cgi?id=222173

Patch by Imanol Fernandez <imanol> on 2021-02-26
Reviewed by Sergio Villar Senin.

.:

Enable OpenXR defines required for EGL graphics binding.

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

This patch implements the graphics binding required to initialize OpenXR sessions
with tracking and rendering support. The current implementation was using a headless
OpenXR session which is not valid for tracking.

The headless session was used to avoid allocating the graphics resources during WebXR
device enumeration. The problem is that it can't be converted later to a valid session for
tracking, and the global XrInstance needs to be recreated. This patch implements a new approach
to keep the delayed graphics initialization without using the headless session.

  • platform/graphics/egl/GLContextEGL.cpp: Add EGLConfig argument to create methods

(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createPbufferContext):
(WebCore::GLContextEGL::createSurfacelessContext):
(WebCore::GLContextEGL::GLContextEGL):

  • platform/graphics/egl/GLContextEGL.h: Add EGLConfig member
  • platform/graphics/egl/GLContextEGLLibWPE.cpp: initialize m_config

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createWPEContext):

  • platform/graphics/egl/GLContextEGLWayland.cpp: initialize m_config

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createWaylandContext):

  • platform/graphics/egl/GLContextEGLX11.cpp: initialize m_config

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createPixmapContext):

  • platform/xr/openxr/OpenXRExtensions.cpp: Add OpenXRExtensionMethods

(PlatformXR::OpenXRExtensions::loadMethods):

  • platform/xr/openxr/OpenXRExtensions.h:
  • platform/xr/openxr/OpenXRInstance.cpp: Enable graphics related extensions instead of XR_MND_HEADLESS_EXTENSION

(PlatformXR::Instance::Impl::Impl):

  • platform/xr/openxr/OpenXRUtils.h: Forward declare symbols required by openxr_platform.
  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): Setup XrGraphicsBindingEGLMNDX
(PlatformXR::OpenXRDevice::collectEnabledFeatures): Alternative solution to enumerateReferenceSpaces()
(PlatformXR::OpenXRDevice::collectSupportedSessionModes):
(PlatformXR::OpenXRDevice::resetSession): deallocate graphic resources

  • platform/xr/openxr/PlatformXROpenXR.h:
3:10 AM Changeset in webkit [273548] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32.90

WebKitGTK 2.31.90

3:09 AM Changeset in webkit [273547] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.90 release

.:

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

Source/WebKit:

  • gtk/NEWS:Add release notes for 2.31.90.
2:11 AM WebKitGTK/2.32.x created by Carlos Garcia Campos
1:47 AM Changeset in webkit [273546] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32

Branch WebKitGTK for 2.32

1:37 AM Changeset in webkit [273545] by Carlos Garcia Campos
  • 8 edits in trunk

[GTK][WPE] Bump libsoup3 version to 2.99.1
https://bugs.webkit.org/show_bug.cgi?id=222413

Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Use new session getters and setters instead of g_object_get/set.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setProxySettings):
(WebCore::SoupNetworkSession::setAcceptLanguages):

  • platform/network/soup/SoupVersioning.h:

(soup_session_set_proxy_resolver):
(soup_session_get_proxy_resolver):
(soup_session_set_accept_language):

Source/WTF:

  • wtf/Platform.h: Set minimum required version to 2.99
1:20 AM Changeset in webkit [273544] by Philippe Normand
  • 4 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add recipe for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=222419

Reviewed by Carlos Garcia Campos.

LibSoup3 is parallel-installable with libsoup2, for now we want to keep libsoup2 in the SDK,
at least until porting to libsoup3 has progressed enough.

  • elements/sdk-platform.bst:
  • elements/sdk/glib.bst: Bump to latest 2.67 release.
  • elements/sdk/gtk+-3.bst: Bump to latest 3.24 release, not strictly needed but I was driving by.
  • elements/sdk/libsoup3.bst: Added.
1:04 AM Changeset in webkit [273543] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269824): macCatalyst WKWebView shows chunks of other tiles in the middle of content
https://bugs.webkit.org/show_bug.cgi?id=222460
<rdar://problem/74102753>

Reviewed by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
Reinstate some code that was accidentally deleted in r269824 that ensures
that we do not use an in-use IOSurface as our front buffer, so that
we don't paint into it while it's being composited in the render server.

Also, add some comments, since this code is all a little confusing
with its fronts and backs.

Feb 25, 2021:

10:43 PM Changeset in webkit [273542] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Fix threading issue in ScriptProcessorNode::process()
https://bugs.webkit.org/show_bug.cgi?id=222447
<rdar://74700526>

Reviewed by Jer Noble.

It was possible for the audio thread (in ScriptProcessorNode::process())
and the main thread (via ScriptProcessorNode::fireProcessEvent()) to
access the same m_inputBuffers / m_outputBuffers concurrently, causing
crashes. The m_processLock was supposed to avoid this. However, the
scope of the locking in ScriptProcessorNode::process() was insufficient
to protect us. ScriptProcessorNode::process() now grabs the lock very
early, before interacting with any buffers and we make sure not to
modify the buffers when we are unable to grab the lock.

Also, to make sure that the m_inputBuffers / m_outputBuffers are modified
by the main thread only during the scope of the fireProcessEvent() function
(during which we hold the processLock), we no longer pass our internal
buffers to the JS process event handler. Instead, we pass new buffers to
JS and memcpy to and from them. While this is less efficient, this is
actually required because the script could store the buffers it is given
and modify them outside the scope of the process event handler.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::topologyMatches const):
(WebCore::AudioBuffer::copyTo const):
(WebCore::AudioBuffer::clone const):

  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::createInputBufferForJS const):
(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):
(WebCore::ScriptProcessorNode::fireProcessEvent):

  • Modules/webaudio/ScriptProcessorNode.h:
9:06 PM Changeset in webkit [273541] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Serialize NSURLRequest (rather than CFURLRequest) in IPC
https://bugs.webkit.org/show_bug.cgi?id=222145
<rdar://problem/74500963>

Reviewed by Darin Adler and Alex Christensen.

Tested by existing layout and WebKitAPI tests.

Revise IPC serialization so that NSURLConnection (modern) Cocoa builds serialize the
NSURLRequest object, rather than bridging to CFURLRequest and serializing that. This
ensures that the full set of NSURLRequest features are accurately reconstituted on the
receiving side of the connection.

Because NSURL serialization doesn't handle some encoded parameters properly, we implement
an archiving delegate to archive the URL like we do for CFURL.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingArchivingDelegate archiver:willEncodeObject:]): Added.
(-[WKSecureCodingArchivingDelegate unarchiver:didDecodeObject:]): Added.
(+[WKEncodedURL supportsSecureCoding]): Added.
(-[WKEncodedURL encodeWithCoder:]): Added.
(-[WKEncodedURL initWithCoder:]): Added.
(-[WKEncodedURL initWithURL:]): Added.
(IPC::encodeSecureCodingInternal): Update to use new delegate.
(IPC::decodeSecureCodingInternal): Ditto.
(-[WKSecureCodingFontAttributeNormalizer archiver:willEncodeObject:]): Deleted.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData): Add NSURLRequest encoding.
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData): Add NSURLRequest decoding.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createSerializableRepresentation): Deleted.
(IPC::extractDictionaryValue): Deleted.
(IPC::createArchiveList): Deleted.
(IPC::createCFURLRequestFromSerializableRepresentation): Deleted.
(IPC::createNSURLRequestFromSerializableRepresentation): Deleted.
(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData): Deleted.

7:58 PM Changeset in webkit [273540] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening a couple crashes

Unreviewed test gardening.

  • platform/glib/TestExpectations:
7:45 PM Changeset in webkit [273539] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Reviewed by Zalan Bujtas.

Source/WebCore:

Just add UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A to the list.

We have to do some workarounds because not all versions of ICU include this value.
Luckily, these workarounds are compile-time-only, because we we're only using this value
to compare to a value produced by ICU (not a value we pass into ICU).

Test: fast/text/mending-heart.html

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

LayoutTests:

  • fast/text/mending-heart-expected.txt: Added.
  • fast/text/mending-heart.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:40 PM Changeset in webkit [273538] by mmaxfield@apple.com
  • 4 edits in branches/safari-611-branch

Unreviewed, reverting r273390 and r273391.
https://bugs.webkit.org/show_bug.cgi?id=222449

Didn't fix the extreme test variance, and caused some internal
performance bots to hang during testing

Reverted changesets:

"MotionMark scores are super sensitive to a single long frame"
https://bugs.webkit.org/show_bug.cgi?id=220847
https://trac.webkit.org/changeset/273390

"MotionMark scores are super sensitive to a single long frame"
https://bugs.webkit.org/show_bug.cgi?id=220847
https://trac.webkit.org/changeset/273391

  • MotionMark/tests/resources/main.js:

(_measureAndResetInterval):
(update):
(start):
(didFinishInterval):
(filterOutOutliers): Deleted.
(registerFrameTime): Deleted.
(intervalHasConcluded): Deleted.

6:52 PM Changeset in webkit [273537] by Alan Coon
  • 7 edits
    1 copy in branches/safari-611-branch/Source/WebKit

Cherry-pick r273452. rdar://problem/74753294

[iOS] Get default value in the UI process for whether synchronous XMLHttpRequest are allowed during unload
https://bugs.webkit.org/show_bug.cgi?id=222377

Reviewed by Brent Fulgham.

Getting this default value in the UI process instead of in every WebContent process should be a small speedup,
since getting this default value is a bit costly on iOS.

  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • Shared/WebPageCreationParameters.h:
  • Shared/ios/WebPreferencesDefaultValuesIOS.h: Added.
  • Shared/ios/WebPreferencesDefaultValuesIOS.mm: (WebKit::cachedAllowsRequest): (WebKit::allowsDeprecatedSynchronousXMLHttpRequestDuringUnload): (WebKit::setAllowsDeprecatedSynchronousXMLHttpRequestDuringUnload):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):

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

6:52 PM Changeset in webkit [273536] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273442. rdar://problem/74753214

Regression(r269481) Kugou Music: Can not leave "MV" category after selecting it
https://bugs.webkit.org/show_bug.cgi?id=222380
<rdar://74602294>

Reviewed by Geoffrey Garen.

The new behavior in r269481 aligns us with the specification and with Blink so I
am adding a linked-on-after to maintain pre-r269481 behavior until Apps get
rebuilt against the new SDK.

  • html/HTMLDocument.cpp: (WebCore::HTMLDocument::supportedPropertyNames const):
  • page/Quirks.cpp: (WebCore::Quirks::shouldOmitHTMLDocumentSupportedPropertyNames):
  • page/Quirks.h:
  • platform/cocoa/VersionChecks.h:

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

6:51 PM Changeset in webkit [273535] by Alan Coon
  • 3 edits
    7 adds in branches/safari-611-branch

Cherry-pick r273501. rdar://problem/74760623

[Cocoa] Files from webmfiles.org do not play through MSE
https://bugs.webkit.org/show_bug.cgi?id=222403
<rdar://74640660>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-webm-vp8-malformed-header.html

As per RFC 6386, each VP8 frame begins with a three-byte (minimum) frame header, with extra
bytes if that preamble indicates that the frame is a keyframe. Files from webmfiles.org (and
others) have valid frame headers for keyframes, but invalid or no header for interframes;
these interframes' headers, when parsed, erroneously report they are keyframes, and thus the
optional extra bytes are parsed, fail parsing, and generate an error.

Rather than drop frames when parsing fails, just assume the frame is an interframe, and
proceed normally.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):

LayoutTests:

  • platform/mac-bigsur/media/media-source/content/test-vp8-malformed-header-manifest.json: Added.
  • platform/mac-bigsur/media/media-source/content/test-vp8-malformed-header.webm: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vp8-malformed-header-expected.txt: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vp8-malformed-header.html: Added.

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

6:51 PM Changeset in webkit [273534] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273499. rdar://problem/74766327

Avoid setting page muted state if unchanged
https://bugs.webkit.org/show_bug.cgi?id=222395

Reviewed by Brent Fulgham.

Return early in Page::setMuted if muted state did not change.

No new tests, covered by existing tests.

  • page/Page.cpp: (WebCore::Page::setMuted):

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

6:51 PM Changeset in webkit [273533] by Alan Coon
  • 11 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273477. rdar://problem/74766196

Avoid heap allocation for EventContexts
https://bugs.webkit.org/show_bug.cgi?id=222095
<rdar://problem/74586915>

Reviewed by Simon Fraser.

This patch merges all subclasses of EventContext into itself to avoid heap allocation for each
EventContext in EventPath::m_path. It also merges Node::handleLocalEvents into EventContext's
handleLocalEvents to avoid the extra virtual function call.

No new tests since there should be no observable behavioral differences.

  • dom/EventContext.cpp: (WebCore::EventContext::EventContext): Moved to the header to be inlined. (WebCore::EventContext::handleLocalEvents const): Merged handleLocalEvents of HTMLFormElement and Node. Moved the code to handle related target and touch targets from MouseOrFocusEventContext and TouchEventContext as they have been merged into this class. Also special case dispatching an event on window to preserve the behavior of WindowEventContext. (WebCore::EventContext::initializeTouchLists): Added. Creates TouchList objects. (WebCore::EventContext::isUnreachableNode const): Moved from the header. (WebCore::EventContext::isMouseOrFocusEventContext const): Deleted. (WebCore::EventContext::isTouchEventContext const): Deleted. (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): Deleted. (WebCore::MouseOrFocusEventContext::handleLocalEvents const): Deleted. (WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext const): Deleted. (WebCore::TouchEventContext::TouchEventContext): Deleted. (WebCore::TouchEventContext::handleLocalEvents const): Deleted. (WebCore::TouchEventContext::isTouchEventContext const): Deleted. (WebCore::TouchEventContext::checkReachability const): Deleted. Merged into handleLocalEvents.
  • dom/EventContext.h: (WebCore::EventContext::isMouseOrFocusEventContext const): Now simply checks m_type. (WebCore::EventContext::isTouchEventContext const): Ditto. (WebCore::EventContext::isWindowContext const): Ditto. (WebCore::EventContext::relatedTarget const): Moved from MouseOrFocusEventContext. (WebCore::EventContext::setRelatedTarget): Ditto. (WebCore::EventContext::touchList): Moved from TouchEventContext. (WebCore::m_contextNodeIsFormElement): Added. Caching this state here instead of checking it at every event context during dispatching in EventContext::handleLocalEvents seems to be important to get a speed up in Intel processors. Apple silicons don't seem to be affected by this. (WebCore::m_type): Added. (WebCore::MouseOrFocusEventContext): Deleted. (WebCore::MouseOrFocusEventContext::relatedTarget const): Deleted. (WebCore::TouchEventContext): Deleted. (WebCore::EventContext::EventContext): Moved from cpp file to be inlined here. (WebCore::EventContext::isUnreachableNode const): Moved into cpp as this is only used for asserting shadow DOM related conditions. (WebCore::EventContext::touchList): Renamed from TouchEventContext::touchList. (isType): Deleted.
  • dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): Deleted the variant that takes a vector of elements since it's not used anywhere.
  • dom/EventDispatcher.h:
  • dom/EventPath.cpp: (WebCore::WindowEventContext): Deleted. (WebCore::EventPath::EventPath): Avoid calling setRelatedTarget if related target is not a node or the path is empty. These were early return conditions in setRelatedTarget before this patch. (WebCore::EventPath::buildPath): Always create EventContext. Dramatically simplifies the code. (WebCore::EventPath::setRelatedTarget): Moved the early exit to EventPath::EventPath. (WebCore::EventPath::retargetTouch): (WebCore::EventPath::retargetTouchList): (WebCore::EventPath::retargetTouchLists): (WebCore::EventPath::EventPath): Deleted the variant which takes a vector of elements as it's not used anywhere.
  • dom/EventPath.h: (WebCore::EventPath::contextAt const): (WebCore::EventPath::contextAt): (WebCore::EventPath::m_path): Now allocates EventContext in place. The size of the inline buffer has been reduced to 16 entries for EventContext from 32 entries for std::unique_ptr<EventContext> since the former is considerably larger than the latter.
  • dom/Node.cpp: (WebCore::Node::handleLocalEvents): Deleted. Merged into EventContext::handleLocalEvents.
  • dom/Node.h:
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): Ditto.
  • html/HTMLFormElement.h:

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

6:51 PM Changeset in webkit [273532] by Alan Coon
  • 6 edits
    3 adds in branches/safari-611-branch

Cherry-pick r273438. rdar://problem/74753272

Regression(r268700) postMessage changes prototype of basic types
https://bugs.webkit.org/show_bug.cgi?id=222228
<rdar://problem/74612853>

Reviewed by Geoffrey Garen.

Source/WebCore:

r268700 updated ScriptExecutionContext::globalObject() to call:
WebCore::globalObject(mainThreadNormalWorld(), downcast<Document>(*this).page())
instead of
frame ? frame->script().globalObject(mainThreadNormalWorld()) : nullptr

This was not right for subframes because globalObject() gets the globalObject from
the page's main frame instead of the document's frame.

This patch gets rid of the error-prone WebCore::globalObject() taking in a Page*
and replaces it with one taking in a Frame* to avoid such issues in the future.

Test: fast/dom/Window/postMessage-Object-prototype.html

  • bindings/js/ScriptState.cpp: (WebCore::globalObject):
  • bindings/js/ScriptState.h:
  • dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::globalObject):
  • inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld): (WebCore::InspectorFrontendHost::showContextMenu):

LayoutTests:

Add layout test coverage.

  • fast/dom/Window/postMessage-Object-prototype-expected.txt: Added.
  • fast/dom/Window/postMessage-Object-prototype.html: Added.
  • fast/dom/Window/resources/postMessage-Object-prototype-frame.html: Added.

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

6:51 PM Changeset in webkit [273531] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273415. rdar://problem/74763807

Move PostResolutionCallbackDisabler to resolveComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=222350

Reviewed by Ryosuke Niwa.

It can be constructed and deleted repeatedly in styleForElementIgnoringPendingStylesheets when
resolveComputedStyle calls it in a loop.

  • dom/Document.cpp: (WebCore::Document::styleForElementIgnoringPendingStylesheets):
  • dom/Element.cpp: (WebCore::Element::resolveComputedStyle): (WebCore::Element::resolvePseudoElementStyle):

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

6:51 PM Changeset in webkit [273530] by Alan Coon
  • 7 edits
    4 adds in branches/safari-611-branch

Cherry-pick r273385. rdar://problem/74753323

Runtime-disabled CSS features still appear enabled via CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=222280
rdar://74595641

Reviewed by Sam Weinig.

Source/WebCore:

When parsing CSS.supports() for a runtime-disabled property, we'd successfully
parse a CSS-wide keyword like "inherit" and report that the property is supported.

We need to explicitly check for runtime-disabled properties.

Tests: css3/color-filters/color-filter-exposed-if-disabled.html

fast/css/scroll-behavior-exposed-if-disabled.html

  • css/parser/CSSParserImpl.cpp: (WebCore::CSSParserImpl::isPropertyRuntimeDisabled const): (WebCore::CSSParserImpl::consumeDeclaration):
  • css/parser/CSSParserImpl.h:

LayoutTests:

  • css3/color-filters/color-filter-exposed-if-disabled-expected.txt: Added. Fails tracked in webkit.org/b/217626
  • css3/color-filters/color-filter-exposed-if-disabled.html: Added.
  • fast/css/overscroll-behavior-invalidate-if-disabled-expected.txt:
  • fast/css/overscroll-behavior-invalidate-if-disabled.html:
  • fast/css/scroll-behavior-exposed-if-disabled-expected.txt: Added.
  • fast/css/scroll-behavior-exposed-if-disabled.html: Added.

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

6:51 PM Changeset in webkit [273529] by Alan Coon
  • 6 edits
    2 adds in branches/safari-611-branch

Cherry-pick r273314. rdar://problem/74753260

aspect-ratio shows in computed style when disabled
https://bugs.webkit.org/show_bug.cgi?id=222286

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-23
Reviewed by Simon Fraser.

Source/WebCore:

Make aspect-ratio invisible from style when disabled.

Test: fast/css/aspect-ratio-invalidate-if-disabled.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
  • css/CSSProperties.json:

Tools:

Add support for disabling aspect-ratio in wk1.

  • DumpRenderTree/TestOptions.cpp: (WTR::TestOptions::defaults):

LayoutTests:

Add test.

  • fast/css/aspect-ratio-invalidate-if-disabled-expected.txt: Added.
  • fast/css/aspect-ratio-invalidate-if-disabled.html: Added.

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

6:51 PM Changeset in webkit [273528] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.21

6:45 PM Changeset in webkit [273527] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, reverting r273122 and r273123.
https://bugs.webkit.org/show_bug.cgi?id=222449

Didn't fix the extreme test variance, and caused some internal
performance bots to hang during testing

Reverted changesets:

"MotionMark scores are super sensitive to a single long frame"
https://bugs.webkit.org/show_bug.cgi?id=220847
https://trac.webkit.org/changeset/273122

"MotionMark scores are super sensitive to a single long frame"
https://bugs.webkit.org/show_bug.cgi?id=220847
https://trac.webkit.org/changeset/273123

6:31 PM Changeset in webkit [273526] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[GPUP] The GPU Process crashes in WebKit::RemoteLegacyCDMFactoryProxy::getSession() with an assertion failure
https://bugs.webkit.org/show_bug.cgi?id=222435

Reviewed by Eric Carlson.

Fix an assertion failure on debug bots.

No new tests. Fix crashes on the bots.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedKeyForKeyId const):
We should not search the hash table with an empty key (m_legacySession).

6:12 PM Changeset in webkit [273525] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Fix typo in wasm error message
https://bugs.webkit.org/show_bug.cgi?id=222444

Reviewed by Saam Barati.

JSTests:

  • wasm/stress/invalid-wasm-header.js: Added.

(assert.throws):

Source/JavaScriptCore:

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::parseModuleHeader):

5:57 PM Changeset in webkit [273524] by sbarati@apple.com
  • 18 edits
    2 adds in trunk

Add some exception checks to the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=222434
<rdar://69066130>

Reviewed by Yusuke Suzuki.

Source/WebCore:

Test: js/dom/local-storage-exception-checks.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateInvokeIndexedPropertySetter):
(GenerateInvokeNamedPropertySetter):
(GeneratePut):
(GeneratePutByIndex):
(GenerateDefineOwnProperty):

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

(WebCore::JSTestIndexedSetterNoIdentifier::put):
(WebCore::JSTestIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSTestIndexedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestIndexedSetterThrowingException::put):
(WebCore::JSTestIndexedSetterThrowingException::putByIndex):
(WebCore::JSTestIndexedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestIndexedSetterWithIdentifier::put):
(WebCore::JSTestIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSTestIndexedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetter::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::put):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::putByIndex):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::putByIndex):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::put):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::putByIndex):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::defineOwnProperty):

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

(WebCore::JSTestPluginInterface::put):
(WebCore::JSTestPluginInterface::putByIndex):

LayoutTests:

  • js/dom/local-storage-exception-checks-expected.txt: Added.
  • js/dom/local-storage-exception-checks.html: Added.
5:53 PM Changeset in webkit [273523] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Ensure MRMediaRemoteSetCanBeNowPlayingApplication is called at least once when we start playing something.
https://bugs.webkit.org/show_bug.cgi?id=222405

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-25
Reviewed by Eric Carlson.

Manually tested for NowPlaying functionality.

  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::setNowPlayingInfo):
MediaSessionManagerCocoa::setNowPlayingInfo would have always been called
with false (setAsNowPlayingApplication) when the GPU process was in use.
It needed to be called at least once.
MRMediaRemoteSetCanBeNowPlayingApplication is fairly CPU intensive, so we
ensure we only call it if no content had been played before.

5:02 PM Changeset in webkit [273522] by BJ Burg
  • 37 edits
    4 copies
    1 add in trunk/Source

[Cocoa] Web Inspector: add support for receiving Web Extension events via _WKInspectorExtensionDelegate
https://bugs.webkit.org/show_bug.cgi?id=222252
<rdar://problem/71206685>

Reviewed by Devin Rousso.

Source/WebCore:

Expose methods that the frontend can call to pass along extension lifecycle events
via the frontend client. Add 'supportsWebExtensions' to allow for feature detection from WebInspectorUI.

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::supportsWebExtensions):
(WebCore::InspectorFrontendClient::didShowExtensionTab):
(WebCore::InspectorFrontendClient::didHideExtensionTab):

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::supportsWebExtensions):
(WebCore::InspectorFrontendHost::didShowExtensionTab):
(WebCore::InspectorFrontendHost::didHideExtensionTab):

Source/WebInspectorUI:

  • UserInterface/Models/WebInspectorExtension.js: Update comment for namespace change.
  • UserInterface/Views/WebInspectorExtensionTabContentView.js:

(WI.WebInspectorExtensionTabContentView.prototype.attached):
(WI.WebInspectorExtensionTabContentView.prototype.detached):
When an extension tab is shown or hidden, notify the frontend host about the event.

Source/WebKit:

This patch adds support for clients to receive extension lifecycle events. For now this includes
extension tab shown/hidden, but will eventually include page navigations and other events exposed
via Web Extensions API.

This is implemented at the WebKit level via new InspectorFrontendClient methods. This gets piped to
WebInspectorUIExtensionControllerProxy via IPC, which then passes on the event to _WKInspectorExtensionDelegate.

_WKInspectorExtensionDelegate is a delegate of _WKInspectorExtension. It's for receiving lifecycle events, and
is implemented similarly to _WKInspectorDelegate. WebInspectorUIExtensionControllerProxy now keeps a map of
extension API objects so that it can call out to the the appropriate extension API object's client/delegate.

To better handle the situation where client completion handlers may be invoked after the inspector page has been torn down,
switch WebInspectorUIExtensionControllerProxy to be RefCounted instead of std::unique_ptr so that the appropriate
API object can be retrieved in the async IPC reply block. (IPC message receiver code knows how to ref the receiver
if it expects to deliver a response).

Lastly, since this patch introduces InspectorExtensionError at the WebCore level, I decided to move the contents
of InspectorExtensionTypes.h to the Inspector namespace. It made more sense than typing out WebCore::InspectorExtensionError
and the like. As part of this change, the string type aliases Inspector::ExtensionID and Inspector:ExtensionTabID are
now defined in InspectorFrontendClient.h.

  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Add generated files for new message receiver.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Add new files for inspector extension client/delegate boilerplate classes.

  • Scripts/webkit/messages.py:
  • Shared/InspectorExtensionTypes.h:
  • Shared/InspectorExtensionTypes.cpp:

(Inspector::extensionErrorToString):
(WebKit::inspectorExtensionErrorToString): Deleted.
Move these types and helpers to Inspector namespace.

  • UIProcess/API/APIInspectorExtension.cpp:

(API::InspectorExtension::setClient): Add a client member which is used to call out to _WKInspectorExtensionDelegate.
(API::InspectorExtension::createTab): Fix namespaces.
(API::InspectorExtension::evaluateScript): Fix namespaces.

  • UIProcess/API/APIInspectorExtension.h:
  • UIProcess/API/APIInspectorExtensionClient.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionInternal.h.

(API::InspectorExtensionClient::didShowExtensionTab):
(API::InspectorExtensionClient::didHideExtensionTab):
Added.

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]):
(-[_WKInspector unregisterExtension:completionHandler:]):
Adjust to new type signature that returns an initialized API::InspectorExtension.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]):
(-[_WKRemoteWebInspectorViewController unregisterExtension:completionHandler:]):
Adjust to new type signature that returns an initialized API::InspectorExtension.

  • UIProcess/API/Cocoa/_WKInspectorExtensionDelegate.h: Added.
  • UIProcess/API/Cocoa/_WKInspectorExtension.h: Add the delegate property and update documentation to mention its intended usage.
  • UIProcess/API/Cocoa/_WKInspectorExtensionInternal.h: Add delegate storage.
  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:

(-[_WKInspectorExtension delegate]):
(-[_WKInspectorExtension setDelegate:]):
Added.

(-[_WKInspectorExtension createTabWithName:tabIconURL:sourceURL:completionHandler:]): Fix namespaces.
(-[_WKInspectorExtension evaluateScript:frameURL:contextSecurityOrigin:useContentScriptContext:completionHandler:]): Fix namespaces.

  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.h: Added.
  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.mm: Added.

(WebKit::InspectorExtensionDelegate::InspectorExtensionDelegate):
(WebKit::InspectorExtensionDelegate::delegate):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::InspectorExtensionClient):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::~InspectorExtensionClient):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::didShowExtensionTab):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::didHideExtensionTab):
Added. This is ObjC-to-C++ bridge code to connect API::InspectorExtensionClient (used by WebInspectorUIExtensionControllerProxy)
to _WKInspectorExtensionDelegate (used by client code).

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h: Fix namespaces.
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.messages.in: Added.

Make this class an IPC::MessageReceiver. It receives messages for extension lifecycle events.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::WebInspectorUIExtensionControllerProxy):
(WebKit::WebInspectorUIExtensionControllerProxy::~WebInspectorUIExtensionControllerProxy):
Make this class an IPC::MessageReceiver. It receives messages for extension lifecycle events.

(WebKit::WebInspectorUIExtensionControllerProxy::registerExtension):
Expand this code out so that we can save API::InspectorExtension instances into our own map
before sending it to the completionHandler. This map keeps strong references to the extension
API objects since they need to be used to send events at an arbitrary time in the future.
Previously, they were kept alive (or not) by the API client.

(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):
When the extension is no longer registered, remove the associated extension API object (and
our strong reference to it).

(WebKit::WebInspectorUIExtensionControllerProxy::createTabForExtension): Fix namespaces.
(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension): Fix namespaces.
(WebKit::WebInspectorUIExtensionControllerProxy::didShowExtensionTab):
(WebKit::WebInspectorUIExtensionControllerProxy::didHideExtensionTab):
Added. Try to look up the associated API object for the extension and forward the event to
the client of the API object, which is ultimately _WKInspectorExtensionDelegate.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::supportsWebExtensions):
(WebKit::RemoteWebInspectorUI::didShowExtensionTab):
(WebKit::RemoteWebInspectorUI::didHideExtensionTab):
Added. Defer to the extension controller to handle further event propagation.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::supportsWebExtensions):
(WebKit::WebInspectorUI::didShowExtensionTab):
(WebKit::WebInspectorUI::didHideExtensionTab):
Added. Defer to the extension controller to handle further event propagation.

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:

Fix namespaces.

  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::WebInspectorUIExtensionController):
(WebKit::WebInspectorUIExtensionController::~WebInspectorUIExtensionController):
Be more precise about associating this message receiver with the inspector page's identifier.
Also, save the page identifier so that methods that need to send IPC messages can send
the message to the correct destinationID.

(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromEvaluationResult):
(WebKit::WebInspectorUIExtensionController::registerExtension):
(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::createTabForExtension):
(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
Fix namespaces.

(WebKit::WebInspectorUIExtensionController::didShowExtensionTab):
(WebKit::WebInspectorUIExtensionController::didHideExtensionTab):
Added.

4:25 PM Changeset in webkit [273521] by Alan Coon
  • 7 edits in branches/safari-611-branch/Source

Unreviewed, add missing header includes to address build issues.

Source/WebCore:

  • Modules/webauthn/AuthenticationExtensionsClientOutputs.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKUserScript.mm:
  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:
  • UIProcess/Cocoa/AutomationClient.mm:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
3:52 PM Changeset in webkit [273520] by commit-queue@webkit.org
  • 10 edits in trunk

Unreviewed, reverting r273503.
https://bugs.webkit.org/show_bug.cgi?id=222442

Caused a blob loading failure

Reverted changeset:

"Serialize NSURLRequest (rather than CFURLRequest) in IPC"
https://bugs.webkit.org/show_bug.cgi?id=222145
https://trac.webkit.org/changeset/273503

3:46 PM Changeset in webkit [273519] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur wk1] svg/canvas/canvas-global-alpha-svg.html is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=221559

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-25

  • platform/mac-wk1/TestExpectations:
3:45 PM Changeset in webkit [273518] by msaboff@apple.com
  • 20 edits
    11 adds
    13 deletes in trunk/JSTests

[test262] test/built-ins/RegExp/match-indices needs updating for 'd' flag
https://bugs.webkit.org/show_bug.cgi?id=222142

Reviewed by Yusuke Suzuki.

Updated WebKit's copy of Test262 to the latest. All of the changes are related to
the RegExp match indices stage 3 proposal (https://github.com/tc39/proposal-regexp-match-indices).
Removed the local copies of the built-ins/RegExp/match-indices/ tests now that they
have been merged.

Enabled the testing of the "regexp-match-indices" feature in config.yaml as we pass
all of the associated tests.

  • stress/test262-indices-array-element.js: Removed.
  • stress/test262-indices-array-matched.js: Removed.
  • stress/test262-indices-array-non-unicode-match.js: Removed.
  • stress/test262-indices-array-properties.js: Removed.
  • stress/test262-indices-array-unicode-match.js: Removed.
  • stress/test262-indices-array-unicode-property-names.js: Removed.
  • stress/test262-indices-array-unmatched.js: Removed.
  • stress/test262-indices-array.js: Removed.
  • stress/test262-indices-groups-object-undefined.js: Removed.
  • stress/test262-indices-groups-object-unmatched.js: Removed.
  • stress/test262-indices-groups-object.js: Removed.
  • stress/test262-indices-groups-properties.js: Removed.
  • stress/test262-indices-property.js: Removed.
  • test262/config.yaml:
  • test262/test/built-ins/RegExp/duplicate-flags.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-element.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-matched.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-properties.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array-unmatched.js:
  • test262/test/built-ins/RegExp/match-indices/indices-array.js:
  • test262/test/built-ins/RegExp/match-indices/indices-groups-object-undefined.js:
  • test262/test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js:
  • test262/test/built-ins/RegExp/match-indices/indices-groups-object.js:
  • test262/test/built-ins/RegExp/match-indices/indices-groups-properties.js:
  • test262/test/built-ins/RegExp/match-indices/indices-property.js:
  • test262/test/built-ins/RegExp/match-indices/no-indices-array.js: Added.
  • test262/test/built-ins/RegExp/prototype/flags/coercion-hasIndices.js: Added.

(get Object):
(assert.sameValue.get call):

  • test262/test/built-ins/RegExp/prototype/flags/get-order.js:

(re.get hasIndices):

  • test262/test/built-ins/RegExp/prototype/flags/rethrow.js:

(get Object):

  • test262/test/built-ins/RegExp/prototype/flags/return-order.js:
  • test262/test/built-ins/RegExp/prototype/flags/this-val-regexp.js:
  • test262/test/built-ins/RegExp/prototype/hasIndices: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/cross-realm.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/length.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/name.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/prop-desc.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/this-val-invalid-obj.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/this-val-non-obj.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/this-val-regexp-prototype.js: Added.
  • test262/test/built-ins/RegExp/prototype/hasIndices/this-val-regexp.js: Added.
3:31 PM Changeset in webkit [273517] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS BigSur Wk2 ] http/tests/media/hls/hls-hdr-switch.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=222425

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-25

  • platform/mac/TestExpectations: Updating test expectations as Timeout until changes made in r272842 are fully resolved.
3:25 PM Changeset in webkit [273516] by dino@apple.com
  • 15 edits in trunk/Source/ThirdParty/ANGLE

Fix crashes in fast/canvas/webgl/texImage video tests
Refactor IOSurfaceSurfaceMtl to match open source implementation.
Additional cleanup

https://bugs.webkit.org/show_bug.cgi?id=222331

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-25
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/ContextMtl.h:
  • src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::onBackbufferResized):

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::createPbufferSurface):
(rx::DisplayMtl::createPbufferFromClientBuffer):

  • src/libANGLE/renderer/metal/FrameBufferMtl.h:

(rx::FramebufferMtl::getAttachedBackbuffer const):

  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::FramebufferMtl):

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h:
  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm:

(rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl):
(rx::IOSurfaceSurfaceMtl::~IOSurfaceSurfaceMtl):
(rx::IOSurfaceSurfaceMtl::bindTexImage):
(rx::IOSurfaceSurfaceMtl::releaseTexImage):
(rx::IOSurfaceSurfaceMtl::getAttachmentRenderTarget):
(rx::IOSurfaceSurfaceMtl::ensureColorTextureCreated):
(rx::IOSurfaceSurfaceMtl::ValidateAttributes):

  • src/libANGLE/renderer/metal/SurfaceMtl.h:

(rx::SurfaceMtl::getColorTexture):
(rx::SurfaceMtl::getSamples const):
(rx::SurfaceMtl::hasRobustResourceInit const):
(rx::WindowSurfaceMtl::preserveBuffer const):

  • src/libANGLE/renderer/metal/SurfaceMtl.mm:

(rx::SurfaceMtl::SurfaceMtl):

  • src/libANGLE/renderer/metal/TextureMtl.h:
  • src/libANGLE/renderer/metal/TextureMtl.mm:

(rx::TextureMtl::ensureTextureCreated):
(rx::TextureMtl::ensureSamplerStateCreated):
(rx::TextureMtl::bindTexImage):
(rx::TextureMtl::releaseTexImage):
(rx::TextureMtl::getAttachmentRenderTarget):

  • src/libANGLE/renderer/metal/mtl_common.h:
3:20 PM Changeset in webkit [273515] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk/Source

Add stubs to enable SafariForWebKitDevelopment to launch
https://bugs.webkit.org/show_bug.cgi?id=222388

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-25
Source/JavaScriptCore:

Reviewed by Myles Maxfield.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/SymbolStubsForSafariCompatibility.mm: Added.

(WTF::String::String):
(WTF::JSONImpl::ObjectBase::getArray const):
(WTF::JSONImpl::ObjectBase::getValue const):
(WTF::JSONImpl::ObjectBase::getObject const):
(Inspector::BackendDispatcher::sendResponse):

Source/WebKit:

Reviewed by Myles Maxfield.

I manually verified that before this change, DYLD won't let it launch or it calls a missing selector,
but after this change it launches and loads web pages.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _inspectorDelegate]):
(-[WKWebView _setInspectorDelegate:]):

Source/WTF:

Reviewed by Myles Maxfield

  • wtf/PlatformHave.h:
  • wtf/text/WTFString.h:
  • wtf/text/cocoa/StringCocoa.mm:

(WTF::String::String):

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

REGRESSION (r273461): [ macOS ] imported/w3c/web-platform-tests/media-source/mediasource-duration.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=222422

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-25

  • platform/mac/TestExpectations: Updating test expectations to include slow to determine if changes caused a regression or actually made the test better.
2:14 PM Changeset in webkit [273513] by jer.noble@apple.com
  • 4 edits
    4 adds in trunk

[Cocoa] Appending a partial segment of a WebM audio file results in no additional samples
https://bugs.webkit.org/show_bug.cgi?id=222407
<rdar://74610383>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-webm-vorbis-partial.html

When appending a partial WebM segment, it can occur that the parser is mid-way through
parsing a Block or SimpleBlock, and is waiting for enough data to be appended to construct a
full sample. However, previous appends are not accounted for when calculated the amount of
data to be requested from the reader, which both results in too much data read and a
miscalculation of the bytesRemaining out-param. This causes all subsequent appends to
generate no samples, leading to an apparent stall in playback.

Add a new ivar to track the number of partial bytes read, and use that value to calculate
the number of bytes yet to be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

LayoutTests:

  • platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis-manifest.json: Added.
  • platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis.webm: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial-expected.txt: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html: Added.
2:14 PM Changeset in webkit [273512] by mmaxfield@apple.com
  • 5 edits
    4 adds in trunk

REGRESSION(r269957): Empty font names passed to canvas2d cause all text routines to crash
https://bugs.webkit.org/show_bug.cgi?id=222402
<rdar://problem/72621268>

Reviewed by Darin Adler and Chris Lord.

Source/WebCore:

It looks like it was simply an oversight from that patch. If the font name is empty,
CanvasRenderingContext2D::setFont() will set the font object to one that doesn't have
its internal FontCascadeFonts pointer set.

Tests: fast/text/canvas-font-resolution-2.html

fast/text/canvas-font-resolution.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont):

  • html/canvas/CanvasRenderingContext2DBase.h:

(WebCore::CanvasRenderingContext2DBase::FontProxy::isPopulated const):

  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

LayoutTests:

  • fast/text/canvas-font-resolution-2-expected.html: Added.
  • fast/text/canvas-font-resolution-2.html: Added.
  • fast/text/canvas-font-resolution-expected.txt: Added.
  • fast/text/canvas-font-resolution.html: Added.
2:10 PM Changeset in webkit [273511] by commit-queue@webkit.org
  • 4 edits in trunk

Make internal ContentFiltering tests not time out after r272293
https://bugs.webkit.org/show_bug.cgi?id=222437

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-25
Reviewed by Andy Estes.

Source/WebCore:

The host "download" is being upgraded from http to https.
We are using that host in our tests. Let's make the open source builds have the same behavior
and let's fix the tests.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::makeSecureIfNecessary):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(-[ServerRedirectNavigationDelegate webView:didStartProvisionalNavigation:]):
(-[ServerRedirectNavigationDelegate webView:didReceiveServerRedirectForProvisionalNavigation:]):
(TEST):
(downloadTest):
(loadAlternateTest):

2:09 PM Changeset in webkit [273510] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Update WebContent sandbox to allow it to call task_create_identity_token()
https://bugs.webkit.org/show_bug.cgi?id=222423

Reviewed by Simon Fraser.

Update WebContent sandbox to allow it to call task_create_identity_token(). We started using
task_create_identity_token() in r273288 and need it for Bug 222391.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
2:07 PM Changeset in webkit [273509] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r269359): Sources: the Images folder does not load most images in the main content area
https://bugs.webkit.org/show_bug.cgi?id=222431
<rdar://problem/74498289>

Reviewed by BJ Burg.

  • UserInterface/Views/MultipleScopeBarItem.js:

(WI.MultipleScopeBarItem.prototype.set scopeBarItems):
(WI.MultipleScopeBarItem.prototype._itemSelectionDidChange):
(WI.MultipleScopeBarItem.prototype.get _visibleScopeBarItems): Deleted.
r269359 made it so that removeEventListener actually throws an error if this doesn't
have any event listeners (it also console.assert if the event/listener is missing).
WI.MultipleScopeBarItem.prototype.set scopeBarItems iterates over all _scopeBarItems
when calling removeEventListener, but only iterates over _visibleScopeBarItems when
adding them, meaning that removeEventListener will be called on objects that did not
have a corresponding addEventListener. Instead, iterate over all _scopeBarItems in
both cases and progressively build up _visibleScopeBarItems (which also avoids the
extra work of filter at the other callsites), ensuring that all items have both an
addEventListener and removeEventListener.

2:03 PM Changeset in webkit [273508] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272203. rdar://problem/74451201

WKASCAuthorizationPresenterDelegate needs to import RunLoop.h and BlockPtr.h
https://bugs.webkit.org/show_bug.cgi?id=221250

Reviewed by Antti Koivisto.

  • UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:

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

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

[BigSur wk1] svg/clip-path/resource-clipper-multiple-repaints.html is flakey failing.
https://bugs.webkit.org/show_bug.cgi?id=221506

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-25

  • platform/mac-wk1/TestExpectations:
1:52 PM Changeset in webkit [273506] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.5

Tag Safari-612.1.5.

1:08 PM Changeset in webkit [273505] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Streamline ImageData size calculations and handle out-of-memory
https://bugs.webkit.org/show_bug.cgi?id=222340

Reviewed by Geoff Garen.

  • html/ImageData.cpp:

(WebCore::ImageData::dataSize): Added
(WebCore::ImageData::create): Use the dataSize function consistently to compute
the size of the byteArray needed. In the JavaScript-exposed create function, use
tryCreateUninitialized and throw an exception if it fails. Removed an unnecessary
assertion that simply repeats something covered by an if statement just above it.
(WebCore::ImageData::ImageSize): Removed the overload that only takes an IntSize
and allocates a Uint8ClampedArray, moving that into the create function instead.

  • html/ImageData.h: Added dataSize, removed a constructor overload.
1:04 PM Changeset in webkit [273504] by eric.carlson@apple.com
  • 19 edits
    1 add in trunk

[GPUP] Some media-capabilities tests fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221691
<rdar://problem/74439420>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this fixes existing tests.

  • Headers.cmake:
  • platform/cocoa/SystemBattery.h:
  • platform/cocoa/SystemBattery.mm:

(WebCore::systemHasBattery):
(WebCore::systemHasAC):
(WebCore::SystemBatteryStatusTestingOverrides::singleton):
(WebCore::SystemBatteryStatusTestingOverrides::setHasBattery):
(WebCore::SystemBatteryStatusTestingOverrides::setHasAC):
(WebCore::SystemBatteryStatusTestingOverrides::setConfigurationChangedCallback):
(WebCore::setOverrideSystemHasBatteryForTesting): Deleted.
(WebCore::setOverrideSystemHasACForTesting): Deleted.

  • platform/graphics/VP9Utilities.h:

(WebCore::ScreenDataOverrides::encode const):
(WebCore::ScreenDataOverrides::decode):
(WebCore::operator==):

  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::VP9TestingOverrides::singleton):
(WebCore::VP9TestingOverrides::setHardwareDecoderDisabled):
(WebCore::VP9TestingOverrides::setVP9ScreenSizeAndScale):
(WebCore::VP9TestingOverrides::setConfigurationChangedCallback):
(WebCore::vp9HardwareDecoderAvailable):
(WebCore::isVP9CodecConfigurationRecordSupported):
(WebCore::validateVPParameters):
(): Deleted.
(WebCore::setOverrideVP9HardwareDecoderDisabledForTesting): Deleted.
(WebCore::setOverrideVP9ScreenSizeAndScaleForTesting): Deleted.
(WebCore::resetOverrideVP9ScreenSizeAndScaleForTesting): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::setSystemHasBatteryForTesting):
(WebCore::Internals::setSystemHasACForTesting):
(WebCore::Internals::setHardwareVP9DecoderDisabledForTesting):
(WebCore::Internals::setVP9ScreenSizeAndScaleForTesting):

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::setMediaOverridesForTesting):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::updateMediaConfiguration):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/media/MediaOverridesForTesting.h: Added.

(WebKit::MediaOverridesForTesting::encode const):
(WebKit::MediaOverridesForTesting::decode):

  • WebProcess/GPU/media/RemoteMediaEngineConfigurationFactory.cpp:

(WebKit::RemoteMediaEngineConfigurationFactory::registerFactory):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

LayoutTests:

  • platform/wk2/TestExpectations: Un-skip tests that no longer fail.
12:40 PM Changeset in webkit [273503] by Brent Fulgham
  • 10 edits in trunk

Serialize NSURLRequest (rather than CFURLRequest) in IPC
https://bugs.webkit.org/show_bug.cgi?id=222145
<rdar://problem/74500963>

Source/WebKit:

Reviewed by Darin Adler and Alex Christensen.

Tested by existing layout and WebKitAPI tests.

Revise IPC serialization so that NSURLConnection (modern) Cocoa builds serialize the
NSURLRequest object, rather than bridging to CFURLRequest and serializing that. This
ensures that the full set of NSURLRequest features are accurately reconstituted on the
receiving side of the connection.

Because NSURL serialization doesn't handle some encoded parameters properly, we implement
an archiving delegate to archive the URL like we do for CFURL.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingArchivingDelegate archiver:willEncodeObject:]): Added.
(-[WKSecureCodingArchivingDelegate unarchiver:didDecodeObject:]): Added.
(+[WKEncodedURL supportsSecureCoding]): Added.
(-[WKEncodedURL encodeWithCoder:]): Added.
(-[WKEncodedURL initWithCoder:]): Added.
(-[WKEncodedURL initWithURL:]): Added.
(IPC::encodeSecureCodingInternal): Update to use new delegate.
(IPC::decodeSecureCodingInternal): Ditto.
(-[WKSecureCodingFontAttributeNormalizer archiver:willEncodeObject:]): Deleted.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData): Add NSURLRequest encoding.
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData): Add NSURLRequest decoding.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createSerializableRepresentation): Deleted.
(IPC::extractDictionaryValue): Deleted.
(IPC::createArchiveList): Deleted.
(IPC::createCFURLRequestFromSerializableRepresentation): Deleted.
(IPC::createNSURLRequestFromSerializableRepresentation): Deleted.
(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData): Deleted.

Source/WTF:

Reviewed by Darin Adler.

URLWithData does an early return when the leading character in the URL is '/',
signifying a file path. However, URLs of the form "cdn.domain.com" are often
encountered, and RFC 3986 does not prohibit them. We should only do an early
return if the character after the initial '/' is not also '/'.

  • wtf/cocoa/NSURLExtras.mm:

(WTF::URLWithData):

Tools:

Reviewed by Darin Adler and Alex Christensen.

Add a new test to ensure we can successfully load URLs with accented characters,
and to test the updated IPC serialization for NSURLRequest.

  • TestWebKitAPI/Tests/WebKit/A/303/247/303/243o.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:

(TEST):

12:31 PM Changeset in webkit [273502] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Web Inspector: List of grid nodes is incomplete in Layout sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=222364
<rdar://problem/74700960>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-25
Reviewed by Devin Rousso.

Source/JavaScriptCore:

Update inspector protocol description for CSS domain to mention default value for
layoutContextTypeChangedMode ("observed") and clarify behavior of "all" value.

  • inspector/protocol/CSS.json:

Source/WebCore:

Ensure default value of layoutContextTypeChangedMode is set for InspectorCSSAgent
to recognize the mode change when switching monitor layout contexts of all nodes.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::reset):

12:26 PM Changeset in webkit [273501] by jer.noble@apple.com
  • 3 edits
    6 adds in trunk

[Cocoa] Files from webmfiles.org do not play through MSE
https://bugs.webkit.org/show_bug.cgi?id=222403
<rdar://74640660>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-webm-vp8-malformed-header.html

As per RFC 6386, each VP8 frame begins with a three-byte (minimum) frame header, with extra
bytes if that preamble indicates that the frame is a keyframe. Files from webmfiles.org (and
others) have valid frame headers for keyframes, but invalid or no header for interframes;
these interframes' headers, when parsed, erroneously report they are keyframes, and thus the
optional extra bytes are parsed, fail parsing, and generate an error.

Rather than drop frames when parsing fails, just assume the frame is an interframe, and
proceed normally.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):

LayoutTests:

  • platform/mac-bigsur/media/media-source/content/test-vp8-malformed-header-manifest.json: Added.
  • platform/mac-bigsur/media/media-source/content/test-vp8-malformed-header.webm: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vp8-malformed-header-expected.txt: Added.
  • platform/mac-bigsur/media/media-source/media-source-webm-vp8-malformed-header.html: Added.
11:58 AM Changeset in webkit [273500] by Jonathan Bedard
  • 3 edits in trunk/Tools

[build.webkit.org] Stop passing --master-name to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=222427
<rdar://problem/74750838>

Reviewed by Aakash Jain.

  • CISupport/build-webkit-org/steps.py:

(RunWebKitTests):

  • CISupport/build-webkit-org/steps_unittest.py:

(TestRunWebKitTests.test_success):
(TestRunWebKitTests.test_warnings):
(TestRunWebKitTests.test_failure):
(TestRunWebKitTests.test_unexpected_error):
(TestRunWebKitTests.test_exception):

11:55 AM Changeset in webkit [273499] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Avoid setting page muted state if unchanged
https://bugs.webkit.org/show_bug.cgi?id=222395

Reviewed by Brent Fulgham.

Return early in Page::setMuted if muted state did not change.

No new tests, covered by existing tests.

  • page/Page.cpp:

(WebCore::Page::setMuted):

11:42 AM Changeset in webkit [273498] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Crash when playing Dolby Atmos audio tracks with AVAudioTimePitchAlgorithmTimeDomain
https://bugs.webkit.org/show_bug.cgi?id=222420
<rdar://74612532>

Reviewed by Eric Carlson.

CoreAudio throws an assertion when using the TimeDomain pitch-correction algorithm on tracks
with > 2 channels. To work around this assertion for now, only set the pitch-correction
algorithm when the playbackRate is set to a non 0 or 1 value.

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

(WebCore::audioTimePitchAlgorithmForMediaPlayerPitchCorrectionAlgorithm):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreservesPitch):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPitchCorrectionAlgorithm):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange):

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

[ macOS Wk2 ] media/media-fragments/TC0051.html is flakey crashing
https://bugs.webkit.org/show_bug.cgi?id=222277

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-25

  • platform/mac-wk2/TestExpectations: Skipping 3 mediacapture-record tests, and marking 1 as Pass Failure due to tests causing other tests to crash.
11:05 AM Changeset in webkit [273496] by Jonathan Bedard
  • 6 edits in trunk/Tools

[ews-build.webkit.org] Compute identifiers locally
https://bugs.webkit.org/show_bug.cgi?id=222370
<rdar://problem/74704298>

Reviewed by Aakash Jain.

  • CISupport/ews-build/factories.py:

(Factory.init): Add FetchBranches.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.

  • CISupport/ews-build/factories_unittest.py: Add FetchBranches.
  • CISupport/ews-build/loadConfig.py:

(loadBuilderConfig): Remove GitHub credentials.

  • CISupport/ews-build/steps.py:

(FetchBranches): Added.
(ShowIdentifier.start): Construct identifier locally.

  • CISupport/ews-build/steps_unittest.py:
10:37 AM Changeset in webkit [273495] by Ryan Haddad
  • 6 edits in trunk/Tools

Unreviewed, reverting r273488.
https://bugs.webkit.org/show_bug.cgi?id=222426

Landed before necessary buildbot change.

Reverted changeset:

"[run-webkit-tests] Delete old results server code"
https://bugs.webkit.org/show_bug.cgi?id=222393
https://trac.webkit.org/changeset/273488

Patch by Commit Queue <commit-queue@webkit.org> on 2021-02-25

10:32 AM Changeset in webkit [273494] by Chris Gambrell
  • 23 edits
    10 adds
    10 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/contentdispositionattachmentsandbox convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221966
<rdar://problem/74393682>

Reviewed by Jonathan Bedard.

  • http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/form-submission-disabled-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/form-submission-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/http-equiv-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/plugins-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html:
  • http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html:
  • http/tests/contentdispositionattachmentsandbox/resources/at-import-stylesheets-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/at-import-stylesheets-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/cross-origin-frames-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/cross-origin-frames-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/external-stylesheets-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/external-stylesheets-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/form-submission-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/form-submission-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/http-equiv-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/http-equiv-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/plugins-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/plugins-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/scripts-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/scripts-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/xml-stylesheet-processing-instructions-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/xml-stylesheet-processing-instructions-frame.py: Added.
  • http/tests/contentdispositionattachmentsandbox/scripts-disabled-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/scripts-disabled.html:
  • http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled-expected.txt:
  • http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled.html:
10:24 AM Changeset in webkit [273493] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

[GPU Process] Stroke and fill StateChangeFlags should be set exclusively
https://bugs.webkit.org/show_bug.cgi?id=222379
<rdar://problem/73610005>

Reviewed by Simon Fraser.

Source/WebCore:

When the stroke or the fill changes in the GraphicsContextState, we need
to clear the old stroke or fill flags.

Test: fast/canvas/stroke-text-after-gradient-fill-change.html

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextStateChange::accumulate):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):

LayoutTests:

  • fast/canvas/stroke-text-after-gradient-fill-change-expected.txt: Added.
  • fast/canvas/stroke-text-after-gradient-fill-change.html: Added.
10:11 AM Changeset in webkit [273492] by Ryan Haddad
  • 5 edits
    2 deletes in trunk

Unreviewed, reverting r273470.

New test is asserting on WK1 and iOS bots

Reverted changeset:

"[css-grid] Do not allow negative heights"
https://bugs.webkit.org/show_bug.cgi?id=221439
https://commits.webkit.org/r273470

10:04 AM Changeset in webkit [273491] by Alan Coon
  • 13 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272039. rdar://problem/74451201

[GPUP][MSE] A video element does not fire “canplaythrough” event if SourceBuffer.abort() is called
https://bugs.webkit.org/show_bug.cgi?id=220964

Reviewed by Jer Noble.

Source/WebCore:

This patch removes initializationSegmentIsHandledSemaphore from both SourceBufferParserAVFObjC
and SourceBufferParserWebM, and implements a media sample cache mechanism in SourceBufferPrivateAVFObjC
to ensure that "Coded Frame Processing" steps execute after SourceBufferPrivate has handled the
initialization segment and enabled video/audio tracks. Without the cache mechanism, some media
samples following the initialization segment may be dropped when we run SourceBufferPrivateAVFObjC
in the GPU process, and the media element won't fire "canplaythrough" event because it cannot change
its ready state to a value greater than HAVE_METADATA.

This patch also implements the mechanism to make sure SourceBufferPrivateAVFObjC::appendCompleted()
runs after all media samples have gone through the "Coded Frame Processing" steps, so that the source
buffer object will fire "update" and "updateend" event after the parser has completedly parsed the
appended buffer.

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: (WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC): (WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC): (WebCore::SourceBufferParserAVFObjC::appendData): Add a parameter "CompletionHandler" to notify the caller that the parser has parsed the whole buffer. (WebCore::SourceBufferParserAVFObjC::flushPendingMediaData): (WebCore::SourceBufferParserAVFObjC::resetParserState): (WebCore::SourceBufferParserAVFObjC::invalidate): (WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): After SourceBufferPrivateClient has done the configuration with the initialization segment, we need to push the cached media samples (if any) to SourceBufferPrivate to run the "Coded Frame Processing" steps. And we need to call "appendCompleted()" if there is a pending callback. (WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackId): SourceBufferPrivateAVFObjC needs to cache the media sample if the initialization segment has not been processed by SourceBufferPrivateClient yet. (WebCore::SourceBufferPrivateAVFObjC::append): We need to postpone the "appendCompleted()" callback if there are cached media samples. (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): (WebCore::SourceBufferPrivateAVFObjC::abort): (WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): (WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID): Deleted.
  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::SourceBufferParserWebM): (WebCore::SourceBufferParserWebM::~SourceBufferParserWebM): (WebCore::SourceBufferParserWebM::appendData): (WebCore::SourceBufferParserWebM::flushPendingMediaData): (WebCore::SourceBufferParserWebM::resetParserState): (WebCore::SourceBufferParserWebM::invalidate): (WebCore::SourceBufferParserWebM::OnClusterBegin):
  • platform/graphics/cocoa/SourceBufferParserWebM.h:

Source/WebKit:

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp: (WebKit::MediaFormatReader::parseByteSource):

LayoutTests:

  • gpu-process/TestExpectations:
  • media/media-source/media-source-webm-append-buffer-after-abort-expected.txt: Added.
  • media/media-source/media-source-webm-append-buffer-after-abort.html: Added.
  • platform/mac/TestExpectations:

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

10:04 AM Changeset in webkit [273490] by Alan Coon
  • 1 edit in branches/safari-611-branch/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm

Unreviewed build fix. rdar://problem/74410251

Sources/WebKit2/UIProcess/mac/WebPageProxyMac.mm:713:2: error: #endif without #if

9:34 AM Changeset in webkit [273489] by Truitt Savell
  • 7 edits in trunk/Source

Unreviewed, reverting r273462.

Caused API build failures

Reverted changeset:

"[iOS] Reduce use of retain/release in WAKWindow and remove
unneeded methods from that class"
https://bugs.webkit.org/show_bug.cgi?id=222330
https://commits.webkit.org/r273462

9:29 AM Changeset in webkit [273488] by Jonathan Bedard
  • 6 edits in trunk/Tools

[run-webkit-tests] Delete old results server code
https://bugs.webkit.org/show_bug.cgi?id=222393
<rdar://problem/74722220>

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._end_test_run): Remove upload code.
(Manager._save_json_files): Renamed from _upload_json_files.
(Manager._upload_json_files): Renamed to _save_json_files.
(Manager.upload_results): Deleted.

  • Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:

(JSONLayoutResultsGenerator.init): Remove buildbot arguments.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(JSONResultsGenerator):
(JSONResultsGenerator.init): Remove buildbot arguments.
(JSONResultsGenerator.get_json): Remove concept of builder.
(JSONResultsGenerator.upload_json_files): Deleted.
(JSONResultsGenerator._get_svn_revision): Deleted.
(JSONResultsGenerator._get_archived_json_results): Deleted.
(JSONResultsGenerator._insert_generic_metadata): Deleted.
(JSONResultsGenerator._convert_json_to_current_version): Deleted.
(JSONResultsGenerator._convert_tests_to_trie): Deleted.
(JSONResultsGenerator._remove_items_over_max_number_of_builds): Deleted.
(JSONResultsGenerator._normalize_results_json): Deleted.
(JSONResultsGenerator._is_results_all_of_type): Deleted.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:

(JSONGeneratorTest.setUp):
(JSONGeneratorTest._test_json_generation):
(JSONGeneratorTest._verify_json_results):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Remove arguments used to upload to old results database.

9:05 AM Changeset in webkit [273487] by Chris Gambrell
  • 2 edits in trunk/Tools

[contributors.json] Adding Chris Gambrell as a contributor
https://bugs.webkit.org/show_bug.cgi?id=222415
<rdar://problem/74741371>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
9:03 AM Changeset in webkit [273486] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. GLib debug buildfix after r273477

  • dom/EventContext.cpp:

(WebCore::EventContext::handleLocalEvents const):

8:50 AM Changeset in webkit [273485] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Temporarily stop enforcing notification filtering
https://bugs.webkit.org/show_bug.cgi?id=222386
<rdar://problem/73987767>

Reviewed by Brent Fulgham.

Temporarily stop enforcing notification filtering on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
7:06 AM Changeset in webkit [273484] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk/Source

Unreviewed, reverting r273469.
https://bugs.webkit.org/show_bug.cgi?id=222417

Broke 30+ debug layout tests

Reverted changeset:

"Add stubs to enable SafariForWebKitDevelopment to launch"
https://bugs.webkit.org/show_bug.cgi?id=222388
https://trac.webkit.org/changeset/273469

7:06 AM Changeset in webkit [273483] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Adwaita controls have glitchy corners
https://bugs.webkit.org/show_bug.cgi?id=222414

When drawing 2 rounded rectangles of different size within each other, the inner rectangle
should have a smaller corner radius, matching the offset. For example, if we draw a button
with a 1px border via 2 rectangles, the inner rectangle should have 1px smaller radius to
prevent the corners from looking thicker than they should be.

Patch by Alexander Mikhaylenko <alexm@gnome.org> on 2021-02-25
Reviewed by Carlos Garcia Campos.

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintButton):
(WebCore::ThemeAdwaita::paintSpinButton):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):

7:05 AM Changeset in webkit [273482] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

[iOS] Crash in ValidationBubble::show()
https://bugs.webkit.org/show_bug.cgi?id=221565
<rdar://problem/74360282>

Reviewed by Megan Gardner.

Fixes the crash by turning the raw ObjC id m_presentingViewController on ValidationBubble into a
WeakObjCPtr instead, such that failure to initialize the member underneath ValidationBubble::setAnchorRect
won't cause undefined behavior.

In theory, this scenario is already exercised by the existing API test
FormValidation.PresentingFormValidationUIWithoutViewControllerDoesNotCrash, though it may not be crashing
with enough frequency to have resulted in a documented test failure, due to the uninitialized id frequently
turning out to be nil anyways.

  • platform/ValidationBubble.h:
6:39 AM Changeset in webkit [273481] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, WPE/GTK build warning fix after r273311

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMFactoryThunder::supportedKeySystems const): Use size_t format specifier in logging statement.

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

Fix signed vs unsigned comparision warning in JSBigInt
https://bugs.webkit.org/show_bug.cgi?id=222400

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-02-25
Reviewed by Yusuke Suzuki.

Fix the warning about comparing uint64_t with int64_t in JSBigInt.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::parseInt):

1:02 AM Changeset in webkit [273479] by rniwa@webkit.org
  • 9 edits in trunk/Source/WebCore

Avoid tree traversals to look for form and canvas elements
https://bugs.webkit.org/show_bug.cgi?id=222159
<rdar://problem/74680265>

Reviewed by Simon Fraser.

This patch introduces a fast path for checking if an element has a canvas or a form as an ancestor
using new node flags, InclusiveAncestorStateForForm and InclusiveAncestorStateForCanvas.
We update these flags in Element::insertedIntoAncestor and Element::removedFromAncestor based on
the same node flags set on its new parent (clear if there is no parent).

HTMLFormElement and HTMLCanvasElement always add their respective flag (but never clear others)
inside their constructors and after calling Element's insertedIntoAncestor and removedFromAncestor.
Because notifyChildNodeInserted and notifyChildNodeRemoved traverse the newly inserted or newly
removed nodes in tree order, all its descendants will carry over the flag.

For convenience and code readability, we use OptionSet<Node::AncestorState> to represent
the node tree ancestory state of these elements.

No new tests since there should be no behavioral differences.

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::notifyNodeInsertedIntoDocument):
(WebCore::notifyNodeInsertedIntoTree):
(WebCore::notifyChildNodeInserted):
(WebCore::notifyNodeRemovedFromDocument):
(WebCore::notifyNodeRemovedFromTree):
(WebCore::notifyChildNodeRemoved):

  • dom/Element.cpp:

(WebCore::Element::isFocusable const): Optimized this function by avoiding the ancestor tree walk
when inclusiveAncestorStates() does not contain AncestorState::Canvas.
(WebCore::Element::insertedIntoAncestor): Clear or set new node flags based on the ancestor states.
(WebCore::Element::removedFromAncestor): Ditto.

  • dom/Node.h:

(WebCore::Node::delegatesFocusToShadowRoot const): Added.
(WebCore::Node::setDelegatesFocusToShadowRoot): Added.
(WebCore::Node::inclusiveAncestorStates const): Added.
(WebCore::Node::setInclusiveAncestorStates): Added.
(WebCore::Node::addInclusiveAncestorState): Added. Used by HTMLCanvasElement and HTMLFormElement
to set the respective node flags.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::isKeyboardFocusable const): Added the same optimization as Element.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::HTMLCanvasElement): Set InclusiveAncestorStateForCanvas.
(WebCore::HTMLCanvasElement::insertedIntoAncestor): Ditto. Note that we must do this after calling
Element::insertedIntoAncestor as it can unset this flag (this is the point of this code).
Also note that Element::insertedIntoAncestor will always return InsertedIntoAncestorResult::Done.
(WebCore::HTMLCanvasElement::removedFromAncestor): Ditto for removal.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::HTMLFormElement): Ditto for InclusiveAncestorStateForForm.
(WebCore::HTMLFormElement::insertedIntoAncestor): Ditto.
(WebCore::HTMLFormElement::removedFromAncestor): Ditto.
(WebCore::HTMLFormElement::findClosestFormAncestorSlowCase): Renamed from findClosestFormAncestor.
Optimized this function a bit by avoiding the tree walk when the starting element itself is a form
since InclusiveAncestorStateForForm is always set on the element in that case.

  • html/HTMLFormElement.h:

(WebCore::HTMLFormElement::findClosestFormAncestor): Added the optimized version inlined here.
It exits early with nullptr if InclusiveAncestorStateForForm is not set.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::insertedIntoAncestor): Call Element::insertedIntoAncestor before calling
findClosestFormAncestor to find the form element to associate this image element with as it now
relies on InclusiveAncestorStateForForm flag which is updated in Element::insertedIntoAncestor.

12:31 AM Changeset in webkit [273478] by graouts@webkit.org
  • 4 edits in trunk

border-image-outset doesn't handle float values
https://bugs.webkit.org/show_bug.cgi?id=222389

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Pass an extra 28 WPT tests for border-image-outset.

  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation-expected.txt:

Source/WebCore:

We would get the int values rather than float values for the CSSValue created while parsing
the border-image-outset property.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

12:30 AM Changeset in webkit [273477] by rniwa@webkit.org
  • 11 edits in trunk/Source/WebCore

Avoid heap allocation for EventContexts
https://bugs.webkit.org/show_bug.cgi?id=222095
<rdar://problem/74586915>

Reviewed by Simon Fraser.

This patch merges all subclasses of EventContext into itself to avoid heap allocation for each
EventContext in EventPath::m_path. It also merges Node::handleLocalEvents into EventContext's
handleLocalEvents to avoid the extra virtual function call.

No new tests since there should be no observable behavioral differences.

  • dom/EventContext.cpp:

(WebCore::EventContext::EventContext): Moved to the header to be inlined.
(WebCore::EventContext::handleLocalEvents const): Merged handleLocalEvents of HTMLFormElement
and Node. Moved the code to handle related target and touch targets from MouseOrFocusEventContext
and TouchEventContext as they have been merged into this class. Also special case dispatching
an event on window to preserve the behavior of WindowEventContext.
(WebCore::EventContext::initializeTouchLists): Added. Creates TouchList objects.
(WebCore::EventContext::isUnreachableNode const): Moved from the header.
(WebCore::EventContext::isMouseOrFocusEventContext const): Deleted.
(WebCore::EventContext::isTouchEventContext const): Deleted.
(WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): Deleted.
(WebCore::MouseOrFocusEventContext::handleLocalEvents const): Deleted.
(WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext const): Deleted.
(WebCore::TouchEventContext::TouchEventContext): Deleted.
(WebCore::TouchEventContext::handleLocalEvents const): Deleted.
(WebCore::TouchEventContext::isTouchEventContext const): Deleted.
(WebCore::TouchEventContext::checkReachability const): Deleted. Merged into handleLocalEvents.

  • dom/EventContext.h:

(WebCore::EventContext::isMouseOrFocusEventContext const): Now simply checks m_type.
(WebCore::EventContext::isTouchEventContext const): Ditto.
(WebCore::EventContext::isWindowContext const): Ditto.
(WebCore::EventContext::relatedTarget const): Moved from MouseOrFocusEventContext.
(WebCore::EventContext::setRelatedTarget): Ditto.
(WebCore::EventContext::touchList): Moved from TouchEventContext.
(WebCore::m_contextNodeIsFormElement): Added. Caching this state here instead of checking it at
every event context during dispatching in EventContext::handleLocalEvents seems to be important
to get a speed up in Intel processors. Apple silicons don't seem to be affected by this.
(WebCore::m_type): Added.
(WebCore::MouseOrFocusEventContext): Deleted.
(WebCore::MouseOrFocusEventContext::relatedTarget const): Deleted.
(WebCore::TouchEventContext): Deleted.
(WebCore::EventContext::EventContext): Moved from cpp file to be inlined here.
(WebCore::EventContext::isUnreachableNode const): Moved into cpp as this is only used for
asserting shadow DOM related conditions.
(WebCore::EventContext::touchList): Renamed from TouchEventContext::touchList.
(isType): Deleted.

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent): Deleted the variant that takes a vector of elements
since it's not used anywhere.

  • dom/EventDispatcher.h:
  • dom/EventPath.cpp:

(WebCore::WindowEventContext): Deleted.
(WebCore::EventPath::EventPath): Avoid calling setRelatedTarget if related target is not a node
or the path is empty. These were early return conditions in setRelatedTarget before this patch.
(WebCore::EventPath::buildPath): Always create EventContext. Dramatically simplifies the code.
(WebCore::EventPath::setRelatedTarget): Moved the early exit to EventPath::EventPath.
(WebCore::EventPath::retargetTouch):
(WebCore::EventPath::retargetTouchList):
(WebCore::EventPath::retargetTouchLists):
(WebCore::EventPath::EventPath): Deleted the variant which takes a vector of elements as it's
not used anywhere.

  • dom/EventPath.h:

(WebCore::EventPath::contextAt const):
(WebCore::EventPath::contextAt):
(WebCore::EventPath::m_path): Now allocates EventContext in place. The size of the inline buffer
has been reduced to 16 entries for EventContext from 32 entries for std::unique_ptr<EventContext>
since the former is considerably larger than the latter.

  • dom/Node.cpp:

(WebCore::Node::handleLocalEvents): Deleted. Merged into EventContext::handleLocalEvents.

  • dom/Node.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::handleLocalEvents): Ditto.

  • html/HTMLFormElement.h:

Feb 24, 2021:

11:32 PM Changeset in webkit [273476] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Build fix after r273465.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
11:00 PM Changeset in webkit [273475] by Alan Coon
  • 1 edit in branches/safari-611-branch/Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp

Unreviewed build fix. rdar://problem/74501076

10:50 PM Changeset in webkit [273474] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Optimize the code to check if an element delegates focus to its shadow root or not
https://bugs.webkit.org/show_bug.cgi?id=222404

Reviewed by Simon Fraser.

Add a fast path for checking whether a given element is a shadow host with a shadow root
with delegatesFocus set to true in with a new node flag: DelegatesFocusToShadowRoot.

The flag is set in Element::attachShadow and never cleared as delegatesFocus can never be unset.

No new tests since there should be no observable behavioral differences.

  • dom/Element.cpp:

(WebCore::Element::isKeyboardFocusable const): Optimized this code using the new flag.
(WebCore::shadowRootWithDelegatesFocus): Set the flag.
(WebCore::isProgramaticallyFocusable): Optimized this code using the new flag.
(WebCore::Element::focus): Ditto.

  • dom/Node.h:

(WebCore::Node::delegatesFocusToShadowRoot const): Added.
(WebCore::Node::NodeFlag): Added NodeFlag::DelegatesFocusToShadowRoot.
(WebCore::Node::setDelegatesFocusToShadowRoot): Added.

10:45 PM Changeset in webkit [273473] by Peng Liu
  • 33 edits in trunk/Source/WebKit

[GPUP] Use a WeakPtr of GPUConnectionToWebProcess instead of a reference in some media related objects
https://bugs.webkit.org/show_bug.cgi?id=222293

Reviewed by Eric Carlson.

A GPUConnectionToWebProcess object may be destroyed when we close a page, then crash will happen
in callbacks accessing the GPUConnectionToWebProcess object. For example, in
RemoteSourceBufferProxy::sourceBufferPrivateBufferedRangesChanged(). This patch
replaces the references to a GPUConnectionToWebProcess with WeakPtr(s) in places where the
issue may happen.

No new tests. Fix some test crashes.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::isAlwaysOnLoggingAllowed const):
(WebKit::GPUConnectionToWebProcess::mediaEngineConfigurationFactoryProxy):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteAudioHardwareListenerProxy.cpp:

(WebKit::RemoteAudioHardwareListenerProxy::RemoteAudioHardwareListenerProxy):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListenerProxy::audioOutputDeviceChanged):

  • GPUProcess/media/RemoteAudioHardwareListenerProxy.h:
  • GPUProcess/media/RemoteAudioTrackProxy.cpp:

(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configurationChanged):

  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteCDMFactoryProxy.cpp:

(WebKit::RemoteCDMFactoryProxy::RemoteCDMFactoryProxy):

  • GPUProcess/media/RemoteCDMFactoryProxy.h:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp:

(WebKit::RemoteCDMInstanceProxy::unrequestedInitializationDataReceived):

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::updateKeyStatuses):
(WebKit::RemoteCDMInstanceSessionProxy::sendMessage):
(WebKit::RemoteCDMInstanceSessionProxy::sessionIdChanged):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::RemoteImageDecoderAVFProxy):
(WebKit::RemoteImageDecoderAVFProxy::encodedDataStatusChanged):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::RemoteLegacyCDMFactoryProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::~RemoteLegacyCDMFactoryProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::addProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::removeProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::addSession):
(WebKit::RemoteLegacyCDMFactoryProxy::removeSession):

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.cpp:

(WebKit::RemoteLegacyCDMProxy::cdmMediaPlayer const):

  • GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:

(WebKit::RemoteLegacyCDMSessionProxy::sendMessage):
(WebKit::RemoteLegacyCDMSessionProxy::sendError):
(WebKit::RemoteLegacyCDMSessionProxy::mediaKeysStorageDirectory const):

  • GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.cpp:

(WebKit::RemoteMediaEngineConfigurationFactoryProxy::RemoteMediaEngineConfigurationFactoryProxy):

  • GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::logger):
(WebKit::RemoteMediaPlayerManagerProxy::logger const): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::logChannel const): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:

(WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess):
(WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess const): Deleted.
(): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::loadMediaSource):
(WebKit::RemoteMediaPlayerProxy::requestResource):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const):
(WebKit::RemoteMediaPlayerProxy::addRemoteAudioTrackProxy):
(WebKit::RemoteMediaPlayerProxy::addRemoteVideoTrackProxy):
(WebKit::RemoteMediaPlayerProxy::addRemoteTextTrackProxy):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedKeyForKeyId const):
(WebKit::RemoteMediaPlayerProxy::setLegacyCDMSession):
(WebKit::RemoteMediaPlayerProxy::cdmInstanceAttached):
(WebKit::RemoteMediaPlayerProxy::cdmInstanceDetached):
(WebKit::RemoteMediaPlayerProxy::attemptToDecryptWithInstance):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaSourceProxy.cpp:

(WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::~RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::seekToTime):
(WebKit::RemoteMediaSourceProxy::addSourceBuffer):

  • GPUProcess/media/RemoteMediaSourceProxy.h:
  • GPUProcess/media/RemoteRemoteCommandListenerProxy.cpp:

(WebKit::RemoteRemoteCommandListenerProxy::RemoteRemoteCommandListenerProxy):
(WebKit::RemoteRemoteCommandListenerProxy::didReceiveRemoteControlCommand):

  • GPUProcess/media/RemoteRemoteCommandListenerProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::~RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHighestPresentationTimestampChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDurationChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidParseSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidDropSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReportExtraMemoryCost):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateBufferedDirtyChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateBufferedRangesChanged):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::configurationChanged):
(WebKit::RemoteTextTrackProxy::addDataCue):
(WebKit::RemoteTextTrackProxy::updateDataCue):
(WebKit::RemoteTextTrackProxy::removeDataCue):
(WebKit::RemoteTextTrackProxy::addGenericCue):
(WebKit::RemoteTextTrackProxy::updateGenericCue):
(WebKit::RemoteTextTrackProxy::removeGenericCue):
(WebKit::RemoteTextTrackProxy::parseWebVTTFileHeader):
(WebKit::RemoteTextTrackProxy::parseWebVTTCueData):

  • GPUProcess/media/RemoteTextTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.cpp:

(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::configurationChanged):

  • GPUProcess/media/RemoteVideoTrackProxy.h:
10:24 PM Changeset in webkit [273472] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Remove duplicated items in LayoutTests/gpu-process/TestExpectations related to media
https://bugs.webkit.org/show_bug.cgi?id=222390

Unreviewed test gardening.

We have enabled "Media in GPU Process" by default in WKTR, so platform-specific TestExpectations
such as platform/wk2/TestExpectations will be used as the baseline for media related tests.

  • gpu-process/TestExpectations:
10:10 PM Changeset in webkit [273471] by BJ Burg
  • 6 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: expose the extension host that is used to load _WKInspectorExtension tabs
https://bugs.webkit.org/show_bug.cgi?id=222344
<rdar://problem/74678778>

Reviewed by Devin Rousso.

Clients need access to the WKWebView that hosts extension content in order to implement message passing
and event delivery to the extension panel iframes. (Currently, that WebView is
the same underlying WKWebView for the whole interface, but that is open to change.)

  • UIProcess/API/Cocoa/_WKInspectorExtensionHost.h: New property.
  • UIProcess/API/Cocoa/_WKInspectorPrivate.h:
  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector extensionHostWebView]): Added.
(-[_WKInspector handle]): Deleted.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController extensionHostWebView]): Added.
(-[_WKRemoteWebInspectorViewController handle]): Deleted.

  • Shared/API/Cocoa/WKBrowsingContextHandle.mm:

(-[WKBrowsingContextHandle description]):
Drive-by, add the standard -description for debugging purposes.

9:59 PM Changeset in webkit [273470] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[css-grid] Do not allow negative heights
https://bugs.webkit.org/show_bug.cgi?id=221439

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-24
Reviewed by Darin Adler.

Source/WebCore:

Do not allow negative heights in calculations, instead
use Optional to indicate that the heights are not existing.

Test: fast/css-grid-layout/zero-height-crash.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::replacedMinMaxLogicalHeightComputesAsNone const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::gridGap const):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

LayoutTests:

Add test for this.

  • fast/css-grid-layout/zero-height-crash-expected.txt: Added.
  • fast/css-grid-layout/zero-height-crash.html: Added.
8:57 PM Changeset in webkit [273469] by achristensen@apple.com
  • 4 edits
    1 add in trunk/Source

Add stubs to enable SafariForWebKitDevelopment to launch
https://bugs.webkit.org/show_bug.cgi?id=222388

Reviewed by Myles Maxfield.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/SymbolStubsForSafariCompatibility.mm: Added.

(WTF::String::String):
(WTF::JSONImpl::ObjectBase::getArray const):
(WTF::JSONImpl::ObjectBase::getValue const):
(WTF::JSONImpl::ObjectBase::getObject const):
(Inspector::BackendDispatcher::sendResponse):

Source/WebKit:

I manually verified that before this change, DYLD won't let it launch or it calls a missing selector,
but after this change it launches and loads web pages.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _inspectorDelegate]):
(-[WKWebView _setInspectorDelegate:]):

7:34 PM Changeset in webkit [273468] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph()
https://bugs.webkit.org/show_bug.cgi?id=222339

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-24
Reviewed by Ryosuke Niwa.

Make a copy of Ref<HTMLBRElement> when inserting before highest blockquote node.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):

6:43 PM Changeset in webkit [273467] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Set xrCompatible in WebGLRenderingContextBase::getContextAttributes
https://bugs.webkit.org/show_bug.cgi?id=222360

Patch by Imanol Fernandez <imanol> on 2021-02-24
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update WebXR xrCompatible attribute test expectations.

  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt: Added.

Source/WebCore:

Fixes xrCompatibe false value in WebGLRenderingContextBase::getContextAttributes()
after WebGLRenderingContextBase::makeXRCompatible call succeeds.

Test: webGLCanvasContext_create_xrcompatible.https.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getContextAttributes):

LayoutTests:

Update WebXR xrCompatible attribute test expectations.

  • platform/wpe/TestExpectations:
6:32 PM Changeset in webkit [273466] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 121

Added a tag for Safari Technology Preview release 121.

5:45 PM Changeset in webkit [273465] by Kate Cheney
  • 17 edits in trunk

App-bound request parameter should be passed to main resource requests not the main frame
https://bugs.webkit.org/show_bug.cgi?id=222241
<rdar://problem/74560966>

Reviewed by Chris Dumez.

Source/WebKit:

Bug fix to set the isAppBound parameter on the resource request if it
is not on the main frame. Previously this only checked if the
resource was not a main resource before setting the parameter.

Otherwise mostly changes to add better testing.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::appBoundNavigationData):
(WebKit::NetworkProcess::clearAppBoundNavigationData):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::appBoundNavigationTestingData):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • Scripts/webkit/messages.py:
  • Shared/NavigatingToAppBoundDomain.h:

(WebKit::AppBoundNavigationTestingData::clearAppBoundNavigationDataTesting):
(WebKit::AppBoundNavigationTestingData::updateAppBoundNavigationTestingData):
(WebKit::AppBoundNavigationTestingData::encode const):
(WebKit::AppBoundNavigationTestingData::decode):
Struct to return data for tests.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _appBoundNavigationData:]):
(-[WKWebView _clearAppBoundNavigationData:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::appBoundNavigationData):
(WebKit::WebPageProxy::clearAppBoundNavigationData):

  • UIProcess/WebPageProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
The fix.

Tools:

Adds more robust testing to report when appBound/nonAppBound requests
load in the network process. This tests not only that the main frame’s
document loader is properly set, but also that all loads initiated from
app-bound requests are also app-bound to avoid regressions like this in the future.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

Utilize some CSP test resources that have the exact setup needed to
test this fix.

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

(-[WKWebView appBoundNavigationData:]):
(-[WKWebView clearAppBoundNavigationReports:]):

5:18 PM Changeset in webkit [273464] by Peng Liu
  • 3 edits in trunk/Source/WebKit

[GPUP] Refactor RemoteImageDecoderAVF::createFrameImageAtIndex()
https://bugs.webkit.org/show_bug.cgi?id=222300

Reviewed by Jer Noble.

Use callOnMainThreadAndWait() instead of callOnMainThread() and remove the semaphore.

No new tests, this has no behavior change.

  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

5:18 PM Changeset in webkit [273463] by rniwa@webkit.org
  • 2 edits in trunk

Fix typo in Introduction.md.
https://bugs.webkit.org/show_bug.cgi?id=222387

Patch by Cameron McCormack <Cameron McCormack> on 2021-02-24
Reviewed by Ryosuke Niwa.

  • Introduction.md:
5:04 PM Changeset in webkit [273462] by Darin Adler
  • 7 edits in trunk/Source

[iOS] Reduce use of retain/release in WAKWindow and remove unneeded methods from that class
https://bugs.webkit.org/show_bug.cgi?id=222330

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/ios/LegacyTileCache.h: Use pragma once, remove unneeded includes,

tweak coding style a bit to match WebKit standard. Removed hasPendingDraw.
added WEBCORE_EXPORT to setTileBordersVisible and setTilePaintCountersVisible
so they can be used in WebKitLegacy.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::hasPendingDraw const): Deleted.

  • platform/ios/wak/WAKWindow.h: Use pragma once, remove unneeded includes,

tweak coding style a bit to match WebKit standard. Removed hasPendingDraw,
setTileControllerShouldUseLowScaleTiles, setTileBordersVisible,
setTilePaintCountsVisible, setAcceleratedDrawingEnabled, freezeVisibleRect,
and unfreezeVisibleRect.

  • platform/ios/wak/WAKWindow.mm: Removed "using namespace WebCore".

Removed unused _WAKKeyWindow global. Converted currentEvent and
gOrientationProvider globals to NeverDestroyed<RetainPtr<>>.
(orientationProvider): Added
(currentEvent): Added.
(-[WAKWindow isKeyWindow]): Remove dead code; this method already always
returns YES.
(-[WAKWindow makeKeyWindow]): Remove dead code. This method wrote to a
global that was never read anywhere.
(-[WAKWindow sendEventSynchronously:]): Use the currentEvent function
and take advantage of the fact that it's a RetainPtr so we don't need a
a local variable named currentEventProtector.
(-[WAKWindow hasPendingDraw]): Deleted. No callers depend on this.
(-[WAKWindow willRotate]): Set _frozenVisibleRect here directly instead
of calling anoether method to do that.
(-[WAKWindow didRotate]): Ditto.
(-[WAKWindow freezeVisibleRect]): Deleted. The method above was the only
caller for this method.
(-[WAKWindow unfreezeVisibleRect]): Ditto.
(+[WAKWindow setOrientationProvider:]): Use the orientationProvider function.
Note, this now retains the passed-in object. This is safe; the only caller
passes in a class, so there's no risk of a retain cycle.
(+[WAKWindow hasLandscapeOrientation]): Use the orientationProvider function.
(-[WAKWindow setTileBordersVisible:]): Deleted. The only caller for this
was in WebKitLegacy, and refactored to use the tile cache directly.
(-[WAKWindow setTilePaintCountsVisible:]): Ditto.
(-[WAKWindow setAcceleratedDrawingEnabled:]): Ditto.
(-[WAKWindow setTileControllerShouldUseLowScaleTiles:]): Deleted. No
callers depend on this.
(+[WAKWindow currentEvent]): Use the currentEvent function.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Call LegacyTileCache functions directly rather
than indirecting through WAKWindow methods.
(-[WebView viewDidMoveToWindow]): Ditto. Also tweaked conditionals a little for clarity.

4:57 PM Changeset in webkit [273461] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

[MSE] Media segment is incorrectly dropped when using negative timestampOffset or when source buffer appendWindow is set.
https://bugs.webkit.org/show_bug.cgi?id=222260

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-24
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-timestampoffset-trim.html

CoreMedia packs multiple audio frames together into a single CMSampleBuffer,
this allows for faster processing and easier insertion into the track buffer tree.
However, per mediasoure spec [1], a frame is to be dropped according to
its start time and duration. So if only the beginning of the MediaSample
was to be dropped, we would have incorrectly dropped the lot.
We now split the MediaSample if it is going to be dropped to ensure that
all usable content is inserted into the track buffer.
Audio splicing isn't done yet, but this gets us closer to it.

[1] https://w3c.github.io/media-source/#sourcebuffer-coded-frame-processing

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::didReceiveSample):

  • platform/graphics/SourceBufferPrivate.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackId):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:

LayoutTests:

  • media/media-source/media-source-timestampoffset-trim.html:
4:40 PM Changeset in webkit [273460] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272935. rdar://problem/74500849

REGRESSION(r266890): [Cocoa] Fix InspectorDelegate / API::InspectorClient leak
https://bugs.webkit.org/show_bug.cgi?id=221988
<rdar://73594555>

Reviewed by Devin Rousso.

There was a logic error introduced into the new delegate situation after
moving _WKInspectorDelegate from WKWebView to _WKInspector. When setting
.delegate to nil, we shouldn't allocate dummy API::InspectorClient/
InspectorDelegate instances. As written, these instances form their own retain
cycle and cause a leak if Web Inspector has been opened or if
WKWebView._inspector is accessed (which lazily creates the delegates).

  • UIProcess/API/Cocoa/_WKInspector.mm: (-[_WKInspector setDelegate:]): Adopt new constructor and pass in the ObjC delegate.
  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm: (WebKit::InspectorDelegate::InspectorDelegate): (WebKit::InspectorDelegate::createInspectorClient): Deleted. (WebKit::InspectorDelegate::setDelegate): Deleted. Clean up this class so that we always receive the ObjC delegate via the constructor. If a nil delegate is passed---for example, when closing the WKWebView---then don't create an API::InspectorClient and set the WebInspectorProxy's client to nullptr.

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

4:39 PM Changeset in webkit [273459] by Alan Coon
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272906. rdar://problem/74410175

[LFC][Integration] Pass child inline block scroll overflow to parent
https://bugs.webkit.org/show_bug.cgi?id=221958
rdar://74050874

Reviewed by Zalan Bujtas.

Source/WebCore:

Integrated LFC fails to pass through overflow from nested inline blocks.

Test: fast/overflow/inline-block-scroll-overflow.html

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp: (WebCore::LayoutIntegration::InlineContentBuilder::InlineContentBuilder): (WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

Find the associated RenderBox and collect overflow from it.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::constructContent):

LayoutTests:

  • fast/overflow/inline-block-scroll-overflow-expected.html: Added.
  • fast/overflow/inline-block-scroll-overflow.html: Added.

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

4:39 PM Changeset in webkit [273458] by Alan Coon
  • 7 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272977. rdar://problem/74500812

REGRESSION (r266695): Unable to scroll the menu in 北京114预约挂号 official account - WeChat
https://bugs.webkit.org/show_bug.cgi?id=221948
<rdar://problem/71661277>

Reviewed by Simon Fraser.

r266695 caused this to regress, but it actually is a progression, because all browsers agree
that this content, as it exists in the app, doesn't scroll. So, we don't want to revert the
change itself, because it's a good change, but we also want to make sure that WeChat continues
to work. So, we can temporarily quirk one particular element in the WeChat app, until the
the content can be fixed (<rdar://problem/74377902>).

Because this is a WeChat-specific quirk, it is untestable. I tested manually.

  • page/Quirks.cpp: (WebCore::Quirks::needsWeChatScrollingQuirk const):
  • page/Quirks.h:
  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isWechat):
  • platform/cocoa/VersionChecks.h:
  • style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):

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

4:39 PM Changeset in webkit [273457] by Alan Coon
  • 5 edits in branches/safari-611-branch

Cherry-pick r272911. rdar://problem/74501076

MediaRecorder.stop() does not work correctly when recording has been paused.
https://bugs.webkit.org/show_bug.cgi?id=221916
<rdar://problem/74366154>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html:

Source/WebCore:

Proceed with stop steps in case of paused state, and not only in case of recording state.
Covered by added WPT test.

  • Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::stopRecordingInternal):

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

4:39 PM Changeset in webkit [273456] by Alan Coon
  • 18 edits
    2 adds in branches/safari-611-branch/Source/WebKit

Cherry-pick r272629. rdar://problem/74410251

Make sure we are no longer show the previous page when running a JS prompt
https://bugs.webkit.org/show_bug.cgi?id=215782
<rdar://problem/67698601>

Reviewed by Simon Fraser.

Make sure we are no longer show the previous page when running a JS prompt.
If we have not yet done a layer tree commit since the last load commit, then
we are likely still showing the previous page. If we are asked to run a JS
prompt / alert / confirm at this point, it would be confusing to still show
the previous page. In order to address the issue, we now make the view blank
in such scenario (ideally, we'd have painted the new page but this is
currently not a trivial thing to do).

To make the view blank, the approach chosen was to add a blank overlay view
on top of the content. This overlay view gets taken down as soon as we
paint the view again.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _hasBlankOverlay]): (-[WKWebView _setHasBlankOverlay:]):
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm: (WebKit::PageClientImplCocoa::setHasBlankOverlay):
  • UIProcess/Cocoa/WKBlankOverlayView.h: Added.
  • UIProcess/Cocoa/WKBlankOverlayView.mm: Added. (-[WKBlankOverlayView initWithFrame:]):
  • UIProcess/PageClient.h: (WebKit::PageClient::setHasBlankOverlay):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFirstLayerTreeCommitAfterCommittingLoad): (WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didCommitLayerTree):
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::updateRendering):
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::didUpdateRendering):

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

4:37 PM Changeset in webkit [273455] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272544. rdar://problem/74409562

[Cocoa] Encrypted media segments should generate a parser error if no encrypted media handler is present.
https://bugs.webkit.org/show_bug.cgi?id=221496

Reviewed by Eric Carlson.

The WebM format reader does not support encrypted media parsing, so the parser must generate an error rather
than continuing to parse encrypted media data.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnElementEnd): (WebCore::SourceBufferParserWebM::OnTrackEntry):
  • platform/graphics/cocoa/SourceBufferParserWebM.h:

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

4:37 PM Changeset in webkit [273454] by Alan Coon
  • 5 edits in branches/safari-611-branch

Cherry-pick r272359. rdar://problem/74451201

[MSE] Move the call to didParseInitializationDataCallback() from the beginning of a cluster to the end of "tracks" element
https://bugs.webkit.org/show_bug.cgi?id=221120

Reviewed by Daniel Bates.

Source/WebCore:

This patch updates the WebM parser regarding the timing to call didParseInitializationDataCallback()
based on a discussion with Jer.

Based on the spec, https://w3c.github.io/mse-byte-stream-format-webm/#webm-init-segments, "The user
agent MUST accept and ignore any elements other than an EBML Header or a Cluster that occur before,
in between, or after the Segment Information and Tracks elements." So the parser should have collected
all required information of the initialization segment when it finishes parsing the "Tracks" element.

Tests: media/media-source/media-source-webm.html

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnElementEnd): (WebCore::SourceBufferParserWebM::OnClusterBegin):

LayoutTests:

  • media/media-source/media-source-webm-expected.txt:
  • media/media-source/media-source-webm.html:

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

4:15 PM Changeset in webkit [273453] by Chris Dumez
  • 4 edits in trunk/Source

Unreviewed, fix build with the latest iOS SDK.

Source/WebCore:

  • platform/DragData.h:

(WebCore::DragData::operator=): Deleted.

Source/WebKit:

  • Shared/FocusedElementInformation.h:
4:08 PM Changeset in webkit [273452] by pvollan@apple.com
  • 7 edits
    1 copy in trunk/Source/WebKit

[iOS] Get default value in the UI process for whether synchronous XMLHttpRequest are allowed during unload
https://bugs.webkit.org/show_bug.cgi?id=222377

Reviewed by Brent Fulgham.

Getting this default value in the UI process instead of in every WebContent process should be a small speedup,
since getting this default value is a bit costly on iOS.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/ios/WebPreferencesDefaultValuesIOS.h: Added.
  • Shared/ios/WebPreferencesDefaultValuesIOS.mm:

(WebKit::cachedAllowsRequest):
(WebKit::allowsDeprecatedSynchronousXMLHttpRequestDuringUnload):
(WebKit::setAllowsDeprecatedSynchronousXMLHttpRequestDuringUnload):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

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

(WebKit::m_lastNavigationWasAppBound):

4:07 PM Changeset in webkit [273451] by Russell Epstein
  • 1 copy in tags/Safari-612.1.4.5

Tag Safari-612.1.4.5.

4:00 PM Changeset in webkit [273450] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

Add platform enable for separated model investigation
https://bugs.webkit.org/show_bug.cgi?id=222383

Reviewed by Dean Jackson.

  • wtf/PlatformEnableCocoa.h:

Add define.

3:54 PM Changeset in webkit [273449] by Russell Epstein
  • 8 edits in branches/safari-612.1.4-branch/Source

Versioning.

WebKit-7612.1.4.5

3:39 PM Changeset in webkit [273448] by Russell Epstein
  • 1 copy in tags/Safari-612.1.4.4

Tag Safari-612.1.4.4.

3:35 PM Changeset in webkit [273447] by Russell Epstein
  • 8 edits in branches/safari-612.1.4-branch/Source

Versioning.

WebKit-7612.1.4.4

3:29 PM Changeset in webkit [273446] by Russell Epstein
  • 1 copy in tags/Safari-612.1.4.3

Tag Safari-612.1.4.3.

3:26 PM Changeset in webkit [273445] by Russell Epstein
  • 8 edits in branches/safari-612.1.4-branch/Source

Versioning.

WebKit-7612.1.4.3

3:17 PM Changeset in webkit [273444] by Chris Dumez
  • 28 edits
    22 adds
    2 deletes in trunk

Device motion / orientation events not working in third-party iframes despite Feature-Policy allowing it
https://bugs.webkit.org/show_bug.cgi?id=221399
<rdar://problem/74229227>

Reviewed by Youenn Fablet.

Source/WebCore:

Allow third-party iframes to request access to device motion / orientation events if permitted via
Feature-Policy. To match Blink, the following features need to be allowed via Feature-Policy:

  • DeviceOrientationEvent: gyroscope, accelerometer and magnetometer
  • DeviceMotionEvent: gyroscope and accelerometer

Tests: http/tests/device-orientation/device-motion-allowed-in-first-party-only.html

http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy.html
http/tests/device-orientation/device-motion-third-party-iframe-denied-by-insufficient-feature-policy.html
http/tests/device-orientation/device-motion-third-party-iframe-denied.html
http/tests/device-orientation/device-orientation-allowed-in-first-party-only.html
http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy.html
http/tests/device-orientation/device-orientation-third-party-iframe-denied-by-insufficient-feature-policy.html
http/tests/device-orientation/device-orientation-third-party-iframe-denied.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Drop DeviceOrientationOrMotionEvent class as it is no longer needed.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):
Make sure we specify the document when taking a user gesture when asked to run a script.
This is important because some clients want to know that there was a user gesture for
a document within their origin (like device motion & orientation).

  • dom/DeviceMotionEvent.cpp:

(WebCore::DeviceMotionEvent::requestPermission):

  • dom/DeviceMotionEvent.h:
  • dom/DeviceOrientationEvent.cpp:

(WebCore::DeviceOrientationEvent::requestPermission):

  • dom/DeviceOrientationEvent.h:

Move requestPermission() from DeviceOrientationOrMotionEvent class to its subclasses now that their
implementations are slightly different.

  • dom/DeviceOrientationAndMotionAccessController.cpp:

(WebCore::DeviceOrientationAndMotionAccessController::DeviceOrientationAndMotionAccessController):
(WebCore::DeviceOrientationAndMotionAccessController::accessState const):
(WebCore::DeviceOrientationAndMotionAccessController::shouldAllowAccess):
(WebCore::DeviceOrientationAndMotionAccessController::clearPermissions):

  • dom/DeviceOrientationAndMotionAccessController.h:

DeviceOrientationAndMotionAccessController is tied to the top document as used to have a single
cached 'permission state' since we used to only support device orientation & motion events in
first-party content. Now that we support those events in third-party content, I replaced the
single 'permission state' data member into a map of 'permission state' per origin. This allows
us to know synchronously (and without IPC to the UIProcess) the known permission state of each
iframe.
Also, I now pass the document to UserGestureIndicator::processingUserGesture() to make sure that
interacting with the top frame does not allow a third-party iframe to request permission to use
the device motion & orientation API. The user needs to interact with that third-party iframe
to allow the iframe to prompt the user.

  • dom/DeviceOrientationOrMotionEvent.cpp: Removed.
  • dom/DeviceOrientationOrMotionEvent.h: Removed.

Drop DeviceOrientationOrMotionEvent class now that the 2 subclasses need a slightly different
implementation of requestPermission().

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureToken::isValidForDocument const):
Make parameter const since it can be.

(WebCore::UserGestureIndicator::processingUserGesture):
Check state first in the condition to avoid doing a null-deref when a UserGestureIndicator
gets constructed with no |state| but with a non-null |document|.

  • dom/UserGestureIndicator.h:
  • html/FeaturePolicy.cpp:

(WebCore::policyTypeName):
(WebCore::FeaturePolicy::parse):
(WebCore::FeaturePolicy::allows const):

  • html/FeaturePolicy.h:

Add the following feature policies: accelerometer, gyroscope & magnetometer.
https://github.com/w3c/webappsec-permissions-policy/blob/main/features.md

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::page const):
(WebCore::DOMWindow::isAllowedToUseDeviceMotionOrOrientation const):
(WebCore::DOMWindow::isAllowedToUseDeviceMotion const):
(WebCore::DOMWindow::isAllowedToUseDeviceOrientation const):
(WebCore::DOMWindow::hasPermissionToReceiveDeviceMotionOrOrientationEvents const):
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary):
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary):

  • page/DOMWindow.h:

Differentiate permission support for device motion and device orientation that
they are different. In particular, the two types of events now require a different
subset of feature policies.

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • fast/device-orientation/device-motion-request-permission-denied-expected.txt:
  • fast/device-orientation/device-motion-request-permission-granted-expected.txt:
  • fast/device-orientation/device-motion-request-permission-user-gesture-expected.txt:
  • fast/device-orientation/device-orientation-request-permission-denied-expected.txt:
  • fast/device-orientation/device-orientation-request-permission-granted-expected.txt:
  • fast/device-orientation/device-orientation-request-permission-user-gesture-expected.txt:
  • fast/device-orientation/device-orientation-request-permission-user-gesture.html:
  • http/tests/device-orientation/device-motion-allowed-in-first-party-only-expected.txt: Added.
  • http/tests/device-orientation/device-motion-allowed-in-first-party-only.html: Added.
  • http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy-expected.txt: Added.
  • http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy.html: Added.
  • http/tests/device-orientation/device-motion-third-party-iframe-denied-by-insufficient-feature-policy-expected.txt: Added.
  • http/tests/device-orientation/device-motion-third-party-iframe-denied-by-insufficient-feature-policy.html: Added.
  • http/tests/device-orientation/device-motion-third-party-iframe-denied-expected.txt: Added.
  • http/tests/device-orientation/device-motion-third-party-iframe-denied.html: Added.
  • http/tests/device-orientation/device-orientation-allowed-in-first-party-only-expected.txt: Added.
  • http/tests/device-orientation/device-orientation-allowed-in-first-party-only.html: Added.
  • http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy-expected.txt: Added.
  • http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy.html: Added.
  • http/tests/device-orientation/device-orientation-third-party-iframe-denied-by-insufficient-feature-policy-expected.txt: Added.
  • http/tests/device-orientation/device-orientation-third-party-iframe-denied-by-insufficient-feature-policy.html: Added.
  • http/tests/device-orientation/device-orientation-third-party-iframe-denied-expected.txt: Added.
  • http/tests/device-orientation/device-orientation-third-party-iframe-denied.html: Added.
  • http/tests/device-orientation/resources/request-motion-events.html: Added.
  • http/tests/device-orientation/resources/request-orientation-events.html: Added.
  • platform/ios-wk2/TestExpectations:
3:03 PM Changeset in webkit [273443] by Russell Epstein
  • 1 copy in tags/Safari-611.1.18.3.1

Tag Safari-611.1.18.3.1.

3:02 PM Changeset in webkit [273442] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Regression(r269481) Kugou Music: Can not leave "MV" category after selecting it
https://bugs.webkit.org/show_bug.cgi?id=222380
<rdar://74602294>

Reviewed by Geoffrey Garen.

The new behavior in r269481 aligns us with the specification and with Blink so I
am adding a linked-on-after to maintain pre-r269481 behavior until Apps get
rebuilt against the new SDK.

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::supportedPropertyNames const):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldOmitHTMLDocumentSupportedPropertyNames):

  • page/Quirks.h:
  • platform/cocoa/VersionChecks.h:
3:01 PM Changeset in webkit [273441] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.18.2.1

Tag Safari-611.1.18.2.1.

2:49 PM Changeset in webkit [273440] by Ruben Turcios
  • 1 copy in tags/Safari-611.1.18.1.2

Tag Safari-611.1.18.1.2.

2:45 PM Changeset in webkit [273439] by Russell Epstein
  • 1 copy in tags/Safari-611.1.18.0.2

Tag Safari-611.1.18.0.2.

2:03 PM Changeset in webkit [273438] by Chris Dumez
  • 6 edits
    3 adds in trunk

Regression(r268700) postMessage changes prototype of basic types
https://bugs.webkit.org/show_bug.cgi?id=222228
<rdar://problem/74612853>

Reviewed by Geoffrey Garen.

Source/WebCore:

r268700 updated ScriptExecutionContext::globalObject() to call:
WebCore::globalObject(mainThreadNormalWorld(), downcast<Document>(*this).page())
instead of
frame ? frame->script().globalObject(mainThreadNormalWorld()) : nullptr

This was not right for subframes because globalObject() gets the globalObject from
the page's main frame instead of the document's frame.

This patch gets rid of the error-prone WebCore::globalObject() taking in a Page*
and replaces it with one taking in a Frame* to avoid such issues in the future.

Test: fast/dom/Window/postMessage-Object-prototype.html

  • bindings/js/ScriptState.cpp:

(WebCore::globalObject):

  • bindings/js/ScriptState.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::globalObject):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld):
(WebCore::InspectorFrontendHost::showContextMenu):

LayoutTests:

Add layout test coverage.

  • fast/dom/Window/postMessage-Object-prototype-expected.txt: Added.
  • fast/dom/Window/postMessage-Object-prototype.html: Added.
  • fast/dom/Window/resources/postMessage-Object-prototype-frame.html: Added.
2:02 PM Changeset in webkit [273437] by Jonathan Bedard
  • 11 edits in trunk/Tools

[webkitscmpy] Add flag for caller to opt out of identifier computation
https://bugs.webkit.org/show_bug.cgi?id=222337
<rdar://problem/74667858>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commit): Allow caller to opt-out of retrieving the identifier.
(Git.find): Ditto.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.commit): Allow caller to opt-out of retrieving the identifier.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.commit): Allow caller to opt-out of retrieving the identifier.
(BitBucket.find): Ditto.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.commit): Allow caller to opt-out of retrieving the identifier.
(GitHub.find): Ditto.

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

(Svn.commit): Allow caller to opt-out of retrieving the identifier.

  • Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:

(ScmBase.commit): Allow caller to opt-out of retrieving the identifier.
(ScmBase.find): Ditto.

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

(TestGit.test_no_identifier):
(TestGitHub.test_no_identifier):
(TestBitBucket.test_no_identifier):

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

(TestLocalSvn.test_no_identifier):
(TestRemoteSvn.test_no_identifier):

1:39 PM Changeset in webkit [273436] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

Unreviewed Windows test gardening to speed up EWS.

  • platform/win/TestExpectations:
1:35 PM Changeset in webkit [273435] by commit-queue@webkit.org
  • 6 edits in trunk

[css-grid] Fix min/max widths of grid affected by ancestor
https://bugs.webkit.org/show_bug.cgi?id=222100

Patch by Ziran Sun <Ziran Sun> on 2021-02-24
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Updated test expectation files.

  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:

Source/WebCore:

We need to recalculate min/max widths of child that depend on the ancestor.
Before update logical-width, for element that needs preferredWidth recalcution,
it is necessary to make sure that min/max widths are set dirty.

This change is an import of chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/527640/
Only the parts that apply to this issue are imported.

Tests were already imported in WPT.

  • rendering/RenderBox.cpp:

(WebCore::shouldRecalculateMinMaxWidthsAffectedByAncestor):
(WebCore::RenderBox::updateLogicalWidth):

1:24 PM Changeset in webkit [273434] by Russell Epstein
  • 1 edit in branches/safari-611.1.18.3-branch/Source/WebKit/FeatureFlags/WebKit.plist

Cherry-pick r273411. rdar://problem/74709450

Apply patch. rdar://problem/74702051

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:17 PM Changeset in webkit [273433] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ] imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222371

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-24

  • platform/mac-wk2/TestExpectations:
1:16 PM Changeset in webkit [273432] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Update to sccache 0.2.15
https://bugs.webkit.org/show_bug.cgi?id=222271

Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-24
Reviewed by Adrian Perez de Castro.

  • elements/sdk/sccache.bst: Bump to latest stable release. The previous version broke in the

SDK update, timing out when starting the local server.

  • patches/sccache-no-selenium.patch: Removed.
1:15 PM Changeset in webkit [273431] by Russell Epstein
  • 1 edit in branches/safari-611.1.18.2-branch/Source/WebKit/FeatureFlags/WebKit.plist

Cherry-pick r273411. rdar://problem/74709368

Apply patch. rdar://problem/74702051

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:13 PM Changeset in webkit [273430] by timothy_horton@apple.com
  • 2 edits in trunk/Source/ThirdParty

Fix linker warnings building gtest for macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=222346
<rdar://problem/74405116>

Reviewed by Alexey Proskuryakov.

  • gtest/xcode/Config/FrameworkTarget.xcconfig:
  • gtest/xcode/Config/General.xcconfig:

Work around a linker warning about macCatalyst by not specifying
an INSTALL_NAME that is outside of /System/iOSSupport, where all
macCatalyst-only binaries must live.

1:00 PM Changeset in webkit [273429] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Update fipsmodule cipher.c to handle EVP_CipherUpdate
https://bugs.webkit.org/show_bug.cgi?id=222354
<rdar://problem/74436356>

Reviewed by Eric Carlson.

Cherry-picking of https://boringssl.googlesource.com/boringssl/+/e7c0c9734f5491e62665ea156603209a80fbb235%5E%21/.

  • Source/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c:

(EVP_EncryptUpdate):
(EVP_DecryptUpdate):

  • Source/third_party/boringssl/src/include/openssl/cipher.h:
12:45 PM Changeset in webkit [273428] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, silence -Wreturn-type warnings from r273127
https://bugs.webkit.org/show_bug.cgi?id=221880
<rdar://problem/74509452>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-24

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent):
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::fixupAnglesForInterpolation):

12:32 PM Changeset in webkit [273427] by Russell Epstein
  • 5 edits in branches/safari-612.1.5-branch

Cherry-pick r273424. rdar://problem/74708164

Revert r272735. rdar://problem/74674837

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

12:32 PM Changeset in webkit [273426] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273423. rdar://problem/74708164

Revert r272810. rdar://problem/74674837

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

12:27 PM Changeset in webkit [273425] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.3-branch/Source

Versioning.

WebKit-7611.1.18.3.1

12:23 PM Changeset in webkit [273424] by Russell Epstein
  • 5 edits in trunk

Revert r272735. rdar://problem/74674837

12:23 PM Changeset in webkit [273423] by Russell Epstein
  • 2 edits in trunk/Source/WebKit

Revert r272810. rdar://problem/74674837

12:19 PM Changeset in webkit [273422] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.2-branch/Source

Versioning.

WebKit-7611.1.18.2.1

12:11 PM Changeset in webkit [273421] by weinig@apple.com
  • 2 edits in trunk/LayoutTests

Fix model test differences between platforms
https://bugs.webkit.org/show_bug.cgi?id=222323
<rdar://problem/74678133>

Reviewed by Zalan Bujtas.

  • platform/ios/TestExpectations:

Unskip the tests that were changed to no longer rely on platform differences.

12:10 PM Changeset in webkit [273420] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.3-branch

New branch.

12:09 PM Changeset in webkit [273419] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.2-branch

New branch.

12:03 PM Changeset in webkit [273418] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, reverting r273373.

The test added with this change is frequently failing

Reverted changeset:

"Null check ArrayBufferView RefPtr"
https://bugs.webkit.org/show_bug.cgi?id=221569
https://commits.webkit.org/r273373

11:50 AM Changeset in webkit [273417] by Russell Epstein
  • 1 edit in branches/safari-611.1.18.1-branch/Source/WebKit/FeatureFlags/WebKit.plist

Cherry-pick r273411. rdar://problem/74702064

Apply patch. rdar://problem/74702051

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:44 AM Changeset in webkit [273416] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.1-branch/Source

Versioning.

WebKit-7611.1.18.1.2

11:43 AM Changeset in webkit [273415] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Move PostResolutionCallbackDisabler to resolveComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=222350

Reviewed by Ryosuke Niwa.

It can be constructed and deleted repeatedly in styleForElementIgnoringPendingStylesheets when
resolveComputedStyle calls it in a loop.

  • dom/Document.cpp:

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • dom/Element.cpp:

(WebCore::Element::resolveComputedStyle):
(WebCore::Element::resolvePseudoElementStyle):

11:41 AM Changeset in webkit [273414] by Russell Epstein
  • 1 edit in branches/safari-611.1.18.0-branch/Source/WebKit/FeatureFlags/WebKit.plist

Cherry-pick r273411. rdar://problem/73631878

Apply patch. rdar://problem/74702051

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:39 AM Changeset in webkit [273413] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.0-branch/Source

Versioning.

WebKit-7611.1.18.0.2

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

Add unit-tests for various step in build.webkit.org (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=222075
<rdar://problem/74691345>

Unreviewed follow-up fix for unit-tests.

  • CISupport/build-webkit-org/steps_unittest.py:

(TestRunWebKitPyTests.test_failure):
(TestRunWebKitPyTests.test_errors):
(TestRunWebKitPyTests.test_lot_of_failures):
(TestRunLLDBWebKitTests.test_failure):
(TestRunLLDBWebKitTests.test_errors):
(TestRunLLDBWebKitTests.test_lot_of_failures):

11:20 AM Changeset in webkit [273411] by Russell Epstein
  • 1 edit in branches/safari-611-branch/Source/WebKit/FeatureFlags/WebKit.plist

Apply patch. rdar://problem/74702051

11:10 AM Changeset in webkit [273410] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Cloop JSC test driver command shouldn't pass build flags
https://bugs.webkit.org/show_bug.cgi?id=222325

Reviewed by Darin Adler.

  • CISupport/build-webkit-org/steps.py:

(RunLLINTCLoopTests):

11:03 AM Changeset in webkit [273409] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

Disable Buildbot old-style step deprecation warning
https://bugs.webkit.org/show_bug.cgi?id=222363

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
  • CISupport/ews-build/master.cfg:
  • CISupport/runUnittests.py:
10:44 AM Changeset in webkit [273408] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ] inspector/dom/attributeModified.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=222365

Unreviewed test gardenign.

Patch by Robert Jenner <Robert Jenner> on 2021-02-24

  • platform/mac-wk2/TestExpectations:
9:58 AM Changeset in webkit [273407] by Said Abou-Hallawa
  • 4 edits in trunk

[GPU Process] In process DisplayList display should have a higher precedence than GPUP display
https://bugs.webkit.org/show_bug.cgi?id=222345

Reviewed by Wenson Hsieh.

Source/WebCore:

Give ShouldUseDisplayList a higher precedence since it is a debug option.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

LayoutTests:

  • gpu-process/TestExpectations:
9:51 AM Changeset in webkit [273406] by Said Abou-Hallawa
  • 6 edits in trunk

[GPU Process] Implement ImageBufferShareableBitmapBackend::bytesPerRow()
https://bugs.webkit.org/show_bug.cgi?id=222348

Reviewed by Simon Fraser.

Source/WebKit:

The default implementation ImageBufferBackend::bytesPerRow() is not correct
for ImageBufferShareableBitmapBackend because ShareableBitmap aligns the
rows using IOSurfaceAlignProperty(kIOSurfaceBytesPerRow, ...).

  • Shared/ShareableBitmap.h:

(WebKit::ShareableBitmap::bytesPerRow const):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::bytesPerRow const):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:

LayoutTests:

  • gpu-process/TestExpectations:
9:26 AM Changeset in webkit [273405] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix null pointer deref in X509_issuer_and_serial_hash
https://bugs.webkit.org/show_bug.cgi?id=222353
<rdar://problem/74446806>

Reviewed by Eric Carlson.

Cherry-picking of https://github.com/openssl/openssl/commit/8130d654d1de922ea224fa18ee3bc7262edc39c0.

  • Source/third_party/boringssl/src/crypto/x509/x509_cmp.c:

(X509_issuer_and_serial_hash):

9:26 AM Changeset in webkit [273404] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Add python 3 support - part 3
https://bugs.webkit.org/show_bug.cgi?id=222355

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(ValidateCommiterAndReviewer.load_contributors_from_disk): Ensure that the file is closed.

  • CISupport/ews-build/steps_unittest.py:
9:25 AM Changeset in webkit [273403] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Make unit-test compatible with latest buildbot
https://bugs.webkit.org/show_bug.cgi?id=222359

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps_unittest.py:

(BuildStepMixinAdditions):
(BuildStepMixinAdditions.setUpBuildStep): Invoke setUpTestReactor.

9:10 AM Changeset in webkit [273402] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273304. rdar://problem/74622914

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233

Unreviewed, address additional review feedback.

Add comment and logging when the WebKit client is setting the user directory suffix.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters):

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

9:10 AM Changeset in webkit [273401] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273289. rdar://problem/74623623

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Unreviewed, address post-review comment.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Use captured this.

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

9:10 AM Changeset in webkit [273400] by Russell Epstein
  • 5 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273286. rdar://problem/74622950

[Cocoa] Send sandbox extensions for Network Extension services in load parameters
https://bugs.webkit.org/show_bug.cgi?id=222284
<rdar://problem/74402532>

Reviewed by Brent Fulgham.

Currently, sandbox extensions for Network Extension services are sent from the UI process to the WebContent process when the
policy decision is made, but that is not soon enough in all cases. They should also be sent as part of the load parameters.

  • Shared/Cocoa/LoadParametersCocoa.mm: (WebKit::LoadParameters::platformEncode const): (WebKit::LoadParameters::platformDecode):
  • Shared/LoadParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::addPlatformLoadParameters):
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):

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

9:10 AM Changeset in webkit [273399] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273271. rdar://problem/74622914

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>

Reviewed by Brent Fulgham.

When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):

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

9:10 AM Changeset in webkit [273398] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273265. rdar://problem/74623623

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Reviewed by Youenn Fablet.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Return early if weakThis is NULL.

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

9:10 AM Changeset in webkit [273397] by Russell Epstein
  • 5 edits
    1 add in branches/safari-611-branch

Cherry-pick r273264. rdar://problem/74622873

REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>

Reviewed by Simon Fraser.

PerformanceTests:

New performance test for nested column flexboxes with percentage heights.

  • Layout/nested-column-flexboxes-relative-height.html: Added.

Source/WebCore:

The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.

No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.

Inspired by Blink's crrev.com/c/1614058 by <cbiesinger@chromium.org>.

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed relayoutChildren which is now unused. Do not layout the item, that should have been done in computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as a consequence of the previous layout. (WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no need to update it after laying out the child.
  • rendering/RenderFlexibleBox.h:

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

9:10 AM Changeset in webkit [273396] by Russell Epstein
  • 4 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273220. rdar://problem/74623537

[Paint Timing] Return early from contentful paint check when no contentful pixels/characters at all
https://bugs.webkit.org/show_bug.cgi?id=222245

Reviewed by Simon Fraser.

Bail from recursive contenful-paint check if there are no pixels/text characters in the entire document.

Covered by existing tests, an optimization only.

  • dom/Document.cpp: (WebCore::Document::enqueuePaintTimingEntryIfNeeded):
  • page/FrameView.cpp: (WebCore::FrameView::hasContenfulDescendants const):
  • page/FrameView.h:

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

9:10 AM Changeset in webkit [273395] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273196. rdar://problem/74623520

Crash under Decoder::Decoder()
https://bugs.webkit.org/show_bug.cgi?id=222192
<rdar://31392681>

Reviewed by Geoffrey Garen.

We are sometimes crashing under Decoder's copyBuffer(), inside the memcpy()
call, with a null address. I have no idea how this is happening and this
code has not changed in a long time so I have made the following hardening:

  1. Update copyBuffer() to use tryFastMalloc() instead of fastMalloc(). Log and return null if tryFastMalloc() failed instead of calling memcpy().
  2. Update Decoder::create() to log and return early if the input buffer is null.
  3. Update Connection's createMessageDecoder() to use CheckedSize when computing the bodySize that is being passed to Decoder::create(). If we overflow, log and return null.

No new tests, no idea how this can happen in practice.

  • Platform/IPC/Decoder.cpp: (IPC::copyBuffer): (IPC::Decoder::create): (IPC::Decoder::Decoder):
  • Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::createMessageDecoder):

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

9:10 AM Changeset in webkit [273394] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r273180. rdar://problem/74623601

CrashTracer: com.apple.WebKit.Networking at WebKit: WTF::Detail::CallableWrapper<WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests()
https://bugs.webkit.org/show_bug.cgi?id=222201

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

  • NetworkProcess/PrivateClickMeasurementManager.cpp: (WebKit::PrivateClickMeasurementManager::attribute): (WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):

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

9:10 AM Changeset in webkit [273393] by Russell Epstein
  • 9 edits
    1 add in branches/safari-611-branch

Cherry-pick r273158. rdar://problem/74623451

Allow to use BigInt as key identifier
https://bugs.webkit.org/show_bug.cgi?id=222165

Reviewed by Darin Adler.

Source/WebCore:

Allow to pass a BigInt as key id so as to use all of SFrame key ID 8 bytes.
A RangeError is thrown if BigInt is more than 64 bits.

Update the implementation to use a Vector instead of a map to keep the keys.
This allows to also use 0 and 264-1 values that HashMap reserves for its personal use.

Covered by updated test.

  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformer.cpp: (WebCore::RTCRtpSFrameTransformer::setEncryptionKey): (WebCore::RTCRtpSFrameTransformer::updateEncryptionKey): (WebCore::RTCRtpSFrameTransformer::decryptFrame):
  • Modules/mediastream/RTCRtpSFrameTransformer.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSRTCRtpSFrameTransformCustom.cpp: Added. (WebCore::JSRTCRtpSFrameTransform::setEncryptionKey):

LayoutTests:

  • webrtc/sframe-keys-expected.txt:
  • webrtc/sframe-keys.html:

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

9:10 AM Changeset in webkit [273392] by Russell Epstein
  • 3 edits
    1 add in branches/safari-611-branch

Cherry-pick r273129. rdar://problem/74623422

Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
https://bugs.webkit.org/show_bug.cgi?id=222136
rdar://71881767

Reviewed by Zalan Bujtas.

Source/WebCore:

On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
"conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
composited layers.

On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
webkit.org/b/222124) which has the end result of changing the composited bounds of the
"position:sticky" layer on every scroll. This results in layer contents temporarily
appearing stretched or in the wrong place (webkit.org/b/222132).

For now, do a conservative fix to avoid this problem, which is to continue to allow
"will-change: transform" to trigger compositing on macOS in conservative mode. This
actually reduces memory use on this page, because webkit.org/b/222092 was triggering
excessively large backing store.

Tested by compositing/layer-creation/compositing-policy.html

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):

LayoutTests:

  • platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.

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

9:10 AM Changeset in webkit [273391] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Tools

Cherry-pick r273123. rdar://problem/74623473

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Unreviewed.

Upgrade motionmark1.1.plan to r273122.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:

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

9:10 AM Changeset in webkit [273390] by Russell Epstein
  • 2 edits in branches/safari-611-branch/PerformanceTests

Cherry-pick r273122. rdar://problem/74623473

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Reviewed by Maciej Stachowiak and Jon Lee.

Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.

  • MotionMark/tests/resources/main.js: (filterOutOutliers): (_measureAndResetInterval): (update): (registerFrameTime): (intervalHasConcluded): (start): (didFinishInterval):

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

9:10 AM Changeset in webkit [273389] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272358. rdar://problem/74622890

Avoid an ancestor walk in HTMLFormControlElement::computeWillValidate()
https://bugs.webkit.org/show_bug.cgi?id=221357

Reviewed by Ryosuke Niwa.

HTMLFormControlElement::computeWillValidate() does an ancestor DOM walk to look
for enclosing data list elements, but these are fairly uncommon so we can avoid
this work if we know the Document has none.

  • dom/Document.h: (WebCore::Document::hasDataListElements const): (WebCore::Document::incrementDataListElementCount): (WebCore::Document::decrementDataListElementCount):
  • dom/Element.cpp: (WebCore::Element::removedFromAncestor): Avoid fetching the page twice.
  • html/HTMLDataListElement.cpp: (WebCore::HTMLDataListElement::HTMLDataListElement): (WebCore::HTMLDataListElement::~HTMLDataListElement): (WebCore::HTMLDataListElement::didMoveToNewDocument):
  • html/HTMLDataListElement.h:
  • html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::computeWillValidate const):
  • page/PointerLockController.cpp: (WebCore::PointerLockController::elementWasRemoved): Renamed for consistency. (WebCore::PointerLockController::elementRemoved): Deleted.
  • page/PointerLockController.h:

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

9:10 AM Changeset in webkit [273388] by Russell Epstein
  • 4 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272354. rdar://problem/74622963

Avoid frequent calls to HTMLFormControlElement::updateValidity() when constructing form control elements
https://bugs.webkit.org/show_bug.cgi?id=221320

Reviewed by Geoffrey Garen.

HTMLFormControlElement::updateValidity() can get called multiple times inside
HTMLInputElement::parserDidSetAttributes(), so add a simple delaying scope so that
validity is only updated once at the end.

  • html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::endDelayingUpdateValidity): (WebCore::HTMLFormControlElement::computeWillValidate const): (WebCore::HTMLFormControlElement::updateValidity):
  • html/HTMLFormControlElement.h: (WebCore::HTMLFormControlElement::startDelayingUpdateValidity): (WebCore::DelayedUpdateValidityScope::DelayedUpdateValidityScope): (WebCore::DelayedUpdateValidityScope::~DelayedUpdateValidityScope):
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parserDidSetAttributes):

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

9:09 AM Changeset in webkit [273387] by Russell Epstein
  • 48 edits
    1 delete in branches/safari-611-branch/Source/ThirdParty/libwebrtc

Cherry-pick r272216. rdar://problem/74622861

Update WebRTC usrsctp to M88
https://bugs.webkit.org/show_bug.cgi?id=221205

Reviewed by Eric Carlson.

  • Source/third_party/usrsctp/usrsctplib/.github/workflows/build-with-cmake.yml: Removed.
  • Source/third_party/usrsctp/usrsctplib/CMakeLists.txt:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/CMakeLists.txt:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c: (sctp_process_asconf_set_primary): (sctp_handle_asconf): (sctp_handle_asconf_ack): (sctp_asconf_iterator_ep_end): (sctp_asconf_iterator_stcb):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_cc_functions.c: (sctp_enforce_cwnd_limit): (sctp_cwnd_update_after_fr): (cc_bw_same): (cc_bw_decrease): (sctp_cwnd_update_after_sack_common): (sctp_cwnd_update_after_ecn_echo_common): (sctp_cwnd_update_after_output): (sctp_cwnd_update_after_sack): (sctp_cwnd_update_after_ecn_echo): (sctp_cwnd_update_rtcc_after_ecn_echo): (sctp_cwnd_update_rtcc_tsn_acknowledged): (sctp_cwnd_prepare_rtcc_net_for_sack): (sctp_cwnd_new_rtcc_transmission_begins): (sctp_set_rtcc_initial_cc_param): (sctp_cwnd_rtcc_socket_option): (sctp_cwnd_update_rtcc_after_sack): (sctp_hs_cwnd_update_after_sack): (htcp_alpha_update): (htcp_cong_avoid): (sctp_htcp_cwnd_update_after_sack):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_constants.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_header.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c: (sctp_mark_non_revokable): (sctp_place_control_in_stream): (sctp_queue_data_to_stream): (sctp_inject_old_unordered_data): (sctp_deliver_reasm_check): (sctp_process_a_data_chunk): (sctp_sack_check): (sctp_process_segment_range):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c: (sctp_process_init): (sctp_handle_heartbeat_ack): (sctp_handle_error): (sctp_process_cookie_existing):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c: (sctp_choose_boundspecific_stcb): (sctp_select_nth_preferred_addr_from_ifn_boundall):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_ss_functions.c: (sctp_ss_prio_clear):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_structs.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.c: (sctp_init_sysctls):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_uio.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_userspace.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c: (sctp_finish):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c: (sctp_auditing): (sctp_timeout_handler): (sctp_timer_start): (sctp_notify_remote_error):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c: (in6_sin_2_v4mapsin6):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_environment.c: (init_random): (read_random): (finish_random):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_environment.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_ip6_var.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_ip_icmp.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_malloc.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.c: (mbuf_initialize):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_queue.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_recv_thread.c: (recv_function_raw): (recv_function_raw6): (recv_function_udp): (recv_function_udp6):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_route.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c: (usrsctp_init_nothreads): (usrsctp_socket):
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h:

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

9:02 AM Changeset in webkit [273386] by Alan Bujtas
  • 7 edits in trunk

[LegacyLineLayout] Inline level box should not stick out at the bottom of its containing block
https://bugs.webkit.org/show_bug.cgi?id=222334

Reviewed by Antti Koivisto.

Source/WebCore:

When the inline level box's baseline lands on a subpixel position, because of the way we integral "snap" the ascent and descent values
it can end up sticking out of the containing block.
(containing block's height is based on the max ascent + max descent and with implicitly floored descent values, it may not always be enclosing.)

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::computeLogicalBoxHeights):

LayoutTests:

  • platform/mac/css1/text_properties/vertical_align-expected.txt:
  • platform/mac/fast/table/table-display-types-strict-expected.txt:
8:45 AM Changeset in webkit [273385] by Simon Fraser
  • 7 edits
    4 adds in trunk

Runtime-disabled CSS features still appear enabled via CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=222280
rdar://74595641

Reviewed by Sam Weinig.

Source/WebCore:

When parsing CSS.supports() for a runtime-disabled property, we'd successfully
parse a CSS-wide keyword like "inherit" and report that the property is supported.

We need to explicitly check for runtime-disabled properties.

Tests: css3/color-filters/color-filter-exposed-if-disabled.html

fast/css/scroll-behavior-exposed-if-disabled.html

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::isPropertyRuntimeDisabled const):
(WebCore::CSSParserImpl::consumeDeclaration):

  • css/parser/CSSParserImpl.h:

LayoutTests:

  • css3/color-filters/color-filter-exposed-if-disabled-expected.txt: Added. Fails tracked in webkit.org/b/217626
  • css3/color-filters/color-filter-exposed-if-disabled.html: Added.
  • fast/css/overscroll-behavior-invalidate-if-disabled-expected.txt:
  • fast/css/overscroll-behavior-invalidate-if-disabled.html:
  • fast/css/scroll-behavior-exposed-if-disabled-expected.txt: Added.
  • fast/css/scroll-behavior-exposed-if-disabled.html: Added.
6:01 AM Changeset in webkit [273384] by don.olmstead@sony.com
  • 8 edits in trunk/Tools

Only import Python flatpak module on Linux
https://bugs.webkit.org/show_bug.cgi?id=222327

Reviewed by Philippe Normand.

Importing flatpak is only relavent for GTK/WPE ports. Also Windows can fail when importing
it due to platform differences.

  • Scripts/run-bindings-tests:
  • Scripts/run-builtins-generator-tests:
  • Scripts/run-minibrowser:
  • Scripts/run-perf-tests:
  • Scripts/run-webkit-httpd:
  • Scripts/run-webkit-tests:
  • Scripts/test-webkitpy:
5:21 AM Changeset in webkit [273383] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Add unit-tests for various step in build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=222075

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps_unittest.py:

(TestRunWebKitPerlTests):
(TestRunWebKitPerlTests.test_success):
(TestRunWebKitPerlTests.test_failure):
(TestRunWebKitPyTests):
(TestRunWebKitPyTests.test_success):
(TestRunWebKitPyTests.test_unexpected_failure):
(TestRunWebKitPyTests.test_failure):
(TestRunWebKitPyTests.test_errors):
(TestRunWebKitPyTests.test_lot_of_failures):
(TestRunLLDBWebKitTests):
(TestRunLLDBWebKitTests.test_success):
(TestRunLLDBWebKitTests.test_unexpected_failure):
(TestRunLLDBWebKitTests.test_failure):
(TestRunLLDBWebKitTests.test_errors):
(TestRunLLDBWebKitTests.test_lot_of_failures):
(TestRunWebKitTests):
(TestRunWebKitTests.configureStep):
(TestRunWebKitTests.test_success):
(TestRunWebKitTests.test_warnings):
(TestRunWebKitTests.test_failure):
(TestRunWebKitTests.test_unexpected_error):
(TestRunWebKitTests.test_exception):

5:13 AM Changeset in webkit [273382] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk/Source/WebCore

Refactor OpenXR platform code into different classes and files.
https://bugs.webkit.org/show_bug.cgi?id=222263

Patch by Imanol Fernandez <imanol> on 2021-02-24
Reviewed by Sergio Villar Senin.

OpenXR platform code is going to grow with graphics, extensions, swapchains, controllers and more.
This patch splits the code into different files to make it more readable and maintanable.

  • Sources.txt:
  • platform/xr/openxr/OpenXRExtensions.cpp: Added.

(PlatformXR::OpenXRExtensions::create):
(PlatformXR::OpenXRExtensions::OpenXRExtensions):
(PlatformXR::OpenXRExtensions::isExtensionSupported const):

  • platform/xr/openxr/OpenXRExtensions.h: Added.
  • platform/xr/openxr/OpenXRInstance.cpp: Added.

(PlatformXR::Instance::Impl::xrInstance const):
(PlatformXR::Instance::Impl::queue const):
(PlatformXR::Instance::Impl::extensions):
(PlatformXR::Instance::Impl::Impl):
(PlatformXR::Instance::Impl::~Impl):
(PlatformXR::Instance::singleton):
(PlatformXR::Instance::Instance):
(PlatformXR::Instance::enumerateImmersiveXRDevices):

  • platform/xr/openxr/OpenXRUtils.h: Added.

(PlatformXR::createStructure):
(PlatformXR::resultToString):
(PlatformXR::XrPosefToPose):
(PlatformXR::xrViewToPose):
(PlatformXR::toXrViewConfigurationType):

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::isSessionActive):
(PlatformXR::isSessionReady):
(PlatformXR::OpenXRDevice::OpenXRDevice):
(PlatformXR::OpenXRDevice::recommendedResolution):
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering):
(PlatformXR::OpenXRDevice::shutDownTrackingAndRendering):
(PlatformXR::OpenXRDevice::initializeReferenceSpace):
(PlatformXR::OpenXRDevice::requestFrame):
(PlatformXR::OpenXRDevice::views const):
(PlatformXR::OpenXRDevice::enumerateReferenceSpaces const):
(PlatformXR::OpenXRDevice::createReferenceSpace):
(PlatformXR::OpenXRDevice::resetSession):
(PlatformXR::OpenXRDevice::handleSessionStateChange):
(PlatformXR::OpenXRDevice::waitUntilStopping):

  • platform/xr/openxr/PlatformXROpenXR.h:
5:09 AM Changeset in webkit [273381] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk

Implement WebXR getViewport
https://bugs.webkit.org/show_bug.cgi?id=222270

Patch by Imanol Fernandez <imanol> on 2021-02-24
Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update WebXR Viewport test expectations.

  • web-platform-tests/webxr/xrViewport_valid.https-expected.txt: Added.
  • web-platform-tests/webxr/xrWebGLLayer_viewports.https-expected.txt: Added.

Source/WebCore:

  • Modules/webxr/WebXRFrame.cpp:

(WebCore::WebXRFrame::getViewerPose): set WebXRView viewport modifiable value.

  • Modules/webxr/WebXRFrame.h:

(WebCore::WebXRFrame::isAnimationFrame const): add method.

  • Modules/webxr/WebXRSession.cpp: Implement supportsViewportScaling().

(WebCore::WebXRSession::supportsViewportScaling const):

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRView.cpp: Add viewport scale data.

(WebCore::WebXRView::create):
(WebCore::WebXRView::WebXRView):
(WebCore::WebXRView::recommendedViewportScale const):
(WebCore::WebXRView::requestViewportScale):

  • Modules/webxr/WebXRView.h:

(WebCore::WebXRView::frame const):
(WebCore::WebXRView::currentViewportScale const):
(WebCore::WebXRView::setCurrentViewportScale):
(WebCore::WebXRView::requestedViewportScale const):
(WebCore::WebXRView::isViewportModifiable const):
(WebCore::WebXRView::setViewportModifiable):

  • Modules/webxr/WebXRView.idl: add requestViewportScale() and recommendedViewportScale.
  • Modules/webxr/WebXRViewport.cpp: Implement viewport rect values.

(WebCore::WebXRViewport::create):
(WebCore::WebXRViewport::WebXRViewport):

  • Modules/webxr/WebXRViewport.h:

(WebCore::WebXRViewport::x const):
(WebCore::WebXRViewport::y const):
(WebCore::WebXRViewport::width const):
(WebCore::WebXRViewport::height const):
(WebCore::WebXRViewport::updateViewport):

  • Modules/webxr/WebXRWebGLLayer.cpp: Implement getViewport()

(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::m_rightViewport):
(WebCore::WebXRWebGLLayer::getViewport):

  • Modules/webxr/WebXRWebGLLayer.h:
  • Modules/webxr/WebXRWebGLLayer.idl: Add MayThrowException
  • platform/xr/PlatformXR.h: Add supportsViewportScaling method

(PlatformXR::Device::supportsViewportScaling const):

LayoutTests:

Update WebXR Viewport test expectations.

  • platform/wpe/TestExpectations:
4:53 AM Changeset in webkit [273380] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

Nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=221393

Reviewed by Ryosuke Niwa.

Source/WebCore:

Applying a font style change over a range of nodes might change the node tree because in some cases
a span element needs to be created to wrap nodes so they could be styled. Apart from that consecutive
identical span nodes could be merged together. This means that the loop that iterates over a range
of nodes might actually surpass the end node if that end node was merged into some other.

Test: editing/execCommand/font-size-delta-crash.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Exit the loop if the iterator becomes a
child of the beyondEnd node because the latter was merged into the node that wraps the iterator.

LayoutTests:

  • editing/execCommand/font-size-delta-crash-expected.txt: Added.
  • editing/execCommand/font-size-delta-crash.html: Added.
3:43 AM Changeset in webkit [273379] by commit-queue@webkit.org
  • 4 edits in trunk

[SOUP3] Use soup_auth_get_authority() to set the ProtectionSpace host and port
https://bugs.webkit.org/show_bug.cgi?id=222309

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-24
Reviewed by Adrian Perez de Castro.

Source/WebCore:

That returns the right values in case of proxy authentication.

  • platform/network/soup/AuthenticationChallengeSoup.cpp:

(WebCore::protectionSpaceFromSoupAuthAndURL):

Tools:

It fixes two tests when using libsoup3.

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationProxy):
(testWebViewAuthenticationProxyHTTPS):

2:57 AM Changeset in webkit [273378] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r267763): [GTK][WPE] user preferred languages are sent to the wrong network process
https://bugs.webkit.org/show_bug.cgi?id=222347

Reviewed by Adrian Perez de Castro.

WebProcessPool::languageChanged() is creating the default website data store, so languages are sent to the newly
created network process. We should send them to the existing network processes instead.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::languageChanged):

2:23 AM Changeset in webkit [273377] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Flatpak SDK] PATH for rustc no longer set correctly
https://bugs.webkit.org/show_bug.cgi?id=222311

Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-24
Reviewed by Žan Doberšek.

Pass PATH as flatpak --env option, setting is through bwrap no longer works.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

  • flatpak/webkit-bwrap:
1:26 AM Changeset in webkit [273376] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix GTK build with neewer wpe and wpe-fdo

We need to explicitly include wpe.h now.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
1:20 AM Changeset in webkit [273375] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=221387

Patch by Frederic Wang <fwang@igalia.com> on 2021-02-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

WebCore::Position::upstream behaves specially for table renderer, which may confuse the
execution of WebCore::InsertParagraphSeparatorCommand::doApply() when the visible position
is within a table, leading to a debug assertion failure and a nullptr dereference in release
build. This patch fixes that by forcing createFragmentFromText to convert <table> to new
a default paragraph element.

Test: fast/editing/paste-and-match-style-with-table-crash.html

  • editing/markup.cpp:

(WebCore::createFragmentFromText): Don't clone enclosing block that are <table>.

LayoutTests:

  • fast/editing/paste-and-match-style-with-table-crash-expected.txt: Added.
  • fast/editing/paste-and-match-style-with-table-crash.html: Added.
12:42 AM Changeset in webkit [273374] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Nullptr crash in Document::contextDocument() inside FontFaceSet::FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=221385

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

When the document last reference is removed but still has node references, we need to keep the document valid
for CSSFontSelector to be able to create a FontFaceSet if document.fonts is requested. In that case the font
selector is marked as cleared, ongoing font load stopped and clients unegistered, but keeping the document until
it's actually destroyed.

Test: fast/css/fontloader-on-detached-document-crash.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::~CSSFontSelector):
(WebCore::CSSFontSelector::clear):
(WebCore::CSSFontSelector::fontRequested):
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):

  • css/CSSFontSelector.h:
  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore::Document::removedLastRef):

LayoutTests:

  • fast/css/fontloader-on-detached-document-crash-expected.txt: Added.
  • fast/css/fontloader-on-detached-document-crash.html: Added.
12:05 AM Changeset in webkit [273373] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check ArrayBufferView RefPtr
https://bugs.webkit.org/show_bug.cgi?id=221569

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-24
Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Null check ArrayBufferView RefPtr before using it.

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::unsharedImpl):

LayoutTests:

Add test to verify oom situation does not result in a crash.

  • crypto/crypto-random-values-oom-expected.txt: Added.
  • crypto/crypto-random-values-oom.html: Added.
Note: See TracTimeline for information about the timeline view.