Timeline



Feb 11, 2021:

10:53 PM Changeset in webkit [272772] by mmaxfield@apple.com
  • 24 edits in trunk/Source/WebCore

drawGlyphs() should take a Glyph* and an Advance* instead of a GlyphBuffer
https://bugs.webkit.org/show_bug.cgi?id=221765

Reviewed by Simon Fraser.

Making it take a GlyphBuffer is misleading because it only uses the glyph array and the advance array
from inside the GlyphBuffer. A GlyphBuffer also holds a bunch of extra data like glyph origins and an
initial advance. GlyphBuffers internally have a flatten() function which incorporate the origins into
the advances, and this flatten() function needs to have been called before calling drawGlyphs(). Our
code ASSERT()s this, and after the assertion, we shouldn't need the entire GlyphBuffer any more.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::drawGlyphBuffer const):

  • platform/graphics/FontCascade.h:
  • platform/graphics/GlyphBufferMembers.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawGlyphs):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawGlyphs):

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::apply const):
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawGlyphs):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paintGlyph):
(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::paint):

9:43 PM Changeset in webkit [272771] by Manuel Rego Casasnovas
  • 4 edits in trunk

[WPE] event.ctrlKey and other are false in keydown event
https://bugs.webkit.org/show_bug.cgi?id=221760

Reviewed by Adrian Perez de Castro.

Source/WebKit:

This is the same issue that was fixed for WebKitGTK in r272489.

Test: fast/events/keyboardevent-modifier.html

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::modifiersForEventModifiers):
(WebKit::modifiersForKeyboardEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):

LayoutTests:

  • platform/wpe/TestExpectations: The test passes now.
9:12 PM Changeset in webkit [272770] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] The root box's display type should stay Display::Block
https://bugs.webkit.org/show_bug.cgi?id=221801

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::updateStyle):

7:24 PM Changeset in webkit [272769] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r272758; include missing change to RuntimeEnabledFeatures.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setOpusDecoderEnabled):
(WebCore::RuntimeEnabledFeatures::opusDecoderEnabled const):

6:56 PM Changeset in webkit [272768] by Nikita Vasilyev
  • 6 edits in trunk/Source

Web Inspector: "Show Extended Gridlines" option for grid overlay does not work
https://bugs.webkit.org/show_bug.cgi?id=221775

Reviewed by Devin Rousso.

Replace all mentions of "Gridlines" with "GridLines" (camelcase).

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Source/WebCore:

  • inspector/InspectorOverlay.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::showGridOverlay):

  • inspector/agents/InspectorDOMAgent.h:
6:19 PM Changeset in webkit [272767] by commit-queue@webkit.org
  • 6 edits in trunk

REGRESSION(r272293) WebGL 1.0.2 test expectations say HTTPS
https://bugs.webkit.org/show_bug.cgi?id=221774
<rdar://problem/74149867>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-11
Reviewed by Geoff Garen.

Source/WebCore:

www.opengl.org is in the list of hosts that support HTTPS, which affected our test expectations.
Since we need a domain to test with anyways for bug 221591, we may as well use this one.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::makeSecureIfNecessary):

LayoutTests:

  • http/tests/contentextensions/make-https-expected.txt:
  • http/tests/webgl/1.0.2/origin-clean-conformance-expected.txt:
  • http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt:
6:14 PM Changeset in webkit [272766] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CodeBlock::propagateTransitions() should also handle OpSetPrivateBrand's LLInt IC.
https://bugs.webkit.org/show_bug.cgi?id=221787

Reviewed by Yusuke Suzuki.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):

6:08 PM Changeset in webkit [272765] by achristensen@apple.com
  • 2 edits in trunk/Tools

Make WebKitLegacy.CrossPartitionFileSchemeAccess stop timing out on EWS bots
https://bugs.webkit.org/show_bug.cgi?id=206956

  • TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm:

This test times out sometimes, but only on bots. Let's kick the can down the road.

6:03 PM Changeset in webkit [272764] by achristensen@apple.com
  • 18 edits
    4 deletes in trunk

Unreviewed, reverting r272603.

Broke test, has room for improvement

Reverted changeset:

"Synthesize range responses if needed in WebCoreNSURLSession"
https://bugs.webkit.org/show_bug.cgi?id=221072
https://trac.webkit.org/changeset/272603

5:56 PM Changeset in webkit [272763] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] Update pylint version
https://bugs.webkit.org/show_bug.cgi?id=221785

Reviewed by Jonathan Bedard.

Update pylint on Python 3 to version 2.6.0 which supports >=3.5.

Update pylint on Python 2.7 to the last 0.x version, 0.28.0. The logilab packages are
specific to this version only so they are moved into the block.

  • Scripts/webkitpy/init.py:
5:24 PM Changeset in webkit [272762] by Jonathan Bedard
  • 4 edits
    1 add in trunk

Tools:
[run-webkit-tests] Update PHP module configuration
https://bugs.webkit.org/show_bug.cgi?id=221776
<rdar://problem/74248860>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Optionally exclude PHP init directory.

  • Scripts/webkitpy/port/base.py:

(Port._darwin_php_version): Add -x version.

LayoutTests:

[run-webkit-tests] Update PHP module configuration

https://bugs.webkit.org/show_bug.cgi?id=221776
<rdar://problem/74248860>

Reviewed by Alexey Proskuryakov.

  • http/conf/apache2.4-x-httpd.conf: Added.
5:18 PM Changeset in webkit [272761] by Lauro Moura
  • 5 edits in trunk/Tools

[WPE] Fix WPEQt tests after r272707
https://bugs.webkit.org/show_bug.cgi?id=220681

Reviewed by Carlos Garcia Campos.

Setting the title became async, so we must wait for it to be
processed.

Same patch as r271578, reapplying after original change was reapplied
in r272707.

  • TestWebKitAPI/Tests/WPEQt/TestLoad.cpp:

(TestLoad::main):

  • TestWebKitAPI/Tests/WPEQt/TestLoadHtml.cpp:

(TestLoadHtml::main):

  • TestWebKitAPI/Tests/WPEQt/TestLoadRequest.cpp:

(TestLoadRequest::main):

  • TestWebKitAPI/Tests/WPEQt/TestRunJavaScript.cpp:

(TestRunJavaScript::main):

4:48 PM Changeset in webkit [272760] by Chris Dumez
  • 10 edits in trunk/Source

Review usage of adoptNS()
https://bugs.webkit.org/show_bug.cgi?id=221779

Reviewed by Alex Christensen.

Review usage of adoptNS():

  1. Make sure we call adoptNS() as soon as we allocate the object instead of doing it later on, as this is less error-prone
  2. Fix cases where we called adoptNS() but really should have retained instead of adopting

Source/WebCore:

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:

(WebCore::PlatformCAFilters::filterValueForOperation):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::addAnimationForKey):

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::createDateTimeFormatter):

  • testing/Internals.mm:

(WebCore::Internals::encodedPreferenceValue):

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

4:39 PM Changeset in webkit [272759] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Add scrollable overflow support
https://bugs.webkit.org/show_bug.cgi?id=221777

Reviewed by Simon Fraser.

Normally inline level boxes stretch the line box with their margin box. However inline boxes
behave differently. They stretch the line box with their layout bounds (->glyph sizes)
and they contribute to scrollable overflow with their border boxes (note that vertical margin is ignored on inline boxes).
e.g <div><span style="padding: 100px">text</span></div>
the line will not be stretched to include the 200px vertical padding, but instead the padding is added to the scrollable overflow area.
(see fast/inline/inline-content-with-padding-left-right.html)

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

4:08 PM Changeset in webkit [272758] by jer.noble@apple.com
  • 13 edits in trunk/Source

[Mac] Add Experimental Opus Codec support
https://bugs.webkit.org/show_bug.cgi?id=221745

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Copy libopus headers into the libwebrtc header directory.

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add support for the Opus Codec in a WebM container by parsing the Opus private
codec data into a CoreAudio-specific magic cookie, and using that cookie to
initialize an AudioFormatDescription necessary to instantiate the CoreAudio
Opus decoder.

This magic cookie requires information both from the private codec data, but
also requires information parsed directly from the stream itself; update the
createOpusAudioFormatDescription() to take frame data as well as cookie data.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::opusDecoderEnabled):
(WebCore::PlatformMediaSessionManager::setOpusDecoderEnabled):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):

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

(WebCore::createAudioFormatDescriptionForFormat):
(WebCore::opusConfigToFrameDuration):
(WebCore::opusConfigToBandwidth):
(WebCore::cookieFromOpusCodecPrivate):
(WebCore::isOpusDecoderAvailable):
(WebCore::createOpusAudioFormatDescription):
(WebCore::createVorbisAudioFormatDescription):

Source/WebKit:

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Add a new experimental feature setting, disabled by default, controlling whether to
enable parsing of Opus tracks from WebM files.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnableCocoa.h:
3:57 PM Changeset in webkit [272757] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.3.1

Tag Safari-612.1.3.1.

3:43 PM Changeset in webkit [272756] by Ruben Turcios
  • 8 edits in branches/safari-612.1.3-branch/Source

Versioning.

WebKit-7612.1.3.1

3:30 PM Changeset in webkit [272755] by Said Abou-Hallawa
  • 10 edits in trunk

Unreviewed, reverting r270578.
https://bugs.webkit.org/show_bug.cgi?id=221110

Caused incorrect image layout inside a flexbox container.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt:

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):

LayoutTests:

2:57 PM Changeset in webkit [272754] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Remove unused WebKit::LocalStorageDatabaseTracker::deleteAllDatabases()
<https://webkit.org/b/221734>
<rdar://problem/74215959>

Reviewed by Alexey Proskuryakov.

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): Delete.

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:

(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): Delete.

  • Remove this method since it's not used anywhere. This fixes a missing symbol linker error for WebCore::SQLiteFileSystem::deleteEmptyDatabaseDirectory() when building WebKit.framework with dead code stripping turned off since that method was not exported from WebCore.framework.
2:25 PM Changeset in webkit [272753] by Aditya Keerthi
  • 5 edits
    2 adds in trunk

[iOS][FCR] Add new picker for <select multiple> elements
https://bugs.webkit.org/show_bug.cgi?id=221636
<rdar://problem/72399337>

Reviewed by Wenson Hsieh.

Source/WebKit:

Test: fast/forms/ios/form-control-refresh/select/select-multiple-picker.html

  • UIProcess/ios/forms/WKFormSelectControl.mm:

(-[WKFormSelectControl initWithView:]):

  • UIProcess/ios/forms/WKFormSelectPicker.h:
  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPickerTableViewController initWithView:]):

The new picker is a table view with style UITableStyleInsetGrouped.

(-[WKSelectPickerTableViewController viewWillAppear:]):

Enable/disable the next/previous accessory buttons accordingly.

(-[WKSelectPickerTableViewController numberOfRowsInGroup:]):
(-[WKSelectPickerTableViewController numberOfSectionsInTableView:]):

There will always be at least one section, to display the empty message.
Adding groups will add more sections to the table view.

(-[WKSelectPickerTableViewController tableView:numberOfRowsInSection:]):
(-[WKSelectPickerTableViewController tableView:heightForHeaderInSection:]):

The header for the first section is an inset matching table view inset.

(-[WKSelectPickerTableViewController tableView:heightForFooterInSection:]):

An empty first section should not have a footer if there are more sections
after it. This can occur when the first option belongs to a group.

(-[WKSelectPickerTableViewController tableView:titleForHeaderInSection:]):
(-[WKSelectPickerTableViewController tableView:viewForFooterInSection:]):

Return nil so that the footer height is obeyed.

(-[WKSelectPickerTableViewController tableView:viewForHeaderInSection:]):

The header view displays the group name along with a button to collapse
the section.

(-[WKSelectPickerTableViewController collapseSection:]):

Collapsing sections is implemented by removing the corresponding rows
from the data source. The button is animated by changing its transform.

(-[WKSelectPickerTableViewController findItemIndexAt:]):
(-[WKSelectPickerTableViewController optionItemAtIndexPath:]):
(-[WKSelectPickerTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectPickerTableViewController tableView:didSelectRowAtIndexPath:]):
(-[WKSelectPickerTableViewController next:]):
(-[WKSelectPickerTableViewController previous:]):
(-[WKSelectPickerTableViewController close:]):
(-[WKSelectMultiplePicker initWithView:]):
(-[WKSelectMultiplePicker configurePresentation]):

Display the picker as a half-sheet (that can be dragged up into a
fullscreen view) on iPhones, and as a popover on iPads.

(-[WKSelectMultiplePicker controlView]):
(-[WKSelectMultiplePicker controlBeginEditing]):
(-[WKSelectMultiplePicker controlEndEditing]):
(-[WKSelectMultiplePicker presentationControllerDidDismiss:]):
(-[WKSelectMultiplePicker _indexPathForRow:]):
(-[WKSelectMultiplePicker selectRow:inComponent:extendingSelection:]):

Added testing hook to support layout testing.

LayoutTests:

Added a test which selects options using the new multi-select picker.
Grouped, ungrouped, and disabled options are all tested.

  • fast/forms/ios/form-control-refresh/select/select-multiple-picker-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/select/select-multiple-picker.html: Added.
2:24 PM Changeset in webkit [272752] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

Reduce string copies when converting from NSString/CFStringRef to WTF::String
https://bugs.webkit.org/show_bug.cgi?id=221766

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-11
Reviewed by Geoff Garen.

This reduces the string copies from two to one which should speed up many things.
The cost is that for non-Latin1-encodable strings of length less than 1024, we now do an allocation
and a reallocation, whereas before we were doing just one allocation. I think even in this case, though,
the cost of a reallocation should be comparable to the cost of doing a double string copy,
and the benefit of reducing a string copy everywhere is compelling.

I also reduced duplicate code by combining the CF and NS implementations.

  • wtf/text/WTFString.h:
  • wtf/text/cf/StringCF.cpp:

(WTF::String::String):

  • wtf/text/cocoa/StringCocoa.mm:

(WTF::String::String): Deleted.

2:22 PM Changeset in webkit [272751] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitpy] Use commits.webkit.org instead of trac
https://bugs.webkit.org/show_bug.cgi?id=221764
<rdar://problem/74242815>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/common/config/urls.py:

(view_revision_url):

  • Scripts/webkitpy/tool/commands/download_unittest.py:
  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:

(CloseBugForLandDiffTest.test_empty_state):

  • Scripts/webkitpy/tool/steps/commit_unittest.py:

(CommitTest._test_check_test_expectations):

  • Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:

(UpdateChangeLogsForRevertTest):

2:05 PM Changeset in webkit [272750] by Chris Dumez
  • 5 edits in trunk

[GPUP] <audio> won't load when URL ends with .php causing some tests to time out
https://bugs.webkit.org/show_bug.cgi?id=221695

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, covered by unskipped layout tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
(WebCore::HTMLMediaElement::mediaPlayerDidInitializeMediaEngine):
We were calling HTMLMediaElement::audioSourceProvider() in mediaPlayerEngineUpdated() which
happens right after we've constructed the MediaPlayerPrivate but before we've called
load() on the MediaPlayerPrivate. The issue was that calling audioSourceProvider() would
initialize the AudioSourceProvider and end up sending the RemoteMediaPlayerProxy::CreateAudioSourceProvider
IPC to the GPUProcess. RemoteMediaPlayerProxy::createAudioSourceProvider() would return early
because m_player->audioSourceProvider() returns null. The reason m_player->audioSourceProvider()
returns null is because it's MediaPlayerPrivate is still a NullMediaPlayerPrivate, because
MediaPlayer::load() has not been called in the GPUProcess yet. For this reason, I moved the
audioSourceProvider() initialization from mediaPlayerEngineUpdated() to
mediaPlayerDidInitializeMediaEngine(). mediaPlayerDidInitializeMediaEngine() happens right
after we've called MediaPlayerPrivate::load() which will end up calling MediaPlayer::load()
in the GPUProcess.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::loadWithNextMediaEngine):
Pass an empty ContentType to MediaPlayerPrivate::load() when we did not have a content type
but guessed one based on the extension. This ends up getting passed to the MediaPlayer
in the GPUProcess and it is important it knows it does not have a content type so that
it can guess one from the extension and try the next media engine if it cannot find one.

LayoutTests:

Unskip tests that are no longer timing out.

  • gpu-process/TestExpectations:
1:57 PM Changeset in webkit [272749] by Aditya Keerthi
  • 9 edits
    4 adds in trunk

[iOS] Some checkboxes and radio buttons are clipped on top
https://bugs.webkit.org/show_bug.cgi?id=221736
<rdar://problem/73956812>

Reviewed by Simon Fraser.

Source/WebCore:

The clipping occurs due to integral rounding of the paint rect in
both RenderBox::paintBoxDecorations, as well as using the integral
rect in RenderTheme::paint. To fix, use FloatRect and the device
pixel snapped rect when painting these elements.

Tests: fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping.html

fast/forms/ios/form-control-refresh/radio/subpixel-clipping.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintBoxDecorations):

Moved into RenderTheme to avoid duplication.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintOutline):

Moved into RenderTheme to avoid duplication.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):

Use the device pixel snapped rect when painting checkboxes and radio
buttons.

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::adjustedPaintRect):

On most platforms, no adjustment is performed.

(WebCore::RenderTheme::paintCheckbox):
(WebCore::RenderTheme::paintRadio):

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

(WebCore::RenderThemeIOS::adjustedPaintRect):

On iOS, radio buttons and checkboxes always have a square painting
rect. Updated to use FloatRect, rather than IntRect, to avoid
clipping.

(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):

  • rendering/RenderThemeWin.h:

LayoutTests:

Added reference mismatch tests to verify that the clipping no longer
occurs. The tests work by drawing an overlay smaller than the actual
size of the checkbox/radio input. If the input is clipped, only the
overlay will be visible, matching the "-expected-mismatch.html".
However, if the input is drawn correctly, the overlay will not cover
the entire input, and a mismatch will occur.

  • fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping.html: Added.
  • fast/forms/ios/form-control-refresh/radio/subpixel-clipping-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/radio/subpixel-clipping.html: Added.
1:49 PM Changeset in webkit [272748] by jer.noble@apple.com
  • 38 edits
    6 copies
    1 add in trunk/Source

[Cocoa][GPUP] Move RemoteCommandListener into the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221732

Reviewed by Eric Carlson.

Source/WebCore:

Refactor RemoteCommandListener to allow its methods to work over XPC:

  • Rather than having a synchronous client method to query whether seeking is supported, require clients to set seekability explicitly.
  • Change the RemoteCommandArgument from a union to an Optional<double>.
  • Allow clients to query the MediaPlaybackTarget through the session rather than wait for a notification that the playback target changed.

Additionally, add a mini-factory functionality to RemoteCommandListener to allow
clients to specify a different subclass to be created at runtime.

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):

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

(WebCore::MediaElementSession::didReceiveRemoteControlCommand):

  • html/MediaElementSession.h:
  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::didReceiveRemoteControlCommand):
(WebCore::NowPlayingManager::setNowPlayingInfo):
(WebCore::NowPlayingManager::supportsSeeking const): Deleted.

  • platform/NowPlayingManager.h:
  • platform/RemoteCommandListener.cpp:

(WebCore::remoteCommandListenerCreationFunction):
(WebCore::RemoteCommandListener::setCreationFunction):
(WebCore::RemoteCommandListener::resetCreationFunction):
(WebCore::RemoteCommandListener::create):
(WebCore::RemoteCommandListener::RemoteCommandListener):
(WebCore::RemoteCommandListener::setSupportsSeeking):

  • platform/RemoteCommandListener.h:

(WebCore::RemoteCommandListener::RemoteCommandListener): Deleted.
(WebCore::RemoteCommandListener::updateSupportedCommands): Deleted.
(WebCore::RemoteCommandListener::client const): Deleted.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand):

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::processDidReceiveRemoteControlCommand):

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

(WebCore::MediaSessionManagerCocoa::scheduleSessionStatusUpdate):

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

(MediaSessionHelperiOS::activeVideoRouteDidChange):

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):

  • platform/ios/RemoteCommandListenerIOS.h:
  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::create):
(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands):
(WebCore::RemoteCommandListener::create): Deleted.

  • platform/mac/RemoteCommandListenerMac.h:
  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::create):
(WebCore::RemoteCommandListenerMac::updateSupportedCommands):
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac):
(WebCore::RemoteCommandListener::create): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::postRemoteControlCommand):

Source/WebKit:

Add a new Remote/Proxy class pair to facilitate RemoteCommandListener being
created in the GPU Process.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createRemoteCommandListener):
(WebKit::GPUConnectionToWebProcess::releaseRemoteCommandListener):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/media/RemoteRemoteCommandListenerProxy.cpp:

(WebKit::RemoteRemoteCommandListenerProxy::RemoteRemoteCommandListenerProxy):
(WebKit::RemoteRemoteCommandListenerProxy::didReceiveRemoteControlCommand):
(WebKit::RemoteRemoteCommandListenerProxy::updateSupportedCommands):

  • GPUProcess/media/RemoteRemoteCommandListenerProxy.h:
  • GPUProcess/media/RemoteRemoteCommandListenerProxy.messages.in:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveRemoteCommand):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.cpp: Added.

(WebKit::RemoteRemoteCommandListener::create):
(WebKit::RemoteRemoteCommandListener::RemoteRemoteCommandListener):
(WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener):
(WebKit::RemoteRemoteCommandListener::gpuProcessConnectionDidClose):
(WebKit::RemoteRemoteCommandListener::didReceiveRemoteControlCommand):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.h:
  • WebProcess/GPU/media/RemoteRemoteCommandListener.messages.in:
  • WebProcess/GPU/media/RemoteRemoteCommandListenerIdentifier.h:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:

(WebKit::RemoteMediaSessionHelper::activeVideoRouteDidChange):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

1:38 PM Changeset in webkit [272747] by Alexey Shvayka
  • 3 edits
    3 adds
    1 delete in trunk

SetIntegrityLevel should call DefineOwnProperty with partial descriptor
https://bugs.webkit.org/show_bug.cgi?id=221497

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/arguments-define-property-throws-out-of-memory.js: Added.
  • stress/freeze-invokes-out-of-memory.js: Removed.
  • stress/object-freeze-with-arguments-no-oom-error.js: Added.
  • stress/object-freeze-with-proxy-defineProperty.js: Added.

Source/JavaScriptCore:

This patch prevents GetOwnProperty result descriptor from being reused for
DefineOwnProperty. Instead, partial descriptor with only Configurable
and (conditionally) Writable fields is passed, which is observable by
ProxyObject's "defineProperty" trap (and possibly any other opaque object).

Also, replaces isDataDescriptor() check with negated isAccessorDescriptor()
as per spec [1], which is equivalent in this case yet is false dichotomy
for partial descriptors.

Aligns JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-setintegritylevel (step 7.b.ii)

  • runtime/ObjectConstructor.cpp:

(JSC::setIntegrityLevel):

1:34 PM Changeset in webkit [272746] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Use a template to simplify repetitive code in ColorSpaceCG.cpp
https://bugs.webkit.org/show_bug.cgi?id=221770

Reviewed by Sam Weinig.

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::namedColorSpace): Added.
(WebCore::sRGBColorSpaceRef): Use namedColorSpace. Also took out long-obsolete
workaround for a bug in pre-2013 versions of Core Graphics on Windows.
(WebCore::adobeRGB1998ColorSpaceRef): Ditto.
(WebCore::displayP3ColorSpaceRef): Ditto.
(WebCore::extendedSRGBColorSpaceRef): Ditto.
(WebCore::ITUR_2020ColorSpaceRef): Ditto.
(WebCore::linearSRGBColorSpaceRef): Ditto.
(WebCore::ROMMRGBColorSpaceRef): Ditto.
(WebCore::xyzColorSpaceRef): Ditto.

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

[ MacOS Debug wk2] imported/w3c/web-platform-tests/worklets/animation-worklet-service-worker-interception.https.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221731
<rdar://problem/74213595>

Unreviewed, skip animation & layout worklets tests since we do not support those and it is
causing those tests to be flaky.

LayoutTests/imported/w3c:

  • web-platform-tests/worklets/animation-worklet-service-worker-interception.https-expected.txt:

LayoutTests:

1:30 PM Changeset in webkit [272744] by Darin Adler
  • 2 edits in trunk/Source/WebKit

[Cocoa] IPC decoder is using decoded size to allocate memory for an array
https://bugs.webkit.org/show_bug.cgi?id=221773

Reviewed by Geoffrey Garen.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeArrayInternal): As with other similar structures, such a Vector and
CFArray, don't use the size to preallocate space when decoding an NSArray. The
decoded size is potentially incorrect, which we will discover indirectly when
decoding the array elements; we can't safely use the size to make a choice about
allocating memory beforehand.

11:59 AM Changeset in webkit [272743] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

build.webkit.org should display commit identifier in builds
https://bugs.webkit.org/show_bug.cgi?id=221730

Reviewed by Jonathan Bedard.

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

(ExtractTestResults.finished):
(ShowIdentifier): build-step to show commit identifier.
(ShowIdentifier.init):
(ShowIdentifier.start):
(ShowIdentifier.evaluateCommand):
(ShowIdentifier.getLastBuildStepByName):
(ShowIdentifier.url_for_identifier):
(ShowIdentifier.getResultSummary): Display custom failure message.
(ShowIdentifier.hideStepIf): Hide this step if successful.

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

(BuildStepMixinAdditions.executedSteps): filter wasn't working as expected with python 3, replaced
with list comprehension.
(TestShowIdentifier): Added unit-tests.
(TestShowIdentifier.test_success):
(TestShowIdentifier.test_failure):

  • CISupport/build-webkit-org/factories.py: Added ShowIdentifier build step.
11:33 AM Changeset in webkit [272742] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/webkit.org

scroll-snap demo should use new spec
https://bugs.webkit.org/show_bug.cgi?id=184046

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-11
Reviewed by Wenson Hsieh.

Update the scroll-snap demo to reflect the modern specification. This
demo isn't currently linked from the site, but if it's every linked again
it will now reflect the current specification.

This maintains the old CSS so that the demo continues to work with
old versions of Safari.

  • demos/scroll-snap/index.html: Update the descriptions in the demo to reflect

the newest version of the specification.

11:23 AM Changeset in webkit [272741] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Add telemetry for a likely-unused call to ipc-posix-shm-read-data
https://bugs.webkit.org/show_bug.cgi?id=221733
<rdar://problem/74214692>

Reviewed by Per Arne Vollan.

Add telemetry to confirm this is unsed.

  • WebProcess/com.apple.WebProcess.sb.in:
11:17 AM Changeset in webkit [272740] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

[iOS][FCR] Range inputs have an incorrect RTL appearance
https://bugs.webkit.org/show_bug.cgi?id=221758
<rdar://problem/74236993>

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: fast/forms/ios/form-control-refresh/range/rtl-appearance.html

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):

In a right-to-left appearance, the track should begin filling from
the right.

LayoutTests:

Added a reference mismatch test to verify that a range input with
dir="rtl" has a distinct appearance from a standard range input.

  • fast/forms/ios/form-control-refresh/range/rtl-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/range/rtl-appearance.html: Added.
11:12 AM Changeset in webkit [272739] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Grid section in Layout panel gets out of sync with grid overlay after reopening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=221728
<rdar://problem/74212444>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-11
Reviewed by BJ Burg.

Hide all shown grid overlays when the WebInspector is closed.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::highlightNodeList):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

10:50 AM Changeset in webkit [272738] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

JSC EWSes should be triggered by change in any jsc file
https://bugs.webkit.org/show_bug.cgi?id=221756

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(CheckPatchRelevance): Used generic jsc regex.

  • CISupport/ews-build/steps_unittest.py: Made the unit-tests more generic by using for loop to check multiple filenames.
10:33 AM Changeset in webkit [272737] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Add settings UI for CSS Grid overlay
https://bugs.webkit.org/show_bug.cgi?id=221556
<rdar://problem/74100005>

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

Add UI to toggle configuration options for the CSS Grid overlay.
When an option's value changes, all shown overlays are refreshed.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype._handleGridSettingChanged):

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .node-link,):
(.css-grid-section :is(.heading, .title)):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.initialLayout):

9:43 AM Changeset in webkit [272736] by weinig@apple.com
  • 7 edits in trunk/Source

Returning sRGB from CG color space functions on failure is too error prone
https://bugs.webkit.org/show_bug.cgi?id=221676

Reviewed by Darin Adler.

Source/WebCore:

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::leakCGColor):
Switch to checking for nullptr rather than sRGB and be explicit about where we can
and cannot use conversion to ExtendedSRGB, rather than the old behavior where we
would secretly use sRGB on platforms without ExtendedSRGB and expect CG to clamp for
us.

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::sRGBColorSpaceRef):
(WebCore::adobeRGB1998ColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):
(WebCore::ITUR_2020ColorSpaceRef):
(WebCore::labColorSpaceRef):
(WebCore::linearSRGBColorSpaceRef):
(WebCore::ROMMRGBColorSpaceRef):
(WebCore::xyzColorSpaceRef):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedNullableCGColorSpace):
(WebCore::cachedCGColorSpace):
Rename cachedCGColorSpace to cachedNullableCGColorSpace to indicate that it can
now return nullptr for unsupported color spaces. Add explicit guards around color
space accessors to ensure they are only called on platforms where they are known
to be supported.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::createCGGradient):
Be explicit about which color space is being used for the gradien when extended colors are present.
This is the same behavior as before, but previously it would happen silently beneath extendedSRGBColorSpaceRef()
which is a suprising result.

Source/WTF:

  • wtf/PlatformHave.h:

Add specific macros for color spaces supported by Core Graphics.

9:30 AM Changeset in webkit [272735] by youenn@apple.com
  • 5 edits in trunk

[MacOS] Enable Audio Capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=221400

Reviewed by Eric Carlson.

Source/WebKit:

Covered by existing API tests, in particular TestWebKitAPI.WebKit.OnDeviceChangeCrash.

  • WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

We need to synchronously fill the granted requests, otherwise there is a risk that
the granted requests will be cleared (on page close for instance) and then later filled
for the page that was gone.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(-[GetUserMediaRepromptTestView haveStream:]):
Increase timeout since capture might require spinning GPUProcess.

9:26 AM Changeset in webkit [272734] by commit-queue@webkit.org
  • 19 edits
    1 add in trunk

Complete XRSession::requestAnimationFrame implementation
https://bugs.webkit.org/show_bug.cgi?id=220979

Patch by Sergio Villar Senin <svillar@igalia.com> and Imanol Fernandez <imanol> on 2021-02-11
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Enable XRSession RAF tests.

  • web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt: Added.

Source/WebCore:

  • Implement the render loop for immersive and inline XR sessions.
  • Implement WebXR render state updates.
  • Create the FrameData struct used to query frame specific data from XR devices.
  • Use window RAF for inline XR sessions.
  • Implement WebFakeXRDevice testing rendering loop using a timer.
  • Implement OpenXR session states and session tracking.
  • Improve OpenXR event handling.

Tested by the WebXR platform tests.

  • Modules/webxr/WebXRFrame.cpp: Add m_active, m_time and m_session members

(WebCore::WebXRFrame::create):
(WebCore::WebXRFrame::WebXRFrame):

  • Modules/webxr/WebXRFrame.h:

(WebCore::WebXRFrame::setTime):
(WebCore::WebXRFrame::setActive):
(WebCore::WebXRFrame::isActive const):

  • Modules/webxr/WebXRRenderState.h: Add m_compositionDisabled member and output canvas setter

(WebCore::WebXRRenderState::setOutputCanvas):
(WebCore::WebXRRenderState::compositionDisabled const):
(WebCore::WebXRRenderState::setCompositionDisabled):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::create):
(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::initialize): required to creat the XRFrame with makeRef(this)
(WebCore::WebXRSession::requestReferenceSpace): implement reference space creation
(WebCore::WebXRSession::requestAnimationFrame): implement render loop for immersive and inline sessions
(WebCore::WebXRSession::applyPendingRenderState): implement WebXR render state updates
(WebCore::WebXRSession::frameShouldBeRendered const): add check based on the spec
(WebCore::WebXRSession::requestFrame): implement helper function to dispatch a frame request to XR devices
(WebCore::WebXRSession::onFrame): process the XR frame and call the RAF callbacks

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRSystem.cpp: Implement render loop using window raf loop.

(WebCore::WebXRSystem::WebXRSystem):
(WebCore::WebXRSystem::DummyInlineDevice::DummyInlineDevice): Add ScriptExecutionContext
(WebCore::WebXRSystem::DummyInlineDevice::requestFrame): Adapt to the new interface

  • Modules/webxr/WebXRSystem.h:
  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::canvas const): Implement canvas getter

  • Modules/webxr/WebXRWebGLLayer.h:

(WebCore::WebXRWebGLLayer::compositionDisabled const): add
(WebCore::WebXRWebGLLayer::setCompositionDisabled): add

  • platform/xr/PlatformXR.h: Add FrameData struct
  • platform/xr/openxr/PlatformXROpenXR.cpp: Implement render loop using OpenXR API

(PlatformXR::OpenXRDevice::resetSession):
(PlatformXR::OpenXRDevice::shutDownTrackingAndRendering):
(PlatformXR::OpenXRDevice::pollEvents): Implement event loop to query m_sessionState
(PlatformXR::sessionIsActive): add
(PlatformXR::sessionIsRunning): add
(PlatformXR::OpenXRDevice::beginSession):
(PlatformXR::xrViewToViewData): helper function to convert data from OpenXR
(PlatformXR::OpenXRDevice::requestFrame): start OpenXR frame, query pose and view data
(PlatformXR::OpenXRDevice::waitUntilStopping): properly wait for OpenXR event before ending the session.

  • platform/xr/openxr/PlatformXROpenXR.h:
  • testing/WebFakeXRDevice.cpp: Implement render loop using a timer

(WebCore::SimulatedXRDevice::SimulatedXRDevice):
(WebCore::SimulatedXRDevice::~SimulatedXRDevice):
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering):
(WebCore::SimulatedXRDevice::stopTimer):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::SimulatedXRDevice::requestFrame):

  • testing/WebFakeXRDevice.h:

LayoutTests:

  • platform/wpe/TestExpectations:
9:09 AM Changeset in webkit [272733] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Fix env forwarding for older flatpak versions
https://bugs.webkit.org/show_bug.cgi?id=221757

Rubber-stamped by Philippe Normand.

Older flatpak versions (pre 1.10) might not have been patched for the
envvar CVE that triggered the new behavior and would still be
receiving the environment through envvars instead of the --args file
descriptor.

  • flatpak/webkit-bwrap:
8:58 AM Changeset in webkit [272732] by don.olmstead@sony.com
  • 7 edits in trunk

[CMake] WEBKIT_EXECUTABLE can incorrectly link framework
https://bugs.webkit.org/show_bug.cgi?id=221703

Reviewed by Michael Catanzaro.

.:

After r272484 which added an additional test for TestJavaScriptCore the PlayStation build
began failing with an unresolved symbol in bmalloc. On PlayStation both WTF and bmalloc
are linked into JavaScriptCore. That library was building successfully which implied that
WTF was being erroniously linked into TestJavaScriptCore.

Inside _WEBKIT_EXECUTABLE_LINK_FRAMEWORK there was an invalid conditional which was causing
WTF to be linked. Fixed the logic to ensure that if the requested framework is linked into
another framework that is being linked then it is not added to the linker.

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

GTK compiles JavaScriptCore as a SHARED library but the symbols from WTF are not being
properly exposed from it. Workaround this by linking WTF directly until GTK turns on
hidden visibility and properly exports symbols.

  • shell/PlatformGTK.cmake:

Tools:

GTK compiles JavaScriptCore as a SHARED library but the symbols from WTF are not being
properly exposed from it. Workaround this by linking WTF directly until GTK turns on
hidden visibility and properly exports symbols.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
8:36 AM Changeset in webkit [272731] by weinig@apple.com
  • 19 edits in trunk/Source

Rework RGB color types to be more declarative to reduce code duplication and make progress toward better automatic conversion
https://bugs.webkit.org/show_bug.cgi?id=221677

Reviewed by Darin Adler.

Source/WebCore:

The "RGB" family of colors (those inheriting from RGBType) all share a common structure
can be generalized to simplify their conversions and centralize their definitions.

To do this, each RGB color type now defines a "Descriptor" type (e.g. SRGBDescriptor for
SRGBA) which includes:

  • What transfer function it uses (e.g. SRGBTransferFunction)
  • What whitePoint it is defined for (e.g. WhitePoint::D65)
  • What matrices it uses to convert from linear to xyz and from xyz to linear.

Then using type aliases, the color type is defined using the descriptor and one of the four
base types: BoundedGammaEncoded, BoundedLinearEncoded, ExtendedGammaEncoded, and ExtendedLinearEncoded.
So, for the SRGBA family of color types, they are defined as:

template<typename T> using SRGBA = BoundedGammaEncoded<T, SRGBADescriptor<T>>;
template<typename T> using LinearSRGBA = BoundedLinearEncoded<T, SRGBADescriptor<T>>;
template<typename T> using ExtendedSRGBA = ExtendedGammaEncoded<T, SRGBADescriptor<T>>;
template<typename T> using LinearExtendedSRGBA = ExtendedLinearEncoded<T, SRGBADescriptor<T>>;

By using type aliases like this, we gain the ability to easily set up relationships between
the types. For instance, the BoundedGammaEncoded type has the following members:

using LinearCounterpart = BoundedLinearEncoded<T, D>;
using ExtendedCounterpart = ExtendedGammaEncoded<T, D>;

Where D is the "Descriptor" it was made with. This allows helper functions such as the conversion
functions to automatically know what counterpart to use without having to write specialized versions
for each pair. This will aid in unifying conversion functions further.

This change also removes the XYZReference member of the color types, replacing it with the
WhitePoint, which can be used to construct the XYZReference as is done by the new XYZFor<> alias.
This will allow for straigthforward comparisons when we stop always converting through XYZA.

As a result of moving the matrices to the color type descriptors, we can now simplify all the
linear to xyz and xyz to linear conversions to use generic functions (called linearToXYZ and
xyzToLinear not suprisingly) and since the descriptors also include the transfer function we
can further simplify the gamma conversion functions to no longer explicitly passing the transfer
function.

Two consequenes of using complex type aliases for the color types, rather than direct structs, is
that we can no longer easily forward declare the color types, so ColorTypes.h is included in a few
more places now, and the deduction guides we had been using don't work, so we must explicitly specify
the type in a few places. We should be able to reduce the amount included in most places by splitting
up the color types into their own headers, and only including the needed color type, only SRGBA in
practice.

This also adds back a missing clamp to the conversion from SRGBA<float> to SRGBA<uint8_t> that I didn't
intend to remove in a previous patch, but I am not actual sure is necessary. While I work that out,
better to add it back.

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.h:
  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):

  • platform/graphics/ColorComponents.h:

(WebCore::mapColorComponents):

  • platform/graphics/ColorConversion.cpp:

(WebCore::toLinear):
(WebCore::toGammaEncoded):
(WebCore::A98RGB<float>>::convert):
(WebCore::LinearA98RGB<float>>::convert):
(WebCore::DisplayP3<float>>::convert):
(WebCore::LinearDisplayP3<float>>::convert):
(WebCore::ExtendedSRGBA<float>>::convert):
(WebCore::LinearExtendedSRGBA<float>>::convert):
(WebCore::ProPhotoRGB<float>>::convert):
(WebCore::LinearProPhotoRGB<float>>::convert):
(WebCore::Rec2020<float>>::convert):
(WebCore::LinearRec2020<float>>::convert):
(WebCore::SRGBA<float>>::convert):
(WebCore::LinearSRGBA<float>>::convert):
(WebCore::xyzToLinear):
(WebCore::linearToXYZ):
(WebCore::XYZFor<LinearA98RGB<float>>>::convert):
(WebCore::XYZFor<LinearDisplayP3<float>>>::convert):
(WebCore::XYZFor<LinearExtendedSRGBA<float>>>::convert):
(WebCore::XYZFor<LinearProPhotoRGB<float>>>::convert):
(WebCore::XYZFor<LinearRec2020<float>>>::convert):
(WebCore::XYZFor<LinearSRGBA<float>>>::convert):
(WebCore::Lab<float>>::convert):
(WebCore::XYZFor<Lab<float>>>::convert):
(WebCore::XYZFor<A98RGB<float>>>::convert):
(WebCore::XYZFor<DisplayP3<float>>>::convert):
(WebCore::XYZFor<ExtendedSRGBA<float>>>::convert):
(WebCore::HSLA<float>>::convert):
(WebCore::XYZFor<HSLA<float>>>::convert):
(WebCore::HWBA<float>>::convert):
(WebCore::XYZFor<HWBA<float>>>::convert):
(WebCore::LCHA<float>>::convert):
(WebCore::XYZFor<LCHA<float>>>::convert):
(WebCore::XYZFor<ProPhotoRGB<float>>>::convert):
(WebCore::XYZFor<Rec2020<float>>>::convert):
(WebCore::XYZFor<SRGBA<float>>>::convert):
(WebCore::LinearA98RGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearDisplayP3<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearExtendedSRGBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearProPhotoRGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearRec2020<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearSRGBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::Lab<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::A98RGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::DisplayP3<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::ExtendedSRGBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::HSLA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::HWBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LCHA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::ProPhotoRGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::Rec2020<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::SRGBA<float>::ReferenceXYZ>::convert): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::ColorConversion::convert):

  • platform/graphics/ColorTypes.h:

(WebCore::asColorComponents):

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::roundAndClampToSRGBALossy):

  • platform/graphics/filters/FilterOperation.h:
  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/ios/ColorIOS.mm:

(WebCore::colorFromUIColor):

Source/WebKit:

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorToWebCoreColor):
Update to specify SRGBA<float>, which is now required due to lack of deduction guides through
type aliases.

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

Audio is sometimes distorted when using createMediaElementSource
https://bugs.webkit.org/show_bug.cgi?id=221553

Reviewed by Eric Carlson.

AudioSourceProviderAVFObjC::provideInput() was calculating the number of
frames available in the RingBuffer like so:
endFrame - (m_readCount + writeAheadCount)

The issue is that when writeAheadCount is greater than 0, (m_readCount + writeAheadCount)
can become greater than endFrame, causing us to end up with a super large number of
available frames. This can lead us to render garbage because we may be reading more
frames than available the RingBuffer.

I have also made a change in the case where rendering has already started were we ignore
writeAheadCount and render whatever we have in the RingBuffer. After we've started rendering,
deciding not to render because of writeAheadCount, even though there are available frames
in the RingBuffer, is really hurtful to user experience. This was reproducible on
https://www.waveplayer.info/createmediaelementsource-test/ where we would start rendering
for a bit, then output silence and then pick up rendering again (this time for good).

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::provideInput):

8:22 AM Changeset in webkit [272729] by Russell Epstein
  • 1 copy in tags/Safari-612.1.3

Tag Safari-612.1.3.

8:09 AM Changeset in webkit [272728] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash when UI-side compositing is enabled on macOS
https://bugs.webkit.org/show_bug.cgi?id=221740

Reviewed by Tim Horton.

When UI-side compositing is enabled on macOS, WebProcess::updatePageScreenProperties()
crashes because allOf(m_pageMap.values(), ...) return a null WebPage. We're inside
WebProcess::createWebPage() here, so haven't set the HashMap value yet.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updatePageScreenProperties):

8:06 AM Changeset in webkit [272727] by Chris Lord
  • 6 edits in trunk/Source/WebCore

Remove FontSelector dependence in CSSFontFace when creating a new FontFace wrapper
https://bugs.webkit.org/show_bug.cgi?id=221753

Reviewed by Myles C. Maxfield.

Add a parameter to the CSSFontFace-based FontFace constructor to allow
specifying the ScriptExecutionContext and therefore allow removal of
another dependence on m_fontSelector in CSSFontFace.

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::wrapper):

  • css/CSSFontFace.h:
  • css/FontFace.cpp:

(WebCore::FontFace::create):
(WebCore::FontFace::FontFace):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::Iterator::next):
(WebCore::FontFaceSet::load):

7:25 AM Changeset in webkit [272726] by Manuel Rego Casasnovas
  • 4 edits
    1 copy
    1 add in trunk/LayoutTests

Add more Selenium key codes for test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221674

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Add more Selenium key codes (https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html).
Not all of them are added, only the ones that are supported in eventSender.keyDown().

  • web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt: Updated expectations

as this test was using the code for ENTER.

  • web-platform-tests/resources/testdriver-vendor.js:

LayoutTests:

  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt.
6:56 AM Changeset in webkit [272725] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Introduce dedicated logical rect getter for each inline level box type
https://bugs.webkit.org/show_bug.cgi?id=221725

Reviewed by Antti Koivisto.

This helps when different type of rects (margin vs. border) are returned for different type of boxes.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForLineBreakBox const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::LineBox::logicalMarginRectForAtomicInlineLevelBox const):
(WebCore::Layout::LineBox::logicalRectForInlineBox const):
(WebCore::Layout::LineBox::logicalMarginRectForInlineLevelBox const): Deleted.

  • layout/inlineformatting/InlineLineBox.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

6:46 AM Changeset in webkit [272724] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Inline boxes have incorrect content box height/width values
https://bugs.webkit.org/show_bug.cgi?id=221739

Reviewed by Antti Koivisto.

Do not include horizontal and vertical padding and borders when computing the content box size.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForInlineBox const):

6:44 AM Changeset in webkit [272723] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add syscall to allow list in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=221705
<rdar://problem/74162777>

Reviewed by Brent Fulgham.

Add required syscall to allow list in WebContent sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
6:40 AM Changeset in webkit [272722] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Remove GPUProcess flag in MediaRecorder tests
https://bugs.webkit.org/show_bug.cgi?id=221401

Reviewed by Eric Carlson.

We will remove http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html once rdar://problem/74043225 is fixed.

  • http/wpt/mediarecorder/pause-recording.html:

Increase timer to cope with added latency introduced by IPC messaging.

6:18 AM Changeset in webkit [272721] by svillar@igalia.com
  • 12 edits in trunk/Source

Non unified build fixes for mid February 2021
https://bugs.webkit.org/show_bug.cgi?id=221749

Reviewed by Youenn Fablet.

Source/WebCore:

  • CMakeLists.txt:
  • Modules/mediastream/SFrameUtils.cpp:
  • Modules/mediastream/STUNMessageParsing.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):

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

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp:
5:42 AM Changeset in webkit [272720] by svillar@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/ios/TestExpectations: Replaced Failure by ImageOnlyFailure for a couple of tests I imported yesterday.
3:08 AM Changeset in webkit [272719] by youenn@apple.com
  • 7 edits
    1 copy
    2 moves
    1 add in trunk/Source/WebKit

Split RemoteRealtimeMediaSource in two audio-specific and video-specific classes
https://bugs.webkit.org/show_bug.cgi?id=221608

Reviewed by Eric Carlson.

Split RemoteRealtimeMediaSource in RemoteRealtimeAudioSource and RemoteRealtimeVideoSource.
This will allow RemoteRealtimeVideoSource to become a RealtimeVideoCaptureSource in a follow-up
to properly handle fan-out to multiple clones with various frame rates and resolutions.
This also allows removing differences of behaviors between audio and video classes.

No change of behavior.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::didUpdateSourceConnection):
(WebKit::RemoteCaptureSampleManager::RemoteAudio::RemoteAudio):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp: Added.

(WebKit::RemoteRealtimeAudioSource::create):
(WebKit::RemoteRealtimeAudioSource::RemoteRealtimeAudioSource):
(WebKit::RemoteRealtimeAudioSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeAudioSource::~RemoteRealtimeAudioSource):
(WebKit::RemoteRealtimeAudioSource::whenReady):
(WebKit::RemoteRealtimeAudioSource::didFail):
(WebKit::RemoteRealtimeAudioSource::setAsReady):
(WebKit::RemoteRealtimeAudioSource::setCapabilities):
(WebKit::RemoteRealtimeAudioSource::setSettings):
(WebKit::RemoteRealtimeAudioSource::remoteAudioSamplesAvailable):
(WebKit::RemoteRealtimeAudioSource::connection):
(WebKit::RemoteRealtimeAudioSource::startProducingData):
(WebKit::RemoteRealtimeAudioSource::stopProducingData):
(WebKit::RemoteRealtimeAudioSource::capabilities):
(WebKit::RemoteRealtimeAudioSource::applyConstraints):
(WebKit::RemoteRealtimeAudioSource::applyConstraintsSucceeded):
(WebKit::RemoteRealtimeAudioSource::applyConstraintsFailed):
(WebKit::RemoteRealtimeAudioSource::hasEnded):
(WebKit::RemoteRealtimeAudioSource::captureStopped):
(WebKit::RemoteRealtimeAudioSource::captureFailed):
(WebKit::RemoteRealtimeAudioSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.h: Copied from Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h.

(WebKit::RemoteRealtimeAudioSource::identifier const):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp: Renamed from Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp.

(WebKit::RemoteRealtimeVideoSource::create):
(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::whenReady):
(WebKit::RemoteRealtimeVideoSource::didFail):
(WebKit::RemoteRealtimeVideoSource::setAsReady):
(WebKit::RemoteRealtimeVideoSource::clone):
(WebKit::RemoteRealtimeVideoSource::setCapabilities):
(WebKit::RemoteRealtimeVideoSource::setSettings):
(WebKit::RemoteRealtimeVideoSource::remoteVideoSampleAvailable):
(WebKit::RemoteRealtimeVideoSource::connection):
(WebKit::RemoteRealtimeVideoSource::startProducingData):
(WebKit::RemoteRealtimeVideoSource::stopProducingData):
(WebKit::RemoteRealtimeVideoSource::setShouldApplyRotation):
(WebKit::RemoteRealtimeVideoSource::capabilities):
(WebKit::RemoteRealtimeVideoSource::applyConstraints):
(WebKit::RemoteRealtimeVideoSource::applyConstraintsSucceeded):
(WebKit::RemoteRealtimeVideoSource::applyConstraintsFailed):
(WebKit::RemoteRealtimeVideoSource::hasEnded):
(WebKit::RemoteRealtimeVideoSource::captureStopped):
(WebKit::RemoteRealtimeVideoSource::captureFailed):
(WebKit::RemoteRealtimeVideoSource::stopBeingObserved):
(WebKit::RemoteRealtimeVideoSource::requestToEnd):
(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h: Renamed from Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h.
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::addAudioSource):
(WebKit::UserMediaCaptureManager::removeAudioSource):
(WebKit::UserMediaCaptureManager::addVideoSource):
(WebKit::UserMediaCaptureManager::removeVideoSource):
(WebKit::UserMediaCaptureManager::sourceStopped):
(WebKit::UserMediaCaptureManager::sourceEnded):
(WebKit::UserMediaCaptureManager::captureFailed):
(WebKit::UserMediaCaptureManager::sourceMutedChanged):
(WebKit::UserMediaCaptureManager::sourceSettingsChanged):
(WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable):
(WebKit::UserMediaCaptureManager::applyConstraintsSucceeded):
(WebKit::UserMediaCaptureManager::applyConstraintsFailed):
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

(WebKit::UserMediaCaptureManager::remoteCaptureSampleManager):

2:55 AM Changeset in webkit [272718] by commit-queue@webkit.org
  • 4 edits in trunk

Handle min-width/min-height:auto for aspect-ratio
https://bugs.webkit.org/show_bug.cgi?id=220582

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-11
Reviewed by Antti Koivisto.

Source/WebCore:

Implement automatic minimum size [1] handling for aspect-ratio
as specified here [2].

[1] https://drafts.csswg.org/css-sizing-3/#automatic-minimum-size
[2] https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalHeight const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):

LayoutTests:

Enable tests that pass now.

2:30 AM Changeset in webkit [272717] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.30.5

WebKitGTK 2.30.5

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

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.5 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.30.5.
2:06 AM Changeset in webkit [272715] by mmaxfield@apple.com
  • 6 edits
    4 adds in trunk

Remove another use of FontSelector from within CSSFontFace
https://bugs.webkit.org/show_bug.cgi?id=221071

Reviewed by Darin Adler.

Source/WebCore:

Instead of CSSFontFace directly knowing about CSSFontSelector, we can just make CSSFontSelector
inherit from CSSFontFace::Client.

Also, clean up the callback methods a little bit.

Tests: fast/text/font-loading-multiple-documents.html

fast/text/font-loading-multiple-sets.html

  • css/CSSFontFace.cpp:

(WebCore::iterateClients):
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadEventOccurred):
(WebCore::CSSFontFace::updateStyleIfNeeded):

  • css/CSSFontFace.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fontLoaded):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):

  • css/CSSFontSelector.h:

LayoutTests:

  • fast/text/font-loading-multiple-documents-expected.html: Added.
  • fast/text/font-loading-multiple-documents.html: Added.
  • fast/text/font-loading-multiple-sets-expected.txt: Added.
  • fast/text/font-loading-multiple-sets.html: Added.
1:31 AM Changeset in webkit [272714] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r272646 - [GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Carlos Garcia Campos.

  • platform/audio/AudioSourceProviderClient.h: Turned into

CanMakeWeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned

m_client into WeakPtr.

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

Merge r270184 - [GStreamer] AudioSourceProvider can potentially invoke an already-freed client
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Xabier Rodriguez-Calvar.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured): Check the provider has
a client before setting up the audio format.

1:29 AM Changeset in webkit [272712] by Lauro Moura
  • 3 edits in trunk/Tools

[Flatpak SDK] Support multiple builds running at the same time
https://bugs.webkit.org/show_bug.cgi?id=221711

Reviewed by Philippe Normand.

Instead of writing the environment to a file, read the --setenv
arguments from the --args file descriptor passed to webkit-bwrap like
bwrap itself would do.

  • flatpak/flatpakutils.py: Do not write the env file anymore

(WebkitFlatpak.run_in_sandbox):

  • flatpak/webkit-bwrap: Read the environment from the args file

descriptor.

12:44 AM Changeset in webkit [272711] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

the nested grid container which has replaced item with 'max-height' has wrong width(0px).
https://bugs.webkit.org/show_bug.cgi?id=219194

Patch by Ziran Sun <Ziran Sun> on 2021-02-11
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:

The test is imported from WPT.

  • web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html: Added.
  • web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt: Added.

Source/WebCore:

Width of a nested grid container with margin:auto returns 0 when their item has "max-height".
This causes the grid item's position wrong due to the wrongly comuputed auto-margin value.
This change is to check whether the preferred logical width is dirty when the grid area changes.

It's a reland of r272338, which got reverted because it broken
imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html on ios. This change
actually fixes the test failure in the flexbox test. Hence, updating test expectation file of
the flexbox test seems working.

This is an import of Chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/2503910
This change also imported needsPreferredWidthsRecalculation() from Chromium to RenderReplaced to
address the test case specified here.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::needsPreferredWidthsRecalculation const):

  • rendering/RenderReplaced.h:

Feb 10, 2021:

11:25 PM Changeset in webkit [272710] by Wenson Hsieh
  • 7 edits in trunk

[Webpage translation] Add support for the -_translate: action on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=221713
Source/WebKit:

Reviewed by Tim Horton.

Add another way to trigger web page translation on iOS, via the -_translate: selector.

  • Platform/spi/ios/UIKitSPI.h:

Add a new staged SPI declaration on UIWKTextInteractionAssistant. Additionally remove an old staging
declaration for a method in UIWebGeolocationPolicyDecider.

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _translateForWebView:]):

Grab the currently selected text and invoke the new method on UIWKTextInteractionAssistant.

(-[WKContentView _addShortcutForWebView:]):

Drive-by fix: remove an extraneous nil check.

(-[WKContentView canPerformActionForWebView:withSender:]):

Return YES if the selection is ranged, and we're not inside a password input.

Tools:

<rdar://problem/73902020>

Reviewed by Tim Horton.

Add an API test to exercise -canPerformAction:withSender: with the new action.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:
11:24 PM Changeset in webkit [272709] by jer.noble@apple.com
  • 18 edits
    5 copies
    1 add in trunk/Source

Move AudioHardwareListener into the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221455

Reviewed by Eric Carlson.

Source/WebCore:

Allow clients to override the creation method for AudioHardwareListener::create().

  • platform/audio/AudioHardwareListener.cpp:

(WebCore::audioHardwareListenerCreationFunction):
(WebCore::AudioHardwareListener::setCreationFunction):
(WebCore::AudioHardwareListener::resetCreationFunction):
(WebCore::AudioHardwareListener::create):

  • platform/audio/AudioHardwareListener.h:
  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::AudioHardwareListener::create): Deleted.

Source/WebKit:

Add a new Remote pair of classes, RemoteAudioHardwareListener/Proxy.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createAudioHardwareListener):
(WebKit::GPUConnectionToWebProcess::releaseAudioHardwareListener):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/media/RemoteAudioHardwareListenerProxy.cpp:

(WebKit::RemoteAudioHardwareListenerProxy::RemoteAudioHardwareListenerProxy):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListenerProxy::audioOutputDeviceChanged):

  • GPUProcess/media/RemoteAudioHardwareListenerProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioHardwareListener.cpp: Added.

(WebKit::RemoteAudioHardwareListener::create):
(WebKit::RemoteAudioHardwareListener::RemoteAudioHardwareListener):
(WebKit::RemoteAudioHardwareListener::~RemoteAudioHardwareListener):
(WebKit::RemoteAudioHardwareListener::gpuProcessConnectionDidClose):
(WebKit::RemoteAudioHardwareListener::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListener::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListener::audioOutputDeviceChanged):

  • WebProcess/GPU/media/RemoteAudioHardwareListener.h:
  • WebProcess/GPU/media/RemoteAudioHardwareListener.messages.in:
  • WebProcess/GPU/media/RemoteAudioHardwareListenerIdentifier.h:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

10:26 PM Changeset in webkit [272708] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Update - [ASCAppleIDCredential initWithUser:...] to match the latest SPI
https://bugs.webkit.org/show_bug.cgi?id=221723
<rdar://problem/74038383>

Reviewed by Brent Fulgham.

No tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):

10:22 PM Changeset in webkit [272707] by commit-queue@webkit.org
  • 42 edits
    1 copy in trunk

Use event loop to set title
https://bugs.webkit.org/show_bug.cgi?id=218496

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Darin Adler.

Source/WebCore:

Use event loop to set title to avoid calling WebFrameLoaderClient
within HTMLTitleElement::insertedIntoAncestor.

  • dom/Document.cpp:

(WebCore::Document::updateTitle):

  • dom/Document.h:

(WebCore::Document::titleWithDirection const):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setTitle):

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::print):

  • page/ChromeClient.h:

Source/WebKit:

Add title parameter to PrintFrame message.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::printFrame):

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

(WebKit::WebChromeClient::print):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

Adjust to API change.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::print):

Source/WebKitLegacy/win:

Adjust to API change.

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::print):

  • WebCoreSupport/WebChromeClient.h:

Tools:

Adapt unit tests to wait for title change tasks
to be processed.

  • TestWebKitAPI/Tests/WebKit/PageLoadState.cpp:

(TestWebKitAPI::didChangeTitle):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationFailure):
(testWebViewAuthenticationNoCredential):
(testWebViewAuthenticationSuccess):
(testWebViewAuthenticationEmptyRealm):

  • TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:

(testBackForwardListNavigation):

  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:

(testWebViewTitle):

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(testLoadFailedWithTLSErrors):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettingsJavaScriptMarkup):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewTitleChange):

LayoutTests:

Adapt tests to make sure pending title change tasks
are processed before the test is done.

  • TestExpectations:
  • fast/dom/title-text-property-2.html:
  • fast/dom/title-text-property-assigning-empty-string.html:
  • fast/dom/title-text-property.html:
  • http/tests/globalhistory/history-delegate-basic-title-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-title.html:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
  • http/tests/loading/redirect-with-no-location-crash-expected.txt:
  • http/tests/loading/redirect-with-no-location-crash.html:
  • platform/mac-wk2/TestExpectations:
  • platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Copied from LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt.
  • platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
9:28 PM Changeset in webkit [272706] by mmaxfield@apple.com
  • 25 edits
    1 move in trunk/Source

Move pal/spi/cocoa/CoreTextSPI.h to pal/spi/cf/CoreTextSPI.h
https://bugs.webkit.org/show_bug.cgi?id=221683

Reviewed by Simon Fraser.

Core Text has a C API, and doesn't depend on UIKit/AppKit. It also exists on Windows,
where there is no Cocoa. And pal/spi/cf already includes things like CoreAudioSPI.h
and CoreVideoSPI.h

Source/WebCore:

No new tests because there is no behavior change.

  • platform/cocoa/DragImageCocoa.mm:
  • platform/graphics/Font.cpp:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:
  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:
  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:
  • platform/graphics/coretext/FontCoreText.cpp:
  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:
  • platform/graphics/coretext/GlyphPageCoreText.cpp:
  • platform/graphics/mac/ComplexTextControllerCoreText.mm:
  • platform/graphics/mac/FontCustomPlatformData.cpp:
  • platform/graphics/mac/SimpleFontDataCoreText.cpp:
  • rendering/RenderThemeCocoa.mm:
  • rendering/RenderThemeIOS.mm:
  • testing/Internals.cpp:

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cf/CoreTextSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h.

Source/WebKit:

  • Shared/Cocoa/CoreTextHelpers.mm:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • UIProcess/ios/forms/WKNumberPadView.mm:
  • WebProcess/WebPage/WebPage.cpp:
9:23 PM Changeset in webkit [272705] by Ryan Haddad
  • 28 edits in trunk/Source/WebKit

Unreviewed, reverting r272702.

Caused assertion failure on macOS debug WK2 bots

Reverted changeset:

"Stop using GenericCallback from WebPageProxy"
https://bugs.webkit.org/show_bug.cgi?id=221653
https://trac.webkit.org/changeset/272702

8:49 PM Changeset in webkit [272704] by Ryan Haddad
  • 1 edit
    1 copy
    1 add
    2 deletes in trunk/LayoutTests

[ Big Sur ] imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=221681

Unreviewed test gardening.

Consolidate test baselines for mac since the result is the same across configurations.

  • platform/mac-catalina/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Renamed from LayoutTests/platform/mac-catalina-wk1/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt.
7:18 PM Changeset in webkit [272703] by rniwa@webkit.org
  • 9 edits in trunk/Source

Reduce the overhead of DocumentFragment in innerHTML & outerHTML
https://bugs.webkit.org/show_bug.cgi?id=221535
<rdar://problem/73861015>

Reviewed by Geoffrey Garen.

Source/WebCore:

This patch reduces the overhead of using DocumentFragment in innerHTMl and outerHTML setters by

  1. Cache DocumentFragment used for innerHTML and outerHTML.
  2. Adding a fast path to removeAllChildrenWithScriptAssertion when removing child nodes from (1)

immediately before appending it to the new parent. This is safe for now since no DOM nodes or API
store information about its root node or parent node when it's DocumentFragment, and and there
are no node flags to be updated or invalidated since we're removing already-disconnected nodes
to which no script ever had access up until this point. We release-assert these conditions before
going into the fast path.

No new tests since there should be no observable behavior change.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added a fast path. See above.

  • dom/Document.cpp:

(WebCore::Document::commonTeardown): Clear m_documentFragmentForInnerOuterHTML as it would keep
the ownewr document (this Document) alive otherwise.
(WebCore::Document::documentFragmentForInnerOuterHTML): Added. Lazily create a DocumentFragment
used to parse the fragment for innerHTML and outerHTML setters. Remove any child nodes left in
the document fragment in the case the last call to replaceChildrenWithFragment took a fast path
for a single text node, which case we don't remove any child nodes from DocumentFragment.

  • dom/Document.h:
  • dom/DocumentFragment.h:

(WebCore::DocumentFragment::setIsDocumentFragmentForInnerOuterHTML): Added.

  • dom/Node.h:

(WebCore::Node::isDocumentFragmentForInnerOuterHTML const): Added.

  • editing/markup.cpp:

(WebCore::createFragmentForMarkup): Extracted from createFragmentForInnerOuterHTML to share code
between createFragmentForInnerOuterHTML and createContextualFragment.
(WebCore::createFragmentForInnerOuterHTML): Reuse the fragment in createFragmentForMarkup.
(WebCore::createContextualFragment): Don't reuse the fragment in createFragmentForMarkup as this
function is used by Range::createContextualFragment which exposes the document fragment to
arbitrary author scripts.
(WebCore::hasOneChild): Deleted since we now have Node::hasOneChild.
(WebCore::hasOneTextChild): Use Node::hasOneChild.
(WebCore::replaceChildrenWithFragment): Added assertions to make sure we don't have any child nodes
left after replacing the children.

Source/WTF:

Added a helper function for writing assertions.

  • wtf/WeakPtr.h:

(WTF::WeakPtrFactory::isInitialized const): Added.

7:06 PM Changeset in webkit [272702] by achristensen@apple.com
  • 28 edits in trunk/Source/WebKit

Stop using GenericCallback from WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=221653

Reviewed by Chris Dumez.

There are still two uses in the DrawingAreaProxy implementations, but those are quite tangled and deserve their own patch.

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::updateAttributes):

  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/C/WKPage.cpp:

(CompletionHandler<void):
(WKPageRenderTreeExternalRepresentation):
(WKPageGetSourceForFrame):
(WKPageGetContentsAsString):
(WKPageGetBytecodeProfile):
(WKPageGetSamplingProfilerOutput):
(WTF::Function<void): Deleted.

  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::updateFromSerializedRepresentation):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsOfAllFramesAsStringWithCompletionHandler:]):

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment setFileWrapper:contentType:completion:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::startSpeaking):

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

(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
(WebKit::WebPageProxy::insertAttachment):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):
(WebKit::WebPageProxy::clearLoadDependentCallbacks): Deleted.
(WebKit::WebPageProxy::voidCallback): Deleted.
(WebKit::WebPageProxy::stringCallback): Deleted.
(WebKit::WebPageProxy::invalidateStringCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _shareForWebView:]):
(-[WKContentView _defineForWebView:]):
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applyAutocorrection):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient getSelectedText:]):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::activityStateDidChange):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::getContentsAsString):
(WebKit::WebPage::getRenderTreeExternalRepresentation):
(WebKit::WebPage::getSelectionOrContentsAsString):
(WebKit::WebPage::getSourceForFrame):
(WebKit::WebPage::getBytecodeProfile):
(WebKit::WebPage::getSamplingProfilerOutput):
(WebKit::WebPage::insertAttachment):
(WebKit::WebPage::updateAttachmentAttributes):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applyAutocorrection):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::handleActivityStateChangeCallbacks):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):

6:25 PM Changeset in webkit [272701] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Logical width of a line box is equal to the inner logical width of its containing block
https://bugs.webkit.org/show_bug.cgi?id=221648

Reviewed by Antti Koivisto.

This is is used when horizontal scrolling is allowed (not supported atm).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

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

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::contentLogicalWidth const):

6:25 PM Changeset in webkit [272700] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

WebCore::genericFamily() should use checked_cf_cast<>
<https://webkit.org/b/221521>

Reviewed by Sam Weinig.

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::genericFamily):

  • Switch from dynamic_cf_cast<> to checked_cf_cast<> because we always expect a CFStringRef type object to be returned from CTFontDescriptorCopyAttribute().
6:22 PM Changeset in webkit [272699] by don.olmstead@sony.com
  • 2 edits in trunk

[CMake] Enable hidden visibility on JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=221726

Reviewed by Yusuke Suzuki.

Turn on hidden visibility for all *NIX ports of JSCOnly. To properly export the symbols
from WTF/bmalloc OBJECT libraries are used. This requires CMake 3.12 or later to
function properly.

  • Source/cmake/OptionsJSCOnly.cmake:
5:26 PM Changeset in webkit [272698] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269824) IOSurface allocation failure causes crash in RemoteLayerBackingStore::display()
https://bugs.webkit.org/show_bug.cgi?id=221729
rdar://72651289

Reviewed by Tim Horton.

The refactoring in r269824 dropped a null check on the front buffer surface (IOSurface allocation
can fail when the process reaches a hardcoded limit). Restore the null check.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

4:11 PM Changeset in webkit [272697] by chris.reid@sony.com
  • 4 edits
    3 adds in trunk

[PlayStation] Add initial RESOURCE_USAGE implementation
https://bugs.webkit.org/show_bug.cgi?id=221706

Reviewed by Ross Kirsling.

.:

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebCore:

Add initial RESOURCE_USAGE data for the inspector.
CPU usage and total memory information is just stubbed out for now.

  • PlatformPlayStation.cmake:
  • page/playstation/ResourceUsageOverlayPlayStation.cpp: Added.
  • page/playstation/ResourceUsageThreadPlayStation.cpp: Added.
4:07 PM Changeset in webkit [272696] by Peng Liu
  • 9 edits in trunk/Source

Remove MediaSourcePrivateClient::monitorSourceBuffers()
https://bugs.webkit.org/show_bug.cgi?id=220945

Reviewed by Youenn Fablet.

Source/WebCore:

Remove MediaSourcePrivateClient::monitorSourceBuffers() for all ports except GStreamer
port because MediaSourcePrivate does not call it. This patch also adds some log messages
related to seeking.

No new tests, no functional change.

  • Modules/mediasource/MediaSource.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::seekWithTolerance):

  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::appendCompleted):

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

Source/WebKit:

  • GPUProcess/media/RemoteMediaSourceProxy.cpp:

(WebKit::RemoteMediaSourceProxy::monitorSourceBuffers): Deleted.

  • GPUProcess/media/RemoteMediaSourceProxy.h:
3:56 PM Changeset in webkit [272695] by Ruben Turcios
  • 40 edits
    18 deletes in branches/safari-612.1.3-branch

Cherry-pick r272561. rdar://problem/74210218

Unreviewed, reverting r272480, r272481, and r272500.
https://bugs.webkit.org/show_bug.cgi?id=221586

Caused assertion failure seen with EME tests

Reverted changesets:

"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272480

"Unreviewed, build fix after r272480"
https://trac.webkit.org/changeset/272481

"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272500

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

3:50 PM Changeset in webkit [272694] by jiewen_tan@apple.com
  • 12 edits in trunk

[WebAuthn] Produce ClientDataJSON in the SPI
https://bugs.webkit.org/show_bug.cgi?id=221623
<rdar://problem/71509394>

Reviewed by Brent Fulgham.

Source/WebKit:

Instead of asking the clients of the SPI to pre-calculate the ClientDataJSON hash for us, we do
that in the SPI space ourselves.

Covered by API tests.

  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponse.mm:

(-[_WKAuthenticatorAssertionResponse initWithClientDataJSON:rawId:extensions:authenticatorData:signature:userHandle:]):
(-[_WKAuthenticatorAssertionResponse initWithRawId:extensions:authenticatorData:signature:userHandle:]): Deleted.

  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponseInternal.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponse.mm:

(-[_WKAuthenticatorAttestationResponse initWithClientDataJSON:rawId:extensions:attestationObject:]):
(-[_WKAuthenticatorAttestationResponse initWithRawId:extensions:attestationObject:]): Deleted.

  • UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponseInternal.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.mm:

(-[_WKAuthenticatorResponse initWithClientDataJSON:rawId:extensions:]):
(-[_WKAuthenticatorResponse initWithRawId:extensions:]): Deleted.

  • UIProcess/API/Cocoa/_WKAuthenticatorResponseInternal.h:

Adds a field to return the JSON serialized bytes for the ClientDataJSON.

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

(produceClientDataJson):
(produceClientDataJsonHash):
(wkAuthenticatorAttestationResponse):
(-[_WKWebAuthenticationPanel makeCredentialWithChallenge:origin:options:completionHandler:]):
(wkAuthenticatorAssertionResponse):
(-[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:]):
(-[_WKWebAuthenticationPanel makeCredentialWithHash:options:completionHandler:]): Deleted.
(-[_WKWebAuthenticationPanel getAssertionWithHash:options:completionHandler:]): Deleted.
Modifies the SPI to accept a challenge and an origin to calculate the ClientDataJSON.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

3:47 PM Changeset in webkit [272693] by Alan Coon
  • 1 copy in tags/Safari-611.1.17

Tag Safari-611.1.17.

3:44 PM Changeset in webkit [272692] by Ruben Turcios
  • 2 edits in trunk/Tools

Adding self to contributor.json file.

  • Scripts/webkitpy/common/config/contributors.json:
3:31 PM Changeset in webkit [272691] by Alan Coon
  • 46 edits in branches/safari-611-branch

Revert r272541. rdar://problem/74208306

3:27 PM Changeset in webkit [272690] by don.olmstead@sony.com
  • 7 edits in trunk/Source

Non-unified build fixes, early February 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=221701

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • bytecode/IterationModeMetadata.h:
  • bytecode/SetPrivateBrandStatus.h:

Source/WebCore:

  • rendering/RenderImage.cpp:

Source/WebKit:

  • NetworkProcess/PrivateClickMeasurementManager.cpp:
3:24 PM Changeset in webkit [272689] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.17

3:20 PM Changeset in webkit [272688] by Russell Epstein
  • 1 copy in tags/Safari-611.1.14.0.2

Tag Safari-611.1.14.0.2.

3:20 PM Changeset in webkit [272687] by Russell Epstein
  • 1 copy in tags/Safari-611.1.14.1.2

Tag Safari-611.1.14.1.2.

2:35 PM Changeset in webkit [272686] by Ryan Haddad
  • 4 edits in trunk

Unreviewed, reverting r272507.

Caused TestWebKitAPI.WebKit.OnDeviceChangeCrash to become a
flaky timeout

Reverted changeset:

"[MacOS] Enable Audio Capture in GPUProcess by default"
https://bugs.webkit.org/show_bug.cgi?id=221400
https://trac.webkit.org/changeset/272507

2:00 PM Changeset in webkit [272685] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We should not static_assert on an ENABLE() macro.
https://bugs.webkit.org/show_bug.cgi?id=221714
rdar://74197896

Reviewed by Yusuke Suzuki.

This is because the ENABLE() macro reduces to a macro expression
(defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE) which is not a C++
expression that a static_assert can evaluate.

  • llint/LLIntData.cpp:
  • llint/LLIntData.h:

(JSC::LLInt::getCodePtr):
(JSC::LLInt::getWide16CodePtr):
(JSC::LLInt::getWide32CodePtr):

1:34 PM Changeset in webkit [272684] by BJ Burg
  • 21 edits in trunk/Source

[Cocoa] Web Inspector: add support for evaluating script on the inspected page via _WKInspectorExtension
https://bugs.webkit.org/show_bug.cgi?id=221567
<rdar://71208534>

Reviewed by Devin Rousso.

Source/WebCore:

This patch adds support for handling returned Promise values in an intelligent way.
If a callback was supplied, then wait for the promise to settle and invoke the
callback with its settled result. To support this, the dispatcher keeps a map of
unfulfilled DOMPromises and the callback that is chained to the DOMPromise.

  • inspector/InspectorFrontendAPIDispatcher.h:
  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::~InspectorFrontendAPIDispatcher):
(WebCore::InspectorFrontendAPIDispatcher::reset):
Clear the pending responses map when destructing or resetting the dispatcher.

(WebCore::InspectorFrontendAPIDispatcher::frontendGlobalObject):
Upgrade from JSGlobalObject to JSDOMGlobalObject, which is needed to call JSDOMPromise methods.

(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
The meat of this patch. Chain a Function onto the JSDOMPromise. Inside the lambda function,
try to look up and invoke the corresponding EvaluationResultHandler for this evaluation result.

(WebCore::InspectorFrontendAPIDispatcher::invalidatePendingResponses):
Since these are CompletionHandlers we need to call them one way or another.

Source/WebInspectorUI:

This patch adds InspectorFrontendAPI.evaluateScriptForExtension().

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
Translate arguments into a corresponding RuntimeAgent.evaluate invocation.
The parameters are not yet implemented, and will be filled in by a subsequent patch.

  • UserInterface/Models/WebInspectorExtension.js: Add new error enum value.
  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.evaluateScriptForExtension):
Plumbing.

Source/WebKit:

This patch adds a new method to _WKInspectorExtension which is used to implement
browser.devtools.inspectedWindow.eval in the Web Extensions API.

  • Shared/InspectorExtensionTypes.h:
  • Shared/InspectorExtensionTypes.cpp:

(WebKit::inspectorExtensionErrorToString):
Add enum value NotImplemented.

  • UIProcess/API/APIInspectorExtension.h:
  • UIProcess/API/APIInspectorExtension.cpp:

(API::InspectorExtension::evaluateScript):
Plumbing.

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

(nsErrorFromExceptionDetails):
Move this helper up near the top as it is now exposed via <WebKit/WKWebViewInternal.h>.

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

(-[_WKInspectorExtension evaluateScript:frameURL:contextSecurityOrigin:useContentScriptContext:completionHandler:]):
Add new method to evaluate script in the inspected page. The semantics of the parameters
are intended to match those of browser.devtools.inspectedWindow.eval.

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

(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension):
Plumbing.

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

Add new message for evaluateScript.

  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromEvaluationResult):
Support the new error enum value.

(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::createTabForExtension):
Drive-by, simplify this by passing the EvaluationResult value without unwrapping.

(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
This is the meat of the patch. Call out to InspectorFrontendAPI.evaluateScriptForExtension.
Inspect the return value and invoke the completion handler with the result or an error.

1:27 PM Changeset in webkit [272683] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[MacOS] animations/keyframe-pseudo-shadow.html is flakey failing.
https://bugs.webkit.org/show_bug.cgi?id=221491

Unreviewed test gardening.

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

  • platform/mac/TestExpectations:
1:16 PM Changeset in webkit [272682] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Reset expectations of media related tests
https://bugs.webkit.org/show_bug.cgi?id=221700

Unreviewed test gardening.

  • gpu-process/TestExpectations:
1:06 PM Changeset in webkit [272681] by aakash_jain@apple.com
  • 7 edits
    1 delete in trunk/Tools

[build.webkit.org] Remove code specific to old Buildbot
https://bugs.webkit.org/show_bug.cgi?id=221558

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/buildbot.tac:
  • CISupport/build-webkit-org/loadConfig.py:
  • CISupport/build-webkit-org/loadConfig_unittest.py:
  • CISupport/build-webkit-org/master.cfg: Removed.
  • CISupport/build-webkit-org/steps.py:

(TestWithFailureCount.getText): Deleted.
(TestWithFailureCount.getText2): Deleted.
(CompileWebKit.createSummary): Deleted.
(RunWebKitTests._parseRunWebKitTestsOutput): Deleted.
(RunWebKitTests.commandComplete): Deleted.
(RunWebKitTests.getText): Deleted.
(RunWebKitTests.getText2): Deleted.
(ExtractTestResults.start): Deleted.

  • CISupport/ews-build/steps.py:
  • CISupport/ews-build/steps_unittest.py:
1:04 PM Changeset in webkit [272680] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

WebGL IPC messages are delivered out of order
https://bugs.webkit.org/show_bug.cgi?id=221488

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-10
Reviewed by Chris Dumez.

Sync messages are delivered before earlier async messages, if some other
WebKit part waits on sync replies.

No new tests, makes the existing WebGL --use-gpu-process tests a bit less
flakey.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

Mark all async messages with IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply.
There are no messages in the receiver message list that would make sense
to be delivered out of order.

12:55 PM Changeset in webkit [272679] by ap@apple.com
  • 7 edits in trunk/Source

Do not differentiate between Release and Production via ENABLE_DEVELOPER_MODE
https://bugs.webkit.org/show_bug.cgi?id=221684

Reviewed by Sam Weinig.

It is invalid to create behaviors that are different between these. There is
almost no difference in usage scenarios between build modes - either can be
produced by CI for validation, either can be used for local testing, etc.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

12:34 PM Changeset in webkit [272678] by Chris Dumez
  • 5 edits
    2 adds in trunk/Source/WebCore

WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>

Reviewed by Geoffrey Garen.

The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:

  1. createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
  2. createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
  3. Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
  4. Added more assertions to help catch bugs.
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added.

(WebCore::tryCreateAudioBufferList):
(WebCore::destroyAudioBufferList):
(WebCore::validateAudioBufferList):

  • platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
  • platform/audio/ios/AudioFileReaderIOS.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createAudioBufferList): Deleted.
(WebCore::destroyAudioBufferList): Deleted.

  • platform/audio/mac/AudioFileReaderMac.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createAudioBufferList): Deleted.
(WebCore::destroyAudioBufferList): Deleted.

12:34 PM Changeset in webkit [272677] by Alan Coon
  • 1 copy in tags/Safari-611.1.16

Tag Safari-611.1.16.

12:31 PM Changeset in webkit [272676] by commit-queue@webkit.org
  • 1 edit
    2 moves in trunk/LayoutTests

Rename testcase to indicate hang
https://bugs.webkit.org/show_bug.cgi?id=221375

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

Rename testcase to indicate hang rather than crash.

  • plugins/embed-creation-hang-expected.txt: Renamed from LayoutTests/plugins/embed-creation-crash-expected.txt.
  • plugins/embed-creation-hang.html: Renamed from LayoutTests/plugins/embed-creation-crash.html.
12:25 PM Changeset in webkit [272675] by Alan Coon
  • 6 edits in branches/safari-611-branch

Revert r272538. rdar://problem/74183111

12:25 PM Changeset in webkit [272674] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Revert r272539. rdar://problem/74183111

12:16 PM Changeset in webkit [272673] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.16

12:05 PM Changeset in webkit [272672] by Russell Epstein
  • 2 edits in branches/safari-611.1.14.1-branch/Source/JavaScriptCore

Cherry-pick r272663. rdar://problem/74197958

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

12:04 PM Changeset in webkit [272671] by Russell Epstein
  • 8 edits in branches/safari-611.1.14.1-branch/Source

Versioning.

WebKit-7611.1.14.1.2

12:02 PM Changeset in webkit [272670] by commit-queue@webkit.org
  • 10 edits
    4 adds in trunk

Web Inspector: Display all CSS grids on page in Layout panel
https://bugs.webkit.org/show_bug.cgi?id=221145
<rdar://problem/73764515>

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

Source/WebInspectorUI:

Show a list of CSS Grid containers in the Layout sidebar panel of the Elements Tab.
Whenever grid nodes are added to or removed from the page, the list is updated.

Clicking on a checkbox next to a grid node toggles the Grid overlay for that node.
Changing the color of the swatch next to a grid node updates the color of the overlay if it is visible.

Add OverlayManager to mediate showing and hiding Grid overlays.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Controllers/OverlayManager.js: Added.

(WI.OverlayManager):
(WI.OverlayManager.prototype.get nodesWithGridOverlay):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype.hideGridOverlay):
OverlayManager is a singleton used to show and hide overlays for nodes on the inspected page.
It maintains state of all overlays that are visible on the page. It fires events when they are shown or hidden.

  • UserInterface/Main.html:
  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.set layoutContextType):
(WI.DOMNode.prototype.markDestroyed):
Whenever a node is removed from the DOM, its layoutContextType property changes to null.
This dispatches a WI.DOMNode.Event.LayoutContextTypeChanged event which is handled in CSSGridSection
to refresh the list of grid node containers on the page.

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WI.BoxModelDetailsSectionRow.prototype.set nodeStyles):

  • UserInterface/Views/CSSGridSection.css: Added.

(.css-grid-section .node-link):
(.css-grid-section .heading):

  • UserInterface/Views/CSSGridSection.js: Added.

(WI.CSSGridSection):
(WI.CSSGridSection.prototype.attached):
(WI.CSSGridSection.prototype.detached):
(WI.CSSGridSection.prototype.initialLayout):
(WI.CSSGridSection.prototype.layout):
(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection.prototype._handleLayoutContextTypeChanged):
(WI.CSSGridSection.prototype._refreshGridNodeSet):
CSSGridSection is a new View under LayoutDetailsSidebarPanel.
It holds a list of grid nodes on the page and a set of configuration options
to pass when showing the Grid overlay (upcoming in separate patch).

  • UserInterface/Views/LayoutDetailsSidebarPanel.css: Added.

(.details-section.layout-css-grid > .content > .group > .row > .css-grid-section):

  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):

LayoutTests:

DOMNode.layoutContextType is null when not defined.
Update layout test and corresponding expected result.

  • inspector/css/nodeLayoutContextTypeChanged-expected.txt:
  • inspector/css/nodeLayoutContextTypeChanged.html:
11:58 AM Changeset in webkit [272669] by Wenson Hsieh
  • 25 edits in trunk

Use HAVE(PEPPER_UI_CORE) instead of PLATFORM(WATCHOS) to guard code that uses PepperUICore
https://bugs.webkit.org/show_bug.cgi?id=221679

Reviewed by Tim Horton.

Source/WebKit:

Use HAVE(PEPPER_UI_CORE) instead of PLATFORM(WATCHOS) in code that depends on PepperUICore, either directly
or indirectly. While technically equivalent, the former is more semantically precise. Common examples of this
include dependencies on Quickboard for text input, or PepperUICore category extensions on common UIKit classes
(e.g. digital crown support in WKScrollView.mm). No change in behavior.

Inspired by <https://bugs.webkit.org/show_bug.cgi?id=221649#c2>.

  • Platform/spi/watchos/PepperUICoreSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView _updateTextInputTraits:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView reloadContextViewForPresentedListViewController]):
(-[WKContentView _wheelChangedWithEvent:]):
(-[WKContentView _simulateTextEntered:]):
(-[WKContentView selectFormAccessoryPickerRow:]):
(-[WKContentView selectFormAccessoryHasCheckedItemAtRow:]):
(-[WKContentView textContentTypeForTesting]):
(-[WKContentView formInputLabel]):
(-[WKContentView setTimePickerValueToHour:minute:]):

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]):

  • UIProcess/ios/forms/WKDatePickerViewController.h:
  • UIProcess/ios/forms/WKDatePickerViewController.mm:
  • UIProcess/ios/forms/WKFocusedFormControlView.h:
  • UIProcess/ios/forms/WKFocusedFormControlView.mm:
  • UIProcess/ios/forms/WKNumberPadView.h:
  • UIProcess/ios/forms/WKNumberPadView.mm:
  • UIProcess/ios/forms/WKNumberPadViewController.h:
  • UIProcess/ios/forms/WKNumberPadViewController.mm:
  • UIProcess/ios/forms/WKQuickboardListViewController.h:
  • UIProcess/ios/forms/WKQuickboardListViewController.mm:
  • UIProcess/ios/forms/WKSelectMenuListViewController.h:
  • UIProcess/ios/forms/WKSelectMenuListViewController.mm:
  • UIProcess/ios/forms/WKTextInputListViewController.h:
  • UIProcess/ios/forms/WKTextInputListViewController.mm:
  • UIProcess/ios/forms/WKTimePickerViewController.h:
  • UIProcess/ios/forms/WKTimePickerViewController.mm:

Source/WTF:

Add the HAVE(PEPPER_UI_CORE) compile-time flag.

  • wtf/PlatformHave.h:

Tools:

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(isQuickboardViewController):

11:53 AM Changeset in webkit [272668] by Russell Epstein
  • 2 edits in branches/safari-611.1.14.0-branch/Source/JavaScriptCore

Cherry-pick r272663. rdar://problem/74197969

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

11:50 AM Changeset in webkit [272667] by Russell Epstein
  • 8 edits in branches/safari-611.1.14.0-branch/Source

Versioning.

WebKit-7611.1.14.0.2

11:41 AM Changeset in webkit [272666] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r272628): [macOS] TestWebKitAPI.WKWebView.SnapshotImageError is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221702

I got a little carried away with my error reduction. This one needs an error.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

11:27 AM Changeset in webkit [272665] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[iOS][FCR] Add reduced motion animation for indeterminate progress bars
https://bugs.webkit.org/show_bug.cgi?id=221680
<rdar://problem/74191515>

Reviewed by Wenson Hsieh.

The reduced motion animation for indeterminate progress bars is an
opacity pulse from 30% to 60%.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):

11:01 AM Changeset in webkit [272664] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Remove old build.webkit.org unit-tests
https://bugs.webkit.org/show_bug.cgi?id=221678

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/factories.py:

(ServicesFactory.init):

  • CISupport/ews-build/factories_unittest.py:

(TestTestsFactory.test_services_factory):

  • CISupport/ews-build/steps.py:

(ReRunWebKitPerlTests.evaluateCommand):
(RunBuildWebKitOrgOldUnitTests): Deleted.
(RunBuildWebKitOrgOldUnitTests.init): Deleted.
(RunBuildWebKitOrgOldUnitTests.getResultSummary): Deleted.

  • CISupport/ews-build/steps_unittest.py:

(TestRunBuildWebKitOrgUnitTests.test_failure):
(TestRunBuildWebKitOrgOldUnitTests): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.setUp): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.tearDown): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.test_success): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.test_failure): Deleted.

10:46 AM Changeset in webkit [272663] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):

10:26 AM Changeset in webkit [272662] by Antti Koivisto
  • 5 edits
    2 adds in trunk

[LFC][Integration] Paint invalidation for inline element style changes
https://bugs.webkit.org/show_bug.cgi?id=221669

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/repaint/inline-style-change.html

Compute the repaint rect for RenderInline.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::visualOverflowBoundingBoxRectFor const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::linesVisualOverflowBoundingBox const):
(WebCore::RenderInline::clippedOverflowRectForRepaint const):

LayoutTests:

  • fast/repaint/inline-style-change-expected.txt: Added.
  • fast/repaint/inline-style-change.html: Added.
10:23 AM Changeset in webkit [272661] by Patrick Griffis
  • 2 edits in trunk/Tools

Update status in contributors.json

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
9:38 AM Changeset in webkit [272660] by Kate Cheney
  • 11 edits in trunk/Source/WebKit

PCM: Expired reports get sent at the same time after a session restart
https://bugs.webkit.org/show_bug.cgi?id=221555
<rdar://problem/73724816>

Reviewed by John Wilander.

Since PCM data is now persisted, we need to address the case of a
session-restart after 24-48+ hours. We should not send all overdue
attributions in the same burst in case multiple have the same destination
and could identify a user cross-site.

This patch kicks off the timer to fire pending attributions on session-start
and sends one report at a time. If more than one overdue report exists
at any time, we schedule the timer for a random interval between 15 and
30 minutes.

In theory this could result in some attributions never being sent if a
user keeps quitting and restarting a session. In practice this is
probably unlikely. Protecting the user's privacy is a hard requirement,
so we think possible starvation of some reports is the right tradeoff.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttributions): Deleted.

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

(WebKit::WebResourceLoadStatisticsStore::clearSentAttribution):
(WebKit::WebResourceLoadStatisticsStore::clearSentAttributions): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

Remove unused SQLite query. Update the query to sort attributed PCM
by earliestTimeToSend, which seems important now that we send only
one overdue report at a time. Change the clearSentAttributions
function to take only a single attribution.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
Convert m_privateClickMeasurement to a unique_ptr so we can wait to
create it after WebResourceLoadStatisticsStore is created. This ensures
that the call to create the SQLite database will run on a
background thread before we try to collect overdue PCM attributions.

(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::NetworkSession::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkSession::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately):

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

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequest):
(WebKit::PrivateClickMeasurementManager::attribute):
Drive-by fixes to add protectedThis and check if PrivateClickMeasurementManager
is still alive when this lambda is called.

9:07 AM Changeset in webkit [272659] by Wenson Hsieh
  • 19 edits in trunk

[watchOS] Adopt PUICQuickboardController for text input
https://bugs.webkit.org/show_bug.cgi?id=221649

Reviewed by Tim Horton.

Source/WebKit:

Refactor text input on watchOS to use PUICQuickboardController, instead of custom WebKit subclasses of
PUICQuickboardListViewController. This new API serves the same purpose as the current list view controller
subclass, by providing a view that offers options to dictate, scribble, and choose text suggestions. See below
for more details.

For the time being, this new PUICQuickboardController doesn't provide a way to render a custom header view
for us to show the domain name; to avoid introducing a security or privacy bug in the interim, guard this behind
a WebKit-exposed runtime-enabled setting that's off by default. We can remove this setting and instead just use
the HAVE(QUICKBOARD_CONTROLLER) build-time flag once support for the custom header view is complete.

  • Platform/spi/watchos/PepperUICoreSPI.h:

Include a couple of new headers if HAVE(QUICKBOARD_CONTROLLER) is set.

  • UIProcess/ios/WKContentViewInteraction.h:

Add a _presentedQuickboardController instance variable if HAVE(QUICKBOARD_CONTROLLER) is set.

  • UIProcess/ios/WKContentViewInteraction.mm:

Add protocol conformance to PUICQuickboardControllerDelegate.

(-[WKContentView _updateInteractionTintColor:]):
(-[WKContentView tintColorDidChange]):

Refactor this to take UITextInputTraits, instead of using _traits.

(-[WKContentView textInputTraits]):
(-[WKContentView _updateTextInputTraits:]):

Refactor this to modify the given set of text input traits given current focused element information state,
rather than operating on the _traits instance variable. This refactoring allows us to share logic when setting
up text input traits on both iOS and watchOS; in the former case, we're setting up a set of cached _traits on
the content view, but in the latter case, we're modifying a newly created PUICTextInputContext that we'll then
set on the PUICQuickboardController.

(-[WKContentView _createQuickboardController:]):

Add a helper method to create and return a new PUICQuickboardController that's suitable for the current
focused element's state.

(-[WKContentView presentViewControllerForCurrentFocusedElement]):

Present the view controller for the focused element, by either using a custom WebKit-owned
PUICQuickboardListViewController subclass, or by using a new PUICQuickboardController with a custom text
input context. Note that in the latter case, we may not be able to invoke the UI delegate hook
-_webView:didPresentFocusedElementViewController:, since the presenting view controller's transition
coordinator may not have been created yet in the scenario where we're spinning up the Quickboard view service
for the first time, since the call to establish the XPC connection is asynchronous in PepperUICore, and we don't
attempt to present the remote view controller until the connection is established. This makes it so that we
can't rely on the -didPresentFocusedElementViewController: hook in WebKitTestRunner to know when a
PUICQuickboardController has finished presenting.

To work around this, we teach the test harness to override -presentViewController:animated:completion: and
call into the test runner's WKWebView subclass when a remote quickboard controller is done presenting. In the
longer term, we will require SPI from PepperUICore to present a PUICQuickboardController with a completion
block.

(-[WKContentView _isPresentingFullScreenInputView]):

A "full screen input view" for the focused element is now present if either _presentedQuickboardController is
set, or _presentedFullScreenInputViewController is set.

(-[WKContentView dismissAllInputViewControllers:]):

Dismiss either the currently presented _presentedQuickboardController or
_presentedFullScreenInputViewController, and invoke the UI delegate method
-_webView:didDismissFocusedElementViewController: when finished.

(-[WKContentView quickboardController:textInputValueDidChange:]):
(-[WKContentView quickboardControllerTextInputValueCancelled:]):
(-[WKContentView dismissQuickboardViewControllerAndRevealFocusedFormOverlayIfNecessary:]):
(-[WKContentView textContentTypeForQuickboard]):

Refactor -_updateTextInputTraits: to call a helper method (-textContentTypeForQuickboard) on watchOS to
convert the current focused element information to a UITextContentType.

(-[WKContentView textContentTypeForListViewController:]):
(-[WKContentView _simulateTextEntered:]):
(-[WKContentView textContentTypeForTesting]):
(-[WKContentView formInputLabel]):

Update a few internal testing hooks to handle the case where we have a _presentedQuickboardController instead
of a _presentedFullScreenInputViewController.

(-[WKContentView _updateInteractionTintColor]): Deleted.

  • UIProcess/ios/forms/WKTextInputListViewController.mm:

(-[WKTextInputListViewController additionalTrayButtons]): Suppress a deprecation warning.

Source/WTF:

Add a new internal setting. See other ChangeLogs for more detail.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Make some small tweaks to WebKitTestRunner in support of using PUICQuickboardController for text input.

  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:

Adjust the test harness on watchOS to link against PepperUICore, so that we can reference the
PUICQuickboardViewController and PUICQuickboardRemoteViewController classes below.

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(isQuickboardViewController):
(-[TestRunnerWKWebView _didPresentViewController:]):

Override -presentViewController:animated:completion: on the view controller below, and call this new method
on the TestRunnerWKWebView when a view controller is finished presenting. We need to do this to ensure that
the input view presentation callbacks continue to work after adopting PUICQuickboardController; see WebKit
ChangeLog for more details.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(-[PlatformWebViewController presentViewController:animated:completion:]):

LayoutTests:

Enable QuickboardControllerForTextInputEnabled, on relevant versions of watchOS.

  • fast/forms/watchos/delete-content-in-text-field.html:
  • fast/forms/watchos/edit-text-field-calls-injected-bundle.html:
  • fast/forms/watchos/form-control-label-text.html:
  • fast/forms/watchos/time-picker-value-change.html:
  • fast/forms/watchos/username-text-content-type.html:
9:06 AM Changeset in webkit [272658] by mmaxfield@apple.com
  • 1 edit in trunk/Source/WebKit/ChangeLog

Replace ChangeLog entry I accidentally deleted in r272657

Unreviewed.

8:59 AM Changeset in webkit [272657] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebKit

Revert r272586 because we're not ready yet

We're still trying to figure out the right way to trigger this behavior.

Unreviewed.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
  • WebProcess/com.apple.WebProcess.sb.in:
8:53 AM Changeset in webkit [272656] by commit-queue@webkit.org
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/css convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221511
<rdar://problem/74049585>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-10
Reviewed by Jonathan Bedard.

  • http/tests/css/font-face-src-loading.html:
  • http/tests/css/link-css-disabled-value-with-slow-loading-sheet-in-error.html:
  • http/tests/css/resources/500.php: Removed.
  • http/tests/css/resources/500.py: Added.
  • http/tests/css/resources/webfont-request.php: Removed.
  • http/tests/css/resources/webfont-request.py: Added.

(getRequestCount):
(setRequestCount):

8:18 AM Changeset in webkit [272655] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Add build-step to run build.webkit.org new unit-tests
https://bugs.webkit.org/show_bug.cgi?id=219454

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunBuildWebKitOrgOldUnitTests): Renamed.
(RunBuildWebKitOrgUnitTests): Build step to run build.webkit.org new unit-tests.

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
  • CISupport/ews-build/factories.py:

(ServicesFactory.init): Added the new build-step, also change the step order slightly.

  • CISupport/ews-build/factories_unittest.py:
7:58 AM Changeset in webkit [272654] by Brent Fulgham
  • 5 edits
    1 add in trunk

Create stub methods to support finer-grained control over loading
https://bugs.webkit.org/show_bug.cgi?id=221430
<rdar://problem/73999547>

Reviewed by Geoffrey Garen.

Source/WebKit:

Create three new WebKit Cocoa methods that accept NSURLRequest, rather than URL. This allows
us to pass additional hints to the networking subsystem.

Tested with new API Tests.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadSimulatedRequest:withResponse:responseData:]):
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):
(-[WKWebView loadFileRequest:allowingReadAccessToURL:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm: Added.

(TEST):

7:46 AM Changeset in webkit [272653] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

Add missing header include.

  • platform/gamepad/mac/GenericHIDGamepad.cpp:
7:44 AM Changeset in webkit [272652] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r263255): Text styles without an explicit language tag do not honor the system language
https://bugs.webkit.org/show_bug.cgi?id=221598
<rdar://problem/69194294>

Reviewed by Zalan Bujtas.

Source/WebCore:

The distinction between NULL and CFSTR("") strikes again!

Test: fast/text/international/system-language/jp-circled.html

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):

LayoutTests:

  • fast/text/international/system-language/jp-circled-expected-mismatch.html: Added.
  • fast/text/international/system-language/jp-circled.html: Added.
7:19 AM Changeset in webkit [272651] by Manuel Rego Casasnovas
  • 5 edits
    3 adds in trunk/LayoutTests

Add support for modifier keys in test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221465

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Allow to send modifier keys combinations, like "Ctrl + y" through test_driver.send_keys().

  • web-platform-tests/resources/testdriver-vendor.js:

(convertSeleniumKeyCode):
(window.test_driver_internal.send_keys):

  • web-platform-tests/uievents/keyboard/modifier-keys-combinations-expected.txt: Added.
  • web-platform-tests/uievents/keyboard/modifier-keys-combinations.html: Added.

LayoutTests:

Add specific -expected.txt file for Mac platform. Meta key is detected differently than in other platforms.

  • platform/ios/TestExpectations: Skip test as it's timing out on iOS.
  • platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-combinations-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Update expectations as it nows mostly passes.
7:04 AM Changeset in webkit [272650] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Gardening TestResources failures after r272636

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
6:59 AM Changeset in webkit [272649] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Pass in sane content width values to InlineContentBreaker
https://bugs.webkit.org/show_bug.cgi?id=221628
Source/WebCore:

rdar://problem/73874164

Reviewed by Antti Koivisto.

Insanely large zoom value could produce Nan letter-spacing values.
Let's tighten the inline content width values so that InlineContentBreaker can always expect valid InlineLayoutUnit values.

Test: fast/text/letter-spacing-produces-nan-width.html

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::ContinuousContent::append):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

LayoutTests:

Reviewed by Antti Koivisto.

  • fast/text/letter-spacing-produces-nan-width-expected.txt: Added.
  • fast/text/letter-spacing-produces-nan-width.html: Added.
6:49 AM Changeset in webkit [272648] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add inline box vertical border/padding to enclosing top and bottom
https://bugs.webkit.org/show_bug.cgi?id=221647

Reviewed by Antti Koivisto.

While inline boxes (<span>) don't stretch the line box vertically with their paddings and borders,
we need those boxes to be included in the enclosing top/bottom geometries.
This is also in preparation for supporting inline box overflow scroll.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.cpp:
6:37 AM Changeset in webkit [272647] by weinig@apple.com
  • 4 edits in trunk/Source/WebKit

Workaround some order dependent issues by parenting remote layers before applying other properties
https://bugs.webkit.org/show_bug.cgi?id=221585

Reviewed by Simon Fraser.

This runs the updateChildren (renamed to applyHierarchyUpdates for consistency) part of
the RemoteLayerTreePropertyApplier for all the transaction changes prior to running the
rest of applyProperties to work around some downstream bugs that currently require parented
layers to work. This likely won't be required forever, but it should be harmless to do.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
(WebKit::RemoteLayerTreePropertyApplier::updateChildren): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):

4:43 AM Changeset in webkit [272646] by calvaris@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Carlos Garcia Campos.

  • platform/audio/AudioSourceProviderClient.h: Turned into

CanMakeWeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned

m_client into WeakPtr.

4:04 AM Changeset in webkit [272645] by commit-queue@webkit.org
  • 15 edits in trunk

RemoteGraphicsContextGLProxy should support losing the context and should lose the context on timeouts
https://bugs.webkit.org/show_bug.cgi?id=221396

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-10
Reviewed by Simon Fraser.

Source/WebKit:

Implement support for RemoteGraphicsContextGLProxy acting on
losing the context in RemoteGraphicsContextGL.

Implement support for RemoteGraphicsContextGLProxy timing out on message
sends. Force the context to be lost.

Implement support for GPUProcessConnection disconnect. Force the context
be lost.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

Send a bool via WasCreated method, so that the
receiver knows if creation was successful or not.
Currently the creation always succeeds.

Previously it was designed to use wasLost instead,
but this has the problem that the client will wait
for WasCreated in particular cases to ensure initialization,
and thus we cannot wait for "WasCreated OR WasLost".

(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):

Manually implement few methods that contain custom client-side
logic wrt. lost context.

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(setFailNextGPUStatusCheck):
(getBooleanv):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

Skip the RemoteGraphicsContextGLProxy messages that do not have
a receiver. This is expected, as we cannot assume that only expected
messages arrive to the message hander.

The client, i.e. the web process, might

  • just delete the proxy
  • force the context to be lost
  • notice a timeout and force the context to be lost

while the GPU process cannot know this. RemoteGraphicsContextGL might
already have sent messages to the Proxy.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::~RemoteGraphicsContextGLProxy):

Listen to GPUProcessConnection::Client notifications about
connection closure. When the connection closes, mark the context object
lost.

Store the reference to GPUProcessConnection so that when the connection
is shut down and new one is instantiated, RemoteGraphicsContextGLProxy
destruction logic will correctly refer to the one it was using.

(WebKit::RemoteGraphicsContextGLProxy::reshape):
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):
(WebKit::RemoteGraphicsContextGLProxy::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGLProxy::notifyMarkContextChanged):
(WebKit::RemoteGraphicsContextGLProxy::synthesizeGLError):
(WebKit::RemoteGraphicsContextGLProxy::getError):
(WebKit::RemoteGraphicsContextGLProxy::wasCreated):
(WebKit::RemoteGraphicsContextGLProxy::wasLost):

When the context lost event happens, disconnect with
the GPUProcessConnection.

(WebKit::RemoteGraphicsContextGLProxy::wasChanged):
(WebKit::RemoteGraphicsContextGLProxy::markContextLost):
(WebKit::RemoteGraphicsContextGLProxy::waitUntilInitialized):
(WebKit::RemoteGraphicsContextGLProxy::gpuProcessConnectionDidClose):

When the connection closes, mark the context object
lost.

(WebKit::RemoteGraphicsContextGLProxy::disconnect):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

Changes generated by the code-generator wrt handling timeouts from the sends.

Tools:

Generate calls to lose the context on timeouts.

Generate the send calls as calls to the helper functions to send the
messages. The helper functions will provide the non-changing arguments.

Move few messages to be implemented by hand.

  • Scripts/generate-gpup-webgl:

LayoutTests:

Fix the lose-context-on-status-failure.html. The test was using
an internal function to lose the context and then synchronously
checking that the context was lost. With GPU process this is not
possible, so check after normal Canvas webglcontextlost event.

Enable the test for --use-gpu-process.

  • fast/canvas/webgl/lose-context-on-status-failure.html:
  • gpu-process/TestExpectations:
3:29 AM Changeset in webkit [272644] by svillar@igalia.com
  • 59 edits
    15 copies
    46 moves
    592 adds
    1 delete in trunk/LayoutTests

[css-flexbox] Import & update latest WPT flexbox tests
https://bugs.webkit.org/show_bug.cgi?id=221484

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-ltr-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-ltr-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-ltr-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-descendent-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-descendent-001-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/abspos-descendent-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-descendent-001.html.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-005.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-007.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-safe-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-safe-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-justify-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-justify-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-self-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-self-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001a.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001b.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_absolute-atomic-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_absolute-atomic-expected.html.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_absolute-atomic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_absolute-atomic.html.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_inline-abspos-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_inline-abspos-expected.html.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_inline-abspos.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_inline-abspos.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-001-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-001.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-002-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-002.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-003-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-003.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-004-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-004.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-005-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-005-expected.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-005.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-006-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-006-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-006.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-007-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-007.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-008-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-008-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-008.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-009-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-009-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-009.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-010-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-010-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-010.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-011-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-011-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-011.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-011.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-013.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-014.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-015-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-015.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/w3c-import.log: Added.
  • web-platform-tests/css/css-flexbox/align-baseline-expected.html:
  • web-platform-tests/css/css-flexbox/align-content-horiz-001a-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001a.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001b-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001b.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001a-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001a.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001b-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001b.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-wmvert-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-wmvert-001.html: Added.
  • web-platform-tests/css/css-flexbox/align-content_center-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_flex-start-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_space-around-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_space-between-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_stretch-expected.html:
  • web-platform-tests/css/css-flexbox/align-items-007.html:
  • web-platform-tests/css/css-flexbox/align-self-015-expected.html:
  • web-platform-tests/css/css-flexbox/auto-margins-003-expected.html:
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-001-print-expected.html: Added.
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-001-print.html: Added.
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-002-print-expected.html: Added.
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-002-print.html: Added.
  • web-platform-tests/css/css-flexbox/canvas-dynamic-change-001.html:
  • web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash.html: Added.
  • web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-reverse.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-reverse.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row.html:
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change-expected.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change-nested-expected.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change-nested.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-grid-flex-abspos-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/dynamic-grid-flex-abspos.html: Added.
  • web-platform-tests/css/css-flexbox/fieldset-as-item-overflow-expected.html: Added.
  • web-platform-tests/css/css-flexbox/fieldset-as-item-overflow.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-018-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-018.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-001.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-002.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-contains-size-layout-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/flex-item-contains-size-layout-001.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-vertical-align-expected.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-005.xht:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-007.xht:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-013.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-025-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-025.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-026-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-026.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-027-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-027.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-028-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-028.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-029-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-029.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-030-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-030.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-size-003-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-size-003.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-005.xht:
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-015-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-015.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-016-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-016.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-items-center-nested-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-items-center-nested-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-anonymous-items-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-anonymous-items-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-baseline-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-006.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-dyn-resize-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-dyn-resize-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-006-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-006.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-006-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-006.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-reverse-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-reverse.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-reverse-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-reverse.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-reverse-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-reverse.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002c-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002c.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002c-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002c.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-1-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-1.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-2-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-2.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-3-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-3.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-table-fixup-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-table-fixup-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-006.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-007.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-008.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-009-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-009.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-010-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-010.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-011-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-011.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-012-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-012.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-013-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-013.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-014-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-014.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-015-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-015.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-016-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-016.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-2-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-2.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline.html:
  • web-platform-tests/css/css-flexbox/flexible-order-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/Flexible-order-expected.html.
  • web-platform-tests/css/css-flexbox/flexible-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/Flexible-order.html.
  • web-platform-tests/css/css-flexbox/gap-006-lr-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-lr.html:
  • web-platform-tests/css/css-flexbox/gap-006-ltr-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-ltr.html:
  • web-platform-tests/css/css-flexbox/gap-006-rl-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-rl.html:
  • web-platform-tests/css/css-flexbox/gap-006-rtl-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-rtl.html:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-basis-0percent-expected.txt:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-basis-0percent.html:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number-expected.txt:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html:
  • web-platform-tests/css/css-flexbox/grid-flex-item-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/grid-flex-item-005.html: Added.
  • web-platform-tests/css/css-flexbox/grid-flex-item-006-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/grid-flex-item-006.html: Added.
  • web-platform-tests/css/css-flexbox/height-percentage-with-dynamic-container-size-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/height-percentage-with-dynamic-container-size.html: Added.
  • web-platform-tests/css/css-flexbox/justify-content-006-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/justify-content-006.html: Added.
  • web-platform-tests/css/css-flexbox/ortho-table-item-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/ortho-table-item-001.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-max-height-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-max-height-002.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-max-height-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/percentage-max-height-003.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-size-quirks-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/percentage-size-quirks-002.html: Added.
  • web-platform-tests/css/css-flexbox/position-absolute-scrollbar-freeze-expected.html: Added.
  • web-platform-tests/css/css-flexbox/position-absolute-scrollbar-freeze.html: Added.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-002.html: Added.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-003.html: Added.
  • web-platform-tests/css/css-flexbox/quirks-auto-block-size-with-percentage-item.html:
  • web-platform-tests/css/css-flexbox/scrollbars-auto-min-content-sizing-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-auto-min-content-sizing.html: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-no-margin-expected.html: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-no-margin.html: Added.
  • web-platform-tests/css/css-flexbox/stretch-input-in-column-expected.html:
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-004.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-005-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-005.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-006-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-006.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-2-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-2.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width.html:
  • web-platform-tests/css/css-flexbox/table-as-item-flex-cross-size-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-flex-cross-size.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-percent-width-cell-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-percent-width-cell-001.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-width-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-width.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size.html: Added.
  • web-platform-tests/css/css-flexbox/table-item-flex-percentage-width-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-item-flex-percentage-width.html: Added.
  • web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Sync'ed our local copy to latest upstream data.

  • TestExpectations: Added new failing tests with bugs.
  • platform/glib/TestExpectations: Removed a couple of tests that are working fine after import.
  • platform/ios/TestExpectations: Added new failing tests with bugs.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012-expected.txt.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-compressible-001-expected.txt: Added.
  • platform/mac-catalina-wk1/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • platform/mac/TestExpectations: Added new failing tests with bugs.
2:18 AM Changeset in webkit [272643] by Philippe Normand
  • 8 edits
    2 adds in trunk

[WPE] Optionally build Cog as external project and replacement for MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=221518

Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsWPE.cmake: New variable for JSC forwarded headers path, useful

uninstalled builds of projects depending on JSC.

Source/WebKit:

  • PlatformWPE.cmake: Produce uninstalled pkg-config files for wpe-webkit and web-extension

libraries. Also populate the JSC ForwardedHeaders path during the build.

  • wpe/wpe-web-extension-uninstalled.pc.in: Added.
  • wpe/wpe-webkit-uninstalled.pc.in: Added.

Tools:

By passing -DENABLE_COG=ON during the WPE build, the Cog browser is now built as an
external project. The repository is cloned in Tools/wpe/cog and the code can be edited
there.

The run-minibrowser --wpe script will now first try to execute cog and fallback to
MiniBrowser if it wasn't found. Cog is also a MiniBrowser, but with some additional
features, see https://github.com/Igalia/cog for more informations.

  • PlatformWPE.cmake: Configure Cog as an external project in developer builds.
  • Scripts/webkitpy/port/wpe.py:

(WPEPort.run_minibrowser): First check for cog, fallback to MiniBrowser if not found.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Set pkg-config path to lookup libraries in the WebKit's
build directory as well.

1:42 AM Changeset in webkit [272642] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Some privateClickMeasurement might output the information in different order depending on platform
https://bugs.webkit.org/show_bug.cgi?id=221406

Reviewed by Michael Catanzaro.

The script conversionReport.php iterates the HTTP headers to show the information, but header's order can be
different for different platforms. We could just check every value we want to show to make sure we always
provide them in the same order.

  • http/tests/privateClickMeasurement/resources/conversionReport.php:
1:41 AM Changeset in webkit [272641] by Carlos Garcia Campos
  • 10 edits in trunk/Source

[SOUP] Simplify ResourceRequest and ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=221543

Reviewed by Adrian Perez de Castro.

Source/WebCore:

There's unused code there and it can be refactored.

  • ResourceRequest:
    • Remove unused member m_soupFlags.
    • Remove updateSoupMessage() that is always called after a SoupMessage has been created and add createSoupMessage() to return a new SoupMessage.
    • Set the message priority in the createSoupMessage() too.
    • Remove updateFromSoupMessage() that is curently used only by WebSockets to update the request headers after the request is sent to include cookies and other headers set by libsoup. We can simply use updateFromSoupMessageHeaders() for that case instead.
  • ResourceResponse:
    • Remove unused member m_soupFlags.
    • Remove updateFromSoupMessage() that is always used with a newly created ResourceResponse and use the ResourceResponse constructor that receives a SoupMessage instead.
    • Sniffed content type is now received as an optional parameter of the ResourceResponse constructor that receives a SoupMessage, and used to set the MIME type and text encoding.
    • Remove unused certificate info getters and the encode/decode methods that are no longer needed.
  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::encodeWithPlatformData const):
(WebCore::ResourceRequest::decodeWithPlatformData):

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::toSoupMessagePriority):
(WebCore::ResourceRequest::createSoupMessage const):

  • platform/network/soup/ResourceResponse.h:

(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::soupMessageCertificate const):
(WebCore::ResourceResponse::soupMessageTLSErrors const):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::updateSoupMessageHeaders const):
(WebCore::ResourceResponse::updateFromSoupMessageHeaders):

Source/WebKit:

Use new ResourceRequest and ResourceResponse API.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Use ResourceRequest::createSoupMessage().
(WebKit::NetworkDataTaskSoup::didSendRequest): Use ResourceResponse passing the SoupMessage and sniffed content type.
(WebKit::NetworkDataTaskSoup::didRequestNextPart): Create a ResourceResponse passing the url, content type,
expected length and text encoding. Then call ResourceResponse::updateFromSoupMessageHeaders() to set the headers.

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::createWebSocketTask): Use ResourceRequest::createSoupMessage() and pass the
ResourceRequest to WebSocketTask constructor.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::WebSocketTask): Save the ResourceRequest and then just call
ResourceRequest::updateFromSoupMessageHeaders() to update the headers after the response has been sent by libsoup.
(WebKit::WebSocketTask::didConnect): Use ResourceResponse constructor with the SoupMessage directly.
(WebKit::WebSocketTask::didFail): Ditto.

  • NetworkProcess/soup/WebSocketTaskSoup.h:
1:13 AM Changeset in webkit [272640] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Do not schedule update on embed creation
https://bugs.webkit.org/show_bug.cgi?id=221375

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

Source/WebCore:

Do not schedule update on embed creation.

Test: plugins/embed-creation-crash.html

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::create):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::create):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::finishCreating): Deleted.

  • html/HTMLPlugInImageElement.h:

LayoutTests:

Add test for this.

  • plugins/embed-creation-crash-expected.txt: Added.
  • plugins/embed-creation-crash.html: Added.
12:53 AM Changeset in webkit [272639] by Lauro Moura
  • 2 edits
    1 add in trunk/LayoutTests

[ATK] Support focusable-inside-hidden test
https://bugs.webkit.org/show_bug.cgi?id=221646

Reviewed by Chris Fleizach.

ATK uses a different field for the description. (See r201216 and
r201072).

  • accessibility/focusable-inside-hidden.html: Add check for ATK.
  • platform/glib/accessibility/focusable-inside-hidden-expected.txt: Added.

Feb 9, 2021:

9:46 PM Changeset in webkit [272638] by ysuzuki@apple.com
  • 9 edits
    3 adds in trunk

[JSC] C++ iteration should support fast iterator protocol
https://bugs.webkit.org/show_bug.cgi?id=221526

Reviewed by Alexey Shvayka.

JSTests:

  • microbenchmarks/map-constructor.js: Added.

(test):

  • stress/map-constructor-hole-throw.js: Added.

(shouldBe):
(shouldThrow):
(values.proto.return):
(Map.prototype):

Source/JavaScriptCore:

This patch adds fast iteration protocol support in C++ iteration (forEachIterable).
In JS, we have op_iterator_open / op_iterator_next to iterate array quickly.
But we do not use this feature in C++ forEachIterable. In this patch we integrate
the same (or a bit more efficient since we can avoid creating JSArrayIterator) mechanism
so that iteration in C++ gets faster for normal arrays.

We observed 1.9x faster in Map creation with arrays.

ToT Patched

map-constructor 35.7446+-0.2354 18.7516+-0.4534 definitely 1.9062x faster

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::iteratorEntries):

  • runtime/CommonSlowPaths.cpp:

(JSC::iteratorOpenTryFastImpl):

  • runtime/IteratorOperations.cpp:

(JSC::iteratorClose):
(JSC::prepareForFastArrayIteration):

  • runtime/IteratorOperations.h:

(JSC::forEachInIterable):

  • runtime/JSArrayIterator.h:
9:22 PM Changeset in webkit [272637] by achristensen@apple.com
  • 9 edits in trunk/Source/WebKit

Use CompletionHandler instead of ApplicationManifestCallback
https://bugs.webkit.org/show_bug.cgi?id=221627

Reviewed by Chris Dumez.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetApplicationManifest_b):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getApplicationManifestWithCompletionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getApplicationManifest):
(WebKit::WebPageProxy::applicationManifestCallback): Deleted.

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

(WebKit::WebPage::getApplicationManifest):
(WebKit::WebPage::didFinishLoadingApplicationManifest):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:21 PM Changeset in webkit [272636] by achristensen@apple.com
  • 15 edits in trunk/Source/WebKit

Use CompletionHandler instead of DataCallback
https://bugs.webkit.org/show_bug.cgi?id=221639

Reviewed by Chris Dumez.

  • UIProcess/API/C/WKFrame.cpp:

(WKFrameGetMainResourceData):
(WKFrameGetResourceData):
(WKFrameGetWebArchive):

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetSelectionAsWebArchiveData):
(WKPageDrawPagesToPDF):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::getWebArchive):
(WebKit::WebFrameProxy::getMainResourceData):
(WebKit::WebFrameProxy::getResourceData):

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

(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::getContentsAsMHTMLData):
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::dataCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::drawPagesToPDF):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
8:35 PM Changeset in webkit [272635] by achristensen@apple.com
  • 10 edits in trunk/Source/WebKit

Use CompletionHandler instead of PrintFinishedCallback
https://bugs.webkit.org/show_bug.cgi?id=221643

Reviewed by Chris Dumez.

  • UIProcess/API/gtk/WebKitPrintOperation.cpp:

(webkitPrintOperationPrintPagesForFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::printFinishedCallback): Deleted.

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

(WebKit::WebPage::drawPagesForPrinting):
(WebKit::WebPage::didFinishPrintOperation): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::printDone):

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
7:43 PM Changeset in webkit [272634] by Lauro Moura
  • 4 edits
    2 moves
    2 deletes in trunk/LayoutTests

[GLIB] Rebaseline table tests after r272100 and garden some a11 failures.

Unreviewed test gardening.

  • platform/glib/TestExpectations:

Updates after r272100.

  • platform/glib/fast/table/005-expected.txt: Renamed from LayoutTests/platform/gtk/fast/table/005-expected.txt.
  • platform/glib/tables/mozilla/bugs/bug1224-expected.txt: Renamed from LayoutTests/platform/gtk/tables/mozilla/bugs/bug1224-expected.txt.
  • platform/wpe/fast/table/005-expected.txt: Removed.
  • platform/wpe/tables/mozilla/bugs/bug1224-expected.txt: Removed.
  • platform/wpe/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/wpe/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
7:30 PM Changeset in webkit [272633] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION: (r272458): [BigSur Debug] ASSERTION FAILED: m_haveAddedMediaUsageManagerSession in WebCore::MediaElementSession::updateMediaUsageIfChanged()
https://bugs.webkit.org/show_bug.cgi?id=221634
<rdar://problem/74161017>

Reviewed by Ryosuke Niwa.

No new tests, this fixes an assertion in an existing test.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::addMediaUsageManagerSessionIfNecessary):
(WebCore::MediaElementSession::inActiveDocumentChanged):
(WebCore::MediaElementSession::updateMediaUsageIfChanged):
(WebCore::MediaElementSession::addedMediaUsageManagerSessionIfNecessary): Deleted.

  • html/MediaElementSession.h:
7:24 PM Changeset in webkit [272632] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

[GTK] Export additional methods of SourceBufferPrivate to support hidden visibility
https://bugs.webkit.org/show_bug.cgi?id=221625

Reviewed by Michael Catanzaro.

Add additional WEBCORE_EXPORTs to SourceBufferPrivate that were found when linking GTK with
hidden visibility turned on.

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::removeCodedFrames):

6:24 PM Changeset in webkit [272631] by Devin Rousso
  • 3 edits in trunk/Source/WebKit

Unreviewed, build fix after r272630

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:
6:06 PM Changeset in webkit [272630] by Devin Rousso
  • 33 edits
    2 copies
    18 moves
    13 adds in trunk

[iOS] Add support for the language/subtitle tracks button using UIMenu
https://bugs.webkit.org/show_bug.cgi?id=221594
<rdar://problem/74129129>

Reviewed by Eric Carlson and Wenson Hsieh.

Source/WebCore:

Tests: media/modern-media-controls/tracks-support/ios/tracks-support-auto-text-track.html

media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu.html
media/modern-media-controls/tracks-support/ios/tracks-support-hidden-tracks.html
media/modern-media-controls/tracks-support/ios/tracks-support-off-text-track.html
media/modern-media-controls/tracks-support/ios/tracks-support-show-contextmenu-then-double-click-on-tracks-button.html
media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api.html
media/modern-media-controls/tracks-support/mac/tracks-support-auto-text-track.html
media/modern-media-controls/tracks-support/mac/tracks-support-click-track-in-panel.html
media/modern-media-controls/tracks-support/mac/tracks-support-hidden-tracks.html
media/modern-media-controls/tracks-support/mac/tracks-support-off-text-track.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-and-populate-panel.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-after-dragging-controls.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-then-double-click-on-tracks-button.html
media/modern-media-controls/tracks-support/mac/tracks-support-text-track-selected-via-media-api.html

  • page/MediaControlsContextMenuItem.h: Added.

(WebCore::MediaControlsContextMenuItem::encode const):
(WebCore::MediaControlsContextMenuItem::decode):
Simple POD object for sending data from the WebProcess to the UIProcess for the UIMenu.

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.buttonWasPressed):
(TracksSupport.prototype.syncControl):

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu): Added.

  • page/ChromeClient.h:

(WebCore::ChromeClient::showMediaControlsContextMenu):
Provide a host hook for generating and sending the UIMenu data. When a UIAction is
selected or the menu is dismissed, the relevant MediaControlsContextMenuItem::ID is sent
back as the response to the async message and is used to perform the action related to the
type of the object (e.g. AudioTrack, TextTrack, etc.) that was previously associated
with that MediaControlsContextMenuItem::ID.

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

(WebCore::textTrackSubtitlesText): Deleted.
Add localizable strings for "Languages" and "Subtitles" headers/submenus.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::showMediaControlsContextMenu): Added.

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

(WebKit::WebPage::showMediaControlsContextMenu): Added.

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

(WebKit::WebPageProxy::showMediaControlsContextMenu): Added.
Send the given MediaControlsContextMenuItems to the UIProcess for the UIMenu.

  • UIProcess/PageClient.h:

(WebKit::PageClient::showMediaControlsContextMenu): Added.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::showMediaControlsContextMenu): Added.

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

(-[WKContentView actionSheetAssistantDidShowContextMenu:]): Added.
(-[WKContentView actionSheetAssistantDidDismissContextMenu:]): Added.
(-[WKContentView _showMediaControlsContextMenu:items:completionHandler:]): Added.
(-[WKContentView _contentsOfUserInterfaceItem:]):
Pass the given MediaControlsContextMenuItems to the WKActionSheetAssistant.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant dealloc]):
(-[WKActionSheetAssistant _removeContextMenuInteractions]): Added.
(-[WKActionSheetAssistant _ensureDataDetectorContextMenuInteraction]): Added.
(-[WKActionSheetAssistant _ensureMediaControlsContextMenuInteraction]): Added.
(-[WKActionSheetAssistant hasContextMenuInteraction]):
(-[WKActionSheetAssistant showDataDetectorsUIForPositionInformation:]):
(-[WKActionSheetAssistant _uiMenuElementsForMediaControlContextMenuItems:]): Added.
(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]): Added.
(-[WKActionSheetAssistant contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKActionSheetAssistant contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):
(-[WKActionSheetAssistant contextMenuInteraction:willDisplayMenuForConfiguration:animator:]): Added.
(-[WKActionSheetAssistant contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKActionSheetAssistant _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]):
(-[WKActionSheetAssistant _contentsOfContextMenuItem:]): Added.
(-[WKActionSheetAssistant currentlyAvailableActionTitles]): Added.
(-[WKActionSheetAssistant currentlyAvailableMediaControlsContextMenuItems]): Added.
(-[WKActionSheetAssistant currentAvailableActionTitles]): Deleted.
(-[WKActionSheetAssistant removeContextMenuInteraction]): Deleted.
(-[WKActionSheetAssistant ensureContextMenuInteraction]): Deleted.
Instead of assuming that the only UIContextMenuInteraction is for data detectors, check
the given interaction to see if it's the data detector interaction before doing any work.
This allows the media controls UIContextMenuInteraction to exist side-by-side and use the
WKActionSheetAssistant as its delegate too (especially since it's not possible for both
contextmenus to be active at the same time). Present the media controls contextmenu without
a preview (it uses an empty UIView for proper sizing) at the location provided. Selecting
a UIAction will send the MediaControlsContextMenuItem::ID back to the WebProcess.
Also add support for

  • UIScriptController.prototype.contentsOfUserInterfaceItem
  • UIScriptController.prototype.didShowContextMenuCallback
  • UIScriptController.prototype.didDismissContextMenuCallback

for usage in the added LayoutTests/media/modern-media-controls/tracks-support/ios/ tests.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Create a MediaControlsContextMenusEnabled setting for guarding an IDL hook to WK2 only.

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::rectForMenuAction const):
In addition to looking at the active UICalloutBar (if it exists), walk the view hierarchy
looking for any UILabel that contains the given text and use that as the rect to tap.
While this isn't the most confident/consistent approach, UIKit doesn't have anything like
UICalloutBar for contextmenu interactions, and this is only used inside WKTR (which has no
other UI outside than the page), so it's expected that callers know what they're doing.

LayoutTests:

  • media/modern-media-controls/resources/media-controls-utils.js:

(getTracksContextMenu): Added.

  • media/modern-media-controls/tracks-support/ios/tracks-support-auto-text-track.html: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-auto-text-track-expected.txt: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu.html: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu-expected.txt: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-hidden-tracks.html: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-hidden-tracks-expected.txt: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-off-text-track.html: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-off-text-track-expected.txt: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-show-contextmenu-then-double-click-on-tracks-button.html: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-show-contextmenu-then-double-click-on-tracks-button-expected.txt: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api.html: Added.
  • media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api-expected.txt: Added.

Duplicate existing TracksSupport tests to test for similar results but using the new iOS path.

  • media/modern-media-controls/tracks-support/mac/tracks-support-auto-text-track.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-auto-text-track.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-auto-text-track-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-auto-text-track-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-click-track-in-panel.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-click-track-in-panel-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-hidden-tracks.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-hidden-tracks.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-hidden-tracks-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-hidden-tracks-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-off-text-track.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-off-text-track.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-off-text-track-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-off-text-track-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-and-populate-panel.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-and-populate-panel-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-after-dragging-controls.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-after-dragging-controls-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-then-double-click-on-tracks-button.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-then-double-click-on-tracks-button-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button-expected.txt.
  • media/modern-media-controls/tracks-support/mac/tracks-support-text-track-selected-via-media-api.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api.html.
  • media/modern-media-controls/tracks-support/mac/tracks-support-text-track-selected-via-media-api-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api-expected.txt.
  • platform/mac/TestExpectations:

Moved existing TracksSupport tests to a mac subfolder so they can be skipped on iOS.

5:52 PM Changeset in webkit [272629] by Chris Dumez
  • 18 edits
    2 adds in trunk/Source/WebKit

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

5:29 PM Changeset in webkit [272628] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKit

Use CompletionHandler instead of ImageCallback
https://bugs.webkit.org/show_bug.cgi?id=221626

Reviewed by Chris Dumez.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/API/Cocoa/_WKThumbnailView.mm:

(-[_WKThumbnailView requestSnapshot]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

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

(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::takeSnapshot):
(WebKit::WebPageProxy::imageCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPreview:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::takeSnapshot):
(WebKit::WebPage::drawRectToImage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
5:28 PM Changeset in webkit [272627] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKit

Use CompletionHandler instead of UnsignedCallback
https://bugs.webkit.org/show_bug.cgi?id=221631

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::characterIndexForPoint):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::replaceMatches):
(WebKit::WebPageProxy::characterIndexForPointAsync):
(WebKit::WebPageProxy::unsignedCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView beginSelectionInDirection:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient replaceMatches:withString:inSelectionOnly:resultCollector:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::replaceMatches):
(WebKit::WebPage::characterIndexForPointAsync):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::beginSelectionInDirection):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPage::updateSelectionWithExtentPoint):

5:19 PM Changeset in webkit [272626] by Andres Gonzalez
  • 7 edits in trunk

Descendants of row and column headers should expose the aria-sort attribute.
https://bugs.webkit.org/show_bug.cgi?id=221590

Reviewed by Chris Fleizach.

Source/WebCore:

Tests:
accessibility/aria-sort.html
accessibility/ios-simulator/aria-sort-ios.html

Walk up the accessibility hierarchy to check for an inherited aria-sort
attribute present in a row or column header ancestor.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::sortDirection const):

LayoutTests:

Expanded this test to include the case where the header contains a child
element that must also expose the aria-sort attribute inherited from its
parent.

  • accessibility/aria-sort-expected.txt:
  • accessibility/aria-sort.html:
  • accessibility/ios-simulator/aria-sort-ios-expected.txt:
  • accessibility/ios-simulator/aria-sort-ios.html:
5:18 PM Changeset in webkit [272625] by Peng Liu
  • 21 edits
    9 adds in trunk/Source

[GPUP] Run ImageDecoderAVFObjC in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221317

Reviewed by Jer Noble.

Source/WebCore:

Modify ImageDecoder and ImageDecoderAVFObjC classes in order to run ImageDecoderAVFObjC
in the GPU process.

  • Add install/reset factory methods to ImageDecoder class.
  • Add a struct FrameInfo.
  • Export some methods of ImageDecoderAVFObjC to WebKit.
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ImageDecoder.cpp:

(WebCore::platformRegisterFactories):
(WebCore::installedFactories):
(WebCore::ImageDecoder::installFactory):
(WebCore::ImageDecoder::resetFactories):
(WebCore::ImageDecoder::clearFactories):
(WebCore::ImageDecoder::create):
(WebCore::ImageDecoder::supportsMediaType):

  • platform/graphics/ImageDecoder.h:

(WebCore::ImageDecoder::FrameInfo::encode const):
(WebCore::ImageDecoder::FrameInfo::decode):

  • platform/graphics/ImageDecoderIdentifier.h: Added.
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:

(WebCore::ImageDecoderAVFObjC::hasTrack const):

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

(WebCore::ImageDecoderAVFObjC::frameInfos const):
(WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex):

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

(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
Update the attribute so that we can create an IOSurface from a decoded frame.

Source/WebKit:

This patch adds the support to run ImageDecoderAVFObjC in the GPU process when the
"GPU Process: Media" preference is on. The RemoteImageDecoderAVF running in the Web
process forwards video data to the RemoteImageDecoderAVFProxy running in the GPU process,
which parses the data and returns frame information ("hasAlpha" and "duration") to the
Web process. RemoteImageDecoderAVFProxy will generate (decode) frames (images) after
receiving requests from RemoteImageDecoderAVF. The decoded frames are transferred to
the Web process through IOSurfaces, and the frames will be cached in the Web process.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::imageDecoderAVFProxy):
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp: Added.

(WebKit::RemoteImageDecoderAVFProxy::RemoteImageDecoderAVFProxy):
(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::deleteDecoder):
(WebKit::RemoteImageDecoderAVFProxy::encodedDataStatusChanged):
(WebKit::RemoteImageDecoderAVFProxy::setExpectedContentSize):
(WebKit::RemoteImageDecoderAVFProxy::setData):
(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h: Added.
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in: Added.
  • Scripts/webkit/messages.py:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp: Added.

(WebKit::RemoteImageDecoderAVF::RemoteImageDecoderAVF):
(WebKit::RemoteImageDecoderAVF::~RemoteImageDecoderAVF):
(WebKit::RemoteImageDecoderAVF::gpuProcessConnection const):
(WebKit::RemoteImageDecoderAVF::canDecodeType):
(WebKit::RemoteImageDecoderAVF::supportsMediaType):
(WebKit::RemoteImageDecoderAVF::encodedDataStatus const):
(WebKit::RemoteImageDecoderAVF::setEncodedDataStatusChangeCallback):
(WebKit::RemoteImageDecoderAVF::size const):
(WebKit::RemoteImageDecoderAVF::frameCount const):
(WebKit::RemoteImageDecoderAVF::repetitionCount const):
(WebKit::RemoteImageDecoderAVF::uti const):
(WebKit::RemoteImageDecoderAVF::filenameExtension const):
(WebKit::RemoteImageDecoderAVF::frameSizeAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameIsCompleteAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameMetadataAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameDurationAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameHasAlphaAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameAllowSubsamplingAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameBytesAtIndex const):
(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
(WebKit::RemoteImageDecoderAVF::setExpectedContentSize):
(WebKit::RemoteImageDecoderAVF::setData):
(WebKit::RemoteImageDecoderAVF::clearFrameBufferCache):
(WebKit::RemoteImageDecoderAVF::encodedDataStatusChanged):

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

(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):
(WebKit::RemoteImageDecoderAVFManager::deleteRemoteImageDecoder):
(WebKit::RemoteImageDecoderAVFManager::RemoteImageDecoderAVFManager):
(WebKit::RemoteImageDecoderAVFManager::~RemoteImageDecoderAVFManager):
(WebKit::RemoteImageDecoderAVFManager::supplementName):
(WebKit::RemoteImageDecoderAVFManager::gpuProcessConnection const):
(WebKit::RemoteImageDecoderAVFManager::setUseGPUProcess):
(WebKit::RemoteImageDecoderAVFManager::encodedDataStatusChanged):

  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.h: Added.
  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.messages.in: Added.
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Fix unified build failures.
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Ditto.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

5:04 PM Changeset in webkit [272624] by Alan Coon
  • 1 copy in tags/Safari-612.1.2.6

Tag Safari-612.1.2.6.

4:56 PM Changeset in webkit [272623] by Alan Coon
  • 8 edits in branches/safari-612.1.2-branch/Source

Versioning.

WebKit-7612.1.2.6

4:38 PM Changeset in webkit [272622] by rniwa@webkit.org
  • 7 edits in trunk/Source/WebCore

Reduce the overhead of HTMLDocumentParser in innerHTML setter
https://bugs.webkit.org/show_bug.cgi?id=221596

Reviewed by Simon Fraser.

This patch reduces the overhead of HTMLDocumentParser for innerHTML.
This appears to be ~0.5% Speedometer progression.

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

  • dom/ScriptableDocumentParser.h:

(WebCore::ScriptableDocumentParser:isWaitingForScripts): Removed since this abstract
virtual function is only used in HTMLDocumentParser.

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocument::isWaitingForScripts): Removed. There are no scripts
in ftp directory document but there is no need to override it here.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizer): Exit early when we're parsing a fragment
to avoid accessing the scheduler, preloader, and document loader for various things
since they're all irrelevant for fragment parsing.
(WebCore::HTMLDocumentParser::isWaitingForScripts const): Return false immediately when
parsing a document fragment as a fast path.

  • html/parser/HTMLDocumentParser.h:
  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::isWaitingForScripts const): Removed. Unused.

  • xml/parser/XMLDocumentParser.h:
4:34 PM Changeset in webkit [272621] by ysuzuki@apple.com
  • 5 edits in trunk/Source/WTF

REGRESSION(r269017): Speedometer2 1% regression
https://bugs.webkit.org/show_bug.cgi?id=221640

Reviewed by Mark Lam.

Reverting r269017, r269478, and r272095 because of Speedometer2 ~1% regression.

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):
(WTF::KeyTraits>::lookupForWriting):
(WTF::KeyTraits>::fullLookupForWriting):
(WTF::KeyTraits>::addUniqueForInitialization):
(WTF::KeyTraits>::add):

  • wtf/HashTraits.h:
  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::addFreeSpace):

  • wtf/MetaAllocator.h:
4:22 PM Changeset in webkit [272620] by Russell Epstein
  • 1 copy in tags/Safari-611.1.14.1.1

Tag Safari-611.1.14.1.1.

4:21 PM Changeset in webkit [272619] by Russell Epstein
  • 1 copy in tags/Safari-611.1.14.0.1

Tag Safari-611.1.14.0.1.

4:15 PM Changeset in webkit [272618] by Chris Dumez
  • 25 edits in trunk

Rename SecurityOrigin's canAccess() to isSameOriginDomain() to match HTML specification naming
https://bugs.webkit.org/show_bug.cgi?id=221630

Reviewed by Geoffrey Garen.

Rename SecurityOrigin's canAccess() to isSameOriginDomain() to match HTML specification naming:

Source/WebCore:

  • bindings/js/JSDOMBindingSecurity.cpp:

(WebCore::canAccessDocument):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canAccessFromCurrentOrigin):
(WebCore::ScriptController::executeJavaScriptURL):

  • dom/Document.cpp:

(WebCore::canAccessAncestor):
(WebCore::Document::supportsPaintTiming const):
(WebCore::Document::domTimerAlignmentInterval const):
(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):
(WebCore::Document::initContentSecurityPolicy):
(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateIntersectionObservations):

  • dom/Element.cpp:

(WebCore::Element::focus):

  • dom/SecurityContext.cpp:

(WebCore::SecurityContext::isSecureTransitionTo const):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureToken::UserGestureToken):

  • html/HTMLFormControlElement.cpp:

(WebCore::shouldAutofocus):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::canLoadURL const):

  • loader/DocumentLoader.cpp:

(WebCore::shouldUseActiveServiceWorkerFromParent):

  • loader/DocumentWriter.cpp:

(WebCore::canReferToParentFrameEncoding):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchBeforeUnloadEvent):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preconnectIfNeeded):

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::ResourceLoadInfo::isThirdParty const):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::isSameSecurityOriginAsMainFrame const):
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
(WebCore::DOMWindow::isInsecureScriptAccess):

  • page/FrameView.cpp:

(WebCore::FrameView::safeToPropagateScrollToParent const):

  • page/Location.cpp:

(WebCore::Location::reload):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::isSameOriginDomain const):
(WebCore::SecurityOrigin::canReceiveDragData const):
(WebCore::SecurityOrigin::canAccess const): Deleted.

  • page/SecurityOrigin.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitSrcWouldTaintOrigin):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession wouldTaintOrigin:]):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents):

Tools:

  • TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:

(TestWebKitAPI::TEST_F):

3:06 PM Changeset in webkit [272617] by Devin Rousso
  • 7 edits in trunk/Source

[Cocoa] rename ENGINEERING_BUILD to ENABLE_DEVELOPER_MODE to match other platforms
https://bugs.webkit.org/show_bug.cgi?id=221621

Reviewed by Michael Catanzaro.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

3:04 PM Changeset in webkit [272616] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Change release log to mention IOSurface
https://bugs.webkit.org/show_bug.cgi?id=221629

Reviewed by Tim Horton.

It's more memorable to search logs for "IOSurface".

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::IOSurface):

2:51 PM Changeset in webkit [272615] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix Catalina build.
https://bugs.webkit.org/show_bug.cgi?id=221431

  • TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:

(TestWebKitAPI::TEST_F):

2:48 PM Changeset in webkit [272614] by Jonathan Bedard
  • 2 edits in trunk

AX: introduction.md broken architecture.png link
https://bugs.webkit.org/show_bug.cgi?id=221607
<rdar://problem/74140397>

Reviewed by Sam Weinig.

  • Introduction.md: webkit2-process-architecture.png Moved to resources.
2:12 PM Changeset in webkit [272613] by Ryan Haddad
  • 5 edits
    1 copy
    1 add in trunk/LayoutTests

Unreviewed, reverting r272426.

Caused test failures / flakiness

Reverted changeset:

"Remove GPUProcess flag in MediaRecorder tests"
https://bugs.webkit.org/show_bug.cgi?id=221401
https://trac.webkit.org/changeset/272426

2:07 PM Changeset in webkit [272612] by Ryan Haddad
  • 7 edits in trunk

Fix warning introduced by r272580
https://bugs.webkit.org/show_bug.cgi?id=221612

JSTests:

Unreviewd, update test262/config.yaml

Patch by Caio Lima <Caio Lima> on 2021-02-09

  • test262/config.yaml:

Since class-methods-private also includes private accessors tests,
we should enable it only after https://bugs.webkit.org/show_bug.cgi?id=194435
gets closed.

Source/JavaScriptCore:

Unreviewed build fixes.

Patch by Caio Lima <Caio Lima> on 2021-02-09

  • bytecode/CheckPrivateBrandVariant.cpp:
  • bytecode/CheckPrivateBrandVariant.h:
  • bytecode/SetPrivateBrandVariant.cpp:
  • bytecode/SetPrivateBrandVariant.h:
2:05 PM Changeset in webkit [272611] by eric.carlson@apple.com
  • 19 edits in trunk/Source

[macOS] Add internal preference to control how AVOutputContext is allocated
https://bugs.webkit.org/show_bug.cgi?id=221583
<rdar://73830632>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this can only be tested manually.

  • Modules/airplay/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):

  • Modules/airplay/WebMediaSessionManagerClient.h:

(WebCore::WebMediaSessionManagerClient::alwaysOnLoggingAllowed const):
(WebCore::WebMediaSessionManagerClient::useiTunesAVOutputContext const):
(WebCore::WebMediaSessionManagerClient::alwaysOnLoggingAllowed): Deleted.

  • platform/graphics/MediaPlaybackTargetPicker.cpp:

(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker):

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.h:
  • platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm:

(WebCore::AVOutputDeviceMenuControllerTargetPicker::showPlaybackTargetPicker):

  • platform/graphics/avfoundation/objc/AVPlaybackTargetPicker.h:
  • platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.h:
  • platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm:

(WebCore::AVRoutePickerViewTargetPicker::outputContextInternal):
(WebCore::AVRoutePickerViewTargetPicker::showPlaybackTargetPicker):

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

(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):

  • platform/mock/MediaPlaybackTargetPickerMock.cpp:

(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):

  • platform/mock/MediaPlaybackTargetPickerMock.h:

Source/WebKit:

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::useiTunesAVOutputContext const):

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
1:52 PM Changeset in webkit [272610] by Martin Robinson
  • 37 edits in trunk

Implement scroll-snap-stop for scroll snapping
https://bugs.webkit.org/show_bug.cgi?id=197744
<rdar://problem/50708356>

LayoutTests/imported/w3c:

Reviewed by Simon Fraser.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-scroll-snap/inheritance-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-snap-stop-change-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-snap-stop-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Reviewed by Simon Fraser.

No new tests. This is tested by existing, imported WPT tests:

imported/w3c/web-platform-tests/css/css-scroll-snap/inheritance-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-stop-change-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-stop-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element-expected.txt:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Add support the new CSS property.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator ScrollSnapAxisAlignType const): Ditto.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
(WebCore::CSSPrimitiveValue::operator ScrollSnapStop const): ditto.

  • css/CSSProperties.json: Ditto.
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue): Ditto.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::indicesOfNearestSnapOffsets): Update to accept SnapOffset instead of a raw
value.
(WebCore::findFirstSnapStopOffsetBetweenOriginAndDestination): Added this helper which looks
between the scroll origin and destination to find a candidate scroll offset with ScrollSnapStop::Always.
This offset will always be chosen for directional scrolls.
(WebCore::closestSnapOffsetWithOffsetsAndRanges): Use new helper to find offsets with ScrollSnapStop::Always.
(WebCore::computeAxisProximitySnapOffsetRanges): Deal with SnapOffset instead of raw values.
(WebCore::updateSnapOffsetsForScrollableArea): Ditto.
(WebCore::convertOffsetInfo): Ditto.

  • page/scrolling/ScrollSnapOffsetsInfo.h:

(WebCore::ScrollSnapOffsetsInfo::offsetsForAxis const): Ditto.
(WebCore::operator<<): Consolidated all TextStream implementations here instead of repeating
them throughout the code.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::setScrollSnapOffsetInfo): Set the scroll snap offset info all at once.
(WebCore::ScrollableArea::clearSnapOffsets): We no longer clear horizontal and vertical offsets separately.
(WebCore::ScrollableArea::nearestActiveSnapPoint): Access the offset value.

  • platform/ScrollableArea.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset): Ditto.

  • platform/cocoa/ScrollSnapAnimatorState.h:

(WebCore::ScrollSnapAnimatorState::snapOffsetsForAxis const): Deal with SnapOffsets instead of raw values.
(WebCore::ScrollSnapAnimatorState::setSnapOffsetsAndPositionRangesForAxis): Ditto.

  • platform/cocoa/ScrollSnapAnimatorState.mm:
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange): Update scroll snap information when the scroll-snap-stop
property changes. Also ensure that we update everything for FrameView's instead of only some properties.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::initialScrollSnapStop): Added for new CSS property.
(WebCore::RenderStyle::scrollSnapStop const): Ditto.
(WebCore::RenderStyle::setScrollSnapStop): Ditto.

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<): Ditto.

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertScrollSnapStop): Ditto.

  • testing/Internals.cpp:

(WebCore::appendOffsets): Handle the case where we are printing an offset with ScrollSnapStop::Always.

Source/WebKit:

Reviewed by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: Add encoding and decoding support

for the SnapOffset struct.
(ArgumentCoder<SnapOffset<float>>::encode):
(ArgumentCoder<SnapOffset<float>>::decode):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: Update to use SnapOffset struct.

(WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapOffset const):

LayoutTests:

Reviewed by Simon Fraser.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
1:51 PM Changeset in webkit [272609] by Jonathan Bedard
  • 3 edits in trunk/LayoutTests

[LayoutTests] Convert xmlhttprequest php to Python (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220995
<rdar://problem/73630008>

Unreviewed test fix.

  • http/tests/media/user-gesture-preserved-across-xmlhttprequest.html: Lengthen timeouts, Python is slightly slower than PHP.
  • http/tests/xmlhttprequest/resources/download-with-delay.py: Match iteration behavior to PHP script.
1:30 PM Changeset in webkit [272608] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Deny mach-lookup to the distributed notifications service
https://bugs.webkit.org/show_bug.cgi?id=221604
<rdar://problem/69169123>

Reviewed by Brent Fulgham.

Deny mach-lookup to the distributed notifications service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
1:21 PM Changeset in webkit [272607] by Chris Dumez
  • 131 edits
    6 adds in trunk

Disallow alert/confirm/prompt in cross-origin-domain subframes
https://bugs.webkit.org/show_bug.cgi?id=221568

Reviewed by Geoff Garen.

Source/WebCore:

Disallow alert/confirm/prompt in cross-origin-domain subframes as per the latest HTML specification:

Tests: http/tests/security/cross-origin-js-prompt-forbidden.html

http/tests/security/same-origin-different-domain-js-prompt-forbidden.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):

  • page/SecurityOrigin.cpp:
  • page/SecurityOrigin.h:

LayoutTests:

Add layout test coverage and update existing tests to stop using alert() in cross-origin iframes.

  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt:
  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-when-select-change-expected.txt:
  • fast/events/popup-when-select-change.html:
  • fast/events/resize-subframe-expected.txt:
  • fast/events/resize-subframe.html:
  • fast/forms/autofocus-in-sandbox-with-allow-scripts-expected.txt:
  • fast/forms/autofocus-in-sandbox-with-allow-scripts.html:
  • fast/frames/resources/navigate-top-by-name-to-fail.html:
  • fast/frames/sandboxed-iframe-navigation-top-by-name-denied-expected.txt:
  • http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html:
  • http/tests/cookies/third-party-cookie-relaxing-expected.txt:
  • http/tests/history/cross-origin-replace-history-object-child-expected.txt:
  • http/tests/history/cross-origin-replace-history-object-expected.txt:
  • http/tests/history/resources/cross-origin-replaces-history-object-child-iframe.html:
  • http/tests/history/resources/cross-origin-replaces-history-object-iframe.html:
  • http/tests/plugins/resources/third-party-cookie-accept-policy-iframe.html:
  • http/tests/plugins/third-party-cookie-accept-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed-expected.txt:
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed2-expected.txt:
  • http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-allowed-when-loaded-via-javascript-url-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-inside-csp-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2-expected.txt:
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed-expected.txt:
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed2-expected.txt:
  • http/tests/security/contentSecurityPolicy/resources/alert-fail.html:
  • http/tests/security/contentSecurityPolicy/resources/alert-fail.js:

(catch):

  • http/tests/security/contentSecurityPolicy/resources/alert-pass.html:
  • http/tests/security/contentSecurityPolicy/resources/alert-pass.js:

(catch):

  • http/tests/security/contentSecurityPolicy/resources/sandbox.php:
  • http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.php:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content-expected.txt:
  • http/tests/security/cross-origin-js-prompt-forbidden-expected.txt: Added.
  • http/tests/security/cross-origin-js-prompt-forbidden.html: Added.
  • http/tests/security/dataURL/resources/foreign-domain-data-url-accessor-iframe.html:
  • http/tests/security/dataURL/resources/foreign-domain-data-url-accessor-opened-frame.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/mixedContent/resources/frame-with-insecure-websocket.html:
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt:
  • http/tests/security/resources/cross-origin-js-prompt-forbidden.html: Added.
  • http/tests/security/same-origin-different-domain-js-prompt-forbidden-expected.txt: Added.
  • http/tests/security/same-origin-different-domain-js-prompt-forbidden.html: Added.
  • http/tests/security/xssAuditor/base-href-control-char-expected.txt:
  • http/tests/security/xssAuditor/base-href-direct-expected.txt:
  • http/tests/security/xssAuditor/base-href-expected.txt:
  • http/tests/security/xssAuditor/base-href-null-char-expected.txt:
  • http/tests/security/xssAuditor/base-href-safe-expected.txt:
  • http/tests/security/xssAuditor/base-href-safe2-expected.txt:
  • http/tests/security/xssAuditor/base-href-safe3-expected.txt:
  • http/tests/security/xssAuditor/base-href-scheme-relative-expected.txt:
  • http/tests/security/xssAuditor/cached-frame-expected.txt:
  • http/tests/security/xssAuditor/cached-frame.html:
  • http/tests/security/xssAuditor/cookie-injection-expected.txt:
  • http/tests/security/xssAuditor/data-urls-work-expected.txt:
  • http/tests/security/xssAuditor/data-urls-work.html:
  • http/tests/security/xssAuditor/dom-write-innerHTML-expected.txt:
  • http/tests/security/xssAuditor/dom-write-innerHTML.html:
  • http/tests/security/xssAuditor/form-action-expected.txt:
  • http/tests/security/xssAuditor/formaction-on-button-expected.txt:
  • http/tests/security/xssAuditor/formaction-on-input-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-safe-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-safe.html:
  • http/tests/security/xssAuditor/property-escape-noquotes-expected.txt:
  • http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars-expected.txt:
  • http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html:
  • http/tests/security/xssAuditor/property-escape-noquotes.html:
  • http/tests/security/xssAuditor/property-inject-expected.txt:
  • http/tests/security/xssAuditor/property-inject.html:
  • http/tests/security/xssAuditor/resources/base-href/really-safe-script.js:
  • http/tests/security/xssAuditor/resources/base-href/safe-script.js:
  • http/tests/security/xssAuditor/resources/echo-intertag.pl:
  • http/tests/security/xssAuditor/resources/javascript-link-safe.html:
  • http/tests/security/xssAuditor/resources/nph-cached.pl:
  • http/tests/security/xssAuditor/resources/safe-script-noquotes.js:
  • http/tests/security/xssAuditor/resources/safe-script.js:
  • http/tests/security/xssAuditor/resources/script-tag-safe2.html:
  • http/tests/security/xssAuditor/script-tag-near-start-expected.txt:
  • http/tests/security/xssAuditor/script-tag-near-start.html:
  • http/tests/security/xssAuditor/script-tag-safe2-expected.txt:
  • http/tests/security/xssAuditor/script-tag-safe2.html:
  • http/tests/security/xssAuditor/script-tag-safe3-expected.txt:
  • http/tests/security/xssAuditor/script-tag-safe3.html:
  • http/tests/security/xssAuditor/script-tag-src-redirect-safe-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-injected-comment-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-injected-comment.html:
  • http/tests/security/xssAuditor/script-tag-with-source-same-host-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
1:18 PM Changeset in webkit [272606] by achristensen@apple.com
  • 10 edits in trunk/Source/WebKit

Use CompletionHandler instead of ComputedPagesCallback
https://bugs.webkit.org/show_bug.cgi?id=221619

Reviewed by Chris Dumez.

  • UIProcess/API/C/WKPage.cpp:

(WKPageComputePagesForPrinting):

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

(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::computedPagesCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _askPageToComputePageRects]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::computePagesForPrinting):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
1:17 PM Changeset in webkit [272605] by achristensen@apple.com
  • 9 edits in trunk/Source/WebKit

Use CompletionHandler instead of NowPlayingInfoCallback
https://bugs.webkit.org/show_bug.cgi?id=221617

Reviewed by Chris Dumez.

  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _requestActiveNowPlayingSessionInfo:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo): Deleted.
(WebKit::WebPageProxy::nowPlayingInfoCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::requestActiveNowPlayingSessionInfo):

  • WebProcess/WebPage/WebPage.messages.in:
1:01 PM Changeset in webkit [272604] by Russell Epstein
  • 2 edits in trunk/Source/WebKitLegacy/mac

Unreviewed build fix. Reapply r272500.

Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187

Unreviewed build fix for macCatalyst.

Patch by Ryan Haddad <Ryan Haddad> on 2021-02-08

  • WebCoreSupport/WebMediaKeySystemClient.h: Add a check for ENABLE(ENCRYPTED_MEDIA).
12:58 PM Changeset in webkit [272603] by achristensen@apple.com
  • 18 edits
    4 adds in trunk

Synthesize range responses if needed in WebCoreNSURLSession
https://bugs.webkit.org/show_bug.cgi?id=221072

Reviewed by Geoff Garen.

Source/WebCore:

When we make a media request with a Range HTTP header field and the server doesn't respond with a 206 with Content-Range header field,
until now we would just fail to play the video. In order to successfully play these videos, I introduce the RangeResponseGenerator class,
which will receive the data for a request for such a video and feed the data into WebCoreNSURLSession as the requested ranges are received.
Seeking is problematic, but at least we will try our best to play the video.

I added API tests that try to play a video that didn't play before using a server that doesn't support range requests. Manual verification is also necessary.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/PlatformMediaResourceLoader.h:

(WebCore::PlatformMediaResource::setClient):

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

(WebCore::PlatformResourceMediaLoader::create):

  • platform/network/ParsedRequestRange.cpp: Added.

(WebCore::ParsedRequestRange::parse):

  • platform/network/ParsedRequestRange.h: Added.

(WebCore::ParsedRequestRange::begin const):
(WebCore::ParsedRequestRange::end const):
(WebCore::ParsedRequestRange::ParsedRequestRange):

  • platform/network/cocoa/RangeResponseGenerator.h: Added.
  • platform/network/cocoa/RangeResponseGenerator.mm: Added.

(WebCore::RangeResponseGenerator::Data::Data):
(WebCore::RangeResponseGenerator::Data::TaskData::TaskData):
(WebCore::synthesizedResponseForRange):
(WebCore::RangeResponseGenerator::removeTask):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
(WebCore::RangeResponseGenerator::expectedContentLengthFromData):
(WebCore::RangeResponseGenerator::giveResponseToTasksWithFinishedRanges):
(WebCore::RangeResponseGenerator::willHandleRequest):
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession rangeResponseGenerator]):
(-[WebCoreNSURLSession dataTaskWithURL:]):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent):
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::shouldCacheResponse):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::accessControlCheckFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFinished):
(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask _finish]):
(-[WebCoreNSURLSessionDataTask resource:sentBytes:totalBytesToBeSent:]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):
(-[WebCoreNSURLSessionDataTask resource:shouldCacheResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedData:length:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]):
(-[WebCoreNSURLSessionDataTask resource:accessControlCheckFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resource:loadFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resourceFinished:metrics:]):
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:URL:]): Deleted.

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::requestResource):

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TestWebKitAPI::clientCertServer):

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::testVideoBytes):
(TestWebKitAPI::runVideoTest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPResponse::HTTPResponse):
(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse): Deleted.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::RequestData::RequestData):
(TestWebKitAPI::appendToVector):
(TestWebKitAPI::HTTPServer::parsePath):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::HTTPResponse::bodyFromString):
(TestWebKitAPI::HTTPResponse::serialize):

12:27 PM Changeset in webkit [272602] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Disable BIDI processing for modern line layout
https://bugs.webkit.org/show_bug.cgi?id=221615

Reviewed by Sam Weinig.

This was added in preparation for BIDI content support but we are not there yet. Let's just disable it for now.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

12:24 PM Changeset in webkit [272601] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Style change on an inline box should trigger invalidation
https://bugs.webkit.org/show_bug.cgi?id=221573

Reviewed by Antti Koivisto.

Invalidate the line layout path when the inline box (RenderInline) needs layout.
e.g. the font-family property change in imported/w3c/web-platform-tests/css/css-fonts/generic-family-keywords-001.html
(This is sadly a full invalidation at this point.)

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

12:21 PM Changeset in webkit [272600] by Peng Liu
  • 22 edits
    3 deletes in trunk

[GPUP] Test media/track/audio-track-add-remove.html crashes on debug bots
https://bugs.webkit.org/show_bug.cgi?id=221595

Reviewed by Eric Carlson.

Source/WebKit:

Under stress tests, instances of RemoteAudioTrackProxy, RemoteTextTrackProxy, and
RemoteVideoTrackProxy might be destroyed in the GPU process when an IPC message
comes and leads to an assertion failure.

To fix the assertion failure, this patches removes three IPC message receivers in
the GPU process:

  • RemoteAudioTrackProxy
  • RemoteTextTrackProxy
  • RemoteVideoTrackProxy

Instead of using these three message receivers, this patch adds three new IPC messages
to RemoteMediaPlayerProxy:

  • AudioTrackSetEnabled
  • TextTrackSetMode
  • VideoTrackSetSelected

No new tests, fixing following tests:

  • media/track/audio-track-add-remove.html
  • media/track/audio-track.html
  • CMakeLists.txt:
  • DerivedSources.make:
  • GPUProcess/media/RemoteAudioTrackProxy.cpp:

(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::~RemoteAudioTrackProxy):

  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteAudioTrackProxy.messages.in: Removed.
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::audioTrackSetEnabled):
(WebKit::RemoteMediaPlayerProxy::videoTrackSetSelected):
(WebKit::RemoteMediaPlayerProxy::textTrackSetMode):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::~RemoteTextTrackProxy):

  • GPUProcess/media/RemoteTextTrackProxy.h:
  • GPUProcess/media/RemoteTextTrackProxy.messages.in: Removed.
  • GPUProcess/media/RemoteVideoTrackProxy.cpp:

(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::~RemoteVideoTrackProxy):

  • GPUProcess/media/RemoteVideoTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.messages.in: Removed.
  • WebKit.xcodeproj/project.pbxproj:
  • 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/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):

LayoutTests:

  • gpu-process/TestExpectations:
12:14 PM Changeset in webkit [272599] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix build with the latest SDK.

  • UIProcess/ios/forms/WKFormColorControl.mm:

(-[WKColorPicker selectColor:]):

11:53 AM Changeset in webkit [272598] by Russell Epstein
  • 19 edits in branches/safari-611.1.14.0-branch/Source

Cherry-pick r272550. rdar://problem/74151949

Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503

Reviewed by Alex Christensen.
Source/WebCore:

  • loader/EmptyClients.cpp: (WebCore::pageConfigurationWithEmptyClients):
  • page/Page.cpp: (WebCore::Page::Page):
  • page/PageConfiguration.cpp: (WebCore::PageConfiguration::PageConfiguration):
  • page/PageConfiguration.h:

Source/WebKit:

Normal Pages always have a UserContentProvider, even if they just create an empty default one.

Same should be true for ServiceWorkers.

  • Shared/ServiceWorkerInitializationData.cpp: (WebKit::ServiceWorkerInitializationData::decode):
  • Shared/ServiceWorkerInitializationData.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers): (WebKit::WebProcessPool::createWebPage):
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::enableServiceWorkers):
  • UIProcess/WebProcessProxy.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::m_userContentController): (WebKit::m_userAgent): Deleted.
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_limitsNavigationsToAppBoundDomains):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp: (WebView::initWithFrame):

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

11:25 AM Changeset in webkit [272597] by Aditya Keerthi
  • 24 edits
    2 adds
    2 deletes in trunk

[iOS][FCR] Use UIColorPickerViewController for color inputs
https://bugs.webkit.org/show_bug.cgi?id=221572
<rdar://problem/72183130>

Reviewed by Sam Weinig.

Source/WebCore:

  • html/HTMLInputElement.h:

Export function so it can be called from WebKit layer.

Source/WebKit:

UIColorPickerViewController was added in iOS 14, while WebKit still
uses a custom color picker. To stay consistent with the rest of the
platform, this patch drops the custom color picker and adopts
UIColorPickerViewController for <input type=color> on iOS.

Test: fast/forms/ios/choose-color-from-color-picker.html

  • Platform/spi/ios/UIKitSPI.h:

Added SPI declarations for _UISheetPresentationController and
UIColorPickerViewController.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:

Added colorValue member to avoid parsing the input's value
in the UIProcess.

  • SourcesCocoa.txt:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView setSelectedColorForColorPicker:]):

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

(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _elementTypeRequiresAccessoryView:]):

The new color picker does not appear as a keyboard input view.

(-[WKContentView updateFocusedElementValueAsColor:]):
(-[WKContentView setSelectedColorForColorPicker:]):

  • UIProcess/ios/forms/WKFormColorControl.h:
  • UIProcess/ios/forms/WKFormColorControl.mm:

(-[WKColorPicker initWithView:]):
(-[WKColorPicker selectColor:]):

Note that the delegate method is not called when programmatically
setting the selected color.

(-[WKColorPicker focusedElementSuggestedColors]):

Suggested colors from a <datalist> element are displayed in the
favorites view.

(-[WKColorPicker updateColorPickerState]):
(-[WKColorPicker configurePresentation]):

On iPad, the color picker is displayed a popover. On iPhone, the picker
is displayed as a half-sheet, and can be dragged up into a fullscreen
view.

(-[WKColorPicker controlBeginEditing]):
(-[WKColorPicker controlEndEditing]):
(-[WKColorPicker presentationControllerDidDismiss:]):
(-[WKColorPicker colorPickerViewControllerDidSelectColor:]):
(-[WKColorPicker colorPickerViewControllerDidFinish:]):
(-[WKFormColorControl initWithView:]):
(-[WKFormColorControl selectColor:]):

  • UIProcess/ios/forms/WKFormColorPicker.h: Removed.
  • UIProcess/ios/forms/WKFormColorPicker.mm: Removed.
  • UIProcess/ios/forms/WKFormSelectPicker.h:

Build fix.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

Tools:

Added UIScriptController hooks to simulate selecting a color on the
new color picker.

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

(WTR::UIScriptController::setSelectedColorForColorPicker):

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

(WTR::UIScriptControllerIOS::setSelectedColorForColorPicker):

LayoutTests:

Added a test which displays the new color picker and verifies that
selecting a color updates the corresponding input's value.

  • fast/forms/color/color-input-activate-crash.html:

Replaced call to activateElementAndWaitForInputSession with
activateElement and ensurePresentationUpdate, since tapping on a
color input no longer presents a keyboard input view.

  • fast/forms/ios/choose-color-from-color-picker-expected.txt: Added.
  • fast/forms/ios/choose-color-from-color-picker.html: Added.
  • resources/ui-helper.js:

(UIHelper.setSelectedColorForColorPicker):

10:50 AM Changeset in webkit [272596] by Russell Epstein
  • 19 edits in branches/safari-611.1.14.1-branch/Source

Cherry-pick r272550. rdar://problem/74146102

Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503

Reviewed by Alex Christensen.
Source/WebCore:

  • loader/EmptyClients.cpp: (WebCore::pageConfigurationWithEmptyClients):
  • page/Page.cpp: (WebCore::Page::Page):
  • page/PageConfiguration.cpp: (WebCore::PageConfiguration::PageConfiguration):
  • page/PageConfiguration.h:

Source/WebKit:

Normal Pages always have a UserContentProvider, even if they just create an empty default one.

Same should be true for ServiceWorkers.

  • Shared/ServiceWorkerInitializationData.cpp: (WebKit::ServiceWorkerInitializationData::decode):
  • Shared/ServiceWorkerInitializationData.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers): (WebKit::WebProcessPool::createWebPage):
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::enableServiceWorkers):
  • UIProcess/WebProcessProxy.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::m_userContentController): (WebKit::m_userAgent): Deleted.
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_limitsNavigationsToAppBoundDomains):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp: (WebView::initWithFrame):

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

10:50 AM Changeset in webkit [272595] by Russell Epstein
  • 3 edits in branches/safari-611.1.14.1-branch/Source/WebCore

Cherry-pick r272439. rdar://problem/74146132

[Cocoa] CRASH in MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer()
https://bugs.webkit.org/show_bug.cgi?id=221490
<rdar://73966316>

Reviewed by Eric Carlson.

Add null-checks to every use of player() in SourceBufferPrivateAVFObjC.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): (WebCore::SourceBufferPrivateAVFObjC::destroyParser): (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): (WebCore::SourceBufferPrivateAVFObjC::readyState const): (WebCore::SourceBufferPrivateAVFObjC::setReadyState): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::SourceBufferPrivateAVFObjC::flushVideo): (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): (WebCore::SourceBufferPrivateAVFObjC::bufferWasConsumed): (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): (WebCore::SourceBufferPrivateAVFObjC::player const):

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

10:50 AM Changeset in webkit [272594] by Russell Epstein
  • 3 edits
    1 add in branches/safari-611.1.14.1-branch

Cherry-pick r271571. rdar://problem/74146017

[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-entry-order-reverse.js: Added. (shouldThrow): (foo):

Source/JavaScriptCore:

After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.

  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower):

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

10:44 AM Changeset in webkit [272593] by Russell Epstein
  • 3 edits
    1 add in branches/safari-611.1.14.0-branch

Cherry-pick r271571. rdar://problem/74145979

[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-entry-order-reverse.js: Added. (shouldThrow): (foo):

Source/JavaScriptCore:

After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.

  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower):

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

10:38 AM Changeset in webkit [272592] by achristensen@apple.com
  • 19 edits in trunk/Source/WebKit

Use CompletionHandler instead of DrawToPDFCallback
https://bugs.webkit.org/show_bug.cgi?id=220120

Reviewed by Chris Dumez.

Along the way I made all asynchronous message replies use 8 fewer bytes by using the destination ID for the listener ID
instead of encoding 0 as the destination ID and then encoding the listener ID. This was needed in order to make implementing
waitForAsyncCallbackAndDispatchImmediately possible, which looks at the destination IDs of incoming messages.
I also made it so that if we are just snapshotting the first page, we don't send a synchronous message because we already know the page count:
1!

  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::waitForAndDispatchImmediately):
(IPC::Connection::waitForAsyncCallbackAndDispatchImmediately):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

  • Platform/IPC/JSIPCBinding.cpp:

(IPC::jsValueForDecodedArgumentValue):

  • Platform/IPC/JSIPCBinding.h:
  • Platform/IPC/MessageSender.h:

(IPC::MessageSender::sendWithAsyncReply):

  • Scripts/webkit/messages.py:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createPDFWithConfiguration:completionHandler:]):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::drawToPDFCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _processDidExit]):
(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _waitForDrawToPDFCallback]):
(-[WKContentView _wk_printedDocument]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::drawToPDF):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::computePagesForPrintingiOS):
(WebKit::WebPage::drawToPDFiOS):
(WebKit::WebPage::computePagesForPrintingAndDrawToPDF): Deleted.

10:35 AM Changeset in webkit [272591] by Russell Epstein
  • 8 edits in branches/safari-611.1.14.0-branch/Source

Versioning.

WebKit-7611.1.14.0.1

10:34 AM Changeset in webkit [272590] by Russell Epstein
  • 8 edits in branches/safari-611.1.14.1-branch/Source

Versioning.

WebKit-7611.1.14.1.1

10:33 AM Changeset in webkit [272589] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>

Unreviewed, fix a layout test assert.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::platformCommandForMediaSessionAction): Map "skipad" to "nexttrack".
(WebCore::MediaSession::setActionHandler): Don't try to register media session actions
for which there is no platform command.

10:20 AM Changeset in webkit [272588] by Russell Epstein
  • 1 copy in branches/safari-611.1.14.1-branch

New branch.

10:19 AM Changeset in webkit [272587] by Russell Epstein
  • 1 copy in branches/safari-611.1.14.0-branch

New branch.

10:03 AM Changeset in webkit [272586] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Deny mach-lookup to the fonts service
https://bugs.webkit.org/show_bug.cgi?id=221610
<rdar://problem/69168609>

Reviewed by Brent Fulgham.

By setting the Info.plist key CTIgnoreUserFonts to true, mach-lookup to the fonts service in the WebContent process can
be denied on macOS.

No new tests, covered by existing tests.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
  • WebProcess/com.apple.WebProcess.sb.in:
10:03 AM Changeset in webkit [272585] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Deny mach-lookup to the service 'com.apple.trustd.agent'
https://bugs.webkit.org/show_bug.cgi?id=221611
<rdar://problem/68935818>

Reviewed by Brent Fulgham.

Deny mach-lookup to the service 'com.apple.trustd.agent' in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
9:57 AM Changeset in webkit [272584] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

REGRESSION (r271660): Unable to interact with page after long-pressing image on images.google.com
https://bugs.webkit.org/show_bug.cgi?id=221584
<rdar://problem/74073581>

Reviewed by Andy Estes.

Source/WebKit:

After long pressing on an image with an active touchend event listener, it's possible to sometimes get stuck in
a state where further interaction with the page is impossible, due to all gesture recognizers (except for the
touchend deferral gestures) remaining in either Failed or Ended state.

When presenting the context menu with a long press, the touch event gesture transitions to Failed state due to
the active touch being cancelled. Normally, this invokes -_webTouchEventsRecognized: with all touch points
being released, which allows us to "lift" the deferred gesture gate by failing any deferring gesture recognizers
that are still in Possible state (i.e. deferring native gestures).

However, it's possible for touch deferring gestures (in particular, the touchend deferrer) introduced in r271660
to end (i.e. call -touchesEnded:withEvent:) before the touch event gesture gets a chance to call
-_webTouchEventsRecognized:. In this scenario, the touch end deferral gesture remains in Possible state, and
prevents the touch event gesture from subsequently firing its action (-_webTouchEventsRecognized:), presumably
because UIKit is waiting for all other gestures in the same subgraph as the touch event gesture recognizer to
Fail.

This effectively results in a gesture "deadlock", since the web touch event gesture recognizer won't call
-_webTouchEventsRecognized: until the touch end deferring gesture has failed, and the touch end deferring
gesture won't fail until -_webTouchEventsRecognized: is called. To fix this, we restore a bit of logic that
was removed with r271193, such that we allow our deferring gesture recognizers to transition to Failed state
underneath -touchesEnded:withEvent:, as long it's [1] not actively deferring any native gestures, and [2] the
web touch event gesture has already failed, so we aren't expecting a subsequent call to
-_webTouchEventsRecognized: until the deferring gesture has failed.

Note that this check for the touch event gesture recognizer's state (condition [2] above) is necessary to
prevent the touchend deferring gesture from failing prematurely (i.e. right before we're about to dispatch
preventable touchend events).

Test: fast/events/touch/ios/tap-after-long-press-on-image.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _isTouchStartDeferringGesture:]):
(-[WKContentView _isTouchEndDeferringGesture:]):
(-[WKContentView deferringGestureRecognizer:didEndTouchesWithEvent:]):

Add a delegate hook when a deferring gesture's ends touches; use this hook in WKContentView to "lift" the
gesture gate if needed, in the case where the touch event gesture recognizer has already failed and we can't
expect -_webTouchEventsRecognized: to be called with all touch points released.

(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

Add a missing call to -[WKWebView _didDismissContextMenu] here to make UIHelper.waitForContextMenuToHide()
actually work with image and link context menus in WebKitTestRunner.

  • UIProcess/ios/WKDeferringGestureRecognizer.h:
  • UIProcess/ios/WKDeferringGestureRecognizer.mm:

(-[WKDeferringGestureRecognizer touchesEnded:withEvent:]):

LayoutTests:

Add a new layout test that (sometimes) exercises the problem. Given the nature of the bug, it doesn't seem
possible to write a test that reproduces the bug 100% of the time. See WebKit ChangeLog for more details.

  • fast/events/touch/ios/tap-after-long-press-on-image-expected.txt: Added.
  • fast/events/touch/ios/tap-after-long-press-on-image.html: Added.
  • resources/ui-helper.js:

(UIHelper.EventStreamBuilder.prototype.wait):

Add a helper to simply increment the time offset when building an event stream.

9:47 AM Changeset in webkit [272583] by youenn@apple.com
  • 3 edits
    2 adds in trunk

MediaStream-backed video elements should not compute the mediaType based on track muted states
https://bugs.webkit.org/show_bug.cgi?id=221601

Reviewed by Eric Carlson.

Source/WebCore:

In case of entering background, two things happen:

  • video elements get paused
  • local video capture track gets muted

When entering foreground:

  • video element should resume but did not as the local video track was muted and video element was considered as an audio element.
  • local video capture track gets unmuted but this is too late.

To fix this, compute hasVideo/hasAudio based on available tracks, no matter their active state.

Test: fast/mediastream/MediaStream-video-element-enter-background.html

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasVideo const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAudio const):

LayoutTests:

  • fast/mediastream/MediaStream-video-element-enter-background-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-enter-background.html: Added.
9:36 AM Changeset in webkit [272582] by commit-queue@webkit.org
  • 15 edits
    14 adds
    14 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/inspector/ convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221140
<rdar://problem/73758592>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-09
Reviewed by Jonathan Bedard.

  • http/tests/inspector/network/beacon-type.html:
  • http/tests/inspector/network/fetch-response-body-304.html:
  • http/tests/inspector/network/fetch-response-body.html:
  • http/tests/inspector/network/intercept-request-properties-expected.txt:
  • http/tests/inspector/network/intercept-request-properties.html:
  • http/tests/inspector/network/ping-type.html:
  • http/tests/inspector/network/resource-mime-type.html:
  • http/tests/inspector/network/resource-request-headers.html:
  • http/tests/inspector/network/resource-sizes-network.html:
  • http/tests/inspector/network/resource-timing.html:
  • http/tests/inspector/network/resources/404.php: Removed.
  • http/tests/inspector/network/resources/404.py: Added.
  • http/tests/inspector/network/resources/basic-auth.php: Removed.
  • http/tests/inspector/network/resources/basic-auth.py: Added.
  • http/tests/inspector/network/resources/beacon.php: Removed.
  • http/tests/inspector/network/resources/beacon.py: Added.
  • http/tests/inspector/network/resources/delay.php: Removed.
  • http/tests/inspector/network/resources/delay.py: Added.
  • http/tests/inspector/network/resources/echo.php: Removed.
  • http/tests/inspector/network/resources/echo.py: Added.
  • http/tests/inspector/network/resources/fetch-cachable.php: Removed.
  • http/tests/inspector/network/resources/fetch-cachable.py: Added.
  • http/tests/inspector/network/resources/gzipped-lorem-no-content-length.php: Removed.
  • http/tests/inspector/network/resources/gzipped-lorem-no-content-length.py: Added.
  • http/tests/inspector/network/resources/gzipped-lorem.php: Removed.
  • http/tests/inspector/network/resources/gzipped-lorem.py: Added.
  • http/tests/inspector/network/resources/intercept-echo.php: Removed.
  • http/tests/inspector/network/resources/intercept-echo.py: Added.
  • http/tests/inspector/network/resources/json.php: Removed.
  • http/tests/inspector/network/resources/json.py: Added.
  • http/tests/inspector/network/resources/ping.php: Removed.
  • http/tests/inspector/network/resources/ping.py: Added.
  • http/tests/inspector/network/resources/redirect.php: Removed.
  • http/tests/inspector/network/resources/redirect.py: Added.
  • http/tests/inspector/network/resources/x-frame-options.php: Removed.
  • http/tests/inspector/network/resources/x-frame-options.py: Added.
  • http/tests/inspector/network/x-frame-options-expected.txt:
  • http/tests/inspector/network/x-frame-options.html:
  • http/tests/inspector/network/xhr-response-body.html:
  • http/tests/inspector/page/get-cookies.html:
  • http/tests/inspector/page/resources/set-cookie.php: Removed.
  • http/tests/inspector/page/resources/set-cookie.py: Added.
9:35 AM Changeset in webkit [272581] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Correctly parse branch commits
https://bugs.webkit.org/show_bug.cgi?id=221609
<rdar://problem/74142906>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commit): Only respect the last revision in a commit message.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Make one commit similar

to a cherry-pick.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.commit): Only respect the last revision in a commit message.

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

(TestFind.test_hash): Change commit being tested since original commit would
resolve a revision.

8:39 AM BuildBot edited by aakash_jain@apple.com
(diff)
8:30 AM Changeset in webkit [272580] by Caio Lima
  • 102 edits
    2 copies
    34 adds in trunk

[ESNext] Implement private methods
https://bugs.webkit.org/show_bug.cgi?id=194434

Reviewed by Filip Pizlo.

JSTests:

  • stress/private-brand-installed-after-super-call-from-arrow-function.js: Added.
  • stress/private-brand-installed-after-super-call-from-eval.js: Added.
  • stress/private-method-brand-check.js: Added.
  • stress/private-method-change-attribute-from-branded-structure.js: Added.
  • stress/private-method-change-prototype-from-branded-structure.js: Added.
  • stress/private-method-check-private-brand-ic.js: Added.
  • stress/private-method-check-structure-miss.js: Added.
  • stress/private-method-comparison.js: Added.
  • stress/private-method-delete-property-from-branded-structure.js: Added.
  • stress/private-method-extends-brand-check.js: Added.
  • stress/private-method-get-and-call.js: Added.
  • stress/private-method-invalid-multiple-brand-installation.js: Added.
  • stress/private-method-invalidate-compiled-with-constant-symbol.js: Added.
  • stress/private-method-nested-class.js: Added.
  • stress/private-method-on-sealed-objects.js: Added.
  • stress/private-method-on-uncacheable-dictionary.js: Added.
  • stress/private-method-polymorphic-with-constant-symbol.js: Added.
  • stress/private-method-set-brand-should-have-write-barrier.js: Added.
  • stress/private-method-untyped-use.js: Added.
  • stress/private-method-with-uncacheable-dictionary-transition.js: Added.
  • stress/private-methods-inline-cache.js: Added.
  • stress/private-methods-megamorphic-ic.js: Added.
  • stress/private-methods-on-proxy.js: Added.
  • stress/private-methods-poly-ic-multiple-classes.js: Added.
  • stress/private-methods-poly-ic-single-class.js: Added.
  • stress/private-names-available-on-direct-eval.js: Added.
  • test262/config.yaml:

Source/JavaScriptCore:

This patch is adding support to private methods following the
specification on https://tc39.es/proposal-private-methods/.
This is introducing a new way to declare private methods on
class syntax. Private methods are only accessible within
classes they were declared, and only can be called from
objects that are instance of these classes.
To guarantee such rules, the proposal presents the concept of
Brand Check. During class evaluation, if a private method is present,
a brand is installed in this class. Every instance of such class
then gets this brand installed during [[Construct]] operation. It
means that an object can have multiple brands (e.g when there is also
private methods declared on super class). Before accessing a private
method, there is a check to validate if the target of the call has the
brand of callee method.
The brand check mechanism is implemented using a @privateBrand
stored on class scope. Here is a representation of how this mechanism
works:

`
class C {

#m() { return 3; }
method() { return this.#m(); }

}

let c = new C();
console.log(c.method()); prints 3
`

Generated bytecode for the following representation:
`
{ class lexical scope

const @privateBrand = @createPrivateSymbol();
const #m = function () { return 3; }
C.prototype.method = function() {

@check_private_brand(this, @privateBrand);
return #m.call(this);

}
C = function() {

@set_private_brand(this, @privateBrand);

}

}

let c = new C();
console.log(c.method()); prints 3
`

# Resolving correct brand to check

In the case of shadowing or nested scope, we need to emit brand
checks to the right private brand. See code below:

`
class C {

#m() { return 3; }
method() { return this.#m();}

A = class {

#m2() { return 3; }
foo(o) { return o.#m(); }

}

}
`

The call of "#m" in foo refers to "C::#m". In such case, we need to
check C's private brand, instead of A's private brand.
To perform the proper check, we first resolve scope of "#m" and then
check the private brand of this scope (the scope where the private
method and brand are stored is the same).
So the bytecode to lookup the right brand is:

`
mov loc9, arg1
resolve_scope loc10, "#m"
get_from_scope loc11, loc10, "@privateBrand"
check_private_brand loc9, loc11
get_from_scope loc11, loc10, "#m"
setup call frame
call loc11, ...
...
`

# Brand check mechanism

We are introducing in this patch 2 new bytecodes to allow brand check
of objects: op_set_brand and op_check_brand.
op_set_brand sets a new brand in an object, so we can perform the brand
check later when accessing private methods. This operations throws when
trying to add the same brand twice in an Object.
op_check_brand checks if the given object contains the brand we are
looking for. It traverses the brand chain to verify if the brand is
present, and throws TypeError otherwise.

We are also introducing a subclass for Structure called BrandedStructure.
It is used to store brands and to allow brand check mechanism. BrandedStructure
stores a brand and a parent pointer to another BrandedStructure that allow
us traverse the brand chain. With BrandedStructure, we can then
infer that a given object has the brand we are looking for just
checking its structureId. This is a very good optimization, since we can
reduce most of brand checks to structure checks.

We created a new kind of transition called SetBrand that happens when
op_set_brand is executed. This allow us to cache such kind of
trasitions on trasition table using the key `<brand->uid, 0,
TransitionKind::SetBrand>`. During this transition, we take previous
structure and apply one of the following rules:

  1. If it's a BrandedStructure, we then set it to m_parentBrand, to allow proper brand chain check.
  1. If it's not a BrandedStructure, we set m_parentBrand to nullptr, meaning that this is the first brand being added to the object with this structure.

For now, we are using the flag isBrandedStructure to identify that a
given Structure is a BrandedStructure. This is done to avoid changes
on places where we are checking for vm.structureStructure().
However, if we ever need space on Structure, this flag is a good
candidate to be deleted and we can move to a solution that uses
vm.brandedStructureStructure();

# JIT Support

This patch also includes initial JIT support for set_private_brand
and check_private_brand. On Baseline JIT, we are using
JITPravateBrandAccessGenerator to support IC for both operands.
On DFGByteCodeParser we are trying to inline brand access whenever
possible, and fallbacking to SetPrivateBrand and
CheckPrivateBrand otherwise. Those nodes are not being optimized at
their full potential, but the code generated by them is also relying on
JITPrivateBrandAccessGenerator to have IC support for both DFG and
FTL. During DFG parsing, we try to reduce those access to CheckIsConstant
and CheckStructure (with PutStructure for set_private_brand cases)
based on available profiled data. This is meant to make brand checks
almost free on DFG/FTL tiers when we have a single evaluation of a
class, since the CheckIsConstant can be eliminated by the constant-folded
scope load, and the CheckStructure is very likely to be redundant
to any other CheckStructure that can be performed on receiver
when we have a finite structure set.
For instance, when we have a brand check on a path-of-no-return to
a GetByOffset sequence on the same receiver, the CheckStructure
for the brand check will enable CSE of the CheckStructure that
would happen for that GetByOffset. Such design is possible because brand
checks supports polymorphic access very similr to what we have for
GetByOffset sequences.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createExecutable):

  • builtins/BuiltinExecutables.h:

We are adding a new parameter PrivateBrandRequirement to propagate
when a default constructor needs to emit code to setup private brand
on instances.

  • builtins/BuiltinNames.h:

Adding @privateBrand that we use to store private brand on
class's scope.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::createCheckPrivateBrand):
(JSC::AccessCase::createSetPrivateBrand):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/AccessCase.h:

(JSC::AccessCase::structure const):
(JSC::AccessCase::newStructure const):

  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/CheckPrivateBrandStatus.cpp: Added.

(JSC::CheckPrivateBrandStatus::appendVariant):
(JSC::CheckPrivateBrandStatus::computeForBaseline):
(JSC::CheckPrivateBrandStatus::CheckPrivateBrandStatus):
(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::CheckPrivateBrandStatus::computeFor):
(JSC::CheckPrivateBrandStatus::slowVersion const):
(JSC::CheckPrivateBrandStatus::merge):
(JSC::CheckPrivateBrandStatus::filter):
(JSC::CheckPrivateBrandStatus::singleIdentifier const):
(JSC::CheckPrivateBrandStatus::visitAggregate):
(JSC::CheckPrivateBrandStatus::markIfCheap):
(JSC::CheckPrivateBrandStatus::finalize):
(JSC::CheckPrivateBrandStatus::dump const):

  • bytecode/CheckPrivateBrandStatus.h: Added.
  • bytecode/CheckPrivateBrandVariant.cpp: Added.

(JSC::CheckPrivateBrandVariant::CheckPrivateBrandVariant):
(JSC::CheckPrivateBrandVariant::~CheckPrivateBrandVariant):
(JSC::CheckPrivateBrandVariant::attemptToMerge):
(JSC::CheckPrivateBrandVariant::markIfCheap):
(JSC::CheckPrivateBrandVariant::finalize):
(JSC::CheckPrivateBrandVariant::visitAggregate):
(JSC::CheckPrivateBrandVariant::dump const):
(JSC::CheckPrivateBrandVariant::dumpInContext const):

  • bytecode/CheckPrivateBrandVariant.h: Added.

(JSC::CheckPrivateBrandVariant::structureSet const):
(JSC::CheckPrivateBrandVariant::structureSet):
(JSC::CheckPrivateBrandVariant::identifier const):
(JSC::CheckPrivateBrandVariant::overlaps):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::privateBrandRequirement const):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):

  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::operator=):
(JSC::RecordedStatuses::addCheckPrivateBrandStatus):
(JSC::RecordedStatuses::addSetPrivateBrandStatus):
(JSC::RecordedStatuses::visitAggregate):
(JSC::RecordedStatuses::markIfCheap):

  • bytecode/RecordedStatuses.h:

(JSC::RecordedStatuses::forEachVector):

  • bytecode/SetPrivateBrandStatus.cpp: Added.

(JSC::SetPrivateBrandStatus::appendVariant):
(JSC::SetPrivateBrandStatus::computeForBaseline):
(JSC::SetPrivateBrandStatus::SetPrivateBrandStatus):
(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::SetPrivateBrandStatus::computeFor):
(JSC::SetPrivateBrandStatus::slowVersion const):
(JSC::SetPrivateBrandStatus::merge):
(JSC::SetPrivateBrandStatus::filter):
(JSC::SetPrivateBrandStatus::singleIdentifier const):
(JSC::SetPrivateBrandStatus::visitAggregate):
(JSC::SetPrivateBrandStatus::markIfCheap):
(JSC::SetPrivateBrandStatus::finalize):
(JSC::SetPrivateBrandStatus::dump const):

  • bytecode/SetPrivateBrandStatus.h: Added.
  • bytecode/SetPrivateBrandVariant.cpp: Added.

(JSC::SetPrivateBrandVariant::SetPrivateBrandVariant):
(JSC::SetPrivateBrandVariant::~SetPrivateBrandVariant):
(JSC::SetPrivateBrandVariant::attemptToMerge):
(JSC::SetPrivateBrandVariant::markIfCheap):
(JSC::SetPrivateBrandVariant::finalize):
(JSC::SetPrivateBrandVariant::visitAggregate):
(JSC::SetPrivateBrandVariant::dump const):
(JSC::SetPrivateBrandVariant::dumpInContext const):

  • bytecode/SetPrivateBrandVariant.h: Added.

(JSC::SetPrivateBrandVariant::oldStructure const):
(JSC::SetPrivateBrandVariant::newStructure const):
(JSC::SetPrivateBrandVariant::identifier const):
(JSC::SetPrivateBrandVariant::overlaps):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::privateBrandRequirement const):

  • bytecode/UnlinkedCodeBlockGenerator.h:

(JSC::UnlinkedCodeBlockGenerator::privateBrandRequirement const):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

We changed BytecodeGenerator for FunctionNode and EvalNode to
propagate parentScope PrivateNameEnvironment. These environments stores
private name entries that are visible into the scope of the
function/eval.
This is required to identify the kind of access a private name is
referring to, since it can be a private field or a private method.

(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitGetPrivateName):
(JSC::BytecodeGenerator::emitCreatePrivateBrand):

The process to create a private brand is as follows:

  1. Create a PrivateSymbol using @createPrivateSymbol.
  2. Store this symbol into a given scope (i.e class lexical scope) on @privateBrand variable.

(JSC::BytecodeGenerator::emitInstallPrivateBrand):
(JSC::BytecodeGenerator::emitGetPrivateBrand):

We added m_privateNamesStack to BytecodeGenerator to represent the
scope chain of available private names while generating bytecode.

(JSC::BytecodeGenerator::emitCheckPrivateBrand):
(JSC::BytecodeGenerator::isPrivateMethod):
(JSC::BytecodeGenerator::pushPrivateAccessNames):
(JSC::BytecodeGenerator::popPrivateAccessNames):
(JSC::BytecodeGenerator::getAvailablePrivateAccessNames):
(JSC::BytecodeGenerator::emitNewDefaultConstructor):
(JSC::BytecodeGenerator::emitNewClassFieldInitializerFunction):
(JSC::BytecodeGenerator::emitDirectGetByVal): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::privateBrandRequirement const):
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::makeFunction):

This change is required to properly propagate PrivateBrandRequirement
to arrow functions that can potentially call super().

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitDeclarePrivateFieldNames):
(JSC::PropertyListNode::emitBytecode):
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::BaseDotNode::emitGetPropertyValue):

Adding support to properly access private method. Since we store
private methods on class lexical scope, we need a different set of
instructions to access a private method.

(JSC::BaseDotNode::emitPutProperty):

In the case of we trying to write in a private method, we need to
throw a TypeError according to specification
(https://tc39.es/proposal-private-methods/#sec-privatefieldset).

(JSC::FunctionCallValueNode::emitBytecode):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitDot):
(JSC::ClassExprNode::emitBytecode):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluateWithScopeExtension):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addPrivateBrandAccess):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCheckPrivateBrandStatus):
(JSC::DFG::Node::checkPrivateBrandStatus):
(JSC::DFG::Node::hasSetPrivateBrandStatus):
(JSC::DFG::Node::setPrivateBrandStatus):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckPrivateBrand):
(JSC::FTL::DFG::LowerDFGToB3::compileSetPrivateBrand):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::slowPathJump const):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::getPrivateName):

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

(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):

  • jit/Repatch.cpp:

(JSC::tryCacheCheckPrivateBrand):
(JSC::repatchCheckPrivateBrand):
(JSC::tryCacheSetPrivateBrand):
(JSC::repatchSetPrivateBrand):
(JSC::resetCheckPrivateBrand):
(JSC::resetSetPrivateBrand):

  • jit/Repatch.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/Nodes.cpp:

(JSC::FunctionMetadataNode::FunctionMetadataNode):

  • parser/Nodes.h:

(JSC::BaseDotNode::isPrivateMember const):
(JSC::BaseDotNode::isPrivateField const): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:

(JSC::Scope::declarePrivateMethod):
(JSC::Scope::declarePrivateField):
(JSC::Parser<LexerType>::parse):
(JSC::parse):
(JSC::Scope::declarePrivateName): Deleted.

  • parser/ParserModes.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createDotAccess):

  • parser/VariableEnvironment.cpp:

(JSC::VariableEnvironment::declarePrivateMethod):

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::isPrivateField const):
(JSC::VariableEnvironmentEntry::isPrivateMethod const):
(JSC::VariableEnvironmentEntry::setIsPrivateField):
(JSC::VariableEnvironmentEntry::setIsPrivateMethod):
(JSC::PrivateNameEntry::isMethod const):
(JSC::PrivateNameEntry::isPrivateMethodOrAcessor const):
(JSC::VariableEnvironment::addPrivateName):
(JSC::VariableEnvironment::declarePrivateField):
(JSC::VariableEnvironment::declarePrivateMethod):
(JSC::VariableEnvironment::privateNameEnvironment const):
(JSC::VariableEnvironment::hasPrivateMethodOrAccessor const):
(JSC::VariableEnvironment::addPrivateNamesFrom):
(JSC::VariableEnvironmentEntry::isPrivateName const): Deleted.
(JSC::VariableEnvironmentEntry::setIsPrivateName): Deleted.
(JSC::VariableEnvironment::declarePrivateName): Deleted.

  • runtime/CachedTypes.cpp:

(JSC::CachedCodeBlockRareData::encode):
(JSC::CachedCodeBlockRareData::decode const):
(JSC::CachedFunctionExecutableRareData::encode):
(JSC::CachedFunctionExecutableRareData::decode const):
(JSC::CachedFunctionExecutable::privateBrandRequirement const):
(JSC::CachedCodeBlock::derivedContextType const):
(JSC::CachedFunctionExecutable::encode):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::CachedCodeBlock::needsClassFieldInitializer const): Deleted.

  • runtime/CodeCache.cpp:

(JSC::generateUnlinkedCodeBlockImpl):
(JSC::generateUnlinkedCodeBlock):
(JSC::generateUnlinkedCodeBlockForDirectEval):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):

  • runtime/CodeCache.h:
  • runtime/DirectEvalExecutable.cpp:

(JSC::DirectEvalExecutable::create):
(JSC::DirectEvalExecutable::DirectEvalExecutable):

  • runtime/DirectEvalExecutable.h:
  • runtime/EvalExecutable.cpp:

(JSC::EvalExecutable::EvalExecutable):

  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::executableInfo const):
(JSC::EvalExecutable::privateBrandRequirement const):

  • runtime/ExceptionHelpers.cpp:

(JSC::createInvalidPrivateNameError):

  • runtime/IndirectEvalExecutable.cpp:

(JSC::IndirectEvalExecutable::IndirectEvalExecutable):

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::checkPrivateBrand):
(JSC::JSObject::setPrivateBrand):

  • runtime/JSScope.cpp:

(JSC::JSScope::collectClosureVariablesUnderTDZ):

  • runtime/JSScope.h:
  • runtime/ModuleProgramExecutable.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • runtime/ProgramExecutable.h:
  • runtime/Structure.cpp:

(JSC::Structure::materializePropertyTable):
(JSC::BrandedStructure::BrandedStructure):
(JSC::BrandedStructure::create):
(JSC::BrandedStructure::checkBrand):
(JSC::Structure::setBrandTransitionFromExistingStructureImpl):
(JSC::Structure::setBrandTransitionFromExistingStructureConcurrently):
(JSC::Structure::setBrandTransition):

  • runtime/Structure.h:

(JSC::Structure::finishCreation):

  • runtime/StructureInlines.h:

(JSC::Structure::create):
(JSC::Structure::forEachPropertyConcurrently):

  • runtime/StructureTransitionTable.h:
  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::cloneScopePart):

  • runtime/SymbolTable.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
7:03 AM Changeset in webkit [272579] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] canUseForText should also check if the space glyph comes from the primary font
https://bugs.webkit.org/show_bug.cgi?id=221592

Reviewed by Antti Koivisto.

Currently all the glyphs in the content have to come from the primary font, including the space.
(see fast/text/multiple-feature-properties.html)

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForText):

6:56 AM Changeset in webkit [272578] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Remove misleading TextUtil::fixedPitchWidth
https://bugs.webkit.org/show_bug.cgi?id=221581

Reviewed by Antti Koivisto.

Fonts lie about being monospaced. see webkit.org/b/162546

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth): Deleted.

  • layout/inlineformatting/text/TextUtil.h:
6:53 AM Changeset in webkit [272577] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Allow icecream toolchain override in flatpakutils
https://bugs.webkit.org/show_bug.cgi?id=221605

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-02-09
Reviewed by Philippe Normand.

This allows the user to specify a custom icecream toolchain.
Usually you will not want to do this, but it is useful e.g. when
you have a machine in your cluster that does not have a compiler
in the SDK. You can either force the whole version string by using
ICECC_VERSION_OVERRIDE, or append to the original string with
ICECC_VERSION_APPEND.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

6:08 AM Changeset in webkit [272576] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Geolocation API tests are flaky timeout instead of failure

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
6:03 AM Changeset in webkit [272575] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, tvOS build fix after r272573

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition): That ifdef was
updated by mistake in r272573.

5:12 AM Changeset in webkit [272574] by Philippe Normand
  • 16 edits
    4 adds in trunk

[GLib] Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221199

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Expose a new Permission Request object to the public WPE and GTK APIs, allowing the
application to defer the decision of using a given EME MediaKeySystem to the user's
approval.

Covered by new API test.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp: Added.

(webkitMediaKeySystemPermissionRequestAllow):
(webkitMediaKeySystemPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitMediaKeySystemPermissionRequestDispose):
(webkit_media_key_system_permission_request_class_init):
(webkitMediaKeySystemPermissionRequestCreate):
(webkit_media_key_system_permission_get_name):

  • UIProcess/API/glib/WebKitMediaKeySystemPermissionRequestPrivate.h: Added.
  • UIProcess/API/glib/WebKitUIClient.cpp:
  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/gtk/WebKitMediaKeySystemPermissionRequest.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Added.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:

Tools:

Added basic support for MediaKeySystem permission request to the GTK MiniBrowser, and a GLib
API unit-test as well.

  • MiniBrowser/gtk/BrowserTab.c:

(permissionRequestDialogResponse):
(decidePermissionRequest):
(browser_tab_class_init):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewMediaKeySystemPermissionRequests):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::initializeWebView):

4:46 AM Changeset in webkit [272573] by Philippe Normand
  • 38 edits
    19 adds in trunk

Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187

Reviewed by Jer Noble.

Source/WebCore:

Support for user permission requesting when access to an EME MediaKeySystem is being
requested by the page. This is similar to the mediaDevices access guards.

Existing test media/encrypted-media/mock-MediaKeySystemAccess.html was updated to cover this
new code path and WPE/GTK API tests as well.

  • CMakeLists.txt:
  • Headers.cmake:
  • Modules/encryptedmedia/MediaKeySystemClient.h: Added.
  • Modules/encryptedmedia/MediaKeySystemController.cpp: Added.

(WebCore::MediaKeySystemController::supplementName):
(WebCore::MediaKeySystemController::MediaKeySystemController):
(WebCore::MediaKeySystemController::~MediaKeySystemController):
(WebCore::provideMediaKeySystemTo):
(WebCore::MediaKeySystemController::logRequestMediaKeySystemDenial):

  • Modules/encryptedmedia/MediaKeySystemController.h: Added.

(WebCore::MediaKeySystemController::client const):
(WebCore::MediaKeySystemController::from):
(WebCore::MediaKeySystemController::requestMediaKeySystem):
(WebCore::MediaKeySystemController::cancelMediaKeySystemRequest):

  • Modules/encryptedmedia/MediaKeySystemRequest.cpp: Added.

(WebCore::MediaKeySystemRequest::create):
(WebCore::MediaKeySystemRequest::MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::~MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::topLevelDocumentOrigin const):
(WebCore::MediaKeySystemRequest::start):
(WebCore::MediaKeySystemRequest::allow):
(WebCore::MediaKeySystemRequest::deny):
(WebCore::MediaKeySystemRequest::stop):
(WebCore::MediaKeySystemRequest::activeDOMObjectName const):
(WebCore::MediaKeySystemRequest::document const):

  • Modules/encryptedmedia/MediaKeySystemRequest.h: Added.

(WebCore::MediaKeySystemRequest::setAllowCallback):
(WebCore::MediaKeySystemRequest::identifier const):
(WebCore::MediaKeySystemRequest::keySystem const):

  • Modules/encryptedmedia/NavigatorEME.cpp:

(WebCore::NavigatorEME::requestMediaKeySystemAccess):

Source/WebKit:

Add new IPC and C API exposing MediaKeySystem access permissions to the UIProcess. At least
GTK/WPE would like to have API for asking permission to the user when EME's MediaKeyAccess
is being requested by a page. On Apple platforms the permission is granted by default until
a decision is made about supporting this in their APIUIClient.

  • CMakeLists.txt:
  • Headers.cmake:
  • Platform/Logging.h:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • Sources.txt:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::decidePolicyForMediaKeySystemPermissionRequest):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKMediaKeySystemPermissionCallback.cpp: Added.

(WKMediaKeySystemPermissionCallbackGetTypeID):
(WKMediaKeySystemPermissionCallbackComplete):

  • UIProcess/API/C/WKMediaKeySystemPermissionCallback.h: Added.
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/MediaKeySystemPermissionRequest.h: Added.

(WebKit::MediaKeySystemPermissionRequest::create):
(WebKit::MediaKeySystemPermissionRequest::complete):
(WebKit::MediaKeySystemPermissionRequest::keySystem const):
(WebKit::MediaKeySystemPermissionRequest::MediaKeySystemPermissionRequest):
(WebKit::MediaKeySystemPermissionCallback::create):
(WebKit::MediaKeySystemPermissionCallback::complete):
(WebKit::MediaKeySystemPermissionCallback::MediaKeySystemPermissionCallback):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp: Added.

(WebKit::MediaKeySystemPermissionRequestManagerProxy::MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::~MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logChannel const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logger const):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h: Added.

(WebKit::MediaKeySystemPermissionRequestManagerProxy::page const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):

  • UIProcess/MediaKeySystemPermissionRequestProxy.cpp: Added.

(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):
(WebKit::MediaKeySystemPermissionRequestProxy::allow):
(WebKit::MediaKeySystemPermissionRequestProxy::deny):
(WebKit::MediaKeySystemPermissionRequestProxy::invalidate):
(WebKit::MediaKeySystemPermissionRequestProxy::doDefaultAction):

  • UIProcess/MediaKeySystemPermissionRequestProxy.h: Added.

(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::isPending const):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):
(WebKit::MediaKeySystemPermissionRequestProxy::mainFrameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::frameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin const):
(WebKit::MediaKeySystemPermissionRequestProxy::keySystem const):

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

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):
(WebKit::WebPageProxy::mediaKeySystemPermissionRequestManager):
(WebKit::WebPageProxy::requestMediaKeySystemPermissionByDefaultAction):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp: Added.

(WebKit::MediaKeySystemPermissionRequestManager::MediaKeySystemPermissionRequestManager):
(WebKit::MediaKeySystemPermissionRequestManager::startMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::cancelMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):

  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h: Added.
  • WebProcess/WebCoreSupport/WebMediaKeySystemClient.cpp: Added.

(WebKit::WebMediaKeySystemClient::WebMediaKeySystemClient):
(WebKit::WebMediaKeySystemClient::pageDestroyed):
(WebKit::WebMediaKeySystemClient::requestMediaKeySystem):
(WebKit::WebMediaKeySystemClient::cancelMediaKeySystemRequest):

  • WebProcess/WebCoreSupport/WebMediaKeySystemClient.h: Added.

(WebKit::WebMediaKeySystemClient::~WebMediaKeySystemClient):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::mediaKeySystemPermissionRequestManager):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add support for setting the permission request response from the TestRunner, for usage within layout tests.

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

(WTR::TestRunner::setIsMediaKeySystemPermissionGranted):

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

(WTR::decidePolicyForMediaKeySystemPermissionRequest):
(WTR::TestController::completeMediaKeySystemPermissionCheck):
(WTR::TestController::setIsMediaKeySystemPermissionGranted):
(WTR::TestController::createWebViewWithOptions):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Add basic coverage support for overriding the MediaKeySystem permission answer and thus have
the promise rejection tested in this case.

  • media/encrypted-media/mock-MediaKeySystemAccess-expected.txt:
  • media/encrypted-media/mock-MediaKeySystemAccess.html:
2:34 AM Changeset in webkit [272572] by Manuel Rego Casasnovas
  • 6 edits
    5 adds in trunk

Allow sending modifier keys in test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221466

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Created new test that checks that modifier keys can be sent by test_driver.send_keys()
and properly handled on "keydown" event.

  • web-platform-tests/resources/testdriver-vendor.js: Add modifier keys' codes.
  • web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Added.
  • web-platform-tests/uievents/keyboard/modifier-keys.html: Added.

Tools:

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::getGDKKeySymForKeyRef): Add support for meta key.

LayoutTests:

Add specific -expected.txt file for Mac platform. Meta key is detected differently than in other platforms,
also event.ctrlKey and other are not being set from the test (they work fine when checking that manually).

  • platform/ios/TestExpectations: Skip test as it's timing out in iOS.
  • platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Added.
2:30 AM Changeset in webkit [272571] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Rename XRWebGLLayer m_IscompositionDisabled to m_IscompositionEnabled
https://bugs.webkit.org/show_bug.cgi?id=221599

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

The spec agreed to rename this to avoid double negations in code.
See https://github.com/immersive-web/webxr/pull/1172.

  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):

  • Modules/webxr/WebXRWebGLLayer.h:
2:02 AM Changeset in webkit [272570] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Make JSON.parse faster by using table for fast string parsing
https://bugs.webkit.org/show_bug.cgi?id=221593

Reviewed by Ryosuke Niwa and Geoffrey Garen.

We use Latin1 table for quickly checking whether a character is safe for the fast path string parsing in JSON.
This offers 1-3% improvement in Kraken json-parse-financial test.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::isSafeStringCharacter):
(JSC::LiteralParser<CharType>::Lexer::lexString):

  • runtime/LiteralParser.h:

Feb 8, 2021:

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

Make auto && <ratio> use content box-sizing
https://bugs.webkit.org/show_bug.cgi?id=221527

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

Source/WebCore:

Make auto && <ratio> aspect-ratio use content box-sizing as specified:
https://drafts.csswg.org/css-sizing-4/#valdef-aspect-ratio-auto--ratio

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const):
(WebCore::RenderBox::computeMinMaxLogicalWidthFromAspectRatio const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::boxSizingForAspectRatio const):

LayoutTests:

Enable some tests that pass now.

10:51 PM Changeset in webkit [272568] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Move layout_test_runner.Worker._update_test_input to LayoutTestRunner
https://bugs.webkit.org/show_bug.cgi?id=221577

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-08
Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:

(LayoutTestRunner.run_tests):
(LayoutTestRunner._update_test_input):
(Worker.handle):
(Worker._run_test):
(Worker._update_test_input): Deleted.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._run_tests):

9:37 PM Changeset in webkit [272567] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r269458): yahoo.com social / comments bar shows as transparent when scrolling page
https://bugs.webkit.org/show_bug.cgi?id=221582
Source/WebCore:

<rdar://problem/73795359>

Reviewed by Tim Horton.

Fix some copypasta in r269458 that resulted in scrolling state fixed nodes failing to get
the right dirty bits after attach, resulting bad viewport constraint data.

Test: scrollingcoordinator/fixed-node-reattach.html

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::applicableProperties const):

LayoutTests:

Reviewed by Tim Horton.

  • scrollingcoordinator/fixed-node-reattach-expected.html: Added.
  • scrollingcoordinator/fixed-node-reattach.html: Added.
7:30 PM Changeset in webkit [272566] by Patrick Angle
  • 10 edits
    2 adds in trunk

Web Inspector: Add CSS.setLayoutContextTypeChangedMode for getting information about all layout contexts
https://bugs.webkit.org/show_bug.cgi?id=221449

Source/JavaScriptCore:

Reviewed by Devin Rousso.

Added CSS.setLayoutContextTypeChangedMode command and CSS.LayoutContextTypeChangedMode enum for controlling
if the frontend should be informed of all layout context type changes, or if only currently instrumented nodes
should be observed.

  • inspector/protocol/CSS.json:

Source/WebCore:

Reviewed by Devin Rousso.

Test: inspector/css/setLayoutContextTypeChangedMode.html

Backend support for changing the LayoutContextTypeChangedMode.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::pushChildrenNodesToFrontendIfLayoutContextTypePresent):

  • Recursively pushes children node paths to the frontend if a LayoutContextType exists for the node, which

allows the frontend to have a complete picture of the layout contexts in the document.
(WebCore::InspectorCSSAgent::setLayoutContextTypeChangedMode):

  • If the mode is changed to All, then make sure any node with a LayoutContextType inside any document is

sent to the frontend.
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):

  • If the LayoutContextTypeChangedMode is All, inform the frontend of the node when it changes layout

context, even if the node was not previously instrumented.

  • inspector/agents/InspectorCSSAgent.h:

Source/WebInspectorUI:

Reviewed by Devin Rousso.

  • UserInterface/Controllers/CSSManager.js:
  • Added CSS.LayoutContextTypeChangedMode enum values.

(WI.CSSManager.prototype.set layoutContextTypeChangedMode):

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.nodesWithLayoutContextType):

  • Added ability to get all instrumented nodes of a specific layout context type.
  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.detached):

  • Change the LayoutContextTypeChangedMode when showing/hiding the Layout panel.

LayoutTests:

Reviewed by Devin Rousso

Added layout tests for CSS.setLayoutContextTypeChangedMode command.

  • inspector/css/setLayoutContextTypeChangedMode-expected.txt: Added.
  • inspector/css/setLayoutContextTypeChangedMode.html: Added.
6:47 PM Changeset in webkit [272565] by Stephanie Lewis
  • 2 edits in trunk/Tools

<rdar://problem/70402593> Motionmark failed to start webserver

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder.py:

(BenchmarkBuilder.enter):

6:17 PM Changeset in webkit [272564] by commit-queue@webkit.org
  • 16 edits
    4 deletes in trunk

Unreviewed, reverting r272485.
https://bugs.webkit.org/show_bug.cgi?id=221588

Required revisions were reversed

Reverted changeset:

"[GLib] Permission request API for MediaKeySystem access
support"
https://bugs.webkit.org/show_bug.cgi?id=221199
https://trac.webkit.org/changeset/272485

5:47 PM Changeset in webkit [272563] by eric.carlson@apple.com
  • 2 edits in trunk/Tools

[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>

Unreviewed build fix for macOS Catalina.

  • TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:

(TestWebKitAPI::TEST_F): Add compile guards for Catalina.

5:45 PM Changeset in webkit [272562] by don.olmstead@sony.com
  • 7 edits in trunk/Source/WebCore

[CMake] Cleanup ENABLE_ENCRYPTED_MEDIA build
https://bugs.webkit.org/show_bug.cgi?id=221578

Reviewed by Michael Catanzaro.

Move missing shared files in platform/encryptedmedia to the Sources.txt. Update the XCode
project to reflect them moving to the unified build.

Move common configuration into the root CMakeLists.txt. Cleanup the related platform CMake
code to reflect the updated build.

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/GStreamer.cmake:
  • platform/gamepad/mac/HIDGamepad.cpp: Unrelated unified build fix
4:43 PM Changeset in webkit [272561] by commit-queue@webkit.org
  • 40 edits
    17 deletes in trunk

Unreviewed, reverting r272480, r272481, and r272500.
https://bugs.webkit.org/show_bug.cgi?id=221586

Caused assertion failure seen with EME tests

Reverted changesets:

"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272480

"Unreviewed, build fix after r272480"
https://trac.webkit.org/changeset/272481

"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272500

4:32 PM Changeset in webkit [272560] by aakash_jain@apple.com
  • 1 edit
    2 adds in trunk/Tools

[build.webkit.org] Add HTML file that translates a builder name and number pair to a valid Buildbot URL
https://bugs.webkit.org/show_bug.cgi?id=221579

Reviewed by Ryosuke Niwa.

  • CISupport/build-webkit-org/public_html/builders: Added.
  • CISupport/build-webkit-org/public_html/builders/index.html: Added.
4:32 PM Changeset in webkit [272559] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash with remote layer tree logging
https://bugs.webkit.org/show_bug.cgi?id=221580

Reviewed by Tim Horton.

Null-check animation.timingFunction when dumping remote layer tree animations.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::operator<<):

4:22 PM Changeset in webkit [272558] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebKit

Use CompletionHandler instead of BoolCallback
https://bugs.webkit.org/show_bug.cgi?id=221575
<rdar://problem/74058604>

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

This makes the code more modern, and it makes our fuzzers better at reasoning what the boolean value is going to be used for.
It should also fix a rare crash involving BoolCallback by completely removing it.

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

(WebKit::WebPageProxy::handlePreventableTouchEvent):
(WebKit::WebPageProxy::handleUnpreventableTouchEvent):
(WebKit::WebPageProxy::boolCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::touchEventWithoutCallback):
(WebKit::EventDispatcher::touchEvent):
(WebKit::EventDispatcher::dispatchTouchEvents):

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

(WebKit::WebPage::touchEventSync):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dispatchAsynchronousTouchEvents):
(WebKit::WebPage::cancelAsynchronousTouchEvents):

3:53 PM Changeset in webkit [272557] by don.olmstead@sony.com
  • 3 edits in trunk/Source/WebCore

Fix MSVC build with ENCRYPTED_MEDIA enabled
https://bugs.webkit.org/show_bug.cgi?id=177803
<rdar://problem/34920322>

Reviewed by Alex Christensen.

MSVC has a bug of a outer lambda's captured this can't be used as
a lambda capture initializer of an inner lambda.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMInstanceSessionClearKey::requestLicense):
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):

3:37 PM Changeset in webkit [272556] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Make getStartEndListChildren check renderers
https://bugs.webkit.org/show_bug.cgi?id=221388

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-08
Reviewed by Alex Christensen.

Source/WebCore:

Require the list to have non-null renderers for start
and end.

Test: editing/execCommand/insert-nested-lists-crash.html

  • editing/ModifySelectionListLevel.cpp:

(WebCore::getStartEndListChildren):

LayoutTests:

Add test for this.

  • editing/execCommand/insert-nested-lists-crash-expected.txt: Added.
  • editing/execCommand/insert-nested-lists-crash.html: Added.
3:34 PM Changeset in webkit [272555] by Russell Epstein
  • 2 edits in branches/safari-612.1.3-branch/Source/WebKitLegacy/mac

Cherry-pick r272500. rdar://problem/74116538

Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187

Unreviewed build fix for macCatalyst.

  • WebCoreSupport/WebMediaKeySystemClient.h: Add a check for ENABLE(ENCRYPTED_MEDIA).

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

3:21 PM Changeset in webkit [272554] by Alan Coon
  • 1 copy in tags/Safari-611.1.15

Tag Safari-611.1.15.

3:13 PM Changeset in webkit [272553] by Russell Epstein
  • 8 edits in branches/safari-612.1.3-branch/Source

Versioning.

WebKit-7612.1.3

3:10 PM Changeset in webkit [272552] by Russell Epstein
  • 1 copy in branches/safari-612.1.3-branch

New branch.

3:06 PM Changeset in webkit [272551] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.4

2:55 PM Changeset in webkit [272550] by beidson@apple.com
  • 19 edits in trunk/Source

Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503

Reviewed by Alex Christensen.
Source/WebCore:

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:

Source/WebKit:

Normal Pages always have a UserContentProvider, even if they just create an empty default one.

Same should be true for ServiceWorkers.

  • Shared/ServiceWorkerInitializationData.cpp:

(WebKit::ServiceWorkerInitializationData::decode):

  • Shared/ServiceWorkerInitializationData.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers):
(WebKit::WebProcessPool::createWebPage):

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

(WebKit::WebProcessProxy::enableServiceWorkers):

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

(WebKit::m_userContentController):
(WebKit::m_userAgent): Deleted.

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

2:23 PM Changeset in webkit [272549] by Said Abou-Hallawa
  • 6 edits in trunk

A Pattern with an SVG image is not rendered correctly
https://bugs.webkit.org/show_bug.cgi?id=221550

Reviewed by Simon Fraser.

Source/WebCore:

Implement SVGImage::nativeImage() and nativeImageForCurrentFrame() for
all platforms. This will make Pattern::createPlatformPattern() creates
CGPatternRef with a valid CGImageRef.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):

  • svg/graphics/SVGImage.h:

LayoutTests:

  • imported/blink/svg/canvas/canvas-draw-pattern-size-expected.html:

Change the expected result to not use the pattern in its drawing.

  • imported/blink/svg/canvas/canvas-draw-pattern-size.html:

Use a rectangle instead of a circle to avoid differences with the expected
result due to the edge smoothing.

2:04 PM Changeset in webkit [272548] by Jonathan Bedard
  • 126 edits
    1 move
    61 adds
    58 deletes in trunk/LayoutTests

[LayoutTests] Convert xmlhttprequest php to Python
https://bugs.webkit.org/show_bug.cgi?id=220995
<rdar://problem/73630008>

Reviewed by Alex Christensen.

  • http/tests/local/formdata/resources/send-form-data-common.js:

(sendFormData):

  • http/tests/local/formdata/send-form-data-constructed-from-form-expected.txt:
  • http/tests/local/formdata/send-form-data-constructed-from-form-using-open-panel-expected.txt:
  • http/tests/local/formdata/send-form-data-constructed-from-form-using-open-panel.html:
  • http/tests/local/formdata/send-form-data-constructed-from-form.html:
  • http/tests/local/formdata/send-form-data-with-empty-blob-filename.html:
  • http/tests/local/formdata/send-form-data-with-empty-file-filename-using-open-panel.html:
  • http/tests/local/formdata/send-form-data-with-empty-file-filename.html:
  • http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
  • http/tests/resources/init.py: Added.
  • http/tests/resources/portabilityLayer.py: Added.

(setState):
(getState):

  • http/tests/resources/reset-temp-file.py: Added.
  • http/tests/xmlhttprequest/XMLHttpRequestException.html:
  • http/tests/xmlhttprequest/abort-should-cancel-load-expected.txt:
  • http/tests/xmlhttprequest/abort-should-cancel-load.html:
  • http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async.html:
  • http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-header.html:
  • http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html:
  • http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-timeout.html:
  • http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html:
  • http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-header-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-not-supported.html:
  • http/tests/xmlhttprequest/access-control-preflight-credential-async.html:
  • http/tests/xmlhttprequest/access-control-preflight-credential-sync.html:
  • http/tests/xmlhttprequest/access-control-preflight-headers-async.html:
  • http/tests/xmlhttprequest/access-control-preflight-headers-sync.html:
  • http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-not-successful.html:
  • http/tests/xmlhttprequest/access-control-preflight-request-header-lowercase.html:
  • http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-header-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-method-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-not-supported.html:
  • http/tests/xmlhttprequest/access-control-response-with-body-sync.html:
  • http/tests/xmlhttprequest/access-control-response-with-body.html:
  • http/tests/xmlhttprequest/access-control-response-with-expose-headers.html:
  • http/tests/xmlhttprequest/auth-reject-protection-space.html:
  • http/tests/xmlhttprequest/authorization-header.html:
  • http/tests/xmlhttprequest/basic-auth-credentials-escaping.html:
  • http/tests/xmlhttprequest/basic-auth-default.html:
  • http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html:
  • http/tests/xmlhttprequest/basic-auth-nopassword.html:
  • http/tests/xmlhttprequest/basic-auth-nouser.html:
  • http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt:
  • http/tests/xmlhttprequest/basic-auth-responseURL.html:
  • http/tests/xmlhttprequest/basic-auth.html:
  • http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:
  • http/tests/xmlhttprequest/connection-error-sync.html:
  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html:
  • http/tests/xmlhttprequest/cross-origin-authorization-with-embedder.html:
  • http/tests/xmlhttprequest/cross-origin-authorization.html:
  • http/tests/xmlhttprequest/cross-origin-cookie-storage.html:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization.html:
  • http/tests/xmlhttprequest/cross-origin-no-credential-prompt-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-credential-prompt.html:
  • http/tests/xmlhttprequest/cross-origin-preflight-get.html:
  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:
  • http/tests/xmlhttprequest/detaching-frame-2.html:
  • http/tests/xmlhttprequest/digest-auth.html:
  • http/tests/xmlhttprequest/failed-auth-expected.txt:
  • http/tests/xmlhttprequest/failed-auth.html:
  • http/tests/xmlhttprequest/gzip-content-type.html:
  • http/tests/xmlhttprequest/head-redirection.html:
  • http/tests/xmlhttprequest/logout.html:
  • http/tests/xmlhttprequest/navigation-should-abort.html:
  • http/tests/xmlhttprequest/null-auth.php: Removed.
  • http/tests/xmlhttprequest/null-auth.py: Added.
  • http/tests/xmlhttprequest/onabort-event.html:
  • http/tests/xmlhttprequest/onabort-progressevent-attributes.html:
  • http/tests/xmlhttprequest/onloadend-event-after-error.html:
  • http/tests/xmlhttprequest/onloadend-event-after-sync-requests.html:
  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html:
  • http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
  • http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
  • http/tests/xmlhttprequest/post-blob-content-type-tests.js:
  • http/tests/xmlhttprequest/re-login-async.html:
  • http/tests/xmlhttprequest/re-login.html:
  • http/tests/xmlhttprequest/redirect-cors-origin-null.html:
  • http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt:
  • http/tests/xmlhttprequest/redirect-credentials-responseURL.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html:
  • http/tests/xmlhttprequest/redirections-and-user-headers.html:
  • http/tests/xmlhttprequest/remember-bad-password-expected.txt:
  • http/tests/xmlhttprequest/remember-bad-password.html:
  • http/tests/xmlhttprequest/resources/access-control-allow-lists.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-allow-lists.py: Added.
  • http/tests/xmlhttprequest/resources/access-control-allow-with-body.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-allow-with-body.py: Added.
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.py: Added.

(fail):

  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.py: Added.

(fail):

  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.py: Added.

(fail):

  • http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.py: Added.

(fail):

  • http/tests/xmlhttprequest/resources/access-control-preflight-redirect.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-preflight-redirect.py: Added.
  • http/tests/xmlhttprequest/resources/access-control-preflight-request-header-lowercase.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-preflight-request-header-lowercase.py: Added.
  • http/tests/xmlhttprequest/resources/access-control-response-with-expose-headers.php: Removed.
  • http/tests/xmlhttprequest/resources/access-control-response-with-expose-headers.py: Added.
  • http/tests/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php: Removed.
  • http/tests/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.py: Added.
  • http/tests/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php: Removed.
  • http/tests/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.py: Added.
  • http/tests/xmlhttprequest/resources/basic-auth-default/dir2/catch.php: Removed.
  • http/tests/xmlhttprequest/resources/basic-auth-default/dir2/catch.py: Added.
  • http/tests/xmlhttprequest/resources/basic-auth-nouserpass/basic-auth-nouserpass.php: Removed.
  • http/tests/xmlhttprequest/resources/basic-auth-nouserpass/basic-auth-nouserpass.py: Added.
  • http/tests/xmlhttprequest/resources/basic-auth/access-control-auth-basic.php: Removed.
  • http/tests/xmlhttprequest/resources/basic-auth/access-control-auth-basic.py: Added.
  • http/tests/xmlhttprequest/resources/basic-auth/basic-auth.php: Removed.
  • http/tests/xmlhttprequest/resources/basic-auth/basic-auth.py: Added.
  • http/tests/xmlhttprequest/resources/big-response.php: Removed.
  • http/tests/xmlhttprequest/resources/big-response.py: Added.
  • http/tests/xmlhttprequest/resources/chunked-transfer.php: Removed.
  • http/tests/xmlhttprequest/resources/chunked-transfer.py: Added.
  • http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.php: Removed.
  • http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.py: Added.
  • http/tests/xmlhttprequest/resources/cross-origin-authorization.php: Removed.
  • http/tests/xmlhttprequest/resources/cross-origin-authorization.py: Added.
  • http/tests/xmlhttprequest/resources/cross-origin-check-cookies.php: Removed.
  • http/tests/xmlhttprequest/resources/cross-origin-check-cookies.py: Added.
  • http/tests/xmlhttprequest/resources/cross-origin-no-authorization.php: Removed.
  • http/tests/xmlhttprequest/resources/cross-origin-no-authorization.py: Added.
  • http/tests/xmlhttprequest/resources/cross-origin-preflight-get.php: Removed.
  • http/tests/xmlhttprequest/resources/cross-origin-preflight-get.py: Added.
  • http/tests/xmlhttprequest/resources/cross-origin-preset-authorization-frame.html:
  • http/tests/xmlhttprequest/resources/cross-origin-set-cookies.php: Removed.
  • http/tests/xmlhttprequest/resources/cross-origin-set-cookies.py: Added.
  • http/tests/xmlhttprequest/resources/custom-headers.php: Removed.
  • http/tests/xmlhttprequest/resources/custom-headers.py: Added.
  • http/tests/xmlhttprequest/resources/download-header-with-delay.php: Removed.
  • http/tests/xmlhttprequest/resources/download-header-with-delay.py: Added.
  • http/tests/xmlhttprequest/resources/download-with-delay.php: Removed.
  • http/tests/xmlhttprequest/resources/download-with-delay.py: Added.
  • http/tests/xmlhttprequest/resources/echo-auth.php: Removed.
  • http/tests/xmlhttprequest/resources/echo-auth.py: Added.
  • http/tests/xmlhttprequest/resources/echo-host.php: Removed.
  • http/tests/xmlhttprequest/resources/echo-host.py: Added.
  • http/tests/xmlhttprequest/resources/echo-request-method.php: Removed.
  • http/tests/xmlhttprequest/resources/echo-request-method.py: Added.
  • http/tests/xmlhttprequest/resources/echo-user-agent.php: Removed.
  • http/tests/xmlhttprequest/resources/echo-user-agent.py: Added.
  • http/tests/xmlhttprequest/resources/empty-content-type.php: Removed.
  • http/tests/xmlhttprequest/resources/empty-content-type.py: Added.
  • http/tests/xmlhttprequest/resources/endlessxml.php: Removed.
  • http/tests/xmlhttprequest/resources/endlessxml.py: Added.
  • http/tests/xmlhttprequest/resources/frame-load-to-cancel.html:
  • http/tests/xmlhttprequest/resources/get-content.php: Removed.
  • http/tests/xmlhttprequest/resources/get-content.py: Added.
  • http/tests/xmlhttprequest/resources/get_method.php: Removed.
  • http/tests/xmlhttprequest/resources/get_method.py: Added.
  • http/tests/xmlhttprequest/resources/gzip-lorem.php: Removed.
  • http/tests/xmlhttprequest/resources/gzip-lorem.py: Added.
  • http/tests/xmlhttprequest/resources/headers.php: Removed.
  • http/tests/xmlhttprequest/resources/headers.py: Added.
  • http/tests/xmlhttprequest/resources/infinite-loop.php: Removed.
  • http/tests/xmlhttprequest/resources/infinite-loop.py: Added.
  • http/tests/xmlhttprequest/resources/logout/resource.php: Removed.
  • http/tests/xmlhttprequest/resources/logout/resource.py: Added.
  • http/tests/xmlhttprequest/resources/multipart-post-echo-filenames.php: Removed.
  • http/tests/xmlhttprequest/resources/multipart-post-echo-filenames.py: Added.
  • http/tests/xmlhttprequest/resources/multipart-post-echo.php: Removed.
  • http/tests/xmlhttprequest/resources/multipart-post-echo.py: Added.
  • http/tests/xmlhttprequest/resources/no-authenticate-header-401.php: Removed.
  • http/tests/xmlhttprequest/resources/no-authenticate-header-401.py: Added.
  • http/tests/xmlhttprequest/resources/no-custom-header.php: Removed.
  • http/tests/xmlhttprequest/resources/no-custom-header.py: Added.
  • http/tests/xmlhttprequest/resources/not-ascii-status.php: Removed.
  • http/tests/xmlhttprequest/resources/not-ascii-status.py: Added.
  • http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html:
  • http/tests/xmlhttprequest/resources/print-headers.php: Removed.
  • http/tests/xmlhttprequest/resources/print-headers.py: Added.
  • http/tests/xmlhttprequest/resources/print-referer.php: Removed.
  • http/tests/xmlhttprequest/resources/print-referer.py: Added.
  • http/tests/xmlhttprequest/resources/re-login/resource.php: Removed.
  • http/tests/xmlhttprequest/resources/re-login/resource.py: Added.
  • http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.php: Removed.
  • http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.py: Added.
  • http/tests/xmlhttprequest/resources/redirect-cors-origin-null.php: Removed.
  • http/tests/xmlhttprequest/resources/redirect-cors-origin-null.py: Added.
  • http/tests/xmlhttprequest/resources/redirect-cors.php: Removed.
  • http/tests/xmlhttprequest/resources/redirect-cors.py: Added.
  • http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.php: Removed.
  • http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.py: Added.
  • http/tests/xmlhttprequest/resources/redirect_methods.php: Removed.
  • http/tests/xmlhttprequest/resources/redirect_methods.py: Added.
  • http/tests/xmlhttprequest/resources/remember-bad-password/count-failures.php: Removed.
  • http/tests/xmlhttprequest/resources/remember-bad-password/count-failures.py: Added.
  • http/tests/xmlhttprequest/resources/status-404-without-body.php: Removed.
  • http/tests/xmlhttprequest/resources/status-404-without-body.py: Added.
  • http/tests/xmlhttprequest/resources/url-with-credentials/authenticate.php: Removed.
  • http/tests/xmlhttprequest/resources/url-with-credentials/authenticate.py: Added.
  • http/tests/xmlhttprequest/resources/url-with-credentials/authorize.php: Removed.
  • http/tests/xmlhttprequest/resources/url-with-credentials/authorize.py: Added.
  • http/tests/xmlhttprequest/resources/xmlhttprequest-in-unload.html:
  • http/tests/xmlhttprequest/resources/xmlhttprequest-mimetype-mixed-case.php: Removed.
  • http/tests/xmlhttprequest/resources/xmlhttprequest-mimetype-mixed-case.py: Added.
  • http/tests/xmlhttprequest/response-access-on-error.html:
  • http/tests/xmlhttprequest/response-special-characters.html:
  • http/tests/xmlhttprequest/simple-sync.html:
  • http/tests/xmlhttprequest/unauthorized-without-authenticate-header.html:
  • http/tests/xmlhttprequest/url-with-credentials.html:
  • http/tests/xmlhttprequest/workers/resources/endless-response.php: Removed.
  • http/tests/xmlhttprequest/workers/resources/endless-response.py: Added.
  • http/tests/xmlhttprequest/workers/resources/endless-sync-xhr.js:
  • http/tests/xmlhttprequest/xhr-user-agent.html:
  • http/tests/xmlhttprequest/xmlhttprequest-50ms-download-dispatch.html:
  • http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldDispatchEvent.html:
  • http/tests/xmlhttprequest/xmlhttprequest-check-get-readystate-for-404-without-body.html:
  • http/tests/xmlhttprequest/xmlhttprequest-contenttype-empty.html:
  • http/tests/xmlhttprequest/xmlhttprequest-mimetype-mixed-case.html:
  • http/tests/xmlhttprequest/xmlhttprequest-onProgress-open-should-zero-length.html:
  • http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
  • http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
  • http/tests/xmlhttprequest/xmlhttprequest-responseURL.html:
  • http/tests/xmlhttprequest/xmlhttprequest-sync-no-timers.html:
  • http/tests/xmlhttprequest/xmlhttprequest-test-custom-headers.html:
  • http/tests/xmlhttprequest/xmlhttprequest-test-send-flag.html:
  • imported/blink/http/tests/security/mixedContent/resources/frame-with-insecure-sync-xhr-post.html:
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
  • platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • platform/win/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • platform/win/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
1:46 PM Changeset in webkit [272547] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>

Unreviewed, fix the NowPlayingInfo encoder after r272445.

  • platform/audio/NowPlayingInfo.h:

(WebCore::NowPlayingInfo::encode const): Update the encoder for new fields added.

1:40 PM Changeset in webkit [272546] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Prevent WebProcess to re-enter on sync IPC to the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=221566
<rdar://problem/74108466>

Reviewed by Ryosuke Niwa.

Prevent WebProcess to re-enter on sync IPC to the GPUProcess, similarly to what we already
do for sync IPC to other processes (Network, UI).

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):

1:26 PM Changeset in webkit [272545] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Tentative build fix for WPE/GTK after r272504.

Somehow r272504 went green in gtk/wpe EWS but failed in post commit
bots.

Remove the WebCore prefix to follow the include scheme used in other
mediastream module files.

  • Modules/mediastream/STUNMessageParsing.cpp:
1:25 PM Changeset in webkit [272544] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[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:
1:24 PM Changeset in webkit [272543] by Alan Coon
  • 3 edits
    1 add in branches/safari-611-branch

Cherry-pick r271570. rdar://problem/74105714

[JSC] GenericArguments<Type>::defineOwnProperty's assumption about error is not correct
https://bugs.webkit.org/show_bug.cgi?id=220693
<rdar://problem/72929171>

Reviewed by Mark Lam.

JSTests:

  • stress/freeze-invokes-out-of-memory.js: Added. (shouldThrow):

Source/JavaScriptCore:

Any function taking JSGlobalObject* can cause out-of-memory error potentially. And we have a way to invoke it.
But GenericArguments<Type>::defineOwnProperty didn't assume OutOfMemory error. This patch fixes it.

  • runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::defineOwnProperty):

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

1:24 PM Changeset in webkit [272542] by Alan Coon
  • 4 edits in branches/safari-611-branch

Cherry-pick r270664. rdar://problem/74105714

Align DefineOwnProperty method of mapped arguments object with the spec
https://bugs.webkit.org/show_bug.cgi?id=219750

Reviewed by Yusuke Suzuki.

JSTests:

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

Source/JavaScriptCore:

This patch reimplements DefineOwnProperty method to resemble the spec [1] as
closely as possible, aligning JSC with V8 and SpiderMonkey on remaining test262 cases.

Unlike the spec [2], JSC doesn't materialize mapped indices with initial values,
so putDirectIndex() is performed on the first call to handle incomplete descriptors.

Even though there is a possibility to avoid JSObject storage puts for a handful of
super rare descriptors, it's not worth the increased complexity.

[1]: https://tc39.es/ecma262/#sec-arguments-exotic-objects-defineownproperty-p-desc
[2]: https://tc39.es/ecma262/#sec-createmappedargumentsobject (step 15.b)

  • runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::defineOwnProperty):

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

1:24 PM Changeset in webkit [272541] by Alan Coon
  • 46 edits in branches/safari-611-branch

Cherry-pick r272345. rdar://problem/74032500

[WebAuthn] Allow one user gesture free prompt for each navigation
https://bugs.webkit.org/show_bug.cgi?id=220897
<rdar://problem/73541303>

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::resetUserGestureRequirement):
  • Modules/webauthn/AuthenticatorCoordinator.h:
  • Modules/webauthn/AuthenticatorCoordinatorClient.h:
  • page/Quirks.cpp:
  • page/Quirks.cpp.h:
  • replay/UserInputBridge.cpp: (WebCore::UserInputBridge::loadRequest): (WebCore::UserInputBridge::reloadFrame): Adds the ability to reset the user gesture requirement flag for user initiated reloads and quirks.

Source/WebKit:

This is a quirk that only allows certain websites.

Covered by existing tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::filterTransports const): (WebKit::AuthenticatorManager::runPanel): (WebKit::AuthenticatorManager::runPresenter): Cancel the whole WebAuthn operation if no user gesture is indicated.
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::makeCredential): (WebKit::WebAuthenticatorCoordinator::getAssertion):
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: Set a boolean to indicate a free coupon for each navigation.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/ctap-hid-failure.https-expected.txt:
  • http/wpt/webauthn/ctap-hid-success.https-expected.txt:
  • http/wpt/webauthn/ctap-nfc-failure.https-expected.txt:
  • http/wpt/webauthn/idl.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:

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

1:24 PM Changeset in webkit [272540] by Alan Coon
  • 21 edits in branches/safari-611-branch

Cherry-pick r272184. rdar://problem/74032500

[WebAuthn] Optimize _WKWebAuthenticationPanelDelegate for native API
https://bugs.webkit.org/show_bug.cgi?id=221125
<rdar://problem/71509141>

Reviewed by Brent Fulgham.

Source/WebKit:

This patch mainly does the following few things:

  1. It connects the new SPI with the existing mock testing infrastructure such that we can mock test it.
  2. It adds a new mode in AuthenticatorManager to connect it to the new _WKWebAuthenticationPanelDelegate object.
  3. It adss a new SPI to _WKWebAuthenticationPanelDelegate: -[panel:requestLAContextForUserVerificationWithCompletionHandler:], and adds a new method within _WKWebAuthenticationAssertionResponse to accept an LAContext from the caller to unlock the keychain.
  4. It enables -[_WKWebAuthenticationPanel cancel] to use the new cancel method.

Covered by API tests.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.h: Accepts a LAContext object.
  • UIProcess/API/APIWebAuthenticationPanel.cpp: (API::WebAuthenticationPanel::WebAuthenticationPanel): (API::WebAuthenticationPanel::handleRequest): (API::WebAuthenticationPanel::cancel const): (API::WebAuthenticationPanel::setMockConfiguration):
  • UIProcess/API/APIWebAuthenticationPanel.h:
  • UIProcess/API/APIWebAuthenticationPanelClient.h: (API::WebAuthenticationPanelClient::requestLAContextForUserVerification const): Adds new SPI and mocking.
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm: (-[_WKWebAuthenticationAssertionResponse setLAContext:]): Accepts a LAContext object.
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (-[_WKWebAuthenticationPanel setMockConfiguration:]):
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h: Adds new SPI and mocking.
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::handleRequest): (WebKit::AuthenticatorManager::enableModernWebAuthentication): (WebKit::AuthenticatorManager::enableNativeSupport): (WebKit::AuthenticatorManager::authenticatorAdded): (WebKit::AuthenticatorManager::requestLAContextForUserVerification): (WebKit::AuthenticatorManager::runPresenter): (WebKit::AuthenticatorManager::dispatchPanelClientCall const):
  • UIProcess/WebAuthentication/AuthenticatorManager.h: Adds a new mode to power the native API.
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: (WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient): (WebKit::WebAuthenticationPanelClient::requestLAContextForUserVerification const): Accepts a LAContext object.
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: (WebKit::MockLocalConnection::verifyUser): Adds new mocking functions.
  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h: Adds the new weak panel.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]): (-[TestWebAuthenticationPanelDelegate panel:requestLAContextForUserVerificationWithCompletionHandler:]): (TestWebKitAPI::WebCore::reset): (TestWebKitAPI::TEST):

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

1:24 PM Changeset in webkit [272539] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r271767. rdar://problem/74105427

Obj-C API should do correct type checks when using a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=220880
<rdar://72370334>

Reviewed by Tadeu Zagallo.

  • API/JSValue.mm: (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]):

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

1:24 PM Changeset in webkit [272538] by Alan Coon
  • 6 edits in branches/safari-611-branch

Cherry-pick r270665. rdar://problem/74105427

Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723

Reviewed by Filip Pizlo.

PerformanceTests:

Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.

  • APIBench/api-bench:

Source/JavaScriptCore:

Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.

This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)

CURRENT_API: Baseline Change
----------------------------------------
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms

UPCOMING_API: Baseline Change
----------------------------------------
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
----------------------------------------
Score: 33.6404 36.4006

  • API/APICast.h: (toRef):
  • API/JSValue.mm: (-[JSValue isUndefined]): (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]): (-[JSValue isObject]): (-[JSValue isSymbol]):
  • API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber):

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

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

Cherry-pick r272422. rdar://problem/74033021

Make sure click attribution is processed in case of redirected kept alive loads
https://bugs.webkit.org/show_bug.cgi?id=221453
<rdar://problem/70896640>

Reviewed by John Wilander.

Source/WebCore:

Test: http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::addSubresourceLoader): Update assertion to cope with keep alive fetches which are similar to beacon/ping loads.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): Move the click attribution processing before kept alive check.

LayoutTests:

  • http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt: Added.
  • http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html: Added.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.php:

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

1:04 PM Changeset in webkit [272536] by Alan Coon
  • 9 edits in branches/safari-611-branch

Cherry-pick r272376. rdar://problem/74032694

REGRESSION(r267763) Network process launches earlier than before
https://bugs.webkit.org/show_bug.cgi?id=221384
<rdar://problem/73507706>

Patch by Alex Christensen <achristensen@apple.com> on 2021-02-04
Reviewed by Chris Dumez.

Source/WebKit:

Before r267763 we could have an app launch, allocate a WKWebView, and set _resourceLoadStatisticsEnabled
all without having a network process launch.

When setting _resourceLoadStatisticsEnabled, we don't need to launch a network process if we haven't already
because when we do, WebsiteDataStore::parameters will send the correct value. I added a test that verifies this doesn't
launch the network process if it hasn't already been launched.

We also don't need to update the process assertion or the process suspension state if there is no network process.

sendNetworkProcessXPCEndpointToWebProcess is also called when opening Safari on iOS and would be the next thing to
unnecessarily launch the network process during app initialization. I manually verified that if we add an early return
if there is no network process yet, we do send the XPC endpoint to the web process when the network process does launch
through the call site in sendNetworkProcessXPCEndpointToAllWebProcesses.

I verified on my phone that this is the minimal change needed for Safari on iOS to not launch the network process before
application:didFinishLaunchingWithOptions: is called as it did before r267763.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::updateProcessSuppressionState):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::updateProcessAssertions):
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
  • UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::networkProcessIfExists):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm: (TEST):

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

1:03 PM Changeset in webkit [272535] by Alan Coon
  • 15 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272368. rdar://problem/74032667

[macOS] Selecting a date on datetime-local inputs unexpectedly adds second and millisecond fields
https://bugs.webkit.org/show_bug.cgi?id=221350
<rdar://problem/73943517>

Reviewed by Devin Rousso.

Source/WebCore:

Currently, when setting the value of a datetime-local input using the
picker, the length of the current value of the input is used to determine
whether or not to return a value with second/millisecond precision.

This is approach is incorrect, since the value could be empty, while the
step attribute can specify second/millisecond precision. To fix, ensure
the DateTimeChooserParameters knows whether the input has second and
millisecond fields. That information can then be used by the UIProcess
to return a correctly formatted value to the WebProcess.

Test: fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html

  • html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::handleDOMActivateEvent): (WebCore::BaseDateAndTimeInputType::didChangeValueFromControl): (WebCore::BaseDateAndTimeInputType::setupDateTimeChooserParameters):

Moved this method from HTMLInputElement to the input type, since it is
specific to date/time input types, and to leverage the existing
shouldHaveSecondField and shouldHaveMillisecondField methods when
building the DateTimeChooserParameters.

  • html/BaseDateAndTimeInputType.h:
  • html/HTMLInputElement.cpp:
  • html/HTMLInputElement.h:
  • platform/DateTimeChooserParameters.h:

Added hasSecondField and hasMillisecondField members, so that the UIProcess
knows whether or not to return a string that contains seconds/milliseconds.

(WebCore::DateTimeChooserParameters::encode const):
(WebCore::DateTimeChooserParameters::decode):

Source/WebKit:

  • UIProcess/mac/WebDateTimePickerMac.mm: (-[WKDateTimePicker updatePicker:]): (-[WKDateTimePicker dateFormatStringForType:]):

Do not use the length of the value to determine whether or seconds and
milliseconds should be present, since the value can be empty.

Instead, use the new information in DateTimeChooserParameters, matching
the visual appearance of the input.

Tools:

Added a method to UIScriptController to simulate selecting a date using
the presented date picker.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h: (WTR::UIScriptController::chooseDateTimePickerValue):
  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::UIScriptControllerMac::chooseDateTimePickerValue):

LayoutTests:

Added a test to to verify that the presence of seconds and milliseconds
in the value of a datetime-local input after selecting a date using the
picker matches the configuration.

  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker-expected.txt: Added.
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html: Added.
  • resources/ui-helper.js: (window.UIHelper.chooseDateTimePickerValue):

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

1:03 PM Changeset in webkit [272534] by Alan Coon
  • 7 edits in branches/safari-611-branch/Source

Cherry-pick r272353. rdar://problem/74105476

[Cocoa] WebM audio goes out-of-sync or stops playing after a seek
https://bugs.webkit.org/show_bug.cgi?id=221354
<rdar://73471690>

Reviewed by Eric Carlson.

Source/WebCore:

Add a new flag to MediaSample indicating whether the sample has any information about whether
it is an sync-sample or not, and expose that through a new method hasSyncInfo().

Drive-by Fix: Force all video samples to contain a sample attachments dictionary, whether or
not the sample is sync.

Drive-by Fix #2: SampleMap does an equality comparison for flags() == MediaSample::IsSync.
This breaks as soon as any sample has both IsSync and any other flag. Replace with a specific
call to isSync() instead.

  • platform/MediaSample.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: (WebCore::doesCMSampleBufferHaveSyncInfo): (WebCore::MediaSampleAVFObjC::flags const):
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):

Source/WebKit:

The MTPluginFormatReader will attempt to determine whether an audio sample needs priming frames
by querying for, among other things, its "syncInfo". Previously, we had just presumed all samples
without a sample attachment dictionary were sync samples, and reported them as such from
MediaSampleCursor, but this causes the format reader plugin to walk backwards all the way to the
beginning of the audio track looking for priming samples. Instead, since the sample in question
has no sync info (it was synthesized by MediaSample), return kCMBaseObjectError_ValueNotAvailable
in this case, which causes the plugin format reader to assume all samples are both sync and do
not require explicit priming frames.

  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp: (WebKit::MediaSampleCursor::getSampleTiming const): (WebKit::MediaSampleCursor::getSyncInfo const):

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

1:03 PM Changeset in webkit [272533] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r272349. rdar://problem/74104450

[JSC] Insert PhantomLocal just before SetLocal for |this| to ensure liveness
https://bugs.webkit.org/show_bug.cgi?id=221353
<rdar://problem/70373862>

Reviewed by Saam Barati.

Let's consider the following case before SSA conversion.

BB#0:

SetArgumentDefinitely(this)
...

@a: SomethingFun()

MoveHint(@a, this)
SetLocal(@a, this)
Jump #1

BB#1:

...
ExitOK (this point)
...

@b: SomethingFun()

MoveHint(@b, this)
SetLocal(@b, this)
...

BB#2: (Catch entry point)

...

@c: SetArgumentDefinitely(this)

...
Jump #1

We have two entry points. And BB#0 sets @a to |this| while BB#2 does not update |this|, so it is using @c.
We have several patterns we can store |this|: arrow functions' |this| loading, derived constructors' |this| update. So we can see
SetLocal(@x, this) at arbitrary code points in CodeBlocks having them.

The problem is that DFG strongly assumed that |this| is initialized in the root basic block only once. So usually, we do not insert Flush/PhantomLocal for |this|.
But this is problematic when we can store |this| at arbitrary basic blocks since we do not properly insert Flush/PhantomLocal(this) in BB#1's just before Store.

Not inserting that in the above case makes |this| dead in BB#1's head liveness. Then we do not properly insert Phi(BB#0, BB#2) for |this|.
This is OK for non |this| locals since literally that local is not used at all in BB#1. But |this| is special since it is always live in bytecode.
So, OSR availability will be broken in the above graph: at ExitOK place, |this| must be live in bytecode. But |this| is pointing ConflictingFlush since
BB#0 says @a and BB#2 says @c while we do not have Phi.

The problem is that we do not keep liveness of |this| properly in BB#1. When setting a new |this|, we insert PhantomLocal to keep liveness so that appropriate Phi
will be inserted when two predecessors have different DFG nodes for |this|, and this graph can appear in arrow functions, derived constructors, and code with catch.

  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::setArgument):
  • dfg/DFGVariableAccessDataDump.cpp: (JSC::DFG::VariableAccessDataDump::dump const):

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

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

Cherry-pick r272346. rdar://problem/74105218

PCM: earliestTimeToSend should be treated as an independent time value, not relative to timeOfAdClick
https://bugs.webkit.org/show_bug.cgi?id=221303
<rdar://problem/73902668>

Reviewed by John Wilander.

r270136 assumed that PCM's earliestTimeToSend attribute was the
difference between timeOfAdClick and when the attribution should be
sent. As a result, it began each new browser session by adjusting
this value based on the amount of time the session was closed.
In reality, earliestTimeToSend is a raw secondsSinceEpoch() value, so we don't
need any adjustment after a new session.

No new tests, this is covered by
http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html
now that the corresponding test SPI has been updated.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::createTableQueries): (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): (WebKit::ResourceLoadStatisticsDatabaseStore::createSchema): (WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements): (WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting): Update the testing SPI to insert an expired time of now minus one hour as the earliestTimeToSend.

(WebKit::ResourceLoadStatisticsDatabaseStore::updateTimerLastFired): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::timerLastFired): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::updatePrivateClickMeasurementAttributionTimes): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::updateTimerLastFired): Deleted.
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp: (WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests): (WebKit::PrivateClickMeasurementManager::updateTimerLastFired): Deleted.
  • NetworkProcess/PrivateClickMeasurementManager.h:

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

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

Cherry-pick r272335. rdar://problem/74032694

REGRESSION (r270392): Launch time regression under IOSurface::maximumSize()
https://bugs.webkit.org/show_bug.cgi?id=221346
<rdar://problem/73507706>

Reviewed by Sam Weinig.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): Scope r270392 to only the case where it is needed, when DOM rendering in the GPU process is enabled and the Web Content process does not have access to IOSurface, because it causes a small launch time regression.

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

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

Cherry-pick r272330. rdar://problem/74032526

[AppleWin 32bit][LLInt] LLIntData.h(104) : warning C4172: returning address of local variable or temporary: id
https://bugs.webkit.org/show_bug.cgi?id=220714

Reviewed by Mark Lam.

This patch fixes LLInt build when ENABLE(COMPUTED_GOTO_OPCODES) is false.

  • llint/LLIntData.h: (JSC::LLInt::getOpcode): (JSC::LLInt::getOpcodeWide16): (JSC::LLInt::getOpcodeWide32): (JSC::LLInt::getOpcodeAddress): (JSC::LLInt::getOpcodeWide16Address): (JSC::LLInt::getOpcodeWide32Address): (JSC::LLInt::getCodePtr): (JSC::LLInt::getWide16CodePtr): (JSC::LLInt::getWide32CodePtr):

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

1:03 PM Changeset in webkit [272529] by Alan Coon
  • 5 edits in branches/safari-611-branch

Cherry-pick r272326. rdar://problem/74105521

[iOS] delay +[BKSMousePointerService sharedInstance] so that it doesn't impact launch perf
https://bugs.webkit.org/show_bug.cgi?id=221298

Reviewed by Geoffrey Garen.

Source/WebKit:

  • UIProcess/ios/WKMouseDeviceObserver.h:
  • UIProcess/ios/WKMouseDeviceObserver.mm: (-[WKMouseDeviceObserver init]): Added. (-[WKMouseDeviceObserver startWithCompletionHandler:]): Added. (-[WKMouseDeviceObserver start]): (-[WKMouseDeviceObserver stop]): (-[WKMouseDeviceObserver stopWithCompletionHandler:]): Added.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm: (iOSMouseSupport.MouseInitiallyDisconnected): (iOSMouseSupport.MouseInitiallyConnected): (iOSMouseSupport.MouseLaterDisconnected): (iOSMouseSupport.MouseLaterConnected):

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

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

Cherry-pick r272303. rdar://problem/74105623

Animation of "rotate" or "scale" property does not correctly account for static "translate" property
https://bugs.webkit.org/show_bug.cgi?id=219894
<rdar://problem/72342798>

Unreviewed build fix for Mojave.

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

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

1:03 PM Changeset in webkit [272527] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source

Cherry-pick r272234. rdar://problem/74105068

[macOS] Force loading the HEIF reader symbols before transcoding any HEIF image
https://bugs.webkit.org/show_bug.cgi?id=221191
<rdar://problem/70942158>

Reviewed by Tim Horton.

Source/WebCore:

Transcoding the HEIF images requires loading the HEIF reader symbols which
is not happening in macOS Catalina. A workaround for this bug in WebKit is
to call CGImageSourceGetCount() for the CGImageSource of the HEIF image.

  • platform/graphics/cg/ImageUtilitiesCG.cpp: (WebCore::transcodeImage):

Source/WTF:

Add a HAVE macro for the fix of <rdar://problem/59589723>.

  • wtf/PlatformHave.h:

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

1:03 PM Changeset in webkit [272526] by Alan Coon
  • 1 edit
    3 adds in branches/safari-611-branch/Source/WebInspectorUI

Cherry-pick r272232. rdar://problem/74032620

Web Inspector: Add another Protocol Version (iOS 14.5)
https://bugs.webkit.org/show_bug.cgi?id=221288
<rdar://66351870>

Reviewed by Devin Rousso.

  • UserInterface/Protocol/Legacy/14.5/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-14.5.json: Added.

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

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

Cherry-pick r272214. rdar://problem/74032646

Unreviewed, address post-landing review comment by Darin Adler for r272211.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::cookiesForURL):

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

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

Cherry-pick r272212. rdar://problem/74032657

Make sure NetworkRTCProvider stays valid for all NetworkRTCSocketCocoa callbacks
https://bugs.webkit.org/show_bug.cgi?id=221249
<rdar://problem/72671547>

Reviewed by Eric Carlson.

Make the connection callback take a ref of the NetworkRTCProvider.
The ref cycle will break at NetworkConnectionToWebProcess destruction since it will call NetworkRTCProvider::close
which deletes all sockets owning the connection.

  • NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm: (WebKit::NetworkRTCSocketCocoa::NetworkRTCSocketCocoa):

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

1:03 PM Changeset in webkit [272523] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272211. rdar://problem/74032646

Crash under NetworkStorageSession::cookiesForSession()
https://bugs.webkit.org/show_bug.cgi?id=221227
<rdar://71975008>

Reviewed by Geoffrey Garen.

Retain NSArray of cookies in NetworkStorageSession::cookiesForSession() for clearer lifetime
management. This is a speculative fix for <rdar://71975008>.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::NetworkStorageSession::httpCookies const): (WebCore::cookiesForURL): (WebCore::NetworkStorageSession::httpCookiesForURL const): (WebCore::NetworkStorageSession::cookiesForURL const): (WebCore::NetworkStorageSession::cookiesForSession const): (WebCore::NetworkStorageSession::getRawCookies const): (WebCore::NetworkStorageSession::deleteCookie const): (WebCore::NetworkStorageSession::getHostnamesWithCookies): (WebCore::NetworkStorageSession::deleteCookiesForHostnames):

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

1:03 PM Changeset in webkit [272522] by Alan Coon
  • 4 edits
    4 adds in branches/safari-611-branch

Cherry-pick r272201. rdar://problem/74105623

Animation of "rotate" or "scale" property does not correctly account for static "translate" property
https://bugs.webkit.org/show_bug.cgi?id=219894
<rdar://problem/72342798>

Reviewed by Dean Jackson.

Source/WebCore:

The CSS transform-related properties are designed to be applied in a specific order, guaranteeing that
"translate" is applied prior to both "scale" and "rotate". Since Core Animation has no concept of these
individual transform-related CSS properties, we use additive Core Animation animations to apply the value
of each CSS property, using non-interpolating animations set to start at the earliest time in the Core
Animation timeline and lasting forever to set the value of any underlying, non-animated value.

As such, in an example where an element would have a static "translate" property set as well as a "rotate"
or "scale" animation, we would yield the following animations, added in this order:

  1. non-interpolating animation beginning at 1s setting the identity transform (the "clean slate" animation)
  2. interpolating animation beginning at a time > 1s for the "scale" or "rotate" animation
  3. non-interpolating animation beginning at 1s setting the "translate" value

Note that animations 2 and 3 are additive and thus added in the inverse order that we expect animations to be
applied. Due to a peculiarity of Core Animation (introduced in macOS 10.15), additive animations are applied
in an inverse order, hence the build-time flag CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED.

However, Core Animation will first sort all animations based on their begin time, only respecting the order
in which animations are added when their begin time is equal. This means that in practice, our animations were
applied in the order 1, 3, 2, and thus the "translate" property was applied after the "rotate" or "scale" animation.

In order to address this, we now create a CAAnimationGroup for each set of animations created for a given CSS
property. Each of these groups shares the same begin time, 1s, to allow for "forever" non-interpolating animations
to be applied, but also to set a common base time for animations to be applied in the expected order.

Tests: webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated.html

webanimations/relative-ordering-of-translate-and-scale-properties-accelerated.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):
  • platform/graphics/ca/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::LayerPropertyAnimation::computedBeginTime const):

LayoutTests:

Add two new tests that ensure that translate is indeed applied before rotate and scale.

  • webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated-expected.html: Added.
  • webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated.html: Added.
  • webanimations/relative-ordering-of-translate-and-scale-properties-accelerated-expected.html: Added.
  • webanimations/relative-ordering-of-translate-and-scale-properties-accelerated.html: Added.

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

1:03 PM Changeset in webkit [272521] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r272191. rdar://problem/74032517

Sign m_offset in AssemblerLabel
https://bugs.webkit.org/show_bug.cgi?id=221237

Reviewed by Mark Lam.

  • assembler/ARM64Assembler.h: (JSC::ARM64Assembler::labelForWatchpoint): (JSC::ARM64Assembler::label): (JSC::ARM64Assembler::getRelocatedAddress): (JSC::ARM64Assembler::getDifferenceBetweenLabels): (JSC::ARM64Assembler::getCallReturnOffset): (JSC::ARM64Assembler::linkJump): (JSC::ARM64Assembler::addressOf):
  • assembler/ARMv7Assembler.h: (JSC::ARMv7Assembler::labelForWatchpoint): (JSC::ARMv7Assembler::label): (JSC::ARMv7Assembler::getRelocatedAddress): (JSC::ARMv7Assembler::getDifferenceBetweenLabels): (JSC::ARMv7Assembler::getCallReturnOffset): (JSC::ARMv7Assembler::linkJump): (JSC::ARMv7Assembler::linkCall): (JSC::ARMv7Assembler::linkPointer):
  • assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::Jump::link const): (JSC::AbstractMacroAssembler::Jump::linkTo const):
  • assembler/AssemblerBuffer.h: (JSC::AssemblerLabel::AssemblerLabel): (JSC::AssemblerLabel::operator=): (JSC::AssemblerLabel::isSet const): (JSC::AssemblerLabel::labelAtOffset const): (JSC::AssemblerLabel::operator== const): (JSC::AssemblerLabel::offset const): (JSC::AssemblerLabel::setOffset):
  • assembler/LinkBuffer.h: (JSC::LinkBuffer::offsetOf): (JSC::LinkBuffer::applyOffset):
  • assembler/MIPSAssembler.h: (JSC::MIPSAssembler::labelForWatchpoint): (JSC::MIPSAssembler::label): (JSC::MIPSAssembler::getRelocatedAddress): (JSC::MIPSAssembler::getDifferenceBetweenLabels): (JSC::MIPSAssembler::getCallReturnOffset): (JSC::MIPSAssembler::linkJump): (JSC::MIPSAssembler::linkCall): (JSC::MIPSAssembler::linkPointer):
  • assembler/X86Assembler.h: (JSC::X86Assembler::labelForWatchpoint): (JSC::X86Assembler::label): (JSC::X86Assembler::linkJump): (JSC::X86Assembler::linkCall): (JSC::X86Assembler::linkPointer): (JSC::X86Assembler::getCallReturnOffset): (JSC::X86Assembler::getRelocatedAddress): (JSC::X86Assembler::getDifferenceBetweenLabels):

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

1:03 PM Changeset in webkit [272520] by Alan Coon
  • 6 edits in branches/safari-611-branch/Source

Cherry-pick r272188. rdar://problem/74032553

[Cocoa] Disable interstitial events on AVPlayerItem.
https://bugs.webkit.org/show_bug.cgi?id=221215

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

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

1:02 PM Changeset in webkit [272519] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272185. rdar://problem/74032429

REGRESSION (iOS 14.2): Can't play html audio with muted attribute
https://bugs.webkit.org/show_bug.cgi?id=219295
<rdar://problem/71863148>

Reviewed by Eric Carlson.

In r266844, we added a power-saving feature that would disable the audio decoder for initially
muted media elements. However, this caused an issue for .mp3 files, where the duration of the
track is computed by the decoder, and not the parser. Since the goal of the power-saving feature
was to reduce the CPU cost for decoding a muted audio track on a <video> element, partially
revert this change by making it apply only to <video> elements and not <audio> ones.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):

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

1:02 PM Changeset in webkit [272518] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebInspectorUI

Cherry-pick r272183. rdar://problem/74105888

REGRESSION(r270637): Web Inspector: Filtering field no longer shows in Computed panel
https://bugs.webkit.org/show_bug.cgi?id=221001

Reviewed by Devin Rousso.

The filter bar keeps separate filters for the Rules and Computed panes. It is therefor incorrect to hide the
entire filter bar when showing multiple sidebars, instead hide the controls that have a common state between the
two panels (the Classes list).

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: (.multi-sidebar.showing-multiple > .sidebar > .panel.details:not(.style-rules) > .content > .pseudo-classes,):

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

1:02 PM Changeset in webkit [272517] by Alan Coon
  • 11 edits in branches/safari-611-branch/Source

Cherry-pick r272178. rdar://problem/74105398

Allow support for CAAnimationGroup
https://bugs.webkit.org/show_bug.cgi?id=221209

Reviewed by Dean Jackson, Sam Weinig and Simon Fraser.

In order to fix bug 219894, we need to use Core Animation's CAAnimationGroup and its
Source/WebCore:

setAnimations() method. This patch adds a new "Group" type to PlatformCAAnimation and
platform-specific integration for Windows and Cocoa ports.

  • platform/graphics/ca/PlatformCAAnimation.cpp: (WebCore::operator<<):
  • platform/graphics/ca/PlatformCAAnimation.h:
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: (WebCore::PlatformCAAnimationCocoa::PlatformCAAnimationCocoa): (WebCore::PlatformCAAnimationCocoa::keyPath const): (WebCore::PlatformCAAnimationCocoa::setTimingFunction): (WebCore::PlatformCAAnimationCocoa::isAdditive const): (WebCore::PlatformCAAnimationCocoa::setAdditive): (WebCore::PlatformCAAnimationCocoa::valueFunction const): (WebCore::PlatformCAAnimationCocoa::setValueFunction): (WebCore::PlatformCAAnimationCocoa::setFromValue): (WebCore::PlatformCAAnimationCocoa::copyFromValueFrom): (WebCore::PlatformCAAnimationCocoa::setToValue): (WebCore::PlatformCAAnimationCocoa::copyToValueFrom): (WebCore::PlatformCAAnimationCocoa::setValues): (WebCore::PlatformCAAnimationCocoa::copyValuesFrom): (WebCore::PlatformCAAnimationCocoa::setKeyTimes): (WebCore::PlatformCAAnimationCocoa::copyKeyTimesFrom): (WebCore::PlatformCAAnimationCocoa::setTimingFunctions): (WebCore::PlatformCAAnimationCocoa::copyTimingFunctionsFrom): (WebCore::PlatformCAAnimationCocoa::setAnimations): (WebCore::PlatformCAAnimationCocoa::copyAnimationsFrom):
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::addAnimationForKey): (WebCore::PlatformCALayerCocoa::animationForKey):
  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp: (PlatformCAAnimationWin::PlatformCAAnimationWin): (PlatformCAAnimationWin::setAnimations): (PlatformCAAnimationWin::copyAnimationsFrom):
  • platform/graphics/ca/win/PlatformCAAnimationWin.h:

Source/WebKit:

setAnimations() method. Add support for the new "Group" PlatformCAAnimation type for
the remote animations.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::Properties::encode const): (WebKit::PlatformCAAnimationRemote::Properties::decode): (WebKit::PlatformCAAnimationRemote::copy const): (WebKit::PlatformCAAnimationRemote::setAnimations): (WebKit::PlatformCAAnimationRemote::copyAnimationsFrom): (WebKit::createAnimation): (WebKit::addAnimationToLayer): (WebKit::operator<<):

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

1:02 PM Changeset in webkit [272516] by Alan Coon
  • 5 edits
    3 adds in branches/safari-611-branch

Cherry-pick r272166. rdar://problem/74032437

ReadableStream C++ methods should check for exception
https://bugs.webkit.org/show_bug.cgi?id=215376
<rdar://problem/66816192>

Reviewed by Alex Christensen.

Source/WebCore:

Refactor code to catch and handle exceptions in case of ReadableStream methods.
Exceptions can happen in case of worker being abruptly terminated, which can only be tested flakily.

In case of tee, if an exception happens, we return a WTF::nullopt.

Test: streams/readable-stream-tee-worker.html

  • Modules/fetch/FetchBody.cpp: (WebCore::FetchBody::clone):
  • bindings/js/ReadableStream.cpp: (WebCore::invokeReadableStreamFunction): (WebCore::ReadableStream::pipeTo): (WebCore::ReadableStream::tee): (WebCore::ReadableStream::lock): (WebCore::checkReadableStream):
  • bindings/js/ReadableStream.h:

LayoutTests:

  • streams/readable-stream-tee-worker-expected.txt: Added.
  • streams/readable-stream-tee-worker.html: Added.
  • streams/readable-stream-tee.js: Added. (teeRepetitively): (test):

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

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

Cherry-pick r271908. rdar://problem/74032594

Harden NetworkProcess against integer overflow in CacheStorageEngine size calculation
https://bugs.webkit.org/show_bug.cgi?id=220997
<rdar://problem/66116827>

Reviewed by Youenn Fablet.

Since the CacheStorage allocation is based on data provided by the WebContent process, we should
check for integer overflow before making an allocation.

  • NetworkProcess/cache/CacheStorageEngineCache.cpp: (WebKit::CacheStorage::Cache::put): Use checked arithmetic and return a failure if we overflow.

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

1:02 PM Changeset in webkit [272514] by Alan Coon
  • 9 edits
    1 add in branches/safari-611-branch

Cherry-pick r271731. rdar://problem/74105559

[JSC] JSPromise should not propagate TerminatedExecutionError
https://bugs.webkit.org/show_bug.cgi?id=220820
<rdar://problem/72929399>

Reviewed by Mark Lam.

JSTests:

  • stress/terminated-execution-error-in-promise.js: Added. (let.x.get toString): (import.x.then):

Source/JavaScriptCore:

TerminatedExecutionError is uncatcheable exception to finish JS execution as soon as possible.
We should not propagate TerminatedExecutionError in JSPromise's rejection.
In this patch, we do not reject promise if exception is TerminatedExecutionError.

  • API/JSAPIGlobalObject.mm: (JSC::JSAPIGlobalObject::moduleLoaderImportModule): (JSC::JSAPIGlobalObject::moduleLoaderFetch):
  • API/JSContext.mm: (-[JSContext evaluateJSScript:]):
  • jsc.cpp: (GlobalObject::moduleLoaderImportModule): (GlobalObject::moduleLoaderFetch): (runWithOptions):
  • runtime/Completion.cpp: (JSC::rejectPromise): (JSC::loadAndEvaluateModule): (JSC::loadModule):
  • runtime/JSGlobalObjectFunctions.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
  • runtime/JSModuleLoader.cpp: (JSC::reject): (JSC::JSModuleLoader::importModule): (JSC::JSModuleLoader::resolve): (JSC::JSModuleLoader::fetch): (JSC::JSC_DEFINE_HOST_FUNCTION):
  • wasm/js/JSWebAssembly.cpp: (JSC::reject):

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

1:02 PM Changeset in webkit [272513] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271686. rdar://problem/74032451

Further propagate ChildChange::Source to optimize HTMLInputElement creation
https://bugs.webkit.org/show_bug.cgi?id=220785

Reviewed by Ryosuke Niwa.

This patch further propagates ChildChange::Source to optimize HTMLInputElement creation.
We add appendChild method taking ChildChange::Source to transparently pick the efficient
one based on the parameter.

  • dom/ContainerNode.cpp: (WebCore::ContainerNode::appendChild):
  • dom/ContainerNode.h:
  • html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
  • html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
  • html/FileInputType.cpp: (WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
  • html/RangeInputType.cpp: (WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
  • html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

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

1:02 PM Changeset in webkit [272512] by Alan Coon
  • 47 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271672. rdar://problem/74105677

Accelerate HTMLInputElement creation
https://bugs.webkit.org/show_bug.cgi?id=220758

Reviewed by Simon Fraser.

HTMLInputElement creation is too slow.

  1. InputType is excessively using virtual dispatching, which is too slow for hot path.
  2. HTMLInputElement creates internal elements as a shadow DOM and its creation is too generic.
  3. We are setting inner text element's editability in a very generic way. This allocates ElementData for each elements while attributes are almost the same.

In this patch,

  1. We add m_type field in InputType, and for the hot path, we attempt to devirtualize things due to performance problem.
  2. We pass "parsing phase" information to shadow DOM creation to make them fast.
  3. We initialize editibility when creating TextControlInnerTextElement. And we use parserSetAttributes to set shared ElementData. This is faster and less memory.
  4. We also shrink sizeof(Style::Scope) to reduce size of allocation when using shadow DOM.

This change offers 1% progression in Speedometer2/jQuery.

  • html/BaseButtonInputType.h: (WebCore::BaseButtonInputType::BaseButtonInputType):
  • html/BaseCheckableInputType.h: (WebCore::BaseCheckableInputType::BaseCheckableInputType):
  • html/BaseClickableWithKeyInputType.h: (WebCore::BaseClickableWithKeyInputType::BaseClickableWithKeyInputType):
  • html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::isSteppableSlow const): (WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::BaseDateAndTimeInputType::isSteppable const): Deleted. (WebCore::BaseDateAndTimeInputType::createShadowSubtree): Deleted.
  • html/BaseDateAndTimeInputType.h: (WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
  • html/BaseTextInputType.h: (WebCore::BaseTextInputType::BaseTextInputType):
  • html/ButtonInputType.h:
  • html/CheckboxInputType.h:
  • html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::ColorInputType::createShadowSubtree): Deleted.
  • html/ColorInputType.h:
  • html/DateInputType.cpp: (WebCore::DateInputType::DateInputType):
  • html/DateInputType.h:
  • html/DateTimeLocalInputType.h:
  • html/EmailInputType.h:
  • html/FileInputType.cpp: (WebCore::FileInputType::FileInputType): (WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::FileInputType::createShadowSubtree): Deleted.
  • html/FileInputType.h:
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): (WebCore::HTMLInputElement::isValid const): (WebCore::HTMLInputElement::updateType):
  • html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
  • html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):
  • html/HiddenInputType.h:
  • html/ImageInputType.cpp: (WebCore::ImageInputType::ImageInputType):
  • html/ImageInputType.h:
  • html/InputType.cpp: (WebCore::InputType::isInvalid const): (WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::InputType::isSteppable const): (WebCore::InputType::createShadowSubtree): Deleted.
  • html/InputType.h: (WebCore::InputType::InputType): (WebCore::InputType::isSteppableSlow const): (WebCore::isInvalidInputType):
  • html/MonthInputType.h:
  • html/NumberInputType.cpp: (WebCore::NumberInputType::isSteppableSlow const): (WebCore::NumberInputType::isSteppable const): Deleted.
  • html/NumberInputType.h:
  • html/PasswordInputType.h:
  • html/RadioInputType.h:
  • html/RangeInputType.cpp: (WebCore::RangeInputType::RangeInputType): (WebCore::RangeInputType::isSteppableSlow const): (WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::RangeInputType::isSteppable const): Deleted. (WebCore::RangeInputType::createShadowSubtree): Deleted.
  • html/RangeInputType.h:
  • html/ResetInputType.h:
  • html/SearchInputType.cpp: (WebCore::SearchInputType::SearchInputType): (WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::SearchInputType::createShadowSubtree): Deleted.
  • html/SearchInputType.h:
  • html/SubmitInputType.h:
  • html/TelephoneInputType.h:
  • html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::TextFieldInputType): (WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::TextFieldInputType::createShadowSubtree): Deleted.
  • html/TextFieldInputType.h:
  • html/TextInputType.h:
  • html/TimeInputType.cpp: (WebCore::TimeInputType::TimeInputType):
  • html/TimeInputType.h:
  • html/URLInputType.h:
  • html/WeekInputType.h:
  • html/shadow/TextControlInnerElements.cpp: (WebCore::TextControlInnerTextElement::create): (WebCore::TextControlInnerTextElement::updateInnerTextElementEditabilityImpl):
  • html/shadow/TextControlInnerElements.h:
  • style/StyleScope.h:

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

1:02 PM Changeset in webkit [272511] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WTF

Cherry-pick r271633. rdar://problem/74105761

[WTF] StringImpl::removeCharacters should be inlined
https://bugs.webkit.org/show_bug.cgi?id=220742

Reviewed by Saam Barati.

removeCharacters is used in WebCore's HTMLInputElement's critical path. And since String relatively has many elements (characters),
non-inlined StringImpl::removeCharacters causes significant number of indirect function calls of findMatch argument since it is
passed function pointer. We should make them templatized function to allow inlining of findMatch function to avoid repeated indirect calls.

  • wtf/text/StringImpl.cpp: (WTF::StringImpl::removeCharacters): Deleted.
  • wtf/text/StringImpl.h: (WTF::StringImpl::removeCharactersImpl): (WTF::StringImpl::removeCharacters):
  • wtf/text/WTFString.cpp: (WTF::String::removeCharacters const): Deleted.
  • wtf/text/WTFString.h: (WTF::String::removeCharacters const):

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

1:02 PM Changeset in webkit [272510] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r271624. rdar://problem/74105183

Unreviewed, fix GCC warnings
https://bugs.webkit.org/show_bug.cgi?id=220718

  • dfg/DFGOperations.cpp: (JSC::DFG::tierUpCommon):

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

1:02 PM Changeset in webkit [272509] by Alan Coon
  • 3 edits
    1 add in branches/safari-611-branch

Cherry-pick r271596. rdar://problem/74105183

[JSC] FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated
https://bugs.webkit.org/show_bug.cgi?id=220718
<rdar://problem/70527068>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-failure-clear-twice.js: Added. (foo):

Source/JavaScriptCore:

FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated. However, the caller is not assuming that,
and it calls clearOSREntryBlockAndResetThresholds again. And clearOSREntryBlockAndResetThresholds's assertion hit.
This patch correctly handles the invalidated case.

  • dfg/DFGOperations.cpp: (JSC::DFG::tierUpCommon):

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

1:02 PM Changeset in webkit [272508] by Alan Coon
  • 3 edits
    1 add in branches/safari-611-branch

Cherry-pick r271571. rdar://problem/74105245

[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-entry-order-reverse.js: Added. (shouldThrow): (foo):

Source/JavaScriptCore:

After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.

  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower):

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

12:22 PM Changeset in webkit [272507] by youenn@apple.com
  • 4 edits in trunk

[MacOS] Enable Audio Capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=221400

Reviewed by Eric Carlson.

Source/WebKit:

Manually tested.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(-[GetUserMediaRepromptTestView haveStream:]):
Increase timeout since capture might require spinning GPUProcess.

12:07 PM Changeset in webkit [272506] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Check that CGPDFDocumentRef is consistently unlocked and printable
<https://webkit.org/b/221512>
<rdar://problem/65277765>

Reviewed by Daniel Bates.

This patch does the following when printing PDFs:

  • Checks return value of CGPDFDocumentUnlockWithPassword().
  • Calls CGPDFDocumentAllowsPrinting() consistently.
  • Handles -_ensureDocumentForPrinting and -_wk_printedDocument returning nullptr.
  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:]):

  • Check return value of -_wk_printedDocument since it may return nullptr now.
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _ensureDocumentForPrinting]):

  • Check return value of CGPDFDocumentUnlockWithPassword(), and return nullptr if unsuccessful.
  • Add CGPDFDocumentAllowsPrinting() check and return nullptr if it fails.

(-[WKPDFView _wk_pageCountForPrintFormatter:]):

  • Move the CGPDFDocumentAllowsPrinting() check into -[WKPDFView _ensureDocumentForPrinting].
  • Check return value of -_ensureDocumentForPrinting since it may return nullptr now.
12:04 PM Changeset in webkit [272505] by Russell Epstein
  • 1 copy in tags/Safari-612.1.2.5

Tag Safari-612.1.2.5.

11:47 AM Changeset in webkit [272504] by youenn@apple.com
  • 8 edits
    3 adds in trunk

NetworkRTCSocketCocoa extractDataMessages should not read too much data
https://bugs.webkit.org/show_bug.cgi?id=221544

Reviewed by Eric Carlson.

Source/WebCore:

Move STUN/TURN message parsing to its own file routine so that we can add API test.
Code is taken from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.
Fix the test verifying we can actually read a message given its expected length.

Covered by API test.

  • Headers.cmake:
  • Modules/mediastream/STUNMessageParsing.cpp: Added.

(WebCore::isStunMessage):
(WebCore::getSTUNOrTURNMessageLengths):
(WebCore::extractSTUNOrTURNMessages):
(WebCore::extractDataMessages):
(WebCore::extractMessages):

  • Modules/mediastream/STUNMessageParsing.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm:

Make use of WebCore method.

Tools:

  • TestWebKitAPI/Tests/WebCore/STUNMessageParsingTest.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
11:43 AM Changeset in webkit [272503] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Adjust EventHandler to account for image extraction content
https://bugs.webkit.org/show_bug.cgi?id=221274

Reviewed by Tim Horton.

Avoid extending the selection to the hit-tested position when dragging over an image overlay container (as
opposed to one of the children with text inside the image overlay container).

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::shouldUpdateSelectionForMouseDrag):

  • html/HTMLElement.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::updateSelectionForMouseDrag):

11:28 AM Changeset in webkit [272502] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[iOS macOS] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219460

Unreviwed test gardening.

Skip the test since it is a flaky failure on release, and a flaky assertion failure on debug.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:14 AM Changeset in webkit [272501] by Russell Epstein
  • 8 edits in branches/safari-612.1.2-branch/Source

Versioning.

WebKit-7612.1.2.5

10:58 AM Changeset in webkit [272500] by Ryan Haddad
  • 2 edits in trunk/Source/WebKitLegacy/mac

Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187

Unreviewed build fix for macCatalyst.

  • WebCoreSupport/WebMediaKeySystemClient.h: Add a check for ENABLE(ENCRYPTED_MEDIA).
10:11 AM Changeset in webkit [272499] by aboya@igalia.com
  • 7 edits in trunk

Add ConsoleMessage::toString()
https://bugs.webkit.org/show_bug.cgi?id=221539

Reviewed by Eric Carlson.

Source/JavaScriptCore:

Currently ConsoleMessage doesn't have a publicly API to retrieve the
stored JSON values into a string for printing.

The closest equivalent is message(), but it doesn't return any JSON
objects attached. This makes it an ill fit when printing
ConsoleMessage's to the system terminal, since these JSON values often
contain information that is important for debugging, e.g.:

SourceBufferPrivateGStreamer::removeCodedFrames(126493C320000001) removing sample (notice: no sample)
SourceBufferPrivateGStreamer::removeCodedFrames(126493C320000001) the range in removeCodedFrames() includes already enqueued samples, reenqueueing from (notice: no time)

This patch adds a new ConsoleMessage::toString() method that
constructs a String containing these JSON values, and makes use of it
when printing messages to the system terminal, giving more useful
output, e.g:

CONSOLE MEDIASOURCE DEBUG MediaSourcePrivateGStreamer::addSourceBuffer(D4447A9F1F483EEF) {"containerType":"video/webm","codecs":"codecs","profiles":"profiles"}
CONSOLE MEDIA LOG HTMLMediaElement::mediaPlayerDurationChanged(D4447A9F1F483EEF) duration = {"invalid":true,"numerator":-1,"denominator":1,"flags":0}, current time = {"value":0,"numerator":0,"denominator":10000000,"flags":1}

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::toString const):

  • inspector/ConsoleMessage.h:

Source/WebCore:

Use ConsoleMessage::toString() instead of ConsoleMessage::message().

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::addMessage):

Tools:

Added unit tests.

  • TestWebKitAPI/Tests/JavaScriptCore/InspectorConsoleMessage.cpp:

(TestWebKitAPI::TEST):

9:37 AM Changeset in webkit [272498] by weinig@apple.com
  • 4 edits in trunk

Update sRGB <-> XYZ conversion matrix values to match values in latest spec
https://bugs.webkit.org/show_bug.cgi?id=221533

Reviewed by Alex Christensen.

Source/WebCore:

Update values to keep in sync with https://github.com/w3c/csswg-drafts/issues/5922.

Updates ExtendedColor API test.

  • platform/graphics/ColorConversion.cpp:

Update values to keep in sync with the values used in the CSS Color 4 spec. This
doesn't have any user visible effect, but would reduce errors if round tripping
through this ever became necessary.

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Update values to values in P3 <-> sRGB conversion test and update to
use EXPECT_FLOAT_EQ so the values can be seen in the output when thigs
fail.

9:36 AM Changeset in webkit [272497] by commit-queue@webkit.org
  • 3 edits
    6 adds in trunk

Null check document element in createGradient
https://bugs.webkit.org/show_bug.cgi?id=221378

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-08
Reviewed by Alex Christensen.

Source/WebCore:

The document element is not guaranteed to exist so null
check it before determining the root style.

Tests: fast/css/conic-gradient-no-document-element-crash.html

fast/css/linear-gradient-no-document-element-crash.html
fast/css/radial-gradient-no-document-element-crash.html

  • css/CSSGradientValue.cpp:

(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):

LayoutTests:

Add tests for this.

  • fast/css/conic-gradient-no-document-element-crash-expected.txt: Added.
  • fast/css/conic-gradient-no-document-element-crash.html: Added.
  • fast/css/linear-gradient-no-document-element-crash-expected.txt: Added.
  • fast/css/linear-gradient-no-document-element-crash.html: Added.
  • fast/css/radial-gradient-no-document-element-crash-expected.txt: Added.
  • fast/css/radial-gradient-no-document-element-crash.html: Added.
9:30 AM Changeset in webkit [272496] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Enable GPU WebRTC codecs in GPUProcess by default on MacOS
https://bugs.webkit.org/show_bug.cgi?id=221397

Reviewed by Eric Carlson.

Manually tested.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebRTCCodecsInGPUProcess):

8:42 AM Changeset in webkit [272495] by Aditya Keerthi
  • 12 edits
    4 adds in trunk

[macOS] Return key binding for date inputs conflicts with return to submit form
https://bugs.webkit.org/show_bug.cgi?id=221532
<rdar://problem/74039204>

Reviewed by Wenson Hsieh.

Source/WebCore:

Currently, pressing the return key within a focused date input presents
the calendar view, rather than submitting an associated form. This is a
usability issue for keyboard users, and is different from the behavior
in Chrome. This patch matches the behavior in Chrome, and makes it so
that a return keypress submits an associated form.

However, since the return key is now reserved for form submission, we
need a new key to present the calendar view for the date input. Chrome
and Firefox use the space key for this functionality, so this patch
matches that behavior.

Note that r267281 updated date inputs to focus the next editable component
when pressing the space key. This behavior is now removed in favor of
presenting the calendar. Other separator keys, and arrow keys, can still be
used to focus the next editable component.

Tests: fast/forms/date/date-editable-components/date-picker-show-on-space-keypress.html

fast/forms/date/date-editable-components/form-submit-on-return-keypress.html

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::handleKeypressEvent):

Date and time inputs are BaseClickableWithKeyInputTypes. This gives them
activation behavior on return and space keypresses, similar to button and
color inputs. However, since date/time inputs are closer to textfields,
than buttons, we elide activation behavior on a return keypress, allowing
the event to submit an associated form. Activation behavior on a space
keypress is supported by going through the existing code path.

  • html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):

Remove "Space" from the list of separator keys that focus the next
editable component.

LayoutTests:

Added tests to verify that pressing the space key in a focused date
input presents a calendar view, and pressing the enter key in a focused
date input submits a form.

Rebaselined existing tests to account for the fact that the space key
no longer focuses the next editable component within a date input.

  • fast/forms/date/date-editable-components/date-editable-components-keyboard-events-expected.txt:
  • fast/forms/date/date-editable-components/date-editable-components-keyboard-events.html:
  • fast/forms/date/date-editable-components/date-picker-show-on-space-keypress-expected.txt: Added.
  • fast/forms/date/date-editable-components/date-picker-show-on-space-keypress.html: Added.
  • fast/forms/date/date-editable-components/form-submit-on-return-keypress-expected.txt: Added.
  • fast/forms/date/date-editable-components/form-submit-on-return-keypress.html: Added.
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-keyboard-events-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-keyboard-events.html:
  • fast/forms/month/month-editable-components/month-editable-components-keyboard-events-expected.txt:
  • fast/forms/month/month-editable-components/month-editable-components-keyboard-events.html:
  • fast/forms/time/time-editable-components/time-editable-components-keyboard-events-expected.txt:
  • fast/forms/time/time-editable-components/time-editable-components-keyboard-events.html:
8:29 AM Changeset in webkit [272494] by Antti Koivisto
  • 10 edits in trunk

[LFC][Integration] Hit test inline boxes
https://bugs.webkit.org/show_bug.cgi?id=221545

Reviewed by Zalan Bujtas.

Source/WebCore:

Fix fast/dom/nodesFromRect/nodesFromRect-inline-image.html and similar by allowing hitting non-root inline boxes.

  • layout/integration/LayoutIntegrationInlineContent.h:

Add a new vector for inlines.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

Build the vector.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox):
(WebCore::LayoutIntegration::NonRootInlineBox::layoutBox const):
(WebCore::LayoutIntegration::NonRootInlineBox::style const):
(WebCore::LayoutIntegration::NonRootInlineBox::lineIndex const):
(WebCore::LayoutIntegration::NonRootInlineBox::rect const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

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

Hit test using the inline vector.

LayoutTests:

  • fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html:
  • fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html:
  • fast/dom/nodesFromRect/resources/nodesFromRect.js:

(nodeListToString):

Sort the vector based on node type so the order is not sensitive to engine internals.
Rect based hit testing is not web exposed and the leaf-to-root order is still maintained.

8:18 AM Changeset in webkit [272493] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Gardening geolocation API test flakiness

Unreviewed test gardening.

Failing regularly, likely due to the same geolocation API limitation.

  • TestWebKitAPI/glib/TestExpectations.json:
8:17 AM Changeset in webkit [272492] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

WebXRSystem::RequestSession with 'viewer' as a required feature should succeed
https://bugs.webkit.org/show_bug.cgi?id=221267

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

LayoutTests/imported/w3c:

Mark xrSession_viewer_availability test as passing.

  • web-platform-tests/webxr/xrSession_viewer_availability.https-expected.txt: Added.

Source/WebCore:

Tested by wpt/webxr/xrSession_viewer_availability.html

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject const):

LayoutTests:

Mark xrSession_viewer_availability test as passing.

  • platform/wpe/TestExpectations:
8:14 AM Changeset in webkit [272491] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix WebXRWebGLLayer m_isCompositionDisabled checks
https://bugs.webkit.org/show_bug.cgi?id=221551

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

Fix reversed m_isCompositionDisabled checks.

  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):

7:40 AM Changeset in webkit [272490] by Andres Gonzalez
  • 23 edits
    2 adds in trunk

Add support for aria-sort change notifications.
https://bugs.webkit.org/show_bug.cgi?id=221495

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-sort-changed-notification.html

This patch adds support for aria-sort changes. Some code cleanup by
using the notificationPlatformName helper function.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):
Logging of the new notification.

  • accessibility/AXObjectCache.cpp:

Handles the aria-sort change notification. Updates the isolated tree.
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/AXObjectCache.h:
  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::notificationPlatformName):
Helper to map AXCore notifications to platform notifications.
(WebCore::AXObjectCache::postPlatformNotification):
Handles the AXSortDirectionChanged notification. Some code cleanup using
the notificationPlatformName helper.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper postNotification:]):
To be overridden by system AX bundles.
(-[WebAccessibilityObjectWrapper accessibilitySortDirection]):
Only ascending and descending sort directions are relevant for clients.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Updates the SortDirection property.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):
Handles the AXSortDirectionChanged notification.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::sortDirection const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::sortDirection const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::sortDirection const):

LayoutTests:

  • accessibility/aria-sort-changed-notification-expected.txt: Added.
  • accessibility/aria-sort-changed-notification.html: Added.
  • accessibility/aria-sort-expected.txt:
  • accessibility/aria-sort.html:

Calls sortDirection property on the JS accessible element instead of
retrieving the aria-sort attribute. This matches more accurately what an
actual client would do. Changed the expected file accordingly.

  • accessibility/ios-simulator/aria-sort-ios-expected.txt:
  • accessibility/ios-simulator/aria-sort-ios.html:

Same as in the Mac test above.

  • platform/ios/TestExpectations:

Added the new test to be run on the ios-simulator.

5:52 AM Changeset in webkit [272489] by Manuel Rego Casasnovas
  • 6 edits
    2 adds in trunk

[GTK] event.ctrlKey and other are false in keydown event
https://bugs.webkit.org/show_bug.cgi?id=221456

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Modifier keys were not being set on "keydown" events.
For example if you check event.ctrlKey (and other) you'll get always false when the user only typed Ctrl key
(it'll be true when it's in combination with some other key, like Ctrl + P).
This is due to some differences on how X system manages the modifier keys (see http://crbug.com/127142#c8),
but this patch will align WebKitGTK with other platforms and browsers on this case.

Test: fast/events/keyboardevent-modifier.html

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::modifiersForEvent): In the case of a keyboard press event check if some modifier key has been pressed.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeKeyEvent): Check if some modifier key has been pressed.

LayoutTests:

The test only pass in GTK right now, despite testing it manually works fine in all platforms,
it looks like they might need changes to make the test pass.

  • TestExpectations:
  • fast/events/keyboardevent-modifier-expected.txt: Added.
  • fast/events/keyboardevent-modifier.html: Added.
  • platform/gtk/TestExpectations:
5:31 AM Changeset in webkit [272488] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Perform layout before running Editor::findString
https://bugs.webkit.org/show_bug.cgi?id=220384

Patch by Frédéric Wang <fwang@igalia.com> on 2021-02-08
Reviewed by Ryosuke Niwa.

This ensures that the layout is up-to-date before performing any search.
Also disable any post-resolution that could cause more changes to happen.

  • editing/Editor.cpp:

(WebCore::Editor::findString):

4:33 AM Changeset in webkit [272487] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed unified build fix.

  • UIProcess/MediaPermissionUtilities.h:
4:31 AM Changeset in webkit [272486] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Deprecation warnings for NSImageHintSymbolFont and NSImageHintSymbolScale
https://bugs.webkit.org/show_bug.cgi?id=221541

Unreviewed build fix.

  • rendering/RenderThemeMac.mm:

(WebCore::createAttachmentPlaceholderImage):

3:34 AM Changeset in webkit [272485] by Philippe Normand
  • 16 edits
    4 adds in trunk

[GLib] Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221199

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Expose a new Permission Request object to the public WPE and GTK APIs, allowing the
application to defer the decision of using a given EME MediaKeySystem to the user's
approval.

Covered by new API test.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp: Added.

(webkitMediaKeySystemPermissionRequestAllow):
(webkitMediaKeySystemPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitMediaKeySystemPermissionRequestDispose):
(webkit_media_key_system_permission_request_class_init):
(webkitMediaKeySystemPermissionRequestCreate):
(webkit_media_key_system_permission_get_name):

  • UIProcess/API/glib/WebKitMediaKeySystemPermissionRequestPrivate.h: Added.
  • UIProcess/API/glib/WebKitUIClient.cpp:
  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/gtk/WebKitMediaKeySystemPermissionRequest.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Added.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:

Tools:

Added basic support for MediaKeySystem permission request to the GTK MiniBrowser, and a GLib
API unit-test as well.

  • MiniBrowser/gtk/BrowserTab.c:

(permissionRequestDialogResponse):
(decidePermissionRequest):
(browser_tab_class_init):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewMediaKeySystemPermissionRequests):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::initializeWebView):

1:47 AM Changeset in webkit [272484] by aboya@igalia.com
  • 8 edits
    1 add in trunk

ConsoleMessage: Don't encode string JSONLogValue's as JSON
https://bugs.webkit.org/show_bug.cgi?id=221421

Reviewed by Eric Carlson.

.:

Enable JavaScriptCore API tests.

  • Source/cmake/WebKitCommon.cmake:

Source/JavaScriptCore:

JSONLogValue's have two tagged types: String and JSON. Despite this,
the ConsoleMessage constructor was converting the string values to
JSON while coalescing them.

This also added quotes on the return value of message() for
ConsoleMessage's created with this constructor, but not with others.

This patch removes that behavior, keeping strings as strings and using
wrapObject() instead of wrapJSONString() for them.

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::addToFrontend):

Tools:

Added API tests to check for the output of message() when constructing
ConsoleMessage objects with JSONLogValue's.

This includes changes contributed by Philippe Normand enabling
JavaScriptCore tests which were previously disabled in WebKitGTK and
making them compile again.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit/InspectorConsoleMessage.cpp: Added.

(TestWebKitAPI::TEST):

1:12 AM Changeset in webkit [272483] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Nullptr crash in editingIgnoresContent via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=220349

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-08
Reviewed by Ryosuke Niwa.

Add an early return to InsertParagraphSeparatorCommand::doApply if insert position is null.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeBefore): Return early if a InsertNodeBeforeCommand can't be created.

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply): Abort the insertion if the insert position is null.

1:00 AM Changeset in webkit [272482] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, unified build fix after r272480

  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: Logging.h is needed for

log channel macros usage.

12:53 AM Changeset in webkit [272481] by Philippe Normand
  • 3 edits in trunk/Source/WebKit

Unreviewed, build fix after r272480

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestMediaKeySystemPermissionByDefaultAction):

  • UIProcess/WebPageProxy.h:
12:37 AM Changeset in webkit [272480] by Philippe Normand
  • 38 edits
    19 adds in trunk

Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187

Reviewed by Jer Noble.

Source/WebCore:

Support for user permission requesting when access to an EME MediaKeySystem is being
requested by the page. This is similar to the mediaDevices access guards.

Existing test media/encrypted-media/mock-MediaKeySystemAccess.html was updated to cover this
new code path and WPE/GTK API tests as well.

  • CMakeLists.txt:
  • Headers.cmake:
  • Modules/encryptedmedia/MediaKeySystemClient.h: Added.
  • Modules/encryptedmedia/MediaKeySystemController.cpp: Added.

(WebCore::MediaKeySystemController::supplementName):
(WebCore::MediaKeySystemController::MediaKeySystemController):
(WebCore::MediaKeySystemController::~MediaKeySystemController):
(WebCore::provideMediaKeySystemTo):
(WebCore::MediaKeySystemController::logRequestMediaKeySystemDenial):

  • Modules/encryptedmedia/MediaKeySystemController.h: Added.

(WebCore::MediaKeySystemController::client const):
(WebCore::MediaKeySystemController::from):
(WebCore::MediaKeySystemController::requestMediaKeySystem):
(WebCore::MediaKeySystemController::cancelMediaKeySystemRequest):

  • Modules/encryptedmedia/MediaKeySystemRequest.cpp: Added.

(WebCore::MediaKeySystemRequest::create):
(WebCore::MediaKeySystemRequest::MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::~MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::topLevelDocumentOrigin const):
(WebCore::MediaKeySystemRequest::start):
(WebCore::MediaKeySystemRequest::allow):
(WebCore::MediaKeySystemRequest::deny):
(WebCore::MediaKeySystemRequest::stop):
(WebCore::MediaKeySystemRequest::activeDOMObjectName const):
(WebCore::MediaKeySystemRequest::document const):

  • Modules/encryptedmedia/MediaKeySystemRequest.h: Added.

(WebCore::MediaKeySystemRequest::setAllowCallback):
(WebCore::MediaKeySystemRequest::identifier const):
(WebCore::MediaKeySystemRequest::keySystem const):

  • Modules/encryptedmedia/NavigatorEME.cpp:

(WebCore::NavigatorEME::requestMediaKeySystemAccess):

Source/WebKit:

Add new IPC and C API exposing MediaKeySystem access permissions to the UIProcess. At least
GTK/WPE would like to have API for asking permission to the user when EME's MediaKeyAccess
is being requested by a page. On Apple platforms the permission is granted by default until
a decision is made about supporting this in their APIUIClient.

  • CMakeLists.txt:
  • Headers.cmake:
  • Platform/Logging.h:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • Sources.txt:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::decidePolicyForMediaKeySystemPermissionRequest):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKMediaKeySystemPermissionCallback.cpp: Added.

(WKMediaKeySystemPermissionCallbackGetTypeID):
(WKMediaKeySystemPermissionCallbackComplete):

  • UIProcess/API/C/WKMediaKeySystemPermissionCallback.h: Added.
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/MediaKeySystemPermissionRequest.h: Added.

(WebKit::MediaKeySystemPermissionRequest::create):
(WebKit::MediaKeySystemPermissionRequest::complete):
(WebKit::MediaKeySystemPermissionRequest::keySystem const):
(WebKit::MediaKeySystemPermissionRequest::MediaKeySystemPermissionRequest):
(WebKit::MediaKeySystemPermissionCallback::create):
(WebKit::MediaKeySystemPermissionCallback::complete):
(WebKit::MediaKeySystemPermissionCallback::MediaKeySystemPermissionCallback):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp: Added.

(WebKit::MediaKeySystemPermissionRequestManagerProxy::MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::~MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logChannel const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logger const):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h: Added.

(WebKit::MediaKeySystemPermissionRequestManagerProxy::page const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):

  • UIProcess/MediaKeySystemPermissionRequestProxy.cpp: Added.

(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):
(WebKit::MediaKeySystemPermissionRequestProxy::allow):
(WebKit::MediaKeySystemPermissionRequestProxy::deny):
(WebKit::MediaKeySystemPermissionRequestProxy::invalidate):
(WebKit::MediaKeySystemPermissionRequestProxy::doDefaultAction):

  • UIProcess/MediaKeySystemPermissionRequestProxy.h: Added.

(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::isPending const):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):
(WebKit::MediaKeySystemPermissionRequestProxy::mainFrameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::frameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin const):
(WebKit::MediaKeySystemPermissionRequestProxy::keySystem const):

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

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):
(WebKit::WebPageProxy::mediaKeySystemPermissionRequestManager):
(WebKit::WebPageProxy::requestMediaKeySystemPermissionByDefaultAction):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp: Added.

(WebKit::MediaKeySystemPermissionRequestManager::MediaKeySystemPermissionRequestManager):
(WebKit::MediaKeySystemPermissionRequestManager::startMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::cancelMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):

  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h: Added.
  • WebProcess/WebCoreSupport/WebMediaKeySystemClient.cpp: Added.

(WebKit::WebMediaKeySystemClient::WebMediaKeySystemClient):
(WebKit::WebMediaKeySystemClient::pageDestroyed):
(WebKit::WebMediaKeySystemClient::requestMediaKeySystem):
(WebKit::WebMediaKeySystemClient::cancelMediaKeySystemRequest):

  • WebProcess/WebCoreSupport/WebMediaKeySystemClient.h: Added.

(WebKit::WebMediaKeySystemClient::~WebMediaKeySystemClient):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::mediaKeySystemPermissionRequestManager):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add support for setting the permission request response from the TestRunner, for usage within layout tests.

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

(WTR::TestRunner::setIsMediaKeySystemPermissionGranted):

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

(WTR::decidePolicyForMediaKeySystemPermissionRequest):
(WTR::TestController::completeMediaKeySystemPermissionCheck):
(WTR::TestController::setIsMediaKeySystemPermissionGranted):
(WTR::TestController::createWebViewWithOptions):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Add basic coverage support for overriding the MediaKeySystem permission answer and thus have
the promise rejection tested in this case.

  • media/encrypted-media/mock-MediaKeySystemAccess-expected.txt:
  • media/encrypted-media/mock-MediaKeySystemAccess.html:

Feb 7, 2021:

8:18 PM Changeset in webkit [272479] by Lauro Moura
  • 4 edits in trunk

REGRESSION(r272379) [WPE] imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant tests are Image Failing
https://bugs.webkit.org/show_bug.cgi?id=221523

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Covered by existing tests.

This change makes the mathml tests pass again, but still does not
fixes fast/text/multi-code-unit-simple-path.html, which is still not
mismatching on both GTK/WPE.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal): Avoid inserting the
trailing zero for GLIB.

LayoutTests:

  • platform/wpe/TestExpectations: Remove expected failures
6:11 PM Changeset in webkit [272478] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] ASSERT(constraints.left->x <= constraints.right->x) when left and right floats run out of space
https://bugs.webkit.org/show_bug.cgi?id=220963
<rdar://problem/73861675>

Reviewed by Simon Fraser.

Source/WebCore:

Remove the incorrect assert. It's valid to have "horizontally overlapping" floats here since
we probe for a vertical range (not just a point) and vertical ranges can have
multiple left and right floats where they simply "overlap" each other when only x is taken into account.

When two floats (left and right) line up like this:

_

| LF |
|_|

_

| RF |
|_|

and as we try to find space for the inline content, we may end up with a vertical range (candidate line position + line height)
where we find both LF and RF. In this range the float boxes do overlap horizontally.
It simply means that at that vertical position there's no available space for the inline content.

Test: fast/inline/intrusive-left-right-floats-assert.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::floatConstraints const):

LayoutTests:

  • fast/inline/intrusive-left-right-floats-assert-expected.txt: Added.
  • fast/inline/intrusive-left-right-floats-assert.html: Added.
2:10 PM Changeset in webkit [272477] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Remove a duplicate implementation of EventHandler::mouseDownMayStartSelect()
https://bugs.webkit.org/show_bug.cgi?id=221531

Reviewed by Tim Horton.

Remove the current bool mouseDownMayStartSelect() const method which just returns m_mouseDownMayStartSelect,
and make the current non-const version of the method const instead. Since mouseDownMayStartSelect() was
only invoked from non-const methods, the former const version was unused.

No change in behavior.

  • page/EventHandler.cpp:

(WebCore::EventHandler::mouseDownMayStartSelect const):
(WebCore::EventHandler::mouseDownMayStartSelect): Deleted.

  • page/EventHandler.h:

(WebCore::EventHandler::mouseDownMayStartSelect const): Deleted.

  • page/Page.h:

(WebCore::Page::textInteractionEnabled const):

Make this getter const, so that we can call it in mouseDownMayStartSelect() const.

(WebCore::Page::textInteractionEnabled): Deleted.

12:25 PM Changeset in webkit [272476] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391

Reviewed by Carlos Garcia Campos.

When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages

If triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.

11:27 AM Changeset in webkit [272475] by weinig@apple.com
  • 75 edits in trunk/Source

Differentiate between color spaces used to tag colors and color spaces used to tag destinations
https://bugs.webkit.org/show_bug.cgi?id=221520

Reviewed by Antti Koivisto.

Source/WebCore:

Replace use of the ColorSpace enum in destination contexts (ImageBuffer, Filters, etc.)
with a new DestinationColorSpace enum that is just the limited set of color spaces
supported in that context, just SRGB and LinearSRGB. We may need to expand this to
other supported destination color spaces in the future, but currently only those two
are actually used, and color space information for higher gamut spaces like DisplayP3
are communicated differently.

This will allow us to more clearly see these two concepts as different and ensure we
we support all cases for each, without having to know to ignore some color spaces in
the destination contexts.

While changing a bunch of names, also take the oppertunity to rename ColorSpace::LinearRGB
to ColorSpace::LinearSRGB to match ColorSpace::SRGB (also done for the new
DestinationColorSpace::LinearSRGB).

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::copiedImage const):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createImageBuffer):

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::createColor):

  • platform/HostWindow.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern):

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):

  • platform/graphics/ColorSpace.cpp:

(WebCore::operator<<):

  • platform/graphics/ColorSpace.h:

(WebCore::callWithColorType):

  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::drawPattern):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::clipToDrawingCommands):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::copyRectToBuffer):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::transformColorSpace):
(WebCore::ImageBufferBackend::colorSpace const):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformColorSpace):

  • platform/graphics/cairo/ImageBufferCairoBackend.h:
  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedCGColorSpace):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::create):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::ClipToDrawingCommands::ClipToDrawingCommands):
(WebCore::DisplayList::ClipToDrawingCommands::colorSpace const):
(WebCore::DisplayList::ClipToDrawingCommands::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::clipToDrawingCommands):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::setResultColorSpace):

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::unmultipliedResult):
(WebCore::FilterEffect::premultipliedResult):
(WebCore::FilterEffect::convertImageDataToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyConvertedImageBufferToDestination):
(WebCore::FilterEffect::copyConvertedImageDataToDestination):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::requiresImageDataColorSpaceConversion):
(WebCore::FilterEffect::transformResultColorSpace):

  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::operatingColorSpace const):
(WebCore::FilterEffect::setOperatingColorSpace):
(WebCore::FilterEffect::resultColorSpace const):
(WebCore::FilterEffect::setResultColorSpace):

  • platform/graphics/filters/SourceGraphic.h:

(WebCore::SourceGraphic::SourceGraphic):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::clipToDrawingCommands):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:
  • platform/graphics/win/GraphicsContextImplDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::create):
(WebCore::ImageBufferDirect2DBackend::ImageBufferDirect2DBackend):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::apply):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives const):
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):

  • rendering/svg/SVGRenderingContext.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

Source/WebKit:

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.h:

Coder implementation of EnumTraits for color space types is now
in WebCore.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Update to use DestinationColorSpace rather than ColorSpace.

11:22 AM Changeset in webkit [272474] by weinig@apple.com
  • 23 edits in trunk

Remove more special cases from color conversion
https://bugs.webkit.org/show_bug.cgi?id=221519

Reviewed by Antti Koivisto.

Source/WebCore:

  • Remove specialized convertTo<> function which only did component type conversion with the fully general convertColor<> function.
  • Make ColorComponents a bit more ready for non-4 component colors by reworking member functionality based on a new mapColorComponents function which maps a function F over all the components of a set of ColorComponents. e.g.

auto colorComponentsC = mapColorComponents([] (auto a, auto b) { return a + b; }, colorComponentsA, colorComponentsB);

will create a new ColorComponents where each component is the sum of the
corresponding components in colorComponentsA and colorComponentsB. It's
variadic so it can take any number of ColorComponents. This allows rewriting
all of the members to be size invariant and a little less verbose.

  • Replace special case for the identity conversion in the fallback color conversion code path, and move it into it's own partial specialization of ColorConversion.
  • Replace special case for chromatic adaptation conversions and have them just use specializations of ColorConversion like all other conversions.
  • platform/graphics/ColorComponents.h:

(WebCore::mapColorComponents):
(WebCore::ColorComponents<T>::map const):
(WebCore::ColorComponents<T>::operator const):
(WebCore::ColorComponents<T>::abs const):
(WebCore::perComponentMax):
(WebCore::perComponentMin):
Add map and mapColorComponents and re-implement existing
functionality in terms of them.

  • platform/graphics/ColorConversion.cpp:

(WebCore::WhitePoint::D50>>::convert):
(WebCore::WhitePoint::D65>>::convert):
(WebCore::SRGBA<uint8_t>>::convert):
(WebCore::SRGBA<float>>::convert):
(WebCore::SRGBA<uint8_t>::ReferenceXYZ>::convert):
(WebCore::convertFromD50WhitePointToD65WhitePoint): Deleted.
(WebCore::convertFromD65WhitePointToD50WhitePoint): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::ColorConversion::convert):
(WebCore::performChomaticAdapatation): Deleted.
Use ColorConversion specializations for the identity conversion, chomatic
adapatation, and component type conversions, rather than hard coding them
in the fallback conversion.

  • platform/graphics/ColorUtilities.h:

(WebCore::convertTo): Deleted.
Remove convertTo<>, which is now superseded by the general convertColor<>.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(webkitAccessibleTextGetText):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityColorStringValue]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::setShadow):

  • html/canvas/CanvasStyle.cpp:

(WebCore::CanvasStyle::CanvasStyle):
(WebCore::CanvasStyle::isEquivalent const):

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::colorSpaceAndComponents const):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::Color):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::Color):

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::brushWithColor):

  • platform/ios/ColorIOS.mm:

(WebCore::colorFromUIColor):
Adopt convertColor<> to replace convertTo<>.

Source/WebKit:

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorToWebCoreColor):
Replace convertTo<> component type conversion to general convertColor<>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Replace convertTo<> component type conversion to general convertColor<>.

11:03 AM Changeset in webkit [272473] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Fix http/wpt/css/css-highlight-api/ tests with inlines enabled
https://bugs.webkit.org/show_bug.cgi?id=221529

Reviewed by Zalan Bujtas.

Highlight painting code is currently tied to legacy line boxes. Disallow LFC.

  • layout/integration/LayoutIntegrationCoverage.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.h:
7:33 AM Changeset in webkit [272472] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] A line with no content should always take the fast vertical alignment path
https://bugs.webkit.org/show_bug.cgi?id=221524

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

3:13 AM Changeset in webkit [272471] by ysuzuki@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

[JSC] Replace toInteger with toIntegerOrInfinity
https://bugs.webkit.org/show_bug.cgi?id=218642

Reviewed by Alexey Shvayka.

In ECMA262 spec, ToInteger abstract operation is replaced with ToIntegerOrInfinity.
This patch renames toInteger to toIntegerOrInfinity in JSC.

  • builtins/ArrayPrototype.js:

(fill):
(includes):
(copyWithin):
(flat):
(at):

  • builtins/FunctionPrototype.js:

(bind):

  • builtins/GlobalOperations.js:

(globalPrivate.toIntegerOrInfinity):
(globalPrivate.toLength):
(globalPrivate.toInteger): Deleted.

  • builtins/RegExpPrototype.js:

(overriddenName.string_appeared_here.replace):

  • builtins/StringPrototype.js:

(repeat):
(at):

  • builtins/TypedArrayPrototype.js:

(subarray):
(at):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • runtime/ArrayPrototype.cpp:

(JSC::argumentClampedIndexFromStartOrEnd):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlSegments.cpp:

(JSC::IntlSegments::containing):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toIntegerOrInfinity const):
(JSC::JSValue::toLength const):
(JSC::JSValue::toInteger const): Deleted.

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:
  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::argumentClampedIndexFromStartOrEnd):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

  • runtime/NumberPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::extractToStringRadixArgument):

  • runtime/RegExpObjectInlines.h:

(JSC::getRegExpObjectLastIndexAsUnsigned):

  • runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::stringIndexOfImpl):
(JSC::stringIncludesImpl):

Note: See TracTimeline for information about the timeline view.