⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Dec 12, 2020:

11:03 PM Changeset in webkit [270747] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] tabCharacter and newlineCharacter are also word separators when not preserved
https://bugs.webkit.org/show_bug.cgi?id=219784

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::isWhitespaceCharacter):
(WebCore::Layout::shouldPreserveSpacesAndTabs):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::shouldPreserveSpacesAndTabs):

9:43 PM Changeset in webkit [270746] by Ryan Haddad
  • 5 edits in trunk

Unreviewed, reverting r270661.

Caused layout test failures and timeouts

Reverted changeset:

"Unreviewed, re-landing r270132."
https://bugs.webkit.org/show_bug.cgi?id=202874
https://trac.webkit.org/changeset/270661

9:41 PM Changeset in webkit [270745] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove test entries referencing bug209859.

The bug was keeping tracking of several WebXR tests. The bug is
closed and all the tests referencing that bug are marked as passing.
WebXR feature is only enabled in WPE, all other ports skipping WebXR
tests. In conclusion, these entries in test expectations are no longer
necessary.

  • platform/wpe/TestExpectations:
8:32 PM Changeset in webkit [270744] by Diego Pino Garcia
  • 1 edit
    1 add in trunk/LayoutTests

[WPE] Unreviewed test gardening. Add WPE baseline after r270582.

  • platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-expected.txt: Added.
5:58 PM Changeset in webkit [270743] by jiewen_tan@apple.com
  • 7 edits in trunk

[WebAuthn][iOS] Turn on modern WebAuthn for default browsers
https://bugs.webkit.org/show_bug.cgi?id=219823
<rdar://problem/72250436>

Reviewed by Brent Fulgham.

Source/WebKit:

Covered by manual tests.

This patch turns on modern WebAuthn on iOS by default. In addition to that,
it turns on WebAuthn for all default browsers.

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebCore::isWebBrowser):
(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):
(WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable):
For apps that turn on WebAuthn by overriding the experimental feature settings, return silently.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences)
Does the meat.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Does the meat.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::WebCore::webAuthenticationModernExperimentalFeature):
(TestWebKitAPI::TEST):
Turn modern WebAuthn off for old tests.

4:14 PM Changeset in webkit [270742] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove tests passing after r270741.

  • platform/wpe/TestExpectations:
2:34 PM Changeset in webkit [270741] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK4] Web view is incorrectly scaled on hidpi
https://bugs.webkit.org/show_bug.cgi?id=218353

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-12-12
Reviewed by Adrian Perez de Castro.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot): Account for the scale factor.

1:06 PM Changeset in webkit [270740] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r270692.
https://bugs.webkit.org/show_bug.cgi?id=219828

Introduced crash

Reverted changeset:

"[macOS] Remove access to com.apple.MTLCompilerService in the
WebContent process"
https://bugs.webkit.org/show_bug.cgi?id=219774
https://trac.webkit.org/changeset/270692

12:49 PM Changeset in webkit [270739] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Unreviewed, reverting r270674.

Broke web content rendering on iOS

Reverted changeset:

"[iOS] Remove access to the IOKIt class AGXDeviceUserClient in
the WebContent process"
https://bugs.webkit.org/show_bug.cgi?id=219733
https://trac.webkit.org/changeset/270674

11:39 AM Changeset in webkit [270738] by commit-queue@webkit.org
  • 28 edits in trunk

Implement WebVTT VTTCue region attribute
https://bugs.webkit.org/show_bug.cgi?id=168716

LayoutTests/imported/w3c:

Patch by Frank Olivier <frankolivier@apple.com> on 2020-12-12
Reviewed by Eric Carlson.

  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-align-text-line-position-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-line-position-expected.txt:

Source/WebCore:

Patch by Frank Olivier <frankolivier@apple.com> on 2020-12-12
Reviewed by Eric Carlson.

Updated existing region tests.

  • WebCore.xcodeproj/project.pbxproj:
  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue):

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
(WebCore::TextTrackCueGeneric::setLine):

  • html/track/TextTrackCueGeneric.h:
  • html/track/VTTCue.cpp:

(WebCore::horizontalKeyword):
(WebCore::lineLeftKeyword):
(WebCore::lineRightKeyword):
(WebCore::autoKeyword):
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::setVertical):
(WebCore::VTTCue::line const):
(WebCore::VTTCue::setLine):
(WebCore::VTTCue::lineAlign const):
(WebCore::VTTCue::setLineAlign):
(WebCore::VTTCue::positionAlign const):
(WebCore::VTTCue::setPositionAlign):
(WebCore::VTTCue::setAlign):
(WebCore::VTTCue::setTrack):
(WebCore::VTTCue::setRegion):
(WebCore::VTTCue::region):
(WebCore::VTTCue::regionId):
(WebCore::VTTCue::calculateComputedLinePosition):
(WebCore::VTTCue::getDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
(WebCore::VTTCue::settingName):
(WebCore::VTTCue::setCueSettings):
(WebCore::VTTCue::toJSON const):
(WebCore::VTTCue::setRegionId): Deleted.

  • html/track/VTTCue.h:

(WebCore::VTTCue::line const): Deleted.
(WebCore::VTTCue::regionId const): Deleted.

  • html/track/VTTCue.idl:
  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::layout):

LayoutTests:

Updated VTTCue to current IDL

Patch by Frank Olivier <frankolivier@apple.com> on 2020-12-12
Reviewed by Eric Carlson.

  • media/track/captions-webvtt/header-regions.vtt:
  • media/track/regions-webvtt/text-track-cue-region-attribute-expected.txt:
  • media/track/regions-webvtt/text-track-cue-region-attribute.html:
  • media/track/regions-webvtt/vtt-region-parser-expected.txt:
  • media/track/regions-webvtt/vtt-region-parser.html:
  • media/track/track-add-remove-cue-expected.txt:
  • media/track/track-add-remove-cue.html:
  • media/track/track-cue-container-rendering-position.html:
  • media/track/track-cue-mutable-expected.txt:
  • media/track/track-cue-mutable.html:
  • media/track/track-vttcue-expected.txt:
  • media/track/track-vttcue.html:
  • media/track/track-webvtt-tc013-settings-expected.txt:
  • media/track/track-webvtt-tc013-settings.html:
  • media/track/track-webvtt-tc017-line-position-expected.txt:
  • media/track/track-webvtt-tc017-line-position.html:
  • media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
  • media/track/track-webvtt-tc018-align-text-line-position.html:
11:29 AM Changeset in webkit [270737] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Scroll performance logging: rubberbanding should not trigger "Exposed tileless area" logging
https://bugs.webkit.org/show_bug.cgi?id=219827
<rdar://problem/72209189>

Reviewed by Zalan Bujtas.

Clamp the scroll position before computing exposed tile-less area so that rubberbanding
doesn't trigger logging that we revealed areas not covered by tiles.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea const):

10:40 AM Changeset in webkit [270736] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

REGRESSION(r270715) [LFC][IFC] Whitespace as expansion opportunity should not change as we expand the runs
https://bugs.webkit.org/show_bug.cgi?id=219826

Reviewed by Antti Koivisto.

This is the property of the entire run and should be set based on the box and whether the initial part of the run
is whitespace or not.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):

  • layout/inlineformatting/InlineLine.h:
  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::shouldPreserveSpacesAndTabs):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::shouldPreserveSpacesAndTabs):

  • layout/inlineformatting/text/TextUtil.h:
9:54 AM WebKitGTK/2.30.x edited by Philippe Normand
(diff)
5:36 AM Changeset in webkit [270735] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Remove tests passing after r270734.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
4:07 AM Changeset in webkit [270734] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Update test expectations.

Added two failures related with font-size visualization in
WebInspector and another one related with WebRTC.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
3:44 AM Changeset in webkit [270733] by dino@apple.com
  • 115 edits
    1 copy
    78 adds in trunk/Source/ThirdParty/ANGLE

Improved Metal backend for ANGLE, with direct GLSL to Metal compiler translation
https://bugs.webkit.org/show_bug.cgi?id=219759
<rdar://problem/72200222>

Patch by Kyle Piddington <Kyle Piddington> on 2020-12-12
Reviewed by Dean Jackson.

Reviewer's note: While this patch is landing in WebKit now, it will
be submitted to the main ANGLE project for official review, then re-merged
back into WebKit. The feature provided here is not enabled by default.

Provide a WebGL1 compliant transpiler for GLSL content. With this
change, we can leverage the already present open source work in the
ANGLE project to enable webgl to run on top of Metal. In addition,
this patch contains a number of fixes to the existing ANGLE Metal backend.

Test: Tests were validated with the dEQP test suite with ANGLE, in
addition to running standard layout tests.

2:11 AM Changeset in webkit [270732] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Update baseline after r270613.

Test results now include overscroll-behavior-x and overscroll-behavior-y properties.

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Dec 11, 2020:

10:56 PM Changeset in webkit [270731] by Peng Liu
  • 12 edits in trunk/Source

[Media in GPU Process][MSE] Implement SourceBuffer::reportExtraMemoryAllocated()
https://bugs.webkit.org/show_bug.cgi?id=219812

Reviewed by Eric Carlson.

Source/WebCore:

Refactor the implementation of SourceBuffer::reportExtraMemoryAllocated() to let
SourceBufferPrivate calculate the extra memory cost and report the value to
SourceBuffer when necessary. This approach is better than the current one when
SourceBufferPrivate runs in the GPU process because track buffer management
has been moved to SourceBufferPrivate in r270435.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferInternal):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateReportExtraMemoryCost):
(WebCore::SourceBuffer::reportExtraMemoryAllocated):
(WebCore::SourceBuffer::extraMemoryCost const): Deleted.

  • Modules/mediasource/SourceBuffer.h:
  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::appendCompleted):
(WebCore::SourceBufferPrivate::evictCodedFrames):

  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::append):

Source/WebKit:

Add a new IPC message SourceBufferPrivateReportExtraMemoryCost to forward the callback
to the web process.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReportExtraMemoryCost):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateReportExtraMemoryCost):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
9:19 PM Changeset in webkit [270730] by jiewen_tan@apple.com
  • 7 edits in trunk/Source

[WebAuthn] Adopt new UI for the Platform Authenticator getAssertion flow
https://bugs.webkit.org/show_bug.cgi?id=219710
<rdar://problem/72154800>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by manual tests.

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

(WebCore::AuthenticatorAssertionResponse::laContext const):
(WebCore::AuthenticatorAssertionResponse::setLAContext):

Source/WebKit:

This patch adopts the new UI for the platform authenticator getAssertion flow. It's more or less
the same as the security key one except an LAContext will be passed in from the UI. Now LocalAuthenticator
will just utilize the LAContext from the UI.

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

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::~AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse):
(WebKit::AuthenticatorPresenterCoordinator::didSelectAssertionResponse):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):

  • UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:

(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):

7:19 PM Changeset in webkit [270729] by Megan Gardner
  • 7 edits
    4 adds in trunk/Source/WebCore

Infrastructure to store and restore AppHighlights
https://bugs.webkit.org/show_bug.cgi?id=219769
<rdar://problem/70297699>

Reviewed by Tim Horton.

AppHighlights can be pulled out of their HighlightRegister and encoded for storage by the app.
Also, an encoded buffer can be unpacked in ranges added back into the HighlightRegister.
Fallbacks for ranges that are not found are not designed yet, so currently they will just be stored
with the intention to communicate back to the app that they were not found in the current version of
the document. The API to interact with the client is not designed yet, so currently this encoded data does not get
shuttle anywhere but that plumbing will be added in a later patch.

  • Modules/highlight/AppHighlightListData.cpp: Added.

(WebCore::computePathIndex):
(WebCore::createNodePathComponent):
(WebCore::makeNodePath):
(WebCore::createAppHiglightRangeData):
(WebCore::AppHighlightListData::create):
(WebCore::AppHighlightListData::toData const):

  • Modules/highlight/AppHighlightListData.h: Added.

(WebCore::AppHighlightRangeData::NodePathComponent::NodePathComponent):
(WebCore::AppHighlightRangeData::NodePathComponent::operator== const):
(WebCore::AppHighlightRangeData::NodePathComponent::operator!= const):
(WebCore::AppHighlightRangeData::AppHighlightRangeData):
(WebCore::AppHighlightRangeData::text const):
(WebCore::AppHighlightRangeData::startContainer const):
(WebCore::AppHighlightRangeData::startOffset const):
(WebCore::AppHighlightRangeData::endContainer const):
(WebCore::AppHighlightRangeData::endOffset const):
(WebCore::AppHighlightListData::AppHighlightListData):
(WebCore::AppHighlightListData::ranges const):
(WebCore::AppHighlightListData::setRanges):
(WebCore::AppHighlightListData::addRanges):
(WebCore::AppHighlightListData::size const):
(WebCore::AppHighlightListData::isEmpty const):
(WebCore::AppHighlightRangeData::NodePathComponent::encode const):
(WebCore::AppHighlightRangeData::NodePathComponent::decode):
(WebCore::AppHighlightRangeData::encode const):
(WebCore::AppHighlightRangeData::decode):
(WebCore::AppHighlightListData::encode const):
(WebCore::AppHighlightListData::decode):

  • Modules/highlight/AppHighlightStorageController.cpp: Added.

(WebCore::findNodeByPathIndex):
(WebCore::findNodeStartingAtPathComponentIndex):
(WebCore::findNode):
(WebCore::findRangeByIdentifyingStartAndEndPositions):
(WebCore::findRangeBySearchingText):
(WebCore::findRange):
(WebCore::AppHighlightStorageController::AppHighlightStorageController):
(WebCore::AppHighlightStorageController::createAppHighlightListData):
(WebCore::AppHighlightStorageController::restoreAppHighlights):

  • Modules/highlight/AppHighlightStorageController.h: Added.
  • Modules/mediastream/RTCRtpScriptTransform.cpp:
  • Modules/mediastream/RTCRtpScriptTransform.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::appHighlightStorageController):
(WebCore::Document::updateHighlightPositions):

  • dom/Document.h:

(WebCore::Document::appHighlightStorageControllerIfExists const):

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

[WebM] Mark Opus and Vorbis as supported track types.
https://bugs.webkit.org/show_bug.cgi?id=219819

Rubber-stamped by Eric Carlson.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::supportedAudioCodecs):

6:36 PM Changeset in webkit [270727] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Add Experimental VP8 support
https://bugs.webkit.org/show_bug.cgi?id=219732
<rdar://problem/72171055>

Reviewed by Eric Carlson.

Merge error after r270720; Use the local value isKey, rather than querying the VP9 header parser
to tell whether the incoming frame is a keyframe.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

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

6:31 PM Changeset in webkit [270726] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

PCM: Change debugModeSecondsUntilSend from 60 seconds to 10 seconds
https://bugs.webkit.org/show_bug.cgi?id=219816
<rdar://problem/70779862>

Unreviewed change to a constant, only used for debugging.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

debugModeSecondsUntilSend changed to 10 seconds.

(WebKit::PrivateClickMeasurementManager::attribute):

Fixed bad indentation.

6:12 PM Changeset in webkit [270725] by rniwa@webkit.org
  • 33 edits
    1 copy in trunk/Source

[GPU Process] Cache Font objects
https://bugs.webkit.org/show_bug.cgi?id=219672

Reviewed by Wenson Hsieh.

Source/WebCore:

Partially based on the patch made by Said Abou-Hallawa.

This patch introduces a mechanism to cache Font objects in the GPU process much the same way
NativeImage objects are cached in the GPU process.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font): Restore the same rendering resource identifier when Font object
is decoded in the GPU process.
(WebCore::Font::renderingResourceIdentifier const): Added. Lazily creates an identifier.
This never happens in the GPU process as we set it in the constructor above.

  • platform/graphics/Font.h:

(WebCore::Font::create): Ditto as Font::Font.

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::fonts const): Added.
(WebCore::DisplayList::DisplayList::cacheFont): Added.

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs): Call the newly introduced
appendDrawGraphsItemWithCachedFont instead of appending DrawGlyphs directly.
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp: Ditto.

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

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp: Ditto.

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

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply): Replaced call to DrawGlyphs::apply with
ASSERT_NOT_REACHED since Replayer::applyItem should handle it now.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::DrawGlyphs): The one used in decode function in GPU
process now takes RenderingResourceIdentifier instead of Font and the glyph bounds instead
of computing it again here. The one used in WebContent will continue to take Font
to copmute the bounds but encodes RenderingResourceIdentifier instead.
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const): Takes Font.
(WebCore::DisplayList::DrawGlyphs::apply const): Takes Font.
(WebCore::DisplayList::DrawGlyphs::computeBounds): Takes Font.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawGlyphs::fontIdentifier): Added.
(WebCore::DisplayList::DrawGlyphs): No longer retains Font object.
(WebCore::DisplayList::DrawGlyphs::encode const): Encodes the bounding rect.
(WebCore::DisplayList::DrawGlyphs::decode): Ditto for decoding.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::appendDrawGraphsItemWithCachedFont): Added.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::cacheFont): Added.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer): Now takes FontRenderingResourceMap.
(WebCore::DisplayList::applyFontItem): Added.
(WebCore::DisplayList::Replayer::applyItem): Applies DrawGlyphs with Font in m_fonts.

  • platform/graphics/displaylists/DisplayListReplayer.h:

Source/WebKit:

Partially based on the patch made by Said Abou-Hallawa.

This patch introduces a mechanism to cache Font objects in the GPU process much the same way
NativeImage objects are cached in the GPU process, and re-enables Web Fonts.

Fonts are removed from the GPU process when either they hadn't been used for 4 rendering updates
or a memory warning has been issued.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::submit): Added the font cache.
(WebKit::RemoteRenderingBackend::cacheFont): Added.
(WebKit::RemoteRenderingBackend::deleteAllFonts): Added.

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in: Added CacheFont and DeleteAllFonts

as new IPC messages.

  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheFont): Added.
(WebKit::RemoteResourceCache::deleteAllFonts): Added. Used when a memory warning is issued.

  • GPUProcess/graphics/RemoteResourceCache.h:

(WebKit::RemoteResourceCache::fonts const): Added.

  • Platform/IPC/FontReference.h: Added.

(IPC::FontReference): Added.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared): Added FontReference.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Ref<Font>>::encode): Encode the rendering resource identifier of Font.
(IPC::ArgumentCoder<Ref<Font>>::decode): Ditto for decoding.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::cacheFont): Added.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::cacheFont): Added.
(WebKit::RemoteRenderingBackendProxy::deleteAllFonts): Added.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::cacheFont): Added. It updates the total number of fonts
being used since the last rendering update and records the self assigned identifier for
the next rendering update.
(WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate): Added. Called at the end of
each rendering update. It removes all fonts unused in the lsat 4 rendering updates if at least
1/4 of the fonts in the GPU process were not used in this rendering update.
(WebKit::RemoteResourceCacheProxy::releaseMemory): Added. Removes all the fonts to free up
memory when a memory warning is issued.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

(WebKit::RemoteResourceCacheProxy): Added m_fontLastRenderingUpdateMap which keeps track of
the rendering resource identifiers of the fonts cached in the GPU process.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Re-enables the Web Fonts.
(WebKit::WebPage::finalizeRenderingUpdate): Added the call to RemoteRenderingBackendProxy's
didFinalizeRenderingUpdate.
(WebKit::WebPage::releaseMemory): Added. Calls RemoteRenderingBackendProxy's function.

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

(WebKit::WebProcess::initializeWebProcess): Added the call to WebPage::releaseMemory in
the memory pressure handler.
(WebKit::WebProcess::prepareToSuspend): Ditto for the process suspension.

Source/WTF:

Specify the width of enum classes so that they can be forward declared.

  • wtf/MemoryPressureHandler.h:
6:03 PM Changeset in webkit [270724] by jiewen_tan@apple.com
  • 5 edits in trunk/Source/WebKit

[WebAuthn] Adopt new UI for the Security Key getAssertion flow
https://bugs.webkit.org/show_bug.cgi?id=219711
<rdar://problem/72154840>

Reviewed by Brent Fulgham.

This patch adopts the new UI for the security key getAssertion flow which contains two part:

  1. showing a informative UI to ask the user to connect their security keys,
  2. showing an account picker for users to select a credential to use.

Covered by manual tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:

Paperwork.

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

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse):
(WebKit::AuthenticatorPresenterCoordinator::didSelectAssertionResponse):

  • UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:

(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):
Implements the two flows.

5:34 PM Changeset in webkit [270723] by wilander@apple.com
  • 8 edits in trunk/Source/WebKit

PCM: Add feature flag support in the network process
https://bugs.webkit.org/show_bug.cgi?id=219811
<rdar://problem/72242633>

Reviewed by Alex Christensen.

No new tests. This just forwards a preference to the network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

Stores the incoming enablePrivateClickMeasurement from
WebKit::NetworkProcessCreationParameters.

(WebKit::NetworkProcess::setPrivateClickMeasurementEnabled):
(WebKit::NetworkProcess::privateClickMeasurementEnabled const):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

New field enablePrivateClickMeasurement.

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

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

(WebKit::PrivateClickMeasurementManager::storeUnattributed):

Early return if the feature is not enabled.

(WebKit::PrivateClickMeasurementManager::handleAttribution):

Early return if the feature is not enabled.

(WebKit::PrivateClickMeasurementManager::fireConversionRequest):

Early return if the feature is not enabled.

(WebKit::PrivateClickMeasurementManager::featureEnabled const):

New convenience function.

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Sets the new enablePrivateClickMeasurement in
WebKit::NetworkProcessCreationParameters.

5:18 PM Changeset in webkit [270722] by jer.noble@apple.com
  • 7 edits in trunk/Source

[Cocoa] Add Experimental Vorbis support
https://bugs.webkit.org/show_bug.cgi?id=219810
<rdar://problem/72242614>

Patch by Eric Carlson <eric.carlson@apple.com> on 2020-12-11
Reviewed by Jer Noble.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setVorbisDecoderEnabled):
(WebCore::RuntimeEnabledFeatures::vorbisDecoderEnabled const):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData): Support being
called with more than one sample.

  • platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:

(WebCore::isVorbisDecoderAvailable): Check the runtime settings.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Added an experimental web

preference.

  • wtf/PlatformEnableCocoa.h: Define ENABLE_VORBIS.
4:58 PM Changeset in webkit [270721] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, build fix after r270694

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
Adds a instance method guard for new SPI.

4:57 PM Changeset in webkit [270720] by jer.noble@apple.com
  • 35 edits
    2 copies
    9 adds in trunk

[Cocoa] Add Experimental VP8 support
https://bugs.webkit.org/show_bug.cgi?id=219732

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add a new decoder for VP8 video using the decoder exposed by libwebrtc. Refactor
WebKitDecoderReceiver into its own file, to be used by both the VP8 and VP9 decoders.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp: Added.

(webrtc::WebKitDecoderReceiver::WebKitDecoderReceiver):
(webrtc::WebKitDecoderReceiver::~WebKitDecoderReceiver):
(webrtc::WebKitDecoderReceiver::initializeFromFormatDescription):
(webrtc::WebKitDecoderReceiver::pixelBufferPool):
(webrtc::WebKitDecoderReceiver::decoderFailed):
(webrtc::WebKitDecoderReceiver::Decoded):

  • Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.h: Added
  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: Added.

(webrtc::registerWebKitVP8Decoder):
(webrtc::createWebKitVP8Decoder):
(webrtc::invalidateVP8Decoder):
(webrtc::finalizeVP8Decoder):
(webrtc::copyVP8DecoderDebugDescription):
(webrtc::webKitVP8DecoderFromVTDecoder):
(webrtc::startVP8DecoderSession):
(webrtc::decodeVP8DecoderFrameFromContiguousBlock):
(webrtc::decodeVP8DecoderFrame):

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::createWebKitVP9Decoder):
(webrtc::startVP9DecoderSession):
(webrtc::WebKitVP9DecoderReceiver::WebKitVP9DecoderReceiver): Deleted.
(webrtc::WebKitVP9DecoderReceiver::~WebKitVP9DecoderReceiver): Deleted.
(webrtc::WebKitVP9DecoderReceiver::initializeFromFormatDescription): Deleted.
(webrtc::WebKitVP9DecoderReceiver::pixelBufferPool): Deleted.
(webrtc::WebKitVP9DecoderReceiver::decoderFailed): Deleted.
(webrtc::WebKitVP9DecoderReceiver::Decoded): Deleted.

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Newly passing tests:

imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer.html
imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html
imported/w3c/web-platform-tests/media-source/mediasource-seekable.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-bitrate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framerate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html
imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec.html

Parse VP8 video tracks out of WebM files. Add a simple VP8 frame header parser to extract width
height and color information out of keyframe headers, and create a CMFormatDescription from that
header.

Throw an error during parsing if an Audio or Video track is encountered with an unsupported codec.

  • platform/graphics/VP9Utilities.cpp:

(WebCore::parseVPCodecParameters):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::createFormatDescriptionFromVPCodecConfigurationRecord):
(WebCore::createFormatDescriptionFromVP9HeaderParser):
(WebCore::parseVP8FrameHeader):
(WebCore::createFormatDescriptionFromVP8Header):
(WebCore::SourceBufferParserWebM::OnFrame):

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

(WebCore::registerWebKitVP8Decoder):
(WebCore::isVP8DecoderAvailable):
(WebCore::isVP9CodecConfigurationRecordSupported):
(WebCore::isVP8CodecConfigurationRecordSupported):
(WebCore::isVPCodecConfigurationRecordSupported):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProvider::registerWebKitVP8Decoder):

Source/WebKit:

Add new WebPageCreationParameter flags to enable VP8 decoders in the WebContent and GPU
processes when the experimental feature is enabled.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::enableVP9Decoders):

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

(WebKit::GPUProcess::enableVP9Decoders):

  • GPUProcess/GPUProcess.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP8DecoderEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::updateParameters):

  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::isVP8DecoderEnabled const):

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP8SWDecoder):

  • WebProcess/WebProcess.h:

Source/WTF:

Add a new VP8 experimental feature flag.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac-bigsur/imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-expected.txt:
  • platform/mac-bigsur/imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec-expected.txt:
4:43 PM Changeset in webkit [270719] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r270665): testapi failing on JSC bots
https://bugs.webkit.org/show_bug.cgi?id=219787

Reviewed by Saam Barati.

  • API/JSValueRef.cpp:

(JSValueIsString):
(JSValueIsObject):
(JSValueIsSymbol):

4:32 PM Changeset in webkit [270718] by Chris Dumez
  • 6 edits in trunk/Source

Potential null dereference of m_frame under DocumentLoader::stopLoading()
https://bugs.webkit.org/show_bug.cgi?id=219786
<rdar://71945402>

Reviewed by Geoffrey Garen.

Source/WebCore:

The crash indicates that FrameLoader::stopAllLoaders() is calling m_documentLoader->stopLoading()
and that DocumentLoader::m_frame is null, causing DocumentLoader::stopLoading() to do a null
dereference of m_frame.

I believe 3 things could have happened:

  1. DocumentLoader::detachFromFrame() was called on a DocumentLoader but that DocumentLoader somehow stayed attached to the FrameLoader. DocumentLoader::detachFromFrame() is what clears DocumentLoader::m_frame.
  2. FrameLoader::setDocumentLoader() was called with a DocumentLoader which already did not have a frame.
  3. The Frame was destroyed. DocumentLoader is a FrameDestructionObserver so m_frame would actually get nulled out in case of Frame destruction.

Now, I do not believe that 3 is actually possible. We know the FrameLoader is alive here since
FrameLoader::stopAllLoaders() is what's calling DocumentLoader::stopLoading(). The Frame owns
the FrameLoader so the Frame is alive. Also note that FrameLoader::stopAllLoaders() protects
the frame AND dereferences m_frame without crashing *BEFORE* calling DocumentLoader::stopLoading().

Looking at case 1, I believe this is actually possible currently because
FrameLoader::setProvisionalDocumentLoader() does not early return when the new DocumentLoader
being set is the same one as m_provisionalDocumentLoader. This means that
FrameLoader::setProvisionalDocumentLoader() would in such case call DocumentLoader::detachFromFrame()
on the DocumentLoader even though it will remain attached to this FrameLoader. Note that
FrameLoader::setPolicyDocumentLoader() & FrameLoader::setDocumentLoader() already return early
properly in such cases. This patch fixes FrameLoader::setProvisionalDocumentLoader() to early
return, thus making issue 1 impossible I believe.

Case 2 is a bit harder to fix. We had this debug assertion in FrameLoader::setDocumentLoader():
ASSERT(!loader || loader->frameLoader() == this);
So in debug builds at least, we are protected against issue 2 because loader->frameLoader()
would return null when the loader's frame is null. I turned this debug assertion into a release
assertion to help us figure out if this is what's causing this crash.

I also made the following changes:

  • Added release logging to the related code to help debug this in the future if the issue remains.
  • Do an early return in DocumentLoader::stopLoading() if m_frame is already null to avoid the crash. I added a debug assertion to ensure that m_frame is not null though to see if this is still happening.

No new tests, we do not know how this happens at this time.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::attachToFrame):
(WebCore::DocumentLoader::detachFromFrame):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::setDocumentLoader):
(WebCore::FrameLoader::setPolicyDocumentLoader):
(WebCore::FrameLoader::setProvisionalDocumentLoader):
Return early when the new loader is identical to the existing one, to avoid incorrectly calling
detachFromFrame() on it.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):
Add some release logging.

4:07 PM Changeset in webkit [270717] by aestes@apple.com
  • 7 edits in trunk/Source/WebCore

[Mac] Abstract SourceBufferParser segments
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>

Reviewed by Eric Carlson.

Rather than directly using a Vector, teach SourceBufferParser to use a Segment class.
This will allow the underlying segment representation to vary in a follow-on patch.

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

(WebCore::SourceBufferParserAVFObjC::appendData):

  • platform/graphics/cocoa/SourceBufferParser.cpp:

(WebCore::SourceBufferParser::Segment::Segment):
(WebCore::SourceBufferParser::Segment::size const):
(WebCore::SourceBufferParser::Segment::read const):
(WebCore::SourceBufferParser::Segment::takeVector):

  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::appendData):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:
4:07 PM Changeset in webkit [270716] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the iOS !UISCROLLVIEW_ASYNCHRONOUS_SCROLL_EVENT_HANDLING build.

  • Shared/ios/WebIOSEventFactory.mm:

(WebIOSEventFactory::createWebWheelEvent):

3:38 PM Changeset in webkit [270715] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Use InlineTextItem::shouldPreserveSpacesAndTabs throughout the inline line layout code
https://bugs.webkit.org/show_bug.cgi?id=219799

Reviewed by Antti Koivisto.

Remove redundant local functions.

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::shouldKeepBeginningOfLineWhitespace): Deleted.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::isWhitespacePreserved): Deleted.

  • layout/inlineformatting/InlineLine.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):

  • layout/inlineformatting/text/TextUtil.h:

(WebCore::Layout::TextUtil::shouldPreserveTrailingWhitespace): Deleted.

3:34 PM Changeset in webkit [270714] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

'AnalysisTask._commitSetsInSamePlatformGroup' should not fetch an invalid platform and metric config for a MeasurementSet.
https://bugs.webkit.org/show_bug.cgi?id=219721

Reviewed by Ryosuke Niwa.

Selected test group on analysis task page may not highlight when 'AnalysisTask._commitSetsInSamePlatformGroup' fetches
an invalid platform and metric config for a MeasurementSet.

  • public/v3/models/analysis-task.js: Added a logic to avoid fetching MeasurementSet with an invalid config.

(AnalysisTask.prototype._commitSetsInSamePlatformGroup):

3:27 PM Changeset in webkit [270713] by Aditya Keerthi
  • 12 edits
    15 adds in trunk

[iOS][FCR] Add new look for select elements
https://bugs.webkit.org/show_bug.cgi?id=219507
<rdar://problem/71951874>

Reviewed by Wenson Hsieh.

Source/WebCore:

Implement the new in-page appearance for <select> and <select multiple>.
The new appearance/behavior of the select popup will be added separately.

Tests: fast/forms/ios/form-control-refresh/select/background-color.html

fast/forms/ios/form-control-refresh/select/border-radius.html
fast/forms/ios/form-control-refresh/select/border.html
fast/forms/ios/form-control-refresh/select/multiple-appearance.html
fast/forms/ios/form-control-refresh/select/rtl-appearance.html
fast/forms/ios/form-control-refresh/select/text-color.html
fast/forms/ios/form-control-refresh/select/width-height.html

  • css/formControlsIOS.css:

(select):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):
(RenderMenuList::layout):

Override the layout method so that the border radius can be adjusted to
enforce the pill-shaped appearance. Ideally, we should not be adjusting
styles during layout. However, for a pill-shaped appearance, the
horizontal border radius is dependent on the computed height of the box.
This means that the border radius cannot be declared prior to layout,
since CSS only allows the horizontal border radius to be dependent on the
computed width of the box.

Ignoring the style's border radius and forcing a pill-shaped appearance at
paint time is not an option, since focus rings and tap highlights will not
use the correct border radius. Consequently, we need to adjust the border
radius after layout.

Note that similar adjustments to style after layout are made in RenderSliderThumb,
RenderButton, and RenderTextControlSingleLine.

  • rendering/RenderMenuList.h:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::popupInternalPaddingBox const):

Added a new parameter, so that the padding can be controlled at runtime.

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::popupInternalPaddingBox const):

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

(WebCore::RenderThemeIOS::popupInternalPaddingBox const):

Use a 1em padding, so that the button scales with the font size.

(WebCore::canAdjustBorderRadiusForAppearance):

Enforce a pill-like shape, only if the author has not specified a
custom border radius.

(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):

Paint the appropriate glyph for <select> (a two-headed arrow) and
<select multiple> (ellipses). Both glyphs were obtained from
SF Symbols. The glyph is painted on the right by default, and on
the left if the element's direction is RTL.

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

(WebCore::RenderThemeMac::popupInternalPaddingBox const):

LayoutTests:

Added tests to verify the stylability of select elements with the new appearance.

  • fast/forms/ios/form-control-refresh/select/background-color-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/background-color.html: Added.
  • fast/forms/ios/form-control-refresh/select/border-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/border-radius-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/border-radius.html: Added.
  • fast/forms/ios/form-control-refresh/select/border.html: Added.
  • fast/forms/ios/form-control-refresh/select/multiple-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/multiple-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/select/rtl-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/rtl-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/select/text-color-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/text-color.html: Added.
  • fast/forms/ios/form-control-refresh/select/width-height-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/select/width-height.html: Added.
2:59 PM Changeset in webkit [270712] by timothy_horton@apple.com
  • 28 edits in trunk

Trackpad and Mouse scroll events on iPad only fire "pointermove" -- not "wheel"
https://bugs.webkit.org/show_bug.cgi?id=210071
<rdar://problem/54616853>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):
Fix a minor logic error when WHEEL_EVENT_LATCHING is off; allowScrolling
would always be true, even if the set of processing steps does not include any scrolling steps.

  • rendering/EventRegion.h:

(WebCore::EventRegion::encode const):
(WebCore::EventRegion::decode):
Encode/decode the wheel and passive wheel event regions.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:

Add some SPI.

  • Shared/ios/WebIOSEventFactory.h:
  • Shared/ios/WebIOSEventFactory.mm:

(toWebPhase):
(WebIOSEventFactory::createWebWheelEvent):
Add a UIScrollEvent->WebWheelEvent conversion helper.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setupScrollAndContentViews]):
Enable async UIScrollEvent handling for WKScrollView.

(-[WKWebView _scrollView:asynchronouslyHandleScrollEvent:completion:]):
Adopt new UIKit SPI to asynchronously defer UIScrollEvents.
We pass them to the Web Content process, where they are processed
*only* for event handling, not for scrolling.

If the event is not cancelable, we will synchronously reply that it was
not handled; if it is cancelable, or we don't yet know if it will be,
we'll wait to hear back from the Web Content process before replying.

UIKit will wait until our reply to apply the UIScrollEvent to the UIScrollView.

  • UIProcess/PageClient.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::eventListenerTypesAtPoint):
Expose a mechanism for retrieving the event listener types at a given point,
similar to the existing mechanism for touch event listeners.

(-[WKChildScrollView initWithFrame:]):
Enable async UIScrollEvent handling for WKChildScrollView.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate _scrollView:asynchronouslyHandleScrollEvent:completion:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::handleAsynchronousCancelableScrollEvent):
Plumb async scroll events for sub-scrollable regions through PageClient
to WKWebView; we don't actually care which UIScrollView they're handed to,
since we re-hit-test ourselves.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchWheelEventWithoutScrolling):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::handleAsynchronousCancelableScrollEvent):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::dispatchWheelEventWithoutScrolling):

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

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Enable wheel event regions on iOS + macCatalyst.

Tools:

  • TestWebKitAPI/Tests/ios/WKScrollViewTests.mm:

(-[WKUIScrollEvent initWithPhase:location:delta:]):
(-[WKUIScrollEvent phase]):
(-[WKUIScrollEvent locationInView:]):
(-[WKUIScrollEvent _adjustedAcceleratedDeltaInView:]):
(TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:

Add a very simple test that directly calls the new UIScrollViewDelegate SPI
and verifies that only the first event is cancelable (unless the first event
is canceled, in which case all subsequent events are cancelable).

2:57 PM Changeset in webkit [270711] by Caio Lima
  • 10 edits in trunk/Source/JavaScriptCore

[JIT] Require value registers explicitly on emitValueProfilingSite
https://bugs.webkit.org/show_bug.cgi?id=219550

Reviewed by Yusuke Suzuki.

This patch is removing the default value for emitValueProfilingSite
to avoid bugs like r270423 and r270431.

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::emitPutCallResult):
(JSC::JIT::emit_op_iterator_open):

  • jit/JITCall32_64.cpp:

(JSC::JIT::emitPutCallResult):
(JSC::JIT::emit_op_iterator_open):

  • jit/JITInlines.h:

(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):
(JSC::JIT::emitValueProfilingSiteIfProfiledOpcode):
(JSC::JIT::emitValueProfilingSite):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_get_direct_pname):
(JSC::JIT::emit_op_get_argument):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_get_direct_pname):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_get_internal_field):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_get_internal_field):

2:34 PM Changeset in webkit [270710] by Brent Fulgham
  • 7 edits in trunk/Source

Expose API for enabling/disabling Private Click Measurement
https://bugs.webkit.org/show_bug.cgi?id=219791
<rdar://problem/70502198>

Reviewed by Alex Christensen.

Source/WebKit:

Tested by existing PCM test cases.

This patch moves the flag for enabling and disabling PCM support from the Experimental
features settings to standard settings in preparation for exposing the option in more
permanent UI. This patch does not make any changes in behavior.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _privateClickMeasurementEnabled]):
(-[WKPreferences _setPrivateClickMeasurementEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

This patch moves the flag for enabling and disabling PCM support from the Experimental
features settings to standard settings in preparation for exposing the option in more
permanent UI. This patch does not make any changes in behavior.

  • Scripts/Preferences/WebPreferences.yaml: Add PCM flag here.
  • Scripts/Preferences/WebPreferencesExperimental.yaml: Remove PCM flag from here.
2:28 PM Changeset in webkit [270709] by Truitt Savell
  • 11 edits
    35 copies
    41 adds
    1 delete in trunk/LayoutTests

Remove LayoutTests/platform/big-sur
https://bugs.webkit.org/show_bug.cgi?id=218359

Unreviewed test gardening.

  • platform/mac-bigsur/http/tests/navigation/javascriptlink-frames-expected.txt: Removed.
  • platform/mac-bigsur/media/controls-after-reload-expected.txt: Removed.
  • platform/mac-bigsur/media/video-no-audio-expected.txt: Removed.
  • platform/mac-bigsur/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Removed.
  • platform/mac-bigsur/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Removed.
  • platform/mac-bigsur/svg/text/bidi-tspans-expected.txt: Removed.
  • platform/mac-bigsur/tables/mozilla/bugs/bug18359-expected.txt: Removed.
  • platform/mac-bigsur/tables/mozilla/bugs/bug60749-expected.txt: Removed.
  • platform/mac-bigsur/tables/mozilla/bugs/bug7342-expected.txt: Removed.
  • platform/mac-bigsur/transforms/2d/zoom-menulist-expected.txt: Removed.
  • platform/mac-catalina/http/tests/navigation/javascriptlink-frames-expected.txt: Copied from LayoutTests/platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt.
  • platform/mac-catalina/http/tests/xmlhttprequest/methods-async-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-async-expected.txt.
  • platform/mac-catalina/http/tests/xmlhttprequest/methods-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-expected.txt.
  • platform/mac-catalina/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-async-expected.txt.
  • platform/mac-catalina/http/tests/xmlhttprequest/workers/methods-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Added.
  • platform/mac-catalina/media/controls-after-reload-expected.txt: Copied from LayoutTests/platform/mac/media/controls-after-reload-expected.txt.
  • platform/mac-catalina/media/video-no-audio-expected.txt: Copied from LayoutTests/platform/mac/media/video-no-audio-expected.txt.
  • platform/mac-catalina/platform/mac/fast/text/bidi-fallback-font-weight-expected.txt: Copied from LayoutTests/platform/mac-bigsur/platform/mac/fast/text/international/bidi-fallback-font-weight-expected.txt.
  • platform/mac-catalina/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt.
  • platform/mac-catalina/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt.
  • platform/mac-catalina/svg/text/bidi-tspans-expected.txt: Copied from LayoutTests/platform/mac/svg/text/bidi-tspans-expected.txt.
  • platform/mac-catalina/tables/mozilla/bugs/bug18359-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug18359-expected.txt.
  • platform/mac-catalina/tables/mozilla/bugs/bug60749-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug60749-expected.txt.
  • platform/mac-catalina/tables/mozilla/bugs/bug7342-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug7342-expected.txt.
  • platform/mac-catalina/transforms/2d/zoom-menulist-expected.txt: Copied from LayoutTests/platform/mac/transforms/2d/zoom-menulist-expected.txt.
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/http/tests/xmlhttprequest/methods-async-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-async-expected.txt.
  • platform/mac/http/tests/xmlhttprequest/methods-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-expected.txt.
  • platform/mac/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-async-expected.txt.
  • platform/mac/http/tests/xmlhttprequest/workers/methods-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt.
  • platform/mac/media/controls-after-reload-expected.txt:
  • platform/mac/media/video-no-audio-expected.txt:
  • platform/mac/platform/mac/fast/loader/international/bidi-fallback-font-weight-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/platform/mac/fast/text/international/bidi-fallback-font-weight-expected.txt.
  • platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt:
  • platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/mac/svg/text/bidi-tspans-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/mac/transforms/2d/zoom-menulist-expected.txt:
1:47 PM Changeset in webkit [270708] by Peng Liu
  • 10 edits in trunk/Source

[Media in GPU Process][MSE] Implement some required functions with new IPC messages and remove some unneeded functions
https://bugs.webkit.org/show_bug.cgi?id=219788

Reviewed by Eric Carlson.

Source/WebCore:

Change the argument type of sourceBufferPrivateDidReceiveRenderingError() from int to int64_t
so that we can pass it in an IPC message.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError):

  • Modules/mediasource/SourceBuffer.h:
  • platform/graphics/SourceBufferPrivateClient.h:

Source/WebKit:

Implement unimplemented functions and remove unneeded ones.
This patch also cleans up RemoteSourceBufferProxy.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidDropSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendError):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidDropSample):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::SourceBufferPrivateRemote::flush): Deleted.
(WebKit::SourceBufferPrivateRemote::isReadyForMoreSamples): Deleted.
(WebKit::SourceBufferPrivateRemote::notifyClientWhenReadyForMoreSamples): Deleted.
(WebKit::SourceBufferPrivateRemote::canSetMinimumUpcomingPresentationTime const): Deleted.
(WebKit::SourceBufferPrivateRemote::setMinimumUpcomingPresentationTime): Deleted.
(WebKit::SourceBufferPrivateRemote::clearMinimumUpcomingPresentationTime): Deleted.

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
1:36 PM Changeset in webkit [270707] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC][IFC] InlineTextItem::isCollapsible might be misleading
https://bugs.webkit.org/show_bug.cgi?id=219796

Reviewed by Antti Koivisto.

This change makes the code more aligned with the spec language.
::isCollapsed (which maps to RenderStyle::collapseWhiteSpace) is not always about collapsing subsequent
whitespace content but also about preserving tab stops.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::trailingWhitespaceType const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::shouldPreserveSpacesAndTabs):

  • layout/inlineformatting/InlineTextItem.h:

(WebCore::Layout::InlineTextItem::isWhitespace const):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::isCollapsible const): Deleted.

  • layout/inlineformatting/text/TextUtil.cpp:

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

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

Unreviewed test gardening for Windows.

  • platform/win/fast/url/data-url-mediatype-expected.txt: Correct the baseline.
1:04 PM Changeset in webkit [270705] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[GPUProcess] WebAudio rendering quantum is 15 instead of 128 when the GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=219797

Reviewed by Eric Carlson.

WebAudio rendering quantum is 15 instead of 128 when the GPU Process is enabled. This generates a lot more
IPC unnecessarily, not to mention how WebAudio code expects a rendering quantum of 128 and could potentially
do bad things with a lower value.

The issue was that RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess() was iterating over
all RemoteAudioSessionProxy objects to find out the lowest rendering quantum. If there is a proxy with
a preferred buffer size that is not set, the value ends up being 0. When then ask core audio for a rendering
quantum of 0, and they end up using 15 (likely the minimum).

  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):

12:53 PM Changeset in webkit [270704] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

Unreviewed. Address post-review comments after r270678.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintColorWellDecorations):

Use std::size to determine the size of the color stops array.

12:41 PM Changeset in webkit [270703] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Line should report the correct value for "content logical right"
https://bugs.webkit.org/show_bug.cgi?id=219779

Reviewed by Antti Koivisto.

Adjust the run's horizontal geometry when negative margin-start is present.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendReplacedInlineBox):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::contentLogicalRight const):

12:39 PM Changeset in webkit [270702] by Alexey Shvayka
  • 9 edits
    4 adds in trunk

Reflect.preventExtensions should not throw if called on WindowProxy or Location
https://bugs.webkit.org/show_bug.cgi?id=219270

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/history/the-location-interface/location-prevent-extensions-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prevent-extensions.html: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  • web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prevent-extensions-expected.txt: Added.
  • web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prevent-extensions.html: Added.

Source/WebCore:

Since r254626 fixed Object.preventExtensions to throw a TypeError on
false result, this patch makes PreventExtensions overrides pure,
aligning Reflect.preventExtensions behavior with the spec [1], Gecko,
and (only for WindowProxy [2]) Blink.

[1]: https://html.spec.whatwg.org/multipage/history.html#location-preventextensions
[2]: https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-preventextensions

Tests: imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prevent-extensions.html

imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prevent-extensions.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::preventExtensions):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::preventExtensions):

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::preventExtensions):

LayoutTests:

  • http/tests/security/preventExtensions-window-location-expected.txt:
12:21 PM Changeset in webkit [270701] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[PlayStation] Link additional libraries into processes after r270690
https://bugs.webkit.org/show_bug.cgi?id=219795

Unreviewed build fix after r270690.

Some libraries were being propagated from WebKit before the change so just add
them to the Process_PRIVATE_LIBRARIES.

  • PlatformPlayStation.cmake:
12:10 PM Changeset in webkit [270700] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r270665): testapi failing on CLoop bot
https://bugs.webkit.org/show_bug.cgi?id=219787

Reviewed by Mark Lam.

The API has to special case the empty JSValue as null.

  • API/JSValueRef.cpp:

(JSValueGetType):
(JSValueIsNull):

12:09 PM Changeset in webkit [270699] by Fujii Hironori
  • 6 edits in trunk

[WinCairo] Enable accelerated WebGL canvas
https://bugs.webkit.org/show_bug.cgi?id=219768

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapper has TextureMapperGCGLPlatformLayer that is a
PlatformLayer for WebGL.

  • html/canvas/GPUBasedCanvasRenderingContext.h (isAccelerated):

Return true for WinCairo port.

Source/WebKit:

prepareForRendering should be called before calling
flushPendingLayerChanges to make the GL context current because it
uses OpenGL API.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::compositeLayersToContext):
(WebKit::LayerTreeHost::flushAndRenderLayers):

LayoutTests:

  • platform/wincairo/TestExpectations: Skip some WebGL tests

because WinCairo DRT and WTR don't support pixel dump yet.

12:06 PM Changeset in webkit [270698] by Fujii Hironori
  • 4 edits
    2 adds in trunk

[TextureMapper] REGRESION(r269570): mask layer doesn't clip descendent layers
https://bugs.webkit.org/show_bug.cgi?id=219136
<rdar://problem/71742605>

Reviewed by Carlos Garcia Campos.

Source/WebCore:

computeOverlapRegions shouldn't include the descendent layer
region for layers with a mask layer. Add a new mode Mask to
ComputeOverlapRegionMode which is like Union mode but doesn't
include descendent layers.

Test: compositing/masks/clip-path-composited-descendent-2.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions): Skip
children for the Mask mode.
(WebCore::TextureMapperLayer::paintUsingOverlapRegions): Use
ComputeOverlapRegionMode::Mask for a layer with mask layer.

  • platform/graphics/texmap/TextureMapperLayer.h (ComputeOverlapRegionMode): Added Mask.

LayoutTests:

  • compositing/masks/clip-path-composited-descendent-2-expected.html: Added.
  • compositing/masks/clip-path-composited-descendent-2.html: Added.
12:00 PM Changeset in webkit [270697] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Do not use actual URLs in testing
https://bugs.webkit.org/show_bug.cgi?id=219790
<rdar://problem/72228983>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): Use example.org instead of webkit.org.

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

(Svn.init): Use example.org instead of webkit.org.

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

(TestFind.test_basic_svn_remote): Use example.org instead of webkit.org.

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

(TestGit.test_info): Use example.org instead of webkit.org.

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

(TestRemoteSvn): Use example.org instead of webkit.org.
(TestRemoteSvn.test_detection):

11:54 AM Changeset in webkit [270696] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU process] Update TestExpectations to skip Layout tests crashes
https://bugs.webkit.org/show_bug.cgi?id=219792

Patch by Rini Patel <rini_patel@apple.com> on 2020-12-11
Reviewed by Simon Fraser.

  • gpu-process/TestExpectations:
11:50 AM Changeset in webkit [270695] by ysuzuki@apple.com
  • 76 edits
    32 adds in trunk/JSTests

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

Reviewed by Mark Lam.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Array/prototype/reverse/array-has-one-entry.js: Added.
  • test262/test/built-ins/Array/prototype/sort/bug_596_1.js:
  • test262/test/built-ins/Math/max/Math.max_each-element-coerced.js: Added.

(const.n.valueOf):

  • test262/test/built-ins/Math/min/Math.min_each-element-coerced.js: Added.

(const.n.valueOf):

  • test262/test/built-ins/String/prototype/at/prop-desc.js:
  • test262/test/built-ins/TypedArray/prototype/at/prop-desc.js:
  • test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric-throw.js:
  • test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric.js:
  • test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-symbol-throws.js:
  • test262/test/built-ins/TypedArray/prototype/fill/BigInt/return-abrupt-from-set-value.js:
  • test262/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js:
  • test262/test/built-ins/TypedArray/prototype/fill/fill-values-symbol-throws.js:
  • test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js:
  • test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js:

(testWithTypedArrayConstructors.valueOf):
(testWithTypedArrayConstructors):
(testWithTypedArrayConstructors.detachAndReturnIndex): Deleted.

  • test262/test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation-consistent-nan.js:
  • test262/test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobigint64.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobiguint64.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/boolean-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/null-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/number-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-nan-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/symbol-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive-typeerror.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-tostring.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof-typeerror.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/undefined-tobigint.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation-consistent-nan.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive-typeerror.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-tostring.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof-typeerror.js:
  • test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof.js:
  • test262/test/built-ins/TypedArrayConstructors/from/BigInt/source-value-is-symbol-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js:
  • test262/test/built-ins/TypedArrayConstructors/from/source-value-is-symbol-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/desc-value-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/set-value.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/conversion-operation.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/desc-value-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/set-value.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/indexed-value.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation-consistent-nan.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/indexed-value.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/of/BigInt/argument-is-symbol-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/of/BigInt/new-instance.js:
  • test262/test/built-ins/TypedArrayConstructors/of/argument-is-symbol-throws.js:
  • test262/test/built-ins/TypedArrayConstructors/of/nan-conversion.js:
  • test262/test/built-ins/TypedArrayConstructors/of/new-instance.js:
  • test262/test/built-ins/parseInt/S15.1.2.2_A2_T2.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-x-greater-than-y-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-x-greater-than-y-throws.js:
  • test262/test/language/arguments-object/mapped/enumerable-configurable-accessor-descriptor.js: Added.

(set _v):

  • test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-define-failure.js: Added.

(get 3):

  • test262/test/language/arguments-object/mapped/writable-enumerable-configurable-descriptor.js: Added.
  • test262/test/language/destructuring/binding/syntax/destructuring-array-parameters-function-arguments-length.js: Added.

(assert.sameValue):
(assert.sameValue.async a):

  • test262/test/language/destructuring/binding/syntax/destructuring-object-parameters-function-arguments-length.js: Added.

(assert.sameValue):

  • test262/test/language/expressions/async-function/named-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-function/named-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-function/named-reassign-fn-name-in-body.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body.js: Added.

(let.ref.async BindingIdentifier):
(let.ref):

  • test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref):

  • test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref):

  • test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body.js: Added.

(let.ref):

  • test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref):

  • test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref):

  • test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body.js: Added.

(let.ref):

  • test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref):

  • test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref):

  • test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body.js: Added.

(let.ref):

  • test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.

(let.ref):

  • test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.

(let.ref):

  • test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body.js: Added.

(let.ref):

  • test262/test262-Revision.txt:
11:46 AM Changeset in webkit [270694] by jiewen_tan@apple.com
  • 16 edits in trunk/Source/WebKit

[WebAuthn] Adopt new UI for the Platform Authenticator makeCredential flow
https://bugs.webkit.org/show_bug.cgi?id=219709
<rdar://problem/72154774>

Reviewed by Brent Fulgham.

This patch adopts the new UI for the platform authenticator makeCredential flow. In this new design,
the UI will be responsible for creating the LAContext and get it verified by the user. Therefore, WebKit
just needs to reverify the LAContext in non-UI mode against the SecAccessControlRef without handling any
LA UI anymore.

Covered by manual tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:

Adds a new class which represents a successful operation.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:

Adds rule to allow the WebAuthn process to access Keychain and SEP.

  • UIProcess/WebAuthentication/Authenticator.h:

(WebKit::Authenticator::setWebAuthenticationModernEnabled):
(WebKit::Authenticator::webAuthenticationModernEnabled const):
Adds a flag to know which UI to call.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::enableModernWebAuthentication):
(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::requestLAContextForUserVerification):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:

Adds plumbing to the new UI method.

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

Paperwork.

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:

(WebKit::AuthenticatorPresenterCoordinator::setCredentialRequestHandler):
This handler is from the UI delegate which is supposed to call if the operation succeeds.

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::requestLAContextForUserVerification):
(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):
(WebKit::AuthenticatorPresenterCoordinator::setLAContext):

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

(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterReceivingLAContext):

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

(WebKit::LocalConnection::verifyUser):

  • UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:

(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):
(-[WKASCAuthorizationPresenterDelegate dispatchCoordinatorCallback:]):
Implements the new UI logic.

11:37 AM Changeset in webkit [270693] by Darin Adler
  • 2 edits in trunk/Source/WebKitLegacy/mac

[Cocoa] REGRESSION (r270315): WebKitLegacy builds fail with "unifdef" error message
https://bugs.webkit.org/show_bug.cgi?id=219756

Reviewed by Sam Weinig.

Was seeing this error: Unifdef: can't open Debug/WebKitLegacy.framework/Versions/A/Headers/*.h.tmp: No such file or directory.
Keith figured out it was because there are no public headers in the WebKitLegacy framework.

  • postprocess-headers.sh: Remove the line that post-processes public headers.
11:29 AM Changeset in webkit [270692] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove access to com.apple.MTLCompilerService in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219774
<rdar://problem/70497100>

Reviewed by Brent Fulgham.

Remove access to com.apple.MTLCompilerService in the WebContent process on macOS, since there are no reports of this being used.

No new tests, since the result will depend on macOS version.

  • WebProcess/com.apple.WebProcess.sb.in:
11:26 AM Changeset in webkit [270691] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove Mobile Asset access from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219738
<rdar://problem/60650074>

Reviewed by Brent Fulgham.

Remove Mobile Asset access from the WebContent process on macOS, since there are no reports of this being used.

No new tests, since the result will depend on macOS version.

  • WebProcess/com.apple.WebProcess.sb.in:
11:15 AM Changeset in webkit [270690] by don.olmstead@sony.com
  • 30 edits in trunk

[CMake] Determine correct visibility for linked frameworks
https://bugs.webkit.org/show_bug.cgi?id=210366

Reviewed by Michael Catanzaro.

.:

WebKit has some frameworks that are compiled statically into a larger shared library. For
example Apple compiles bmalloc and WTF into JavaScriptCore. This means the JavaScriptCore
framework also exposes the symbols for those two libraries and that targets depending
on WTF or bmalloc should link to JavaScriptCore and never to WTF or bmalloc directly.

The CMake code allows each port to decide the type of library for a WEBKIT_FRAMEWORK.
This means there are many different combinations that it needs to support. To ensure that
everything links properly some bookkeeping is required.

WEBKIT_FRAMEWORK now uses ${target}_FRAMEWORKS to determine how to link the frameworks
it depends on. First the macro determines if the framework is a SHARED library or is linked
into a shared library, and if so it is linked as PUBLIC. If the framework itself is not a
SHARED library, then it links other STATIC/OBJECT framework as PUBLIC. If the framework
itself is SHARED then any framework that is a STATIC/OBJECT library is linked as PRIVATE
to stop propagation. The linked framework's header directories are added to the
WebKit::${framework} target to allow the framework to present as that framework. A global
property is set to inform consumers that they should link to this different framework
to get the requested framework.

This ensures that all ports can ship with hidden visibility turned on which is a precursor
to a port turning on link time optimization (LTO).

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

Set JavaScriptCore_FRAMEWORKS to determine correct linkage for the library. Remove
explicit setting of STATICALLY_LINKED_WITH_${framework} and $<TARGET_OBJECTS:${framework}>
by ports.

Move the add_subdirectory of shell to the end of the CMakeLists.txt so its after the
WEBKIT_FRAMEWORK call. This ensures that the frameworks linked into JavaScriptCore are
known when creating the executables in that directory.

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformJSCOnly.cmake:
  • PlatformMac.cmake:
  • PlatformPlayStation.cmake:
  • shell/CMakeLists.txt:

Source/WebCore:

Set WebCore_FRAMEWORKS and WebCoreTestSupport_FRAMEWORKS to determine correct linkage
for the libraries. Remove explicit setting of STATICALLY_LINKED_WITH_PAL.

For the GTK port JavaScriptCore is compiled as a SHARED library with WTF and bmalloc
compiled into it. WEBKIT_FRAMEWORK now correctly prevents WTF and bmalloc being linked
into targets that also link JavaScriptCore. However GTK port can't be compiled with
hidden visibility turned on currently to properly export symbols so the libraries are
added back to the list for WebCore to keep the old, albiet wrong, behavior.

  • CMakeLists.txt:
  • PlatformGTK.cmake:

Source/WebCore/PAL:

Set PAL_FRAMEWORKS to determine correct linkage for the library.

  • pal/CMakeLists.txt:

Source/WebDriver:

Conditionally add bmalloc to the list of WebDriver_FRAMEWORKS.

  • CMakeLists.txt:

Source/WebKit:

Set WebKit_FRAMEWORKS to determine correct linkage for the library. Remove
explicit setting of STATICALLY_LINKED_WITH_${framework} and $<TARGET_OBJECTS:${framework}>
by ports.

  • CMakeLists.txt:
  • PlatformFTW.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:

Source/WebKitLegacy:

Remove explicit setting of STATICALLY_LINKED_WITH_${framework}.

  • PlatformFTW.cmake:
  • PlatformWin.cmake:

Source/WTF:

Set WTF_FRAMEWORKS to determine correct linkage for the library. Remove
explicit setting of STATICALLY_LINKED_WITH_${framework} by ports.

  • wtf/CMakeLists.txt:
  • wtf/PlatformPlayStation.cmake:

Tools:

Remove explicit setting of STATICALLY_LINKED_WITH_${framework}.

  • TestWebKitAPI/PlatformWin.cmake:
11:04 AM Changeset in webkit [270689] by commit-queue@webkit.org
  • 25 edits
    1 move
    5 adds
    2 deletes in trunk

[WASM-References] Add table.init
https://bugs.webkit.org/show_bug.cgi?id=219297

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-12-11
Reviewed by Yusuke Suzuki.

JSTests:

Added reference types spec tests for element section, table.init
and elem.drop:
https://github.com/WebAssembly/reference-types/blob/master/test/core/elem.wast,
https://github.com/WebAssembly/reference-types/blob/master/test/core/table_init.wast.
Added tests for checking table instructions immediates when they are unreachable.

  • wasm.yaml:
  • wasm/references-spec-tests/elem.wast.js: Added.
  • wasm/references-spec-tests/ref_is_null.js: Removed.
  • wasm/references-spec-tests/ref_is_null.wast.js: Added.
  • wasm/references-spec-tests/ref_null.js: Removed.
  • wasm/references-spec-tests/ref_null.wast.js: Added.
  • wasm/references-spec-tests/table_copy.wast.js: Renamed from JSTests/wasm/references-spec-tests/table_copy.js.
  • wasm/references-spec-tests/table_init.wast.js: Added.
  • wasm/spec-harness/wasm-constants.js:

(hostref):

  • wasm/wasm.json:

Source/JavaScriptCore:

Add support for table.init, elem.drop and new element section
from reference-type proposal:
https://webassembly.github.io/reference-types/core/syntax/instructions.html#table-instructions,
https://webassembly.github.io/reference-types/core/syntax/modules.html#element-segments.
All in one patch because all this stuff are very coupled and ref-types
spec tests require each other to run the its tests, so not to write
hand-crafted tests this is in one PR.

  • bytecode/BytecodeList.rb:
  • llint/WebAssembly.asm:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addElemDrop):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addElemDrop):

  • wasm/WasmFormat.h:

(JSC::Wasm::Element::Element):
(JSC::Wasm::Element::length const):
(JSC::Wasm::Element::isPassive const):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::Instance):
(JSC::Wasm::Instance::elemDrop):
(JSC::Wasm::Instance::elem const):
(JSC::Wasm::Instance::initElementSegment):
(JSC::Wasm::Instance::tableInit):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::isImportFunction const):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addTableInit):
(JSC::Wasm::LLIntGenerator::addElemDrop):

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::elementCount const):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmOperations.h:
  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfExpressions):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfIndexes):
(JSC::Wasm::SectionParser::parseFuncIndexFromRefExpForElementSection): Deleted.
(JSC::Wasm::SectionParser::parseFuncIndexForElementSection): Deleted.

  • wasm/WasmSectionParser.h:
  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

  • wasm/WasmSlowPaths.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/wasm.json:

Tools:

Support ref-types spec tests.

  • Scripts/run-jsc-stress-tests:
11:00 AM Changeset in webkit [270688] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r270654.
https://bugs.webkit.org/show_bug.cgi?id=219793

Introduced crash

Reverted changeset:

"[macOS] The development WebContent XPC service is missing a
required entitlement"
https://bugs.webkit.org/show_bug.cgi?id=219730
https://trac.webkit.org/changeset/270654

10:50 AM Changeset in webkit [270687] by Ryan Haddad
  • 2 edits in trunk/Websites/webkit.org

Add Big Sur to WebKit Build Archives page
https://bugs.webkit.org/show_bug.cgi?id=219789

Reviewed by Alexey Proskuryakov.

  • wp-content/themes/webkit/build-archives.php:

Add Big Sur, remove High Sierra since we aren't producing new archives for it.

10:49 AM Changeset in webkit [270686] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Add extra validation after untagging code pointers.
https://bugs.webkit.org/show_bug.cgi?id=219765
rdar://72069920

Reviewed by Robin Morisset.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::untagReturnAddress):
(JSC::AbstractMacroAssembler::validateUntaggedPtr):

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::untagReturnAddress):
(JSC::MacroAssemblerARM64E::validateUntaggedPtr):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::prepareForTailCall):

  • jit/ThunkGenerators.cpp:

(JSC::emitPointerValidation):
(JSC::arityFixupGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::createTailCallGate):
(JSC::LLInt::untagGateThunk):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

10:31 AM Changeset in webkit [270685] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Protect the WebProcessPool earlier in WebProcessCache::addProcessIfPossible
https://bugs.webkit.org/show_bug.cgi?id=219777

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-12-11
Reviewed by Adrian Perez de Castro.

We are taking a reference of the WebProcessPool in the isResponsive() completion handler lambda, but the
WebProcessPool can be destroyed earlier when CachedProcess is created if the WebProcessProxy contains the last
strong reference.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::addProcessIfPossible):

10:23 AM Changeset in webkit [270684] by ggaren@apple.com
  • 2 edits in trunk/PerformanceTests

Eliminate 'async time' in StyleBench
https://bugs.webkit.org/show_bug.cgi?id=219785

Reviewed by Antti Koivisto.

r270132 (a RunLoop change) measured as a 13% regression on the
StyleBench bot. But I don't think the measured regression was user-real.
Instead, I think the baseline score was artificially high because 'async
time' sometimes did not measure painting.

I decided just to eliminate 'async time' (and force style resolution +
layout during 'sync time') because this benchmark intends to measure
style resolution + layout, and not painting or frame rate.

With this change, there is no measured regression anymore.

Explanation of 'did not measure painting':

StyleBench synchronously modifies DOM + style, and then sets a
zero-delay timer to measure 'async time'. If layout has not
happened by the time the timer fires, StyleBench forces layout
and then computes 'async time'. The flaw here is painting.
StyleBench accepts both of these orders of operations as valid:

(A) { modify DOM + style }, { measure 'sync time' }, { style resolution + layout }, { paint }, { measure 'async time' }

(B) { modify DOM + style }, { measure 'sync time' }, { style resolution + layout }, { measure 'async time' }, { paint }

(B) includes more stuff than (A). Not cool!

Evidence for the theory that the baseline was sometimes doing (B):

  • Forcing style resolution + layout during sync time reduces the baseline score and eliminates the difference in async time between baseline and patch.
  • Starting the benchmark from a requestAnimationFrame() instead of a timer reduces the baseline score and eliminates the difference in async time between baseline and patch.
  • The regression only reproduced on machines with fewer cores.
  • The new benchmark method reduces sttdev by ~3X - ~5X.
  • StyleBench/resources/benchmark-runner.js:

(BenchmarkRunner.prototype._runTest): Call getBoundingClientRect()
during sync time to force style resolution + layout consistently.

Always report async time as 1, since this benchmark doesn't have an
async time component anymore. (The harness doesn't like zeroes.)

Just store height in a global because that is sufficient to prevent
dead code elimination (which was probably impossible anyway, since
getBoundingClientRect() has side effects).

9:50 AM Changeset in webkit [270683] by Chris Lord
  • 6 edits in trunk/Source

[GTK][WPE] Async overflow scrolling is disabled by default due to brokenness
https://bugs.webkit.org/show_bug.cgi?id=219776

Reviewed by Žan Doberšek.

Source/WebCore:

Make sure to respect GraphicsLayer::boundsOrigin when calculating
transforms, coverage and clipping in CoordinatedGraphicsLayer. Also,
when scrolling overflow areas, change the boundsOrigin on the
container layer and not the contents area, to match behaviour on Mac.

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::repositionScrollingLayers):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren):

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

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):

Source/WTF:

Enable async overflow scrolling with Nicosia.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
9:32 AM Changeset in webkit [270682] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Only extend access to the RootDomainUserClient IOKit class if the GPU Process is not used
https://bugs.webkit.org/show_bug.cgi?id=219758
<rdar://problem/70464431>

Reviewed by Per Arne Vollan.

The RootDomainUserClient IOKit class appears to only be used by media on Apple Silicon. Dynamically extend access to this
class for Apple Silicon builds if the GPU process is not being used.

This patch also includes telemetry to confirm that it is not needed on Intel, or for any other purposes. It does not
block access to the IOKit class yet.

  • UIProcess/WebPageProxy.cpp:

(WebKit::mediaRelatedIOKitClasses):

  • WebProcess/com.apple.WebProcess.sb.in:
9:28 AM Changeset in webkit [270681] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Adopt AVSystemController_SubscribeToNotificationsAttribute
https://bugs.webkit.org/show_bug.cgi?id=219754
<rdar://problem/71352731>

Reviewed by Eric Carlson.

Ask AVSystemController to send us the notifications we are interested in,
making sure to ask again if the server dies.

  • platform/audio/ios/MediaSessionHelperIOS.mm:

(MediaSessionHelperiOS::mediaServerConnectionDied):
(-[WebMediaSessionHelper initWithCallback:]):

9:05 AM Changeset in webkit [270680] by youenn@apple.com
  • 2 edits in trunk/Source/WTF

Enable WebRTCPlatformSocketsEnabled by default
https://bugs.webkit.org/show_bug.cgi?id=219778

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
8:46 AM Changeset in webkit [270679] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Introduce a way to update additional settings than the one handled by policies
https://bugs.webkit.org/show_bug.cgi?id=219681

Reviewed by Eric Carlson.

Add a way for WebKit additions to update page settings at the time settings are changed by policies.
Manually tested.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::applyPoliciesToSettings):

  • loader/DocumentLoader.h:
8:42 AM Changeset in webkit [270678] by Aditya Keerthi
  • 8 edits
    9 adds in trunk

[iOS][FCR] Add new look for color inputs
https://bugs.webkit.org/show_bug.cgi?id=219654
<rdar://problem/72107493>

Reviewed by Wenson Hsieh.

Source/WebCore:

The new appearance matches the appearance of UIKit's UIColorWell.

Tests: fast/forms/ios/form-control-refresh/color/background-color.html

fast/forms/ios/form-control-refresh/color/border-radius.html
fast/forms/ios/form-control-refresh/color/border.html
fast/forms/ios/form-control-refresh/color/width-height.html

  • css/formControlsIOS.css:

(input[type="color"]::-webkit-color-swatch-wrapper, input[type="color"]::-webkit-color-swatch):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::adjustColorWellStyle const):

Call adjustButtonStyle to preserve existing behavior in cases where
the form control refresh does not apply (setting disabled,
non-iOS ports).

(WebCore::RenderTheme::paintColorWell):

Call paintButton to preserve existing behavior in cases where
the form control refresh does not apply (setting disabled,
non-iOS ports).

(WebCore::RenderTheme::paintColorWellDecorations):

Call paintButtonDecorations to preserve existing behavior in
cases where the form control refresh does not apply (setting
disabled, non-iOS ports).

(WebCore::RenderTheme::colorInputStyleSheet const):

  • rendering/RenderTheme.h:

Previously, color inputs always had the same appearance as buttons.
However, with the new appearance on iOS this is no longer always
the case. Consequently, it is necessary to introduce adjustColorWellStyle,
paintColorWell and paintColorWellDecorations.

Updated colorInputStyleSheet to take an additional parameter, so that
the style can change depending on whether or not the form control refresh
setting is enabled. It is not possible to simply add the new style to
formControlsiOS.css, since <input type=color> is another runtime
enabled feature.

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

(WebCore::RenderThemeIOS::colorInputStyleSheet const):
(WebCore::RenderThemeIOS::adjustColorWellStyle const):
(WebCore::RenderThemeIOS::paintColorWell):
(WebCore::RenderThemeIOS::paintColorWellDecorations):

Use a conic gradient to achieve the new appearance.

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

LayoutTests:

Added tests to verify the stylability of color inputs with the new appearance.

  • fast/forms/ios/form-control-refresh/color/background-color-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/color/background-color.html: Added.
  • fast/forms/ios/form-control-refresh/color/border-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/color/border-radius-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/color/border-radius.html: Added.
  • fast/forms/ios/form-control-refresh/color/border.html: Added.
  • fast/forms/ios/form-control-refresh/color/width-height-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/color/width-height.html: Added.
8:38 AM Changeset in webkit [270677] by don.olmstead@sony.com
  • 6 edits in trunk/Source/WebKit

[GLib] Move GCrypt initialization to platformInitialize
https://bugs.webkit.org/show_bug.cgi?id=219749

Reviewed by Adrian Perez de Castro.

It makes more sense for initialization of GCrypt to occur in platformInitialize
than in the main method of the process. This means that the process does not have
to link gcrypt libraries and can just link WebKit only.

  • NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:

(main):

  • NetworkProcess/soup/NetworkProcessMainSoup.cpp:
  • WebProcess/EntryPoint/unix/WebProcessMain.cpp:

(main):

  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMain):

  • WebProcess/wpe/WebProcessMainWPE.cpp:
8:06 AM Changeset in webkit [270676] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

REGRESSION (r270458): Canvas painting is broken when enabling GPU process for DOM
https://bugs.webkit.org/show_bug.cgi?id=219760

Reviewed by Tim Horton.

Use ImageBuffer::logicalSize instead of ImageBuffer::backendSize when overriding the CanvasBase's size, upon
changing image buffers. When enabling GPU process for DOM, ImageBufferShareableIOSurfaceBackend::backendSize
is empty because the actual IOSurface backend exists in the GPU process; using the backendSize instead of the
logical size here would otherwise cause us to always set CanvasBase's size to (0, 0).

  • html/CanvasBase.cpp:

(WebCore::CanvasBase::setImageBuffer const):

4:46 AM Changeset in webkit [270675] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r268923): [WPE] Nothing renders on the rpi3 using the proprietary video driver
https://bugs.webkit.org/show_bug.cgi?id=219739

Reviewed by Carlos Garcia Campos.

Rewrite the GLSL code to perform rounded rectangle clipping so it works with the limitations
of the raspberrypi3 proprietary video driver.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:
3:39 AM Changeset in webkit [270674] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[iOS] Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219733
<rdar://problem/70628137>

Reviewed by Brent Fulgham.

Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process on iOS, since this is not needed when allowing access to IOGPU.
The IOGPU class is the superclass of AGXDeviceUserClient, and is the preferred IOKit reference to use according to the Sandbox team.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):

2:50 AM Changeset in webkit [270673] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

REGRESSION(r270186): [GTK] MiniBrowser: do not exit after load when no arguments given
https://bugs.webkit.org/show_bug.cgi?id=219737

Reviewed by Adrian Perez de Castro.

Only exit after load when --exit-after-load is passed.

  • MiniBrowser/gtk/main.c:

(activate):

2:45 AM Changeset in webkit [270672] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove temporary workaround added to fix the build with GCC 10

Revert r269948. The bug has already been fixed in GCC.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

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

[macOS] Add telemetry for notification message filtering in sandbox
https://bugs.webkit.org/show_bug.cgi?id=219684
<rdar://problem/69819260>

Reviewed by Brent Fulgham.

Add telemetry for notification message filtering in sandbox in the WebContent process on macOS.

No new tests, since this just adds telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:29 AM Changeset in webkit [270670] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r270655.
https://bugs.webkit.org/show_bug.cgi?id=219772

Introduced sandbox compile error

Reverted changeset:

"[iOS] Add missing endpoint in sandbox message filter"
https://bugs.webkit.org/show_bug.cgi?id=219731
https://trac.webkit.org/changeset/270655

Note: See TracTimeline for information about the timeline view.