Timeline



Jan 13, 2021:

10:46 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
10:31 PM Changeset in webkit [271479] by timothy_horton@apple.com
  • 5 edits in trunk

REGRESSION (r266634): Messages crashes sometimes while scrolling around and playing YouTube videos
https://bugs.webkit.org/show_bug.cgi?id=220602
<rdar://problem/70402593>

Reviewed by Wenson Hsieh.

Source/WebKit:

No new tests; we are unable to API test video full-screen because of the lack of UIApp;
I have written a stand-alone test app that can reliably reproduce before this patch
and not afterwards.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::scheduleActivityStateUpdate):
We can't call dispatchActivityStateChange directly underneath a post-commit callback,
because it has side-effects (like un-parenting the full-screen window) that may result
in other frameworks (e.g. UIKit) trying to install commit handlers for the same phase,
which is not allowed.

To fix this, add a dispatch_async; we _only_ care that the activity state change
doesn't apply until after the active commit is complete.

Tools:

  • TestWebKitAPI/PlatformWebView.h:

Mark PlatformWebView noncopyable, since it is effectively noncopyable
(at least, the macOS implementation will overrelease the view if you
copy it, whoops).

  • TestWebKitAPI/Tests/WebKit/DeferredViewInWindowStateChange.mm:

(TestWebKitAPI::TEST):
Add a matching dispatch_async, or this test fails.

8:28 PM Changeset in webkit [271478] by Lauro Moura
  • 3 edits
    1 delete in trunk/LayoutTests

[WPE] Rebaseline and gardening a few tests

Unreviewed test gardening.

The windowClient one differs from GTK's by running a few test cases
instead of stopping near the start in a Harness timeout.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt:
  • platform/wpe/webgl/1.0.3/conformance/context/methods-expected.txt: Removed.
5:37 PM Changeset in webkit [271477] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION(r270961): Flipgrid can no longer capture video
https://bugs.webkit.org/show_bug.cgi?id=220609
<rdar://73168009>

Reviewed by Darin Adler.

Add back line in RemoteAudio::setStorage() that was initializing m_buffer and that was
dropped by mistake in the refactoring in r270961. This was causing
RemoteCaptureSampleManager::RemoteAudio::audioSamplesAvailable() to return early because
m_buffer was not initialized.

No new tests, unsure how to test this.

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::RemoteAudio::setStorage):

5:17 PM Changeset in webkit [271476] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Crash ASSERT in AccessibilityRenderObject::textUnderElement during AXIsolatedObject initialization.
https://bugs.webkit.org/show_bug.cgi?id=220446

Reviewed by Chris Fleizach.

AXIsolatedObject methods that need to forward the call to the associated
AXObject on the main thread, should call the updateBackingStore method
on the AXObject.
This fixes the issue with AccessibilityRenderObject::textUnderElement
shown in the stack trace.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::associatedAXObject const):

4:48 PM Changeset in webkit [271475] by achristensen@apple.com
  • 2 edits in trunk/Tools

Remove deprecated script and stylesheet SPI, replaced with more inclusively-named SPI
https://bugs.webkit.org/show_bug.cgi?id=214937

Fix iOS build after r271457.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

4:48 PM Changeset in webkit [271474] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKitLegacy/win

Use more inclusive language in legacy Windows plugin code
https://bugs.webkit.org/show_bug.cgi?id=220605

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-13
Reviewed by Darin Adler.

  • Plugins/PluginPackage.h:
  • Plugins/PluginPackageWin.cpp:

(WebCore::PluginPackage::isPluginForbidden):
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::isPluginBlacklisted): Deleted.

4:10 PM Changeset in webkit [271473] by wilander@apple.com
  • 5 edits in trunk/Source

PCM: Output logs by default, including to Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=220596
<rdar://problem/73159180>

Reviewed by Brent Fulgham.

This change turns on PCM output to Web Inspector and logs
Source/WebCore:

by default. In the case of WebCore::PrivateClickMeasurement,
this means we no longer need the debugModeEnabled()
convenience function.

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::debugModeEnabled): Deleted.

  • loader/PrivateClickMeasurement.h:

Source/WebKit:

by default. In some of the cases, the syslog output was
deleted since it doesn't make sense to log those messages
now that we have output in Web Inspector.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):

4:07 PM Changeset in webkit [271472] by Said Abou-Hallawa
  • 18 edits in trunk/Source/WebCore

Move the space transform outside the Gradient class
https://bugs.webkit.org/show_bug.cgi?id=220079

Reviewed by Simon Fraser.

Move the SpaceTransform from the Gradient class to the GraphicsContextState.
The client will set it when calling GraphicsContext::setFillGradient()
and GraphicsContext::setFillGradient().

  • platform/graphics/Gradient.cpp:

(WebCore::Gradient::hash const):
(WebCore::Gradient::setGradientSpaceTransform): Deleted.

  • platform/graphics/Gradient.h:

(WebCore::Gradient::encode const):
(WebCore::Gradient::decode):
(WebCore::Gradient::gradientSpaceTransform const): Deleted.

  • platform/graphics/GradientImage.h:

Need to initialize m_cachedGeneratorHash.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextStateChange::apply const):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):
Clients of GraphicsContext have to send the Gradient and SpaceTransform
to setStrokeGradient() and setFillGradient().

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::FillSource::FillSource):
(WebCore::Cairo::StrokeSource::StrokeSource):

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::Gradient::createPattern):
(WebCore::Gradient::fill):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::fillRect):
For Cairo ports, Gradient::createPattern() will take SpaceTransform as
a new argument. Clients will get it from the GraphicsContextState since
the Gradient and the SpaceTransform are set in it in the same call.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::strokeRect):

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

(WebCore::DisplayList::DrawGlyphsRecorder::populateInternalState):
(WebCore::DisplayList::DrawGlyphsRecorder::populateInternalContext):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
(WebCore::DisplayList::SetInlineFillGradient::gradient const):
(WebCore::DisplayList::SetInlineFillGradient::apply const):

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

(WebCore::DisplayList::Recorder::appendStateChangeItem):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::fillRect):

  • rendering/svg/RenderSVGPath.cpp:

(WebCore::useStrokeStyleToFill):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::applyResource):
(WebCore::RenderSVGResourceGradient::postApplyResource):
userspaceTransform is calculated inside the lambda of m_gradientMap.ensure().
It is stored in GradientData. It is retrieved later to setStrokeGradient()
and setFillGradient().

4:01 PM Changeset in webkit [271471] by jer.noble@apple.com
  • 14 edits in trunk

Source/WebCore:
[HANG] 496ms to 1360ms in WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices()
https://bugs.webkit.org/show_bug.cgi?id=220471

Reviewed by Youenn Fablet.

Refactor RealtimeMediaSourceCenter::getMediaStreamDevices() to take a completion handler, rather than
synchronously return a Vector of CaptureDevices. This also requires all CaptureDeviceManager subclasses
to support taking a completion handler themselves. By default, all CaptureDeviceManagers will support
the CompletionHandler path by just synchronously calling the completion handler with the existing
synchronous method. But for AVAudioSessionCaptureDeviceManager, override that default implementation by
activating the AVAudioSession on a background thread, and querying that session's inputs on a background
thread as well.

  • platform/mediastream/CaptureDeviceManager.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices):

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceFactory.h:

(WebCore::AudioCaptureFactory::getSpeakerDevices const):

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::audioSessionDeviceWithUID):
(WebCore::AVAudioSessionCaptureDeviceManager::scheduleUpdateCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::activateAudioSession):
(WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices const):
(WebCore::AVAudioSessionCaptureDeviceManager::setAudioCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::audioSessionCaptureDevices): Deleted.

Source/WebKit:
[HANG] 496ms to 1360ms in WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices()
https://bugs.webkit.org/show_bug.cgi?id=220471

Reviewed by Youenn Fablet.

Use the completion-handler version of RealtimeMediaSourceCenter::getMediaStreamDevices().

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::updateCaptureDevices):
(WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices):

  • UIProcess/UserMediaProcessManager.h:

LayoutTests:
[Cocoa] Support key rotation with HLS-backed encrypted media streams
https://bugs.webkit.org/show_bug.cgi?id=220493
<rdar://68227709>

Reviewed by Youenn Fablet.

Fix a broken layout test; the test enumerates devices, then uses the deviceIds returned to generate
constraints for a call to getUserMedia(). However, it assumes all devices will either be of kind
'audioinput' or 'videoinput'. If an 'audiooutput' device is returned (as the MockRealtimeMediaSourceCenter
does), then the test turns that into a video capture constraint, which fails.

  • fast/mediastream/get-user-media-device-id.html:
3:32 PM Changeset in webkit [271470] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Facebook pauses video in PiP during scroll
https://bugs.webkit.org/show_bug.cgi?id=220581
<rdar://67273166>

Reviewed by Eric Carlson.

Add a Quirk which blocks Facebook from pausing videos in Picture-in-Picture mode without that
pause() occurring during a User Gesture. This blocks Facebook from pausing a PiP'd video when
the <video> element hosting that video scrolls out of the viewport, without blocking Facebook's
own custom pause control from working correctly.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted const):

  • page/Quirks.cpp:

(WebCore::Quirks::requiresUserGestureToPauseInPictureInPicture const):

  • page/Quirks.h:
3:27 PM Changeset in webkit [271469] by pvollan@apple.com
  • 10 edits in trunk/Source/WebKit

[Cocoa] Network extension sandbox extensions are sometimes issued too late
https://bugs.webkit.org/show_bug.cgi?id=220525
<rdar://problem/68443565>

Reviewed by Brent Fulgham.

Currently, Network extension sandbox extensions are sent to the WebContent process as part of the load parameters, but this is too late in some cases.
In these cases, the extensions can be sent along with the DidReceivePolicyDecision message.

  • Shared/Cocoa/LoadParametersCocoa.mm:

(WebKit::LoadParameters::platformEncode const):
(WebKit::LoadParameters::platformDecode):

  • Shared/LoadParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addPlatformLoadParameters):

  • UIProcess/WebPageProxy.cpp:

(WebKit::createNetworkExtensionsSandboxExtensions):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didReceivePolicyDecision):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
3:20 PM Changeset in webkit [271468] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

Delete sexist comment
https://bugs.webkit.org/show_bug.cgi?id=220603

Reviewed by Alex Christensen.

  • wtf/StdLibExtras.h:
3:19 PM Changeset in webkit [271467] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Crash at SOAuthorizationSession::dismissViewController
https://bugs.webkit.org/show_bug.cgi?id=220482
<rdar://problem/72375494>

Reviewed by Darin Adler.

A crash report suggests that SOAuthorizationSession::dismissViewController could crash at evaluating m_page.
This could only happen if the SOAuthorizationSession object is freed. The stack trace starts with callbacks
from NSNotificationCenter, which capture a RefPtr of the SOAuthorizationSession object and should guarantee
the lifetime of the object. So it contradicts the crash report.

One of the possible explanations is that the RefPtr is somehow over-released within NSNotificationCenter since
it's not thread-safe. To fix that, the RefPtr can be made thread-safe.

No tests.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::dismissViewController):

3:18 PM Changeset in webkit [271466] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271448. rdar://problem/73168438

PCM: Experimental debug mode needs to be read from defaults differently on iOS
https://bugs.webkit.org/show_bug.cgi?id=220573
<rdar://problem/73092137>

Reviewed by Brent Fulgham.

Experimental features on iOS use the prefix "WebKitExperimental" so we
need to read it that way on that platform. PCM is not supported on other
platforms than macOS and iOS at this point.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

3:18 PM Changeset in webkit [271465] by Russell Epstein
  • 4 edits in branches/safari-611-branch

Revert r270664. rdar://problem/73165685

3:18 PM Changeset in webkit [271464] by Russell Epstein
  • 6 edits in branches/safari-611-branch

Revert r270665. rdar://problem/73165685

3:18 PM Changeset in webkit [271463] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Revert r270700. rdar://problem/73165685

3:18 PM Changeset in webkit [271462] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Revert r270719. rdar://problem/73165685

3:00 PM Changeset in webkit [271461] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS WK1] ASSERTION FAILED: !needsLayout() in WebCore::FrameView::paintContents
https://bugs.webkit.org/show_bug.cgi?id=219219

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skip crashing tests.
3:00 PM Changeset in webkit [271460] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/LayoutTests

Unreviewed test gardening, remove old iOS 13 test directories.

  • platform/ios-13/TestExpectations: Removed.
  • platform/ios-13/fast/forms/slider-thumb-shared-style-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Removed.
  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Removed.
  • platform/ios-13/http/tests/xmlhttprequest/methods-async-expected.txt: Removed.
  • platform/ios-13/http/tests/xmlhttprequest/methods-expected.txt: Removed.
  • platform/ios-13/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Removed.
  • platform/ios-13/http/tests/xmlhttprequest/workers/methods-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/css/css-flexbox/inline-flex-editing-with-updating-text-crash-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Removed.
  • platform/ios-13/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Removed.
  • platform/ios-13/platform/TestExpectations: Removed.
  • platform/ios-13/platform/ios/ios/fast/text/opticalFont-expected.txt: Removed.
  • platform/ios-13/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
  • platform/ios-13/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Removed.
  • platform/ipad-13/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
2:50 PM Changeset in webkit [271459] by Wenson Hsieh
  • 16 edits
    3 adds in trunk

[macOS] "Correct Spelling Automatically" menu items are inconsistent when autocorrect="off"
https://bugs.webkit.org/show_bug.cgi?id=220598
<rdar://problem/71713611>

Reviewed by Tim Horton.

Source/WebCore:

Disable the context menu item to toggle automatic spelling correction, as well as the menu bar item to toggle
automatic spelling correction, in the case where the autocorrect attribute is set to "off". See below for more
details.

Tests: editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html

DisableAutomaticSpellingCorrection.AutocorrectAttribute

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::canEnableAutomaticSpellingCorrection const):

Factor out logic for checking the autocorrect attribute into a separate helper function; this is used to
determine whether or not we should enable both the context menu item and menu item in the menu bar.

(WebCore::AlternativeTextController::isAutomaticSpellingCorrectionEnabled):

  • editing/AlternativeTextController.h:

(WebCore::AlternativeTextController::UNLESS_ENABLED):

  • editing/Editor.cpp:

(WebCore::Editor::canEnableAutomaticSpellingCorrection const):

  • editing/Editor.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

Source/WebKit:

Plumb the new canEnableAutomaticSpellingCorrection flag through EditorState to the UI process, where we can
consult it when validating user interface items (namely, the "Correct Spelling Automatically" menu item, which
corresponds to the -toggleAutomaticSpellingCorrection: selector).

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
(WebKit::operator<<):

  • Shared/EditorState.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::validateUserInterfaceItem):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getPlatformEditorState const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/DisableAutomaticSpellingCorrection.mm: Added.

Add a new API test to verify that the NSMenuItem for toggling automatic spelling correction is invalid when
editing inside a form control with autocorrect="off".

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::getMenuItemEnabledCallback):

Add the readonly enabled JS property on context menu items. See the new layout test,
editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html, for more information.

LayoutTests:

Add a new API test to verify that the context menu item to toggle "Correct Spelling Automatically" is disabled
when autocorrect="off".

  • editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-expected.txt: Added.
  • editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html: Added.
  • platform/mac-wk1/TestExpectations:

Disable the test in DumpRenderTree, due to lack of support for context menu testing in WebKit1.

2:42 PM Changeset in webkit [271458] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL content inside elements is reversed and unreadable
https://bugs.webkit.org/show_bug.cgi?id=220241

Patch by Ebrahim Byagowi <ebrahim@gnu.org> on 2021-01-13
Reviewed by BJ Burg.

Use appropiate unicode-bidi value so that it won't reverse RTL text
inside elements.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom li > span > .html-text-node):

2:42 PM Changeset in webkit [271457] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Remove deprecated script and stylesheet SPI, replaced with more inclusively-named SPI
https://bugs.webkit.org/show_bug.cgi?id=214937

Reviewed by Youenn Fablet.

Once rdar://problem/66227777 is done we will be able to remove this old SPI.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]): Deleted.
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]): Deleted.
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:contentWorld:]): Deleted.
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:contentWorld:]): Deleted.
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:contentWorld:deferRunningUntilNotification:]): Deleted.

  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:level:userContentWorld:]): Deleted.
(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:baseURL:level:userContentWorld:]): Deleted.
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]): Deleted.
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]): Deleted.
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:level:userContentWorld:]): Deleted.

2:40 PM Changeset in webkit [271456] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKitLegacy/mac

Remove deprecated script and stylesheet injection SPI, replaced with more inclusively-named SPI
https://bugs.webkit.org/show_bug.cgi?id=214936

Reviewed by Youenn Fablet.

rdar://64376341 tracks the adoption of the replacement. Once that is done, we can remove the old SPI.

  • WebView/WebView.mm:

(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:]): Deleted.
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): Deleted.
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:]): Deleted.
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]): Deleted.

  • WebView/WebViewPrivate.h:
2:33 PM Changeset in webkit [271455] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Handle single commit touching multiple branches
https://bugs.webkit.org/show_bug.cgi?id=220601
<rdar://problem/73165609>

Reviewed by Stephanie Lewis.

In WebKit's history, there are a few cases of commits that touch multiple branches (like
https://trac.webkit.org/changeset/92419/webkit). These types of commits are not correct,
but we need to handle them if they are in the history of a branch.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn._cache_revisions): Branches only intersect trunk when two sequential commits are from trunk.
(Svn.commit): Support case where no commit time can be found.

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

(Svn._cache_revisions): Branches only intersect trunk when two sequential commits are from trunk.
(Svn.commit): Support case where no commit time can be found.

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

REGRESSION (r269627?): ASSERTION FAILED: &layoutState().establishedFormattingState(layoutBox.formattingContextRoot()) == this in WebCore::Layout::FormattingState::boxGeometry
https://bugs.webkit.org/show_bug.cgi?id=219905

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:22 PM Changeset in webkit [271453] by Andres Gonzalez
  • 3 edits in trunk/LayoutTests

Fix for LayoutTests/accessibility/mac/details-summary.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=220597

Reviewed by Chris Fleizach.

  • Use Promises to wait for the expanded state change.
  • Added a comment to clarify why it is necessary to fetch a new

accessible object by ID every time after setting the AXExpanded
attribute for <details> elements.

  • accessibility/mac/details-summary-expected.txt:

The order in which the notifications come through changed.

  • accessibility/mac/details-summary.html:
1:05 PM Changeset in webkit [271452] by Fujii Hironori
  • 15 edits
    1 delete in trunk/Source

Reimplement WebCore::isInWebProcess() family as cross-platform by using AuxiliaryProcessInitializationParameters.processType
https://bugs.webkit.org/show_bug.cgi?id=220529

Reviewed by Alex Christensen.

Source/WebCore:

isInWebProcess(), isInGPUProcess() and isInNetworkProcess() can be
implemented as cross-platform.

  • platform/RuntimeApplicationChecks.cpp:

(WebCore::auxiliaryProcessType): Added.
(WebCore::setAuxiliaryProcessType): Added.
(WebCore::checkAuxiliaryProcessType): Added.

  • platform/RuntimeApplicationChecks.h:

(WebCore::isInWebProcess):
(WebCore::isInNetworkProcess):
(WebCore::isInGPUProcess):

  • platform/SourcesGLib.txt:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::isInWebProcess): Deleted.
(WebCore::isInGPUProcess): Deleted.
(WebCore::isInNetworkProcess): Deleted.

  • platform/glib/RuntimeApplicationChecksGLib.cpp: Removed.

Source/WebKit:

Replaced AuxiliaryProcess::ProcessType with WebCore::AuxiliaryProcessType.

  • GPUProcess/GPUProcess.h:
  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.h:
  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):

  • Shared/AuxiliaryProcess.h: Removed ProcessType.
  • Shared/AuxiliaryProcessMain.h:

(WebKit::AuxiliaryProcessMainBase::AuxiliaryProcessMainBase):
(WebKit::AuxiliaryProcessMain):
(WebKit::AuxiliaryProcessMainBase::takeInitializationParameters): Deleted.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::SandboxInfo::SandboxInfo):
(WebKit::processStorageClass):
(WebKit::sandboxDirectory):
(WebKit::applySandbox):

  • WebAuthnProcess/WebAuthnProcess.h:
  • WebProcess/WebProcess.h:
1:04 PM Changeset in webkit [271451] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check selector.argumentList()
https://bugs.webkit.org/show_bug.cgi?id=220392

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-13
Reviewed by Wenson Hsieh.

Source/WebCore:

Null check selector.argumentList().

Test: highlight/highlight-crash.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

LayoutTests:

Add test that triggers the relevant code path.

  • highlight/highlight-crash-expected.txt: Added.
  • highlight/highlight-crash.html: Added.
12:21 PM Changeset in webkit [271450] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use PostgreSQL for new build.webkit.org database
https://bugs.webkit.org/show_bug.cgi?id=220589

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
12:16 PM Changeset in webkit [271449] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove the unused compilation byproducts from the wasm embedder entrypoint
https://bugs.webkit.org/show_bug.cgi?id=220587

Patch by Xan Lopez <Xan Lopez> on 2021-01-13
Reviewed by Yusuke Suzuki.

This is just passed around uninitialized, remove it.

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::didCompleteCompilation):

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

PCM: Experimental debug mode needs to be read from defaults differently on iOS
https://bugs.webkit.org/show_bug.cgi?id=220573
<rdar://problem/73092137>

Reviewed by Brent Fulgham.

Experimental features on iOS use the prefix "WebKitExperimental" so we
need to read it that way on that platform. PCM is not supported on other
platforms than macOS and iOS at this point.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

11:25 AM Changeset in webkit [271447] by commit-queue@webkit.org
  • 14 edits in trunk

[css-logical] Implement logical border-radius
https://bugs.webkit.org/show_bug.cgi?id=218093

Patch by Ziran Sun <Ziran Sun> on 2021-01-13
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-logical/logical-box-border-radius-expected.txt:

Source/WebCore:

Specifically, the following logical properties are included:

  • border-start-start-radius
  • border-start-end-radius
  • border-end-start-radius
  • border-end-end-radius

These properties correspond to the border-top-left-radius,
border-bottom-left-radius, border-top-right-radius,
and border-bottom-right-radius properties. The flow-relative
Corner Rounding properties (border-*-radius) will allow to
set top-left, bottom-left, top-right and bottom-right box
corners with logical mappings rather than physical.

No new tests as the test already exists in WPT.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/CSSProperty.cpp:

(WebCore::resolveToPhysicalProperty):
(WebCore::CSSProperty::resolveDirectionAwareProperty):
(WebCore::CSSProperty::isDirectionAwareProperty):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::asText const):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • platform/text/WritingMode.h:

(WebCore::mapLogicalCornerToPhysicalCorner):

11:20 AM Changeset in webkit [271446] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r257839): Broken focus when 'display' changes in an attribute selector
https://bugs.webkit.org/show_bug.cgi?id=217240
<rdar://problem/69891684>

Reviewed by Wenson Hsieh.

Source/WebCore:

Focus optimization that avoids full style resolution when setting focus in unrendered subtrees
misbehaves when the style is invalidated via an attribute change.

Test case by Ali Juma.

Test: fast/dom/focus-style-resolution-attribute-change.html

  • dom/Element.cpp:

(WebCore::Element::invalidateStyle):

  • dom/Node.cpp:

(WebCore::Node::invalidateStyle):

We need to set the computed style invalidity bit on all style invalidation code paths.

  • html/InputType.cpp:

(WebCore::InputType::setValue):

Don't invalidate style when nothing changes.

LayoutTests:

  • fast/dom/focus-style-resolution-attribute-change-expected.html: Added.
  • fast/dom/focus-style-resolution-attribute-change.html: Added.
11:05 AM Changeset in webkit [271445] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Defer setting up app highlight menus until needed to not delay launch time.
https://bugs.webkit.org/show_bug.cgi?id=220577
rdar://72940219

Delay adding the app highlight menus to the callout bar until a selection happens,
as the creation of these menus is expensive, and they are only needed if a selection is
made on the page, which is not guaranteed to happen.

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _processDidExit]):

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

(-[WKContentView setUpInteraction]):
(-[WKContentView _selectionChanged]):
(-[WKContentView setupAppHighlightMenus]):

10:56 AM Changeset in webkit [271444] by commit-queue@webkit.org
  • 18 edits in trunk

[WebGL2] fbostatequery, negativebufferapi, negativevertexarrayapi, shaderstatequery conformance failures
https://bugs.webkit.org/show_bug.cgi?id=220372

Patch by Kenneth Russell <kbr@chromium.org> on 2021-01-13
Reviewed by Darin Adler.

Source/ThirdParty/ANGLE:

Add a needed early-out in drawArraysInstanced validation when the
primitive count is zero. This patch will be upstreamed to ANGLE
afterward.

  • src/libANGLE/validationES.h:

(gl::ValidateDrawArraysAttribs):
(gl::ValidateDrawArraysCommon):

Source/WebCore:

Fix validation of program and shader objects to address
conformance test failures. Unify and clean up validation of some
other object types.

Fix bugs in queries of framebuffer attachments and integer vertex
attributes.

Remove an old macOS workaround from GraphicsContextGLANGLE which
was causing test failures of maximum renderbuffer sizes.

Generate tests' expected OpenGL errors for a few APIs.

Covered by existing WebGL 2.0 conformance tests.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::copyBufferSubData):
(WebCore::WebGL2RenderingContext::bindFramebuffer):
(WebCore::WebGL2RenderingContext::getFragDataLocation):
(WebCore::WebGL2RenderingContext::vertexAttribIPointer):
(WebCore::WebGL2RenderingContext::drawBuffers):
(WebCore::WebGL2RenderingContext::isQuery):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::isSampler):
(WebCore::WebGL2RenderingContext::isSync):
(WebCore::WebGL2RenderingContext::deleteSync):
(WebCore::WebGL2RenderingContext::clientWaitSync):
(WebCore::WebGL2RenderingContext::waitSync):
(WebCore::WebGL2RenderingContext::getSyncParameter):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::isTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):
(WebCore::WebGL2RenderingContext::deleteVertexArray):
(WebCore::WebGL2RenderingContext::isVertexArray):
(WebCore::WebGL2RenderingContext::bindVertexArray):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

  • html/canvas/WebGLObject.cpp:

(WebCore::WebGLObject::deleteObject):

  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::bindAttribLocation):
(WebCore::WebGLRenderingContextBase::validateNullableWebGLObject):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindRenderbuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::validateWebGLObject):
(WebCore::WebGLRenderingContextBase::validateWebGLProgramOrShader):
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getAttachedShaders):
(WebCore::WebGLRenderingContextBase::getAttribLocation):
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderSource):
(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::getVertexAttrib):
(WebCore::WebGLRenderingContextBase::isBuffer):
(WebCore::WebGLRenderingContextBase::isFramebuffer):
(WebCore::WebGLRenderingContextBase::isProgram):
(WebCore::WebGLRenderingContextBase::isRenderbuffer):
(WebCore::WebGLRenderingContextBase::isShader):
(WebCore::WebGLRenderingContextBase::isTexture):
(WebCore::WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations):
(WebCore::WebGLRenderingContextBase::shaderSource):
(WebCore::WebGLRenderingContextBase::useProgram):
(WebCore::WebGLRenderingContextBase::validateProgram):
(WebCore::WebGLRenderingContextBase::vertexAttribPointer):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
(WebCore::WebGLRenderingContextBase::checkObjectToBeBound): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::setVertexAttribState):

  • html/canvas/WebGLVertexArrayObjectBase.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegerv):

LayoutTests:

Rebaseline tests which are either now passing or which have
progressed.

  • webgl/2.0.0/conformance/programs/program-test-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbostatequery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderstatequery-expected.txt:
10:51 AM Changeset in webkit [271443] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Avoid over-aggressive clearing of *.pyc files running webkitpy tests
https://bugs.webkit.org/show_bug.cgi?id=220594

Patch by Sam Sneddon <Sam Sneddon> on 2021-01-13
Reviewed by Darin Adler.

  • Scripts/webkitpy/test/finder.py:

(source_from_cache): Added fallback for PY2
(_DirectoryTree.clean): Change to use imported/fallback source_from_cache

10:43 AM Changeset in webkit [271442] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU process] Some more Layout tests failures in TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=220570

Patch by Rini Patel <rini_patel@apple.com> on 2021-01-13
Reviewed by Simon Fraser.

  • gpu-process/TestExpectations:
10:40 AM Changeset in webkit [271441] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Null check native image in createBitmapImageAfterScalingIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=220348

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-13
Reviewed by Alex Christensen.

Source/WebCore:

Null check native image in createBitmapImageAfterScalingIfNeeded
as well as the result of sinkIntoImage.

Test: fast/css/border-image-scale-crash.html

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::drawPattern):

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded):

LayoutTests:

Add test for border-image with large scale factor.

  • fast/css/border-image-scale-crash-expected.txt: Added.
  • fast/css/border-image-scale-crash.html: Added.
7:53 AM Changeset in webkit [271440] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, reverting r271401.
https://bugs.webkit.org/show_bug.cgi?id=220591

It is breaking iOS audio rendering

Reverted changeset:

"Unmuting a track in case of end of interruption by another
web process tab is not working well with capture muting icons"
https://bugs.webkit.org/show_bug.cgi?id=220058
https://trac.webkit.org/changeset/271401

6:18 AM Changeset in webkit [271439] by commit-queue@webkit.org
  • 52 edits
    2 adds in trunk

Scroll-snap points should be triggered during programmatic scroll
https://bugs.webkit.org/show_bug.cgi?id=145330
<rdar://problem/21467780>

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-01-13
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update test expectations for newly passing tests and tests that now
fail in a different way.

  • web-platform-tests/css/css-scroll-snap/overflowing-snap-areas-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-margin-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-padding-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-snap-stop-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scroll-snap-type-expected.txt:
  • web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-after-relayout/adding-snap-area-while-snapped-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-align-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-after-relayout/move-current-target-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-after-relayout/remove-current-target-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-area-capturing-add-scroll-container-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-area-capturing-remove-scroll-container-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-inline-block-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-transformed-target-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-both-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-margin-both-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-margin-x-axis-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-margin-y-axis-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-x-axis-expected.txt:
  • web-platform-tests/css/css-scroll-snap/snap-to-visible-areas-y-axis-expected.txt:
  • web-platform-tests/css/css-scroll-snap/unreachable-snap-positions-expected.txt:

Source/WebCore:

Add support for scroll snapping when scroll via DOM APIs. This change also
introduces ScrollPositionChangeOptions which holds common parameters for
operations that from DOM that set scroll position.

  • dom/Element.cpp:

(WebCore::Element::scrollBy): When calling scrollTo mark that this call is a "directional"
scroll, so that directional scroll snapping is done.
(WebCore::Element::scrollTo): Accept the new enum argument marking directional scroll
and also properly set up the ScrollPositionChangeOptions.
(WebCore::Element::setScrollLeft): Use ScrollPositionChangeOptions.
(WebCore::Element::setScrollTop): Ditto.

  • dom/Element.h: Update method definitions.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollBy const): Pass the new ScrollSnapPointSelectionMethod argument
to scrollTo.
(WebCore::DOMWindow::scrollTo const): Accept the new argument and also properly instantiate
a ScrollPositionChangeOptions argument doing the scroll operation.

  • page/DOMWindow.h: Update method definitions.
  • page/FrameView.cpp:

(WebCore::FrameView::setScrollPosition): Accept the new ScrollPositionChangeOptions argument
and also properly snap the destination location based on scroll snapping rules.

  • page/FrameView.h: Update method definition.
  • page/ScrollBehavior.cpp:

(WebCore::useSmoothScrolling): Move the check which translates the scrollingElement to the
root document element here to avoid as much repetition.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::closestSnapOffset): Modify argument names to clarify that this function takes
scroll offsets.

  • page/scrolling/ScrollSnapOffsetsInfo.h: ditto.
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll): Change to reflect rename of adjustScrollDestinationForDirectionalSnapping.
(WebCore::ScrollAnimator::adjustScrollOffsetForSnappingIfNeeded): Added this helper which does
snapping in both the x and the y axis.

  • platform/ScrollAnimator.h: Update method definitions.
  • platform/ScrollTypes.h: Added ScrollPositionChangeOptions and ScrollSnapPointSelectionMethod.

(WebCore::ScrollPositionChangeOptions::createProgrammatic): Added.
(WebCore::ScrollPositionChangeOptions::createUser): Added.
(WebCore::ScrollPositionChangeOptions::createProgrammaticUnclamped): Added.
(WebCore::ScrollPositionChangeOptions::setAnimated): Added.
(WebCore::ScrollPositionChangeOptions::enableDirectionalScrollSnapping): Added.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::setContentsScrollPosition): Update to reflect ScrollPositionChangeOptions.
(WebCore::ScrollView::setScrollPosition): Ditto.

  • platform/ScrollView.h: Ditto.
  • platform/cocoa/ScrollController.h: Rename adjustScrollDestinationForDirectionalSnapping to

adjustScrollDestination and allow it to do non-directional snapping.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::adjustScrollDestination):
(WebCore::ScrollController::adjustScrollDestinationForDirectionalSnapping): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::setScrollLeft): Update to reflect ScrollPositionChangeOptions.
(WebCore::RenderBox::setScrollTop): Ditto.
(WebCore::RenderBox::setScrollPosition): Ditto.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollToXPosition): Ditto.
(WebCore::RenderLayer::scrollToYPosition): Ditto.
(WebCore::RenderLayer::setScrollPosition): Ditto.
(WebCore::RenderLayer::scrollToOffset): Combine with scrollToOffset and also start doing
snapping during this operation.
(WebCore::RenderLayer::scrollRectToVisible): Create ScrollPositionChangeOptions when doing
scrolling operations.
(WebCore::RenderLayer::scrollToOffsetWithAnimation): Deleted.

  • rendering/RenderLayer.h: Update method definitions.
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::setScrollLeft): Update to use ScrollPositionChangeOptions.
(WebCore::RenderListBox::setScrollTop): Ditto.

  • rendering/RenderListBox.h: Ditto.
  • rendering/RenderMarquee.cpp: Ditto.

(WebCore::RenderMarquee::start): Ditto.

  • rendering/RenderTextControlSingleLine.cpp: Ditto.

(WebCore::RenderTextControlSingleLine::setScrollLeft): Ditto.
(WebCore::RenderTextControlSingleLine::setScrollTop): Ditto.

  • rendering/RenderTextControlSingleLine.h: Ditto.

Source/WebKitLegacy/mac:

  • DOM/DOMHTML.mm:

(-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]): Update to use
ScrollPositionChangeOptions.

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps-expected.txt: Update expectation.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-script-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-script.html: Added.
5:21 AM Changeset in webkit [271438] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[buildbot] WebKitGTK(GTK4) isn't triggered after a binary build
https://bugs.webkit.org/show_bug.cgi?id=220586

Reviewed by Aakash Jain.

r269945 added a new WebKitGTK (GTK4) post-commit bot that runs several test suites
(layout-test, api-tests and webdriver-tests). The bot was expected to run after
every binary build, however that wasn't happening because the bot wasn't set as
triggerable.

  • CISupport/build-webkit-org/config.json:
4:52 AM Changeset in webkit [271437] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME][Thunder] Bail out on failed response message for challenges
https://bugs.webkit.org/show_bug.cgi?id=220583

Reviewed by Philippe Normand.

When parsing the challenge message, sometimes the message length
is 0 and parsing fails. This should not happen in principle and
that's why we just asserted on that but it looks like the
framework is not as careful as expected here. Hence we need to
bail out to not crash in release mode.

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMInstanceSessionThunder::challengeGeneratedCallback):

3:54 AM Changeset in webkit [271436] by svillar@igalia.com
  • 4 edits in trunk

REGRESSION(r268666) Incorrect vertical position inside grid items with padding
https://bugs.webkit.org/show_bug.cgi?id=220524

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

In r268666 we sanitized and renamed the old overrideLogicalXXX sizes so that they store what they say.
There was a mistake in one of those renames, in availableLogicalHeightForPercentageComputation() we were
returning the border box size for the case of grid items. That's clearly wrong as we should return the
content box size. That's why adding a padding to a grid item was causing their children to wrongly
evaluate the available logical height.

This fixes a WPT that was marked as failure.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): Return the
overridingContentLogicalHeight instead of the overridingLogicalHeight.

LayoutTests:

  • TestExpectations: remove web-platform-tests/css/css-grid/grid-items/percentage-size-subitems-001.html

from the list of image failures.

2:11 AM Changeset in webkit [271435] by graouts@webkit.org
  • 7 edits
    2 adds in trunk

REGRESSION (r267571): black line appears upon navigating back from apple.com shopping bag
https://bugs.webkit.org/show_bug.cgi?id=220550
<rdar://problem/72459816>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark two additional PASS results for ::marker tests.

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:

Source/WebCore:

Test: webanimations/no-transition-on-after-pseudo-element-upon-creation.html

In r267571, we refactored the code to use Styleable instead of Element in pseudo-element resolution code. While there
should have been no behavior change, there was a change in Style::TreeResolver::createAnimatedElementUpdate() that
mistakenly introduced one.

In order to get the "before" style to be used to consider CSS Transitions, we used to simply call Element::renderOrDisplayContentsStyle()
on the element provided to createAnimatedElementUpdate(), which would be either an Element or a PseudoElement in the
case of ::before and ::after. When we switched to using Styleable, we made a change where we'd call renderOrDisplayContentsStyle()
on the Styleable's element, if it didn't a pseudo-element, or try to get the matching PseudoElement in the case of
::before and ::after. However, if we got a nullptr RenderStyle in the PseudoElement case, we'd fall back to using the
style from the host element.

This yielded this regression on apple.com where a transition is started on an ::after pseudo-element which has an
"opacity: 0" style and a "transition" style set for "opacity". The host element is created first, and later the
::after pseudo-element added. While it should not consider starting a transition in this case since upon creation
there is no existing style to work with, it did start a transition since it would use the host element's style
and see "opacity: 1" to start a transition.

In this patch, we address the FIXME we'd left behind in TreeResolver::createAnimatedElementUpdate() and make
Element::renderOrDisplayContentsStyle() take in a PseudoId, defaulting to PseudoId::None. In case we have a
pseudo-element, we first try to call renderOrDisplayContentsStyle() on the matching PseudoElement if it exists,
or we return the existing computed style for this pseudo-element.

If there is no existing computed style, we return nullptr, which means that in the apple.com scenario, no transition
is started because we correctly don't have a "before" style to work within upon creation of the ::after pseudo-element.

  • dom/Element.cpp:

(WebCore::beforeOrAfterPseudoElement):
(WebCore::Element::renderOrDisplayContentsStyle const):

  • dom/Element.h:
  • style/StyleTreeResolver.cpp:

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

LayoutTests:

Add a test that checks that adding a pseudo-element for an existing host element does not use
the host element's style to consider starting a transition.

  • webanimations/no-transition-on-after-pseudo-element-upon-creation-expected.html: Added.
  • webanimations/no-transition-on-after-pseudo-element-upon-creation.html: Added.
1:50 AM Changeset in webkit [271434] by youenn@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Use promise_test in WPT beacon/beacon-common.sub.js instead of async_test
https://bugs.webkit.org/show_bug.cgi?id=220541
<rdar://problem/72940308>

Reviewed by Geoffrey Garen.

Use promise_test to limit the number of requests sent in parallel.
This helps the server responds properly.

  • web-platform-tests/beacon/beacon-common.sub.js:

(runTests):

Jan 12, 2021:

11:24 PM Changeset in webkit [271433] by cathiechen
  • 4 edits in trunk

The rootBounds of IntersectionObserverEntry is not correct when {root:document}
https://bugs.webkit.org/show_bug.cgi?id=219495

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/intersection-observer/same-document-with-document-root-expected.txt:

Source/WebCore:

When {root:document}, rootBounds should be the root intersection rectangle which is the document's viewport,
per [1]. The coordinator of rootBounds should be layoutViewportRect, for root intersection rectangle is not affected by pinch zoom [2].

[1] https://www.w3.org/TR/intersection-observer/#dom-intersectionobserverentry-rootbounds
[2] https://w3c.github.io/IntersectionObserver/#intersectionobserver-root-intersection-rectangle

  • dom/Document.cpp:

(WebCore::computeIntersectionState):
(WebCore::Document::updateIntersectionObservations):

11:04 PM Changeset in webkit [271432] by Ross Kirsling
  • 5 edits in trunk

[JSC] Class name 'await' is valid in sync context
https://bugs.webkit.org/show_bug.cgi?id=220575

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark four test cases as passing.

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
Check for valid 'await'.

  • parser/Parser.h:

(JSC::Parser::isDisallowedIdentifierAwait):
Fix mistake -- we care if the containing function is async, we don't care about being *at* function scope.

10:45 PM Changeset in webkit [271431] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Gardening Focus-visible failures

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
9:48 PM Changeset in webkit [271430] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

QuickLook snapshots are missing some image content
https://bugs.webkit.org/show_bug.cgi?id=220571
<rdar://problem/72184373>

Reviewed by Simon Fraser.

  • WebView/WebFrame.mm:

(-[WebFrame _paintBehaviorForDestinationContext:]):
Quick Look snapshots use WebView, and call displayRectIgnoringOpacity:inContext:
in order to paint it into a bitmap context. However, if the WebView is layer-backed,
including for reasons outside of WebKit or Quick Look's control, it currently
does a "normal" paint (as opposed to a snapshotting + flattening paint).
This results in async image decoding kicking in, which is undesirable
for a snapshot, since there is no opportunity to repaint when the decode
is complete.

It is difficult to detect all cases in which WebView is being painted into
an offscreen context, but one case that we can easily detect, and which
fixes Quick Look, is if the WebView itself is not hosted in a window.

So, if not hosted in a window, do a snapshotting+flattening paint.

9:11 PM Changeset in webkit [271429] by Lauro Moura
  • 8 edits in trunk/LayoutTests

[GLIB] Rebaselines after r271348

Unreviewed test gardening.

  • platform/glib/fast/inline-block/tricky-baseline-expected.txt:
  • platform/gtk/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/gtk/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/gtk/fast/clip/overflow-border-radius-transformed-expected.txt:
  • platform/wpe/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/wpe/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/wpe/fast/clip/overflow-border-radius-transformed-expected.txt:
8:33 PM Changeset in webkit [271428] by Lauro Moura
  • 15 edits in trunk/LayoutTests

[GLIB] Rebaselines after r271110

Unreviewed test gardening.

  • platform/glib/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
  • platform/glib/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/glib/fast/inline/002-expected.txt:
  • platform/glib/fast/table/table-display-types-strict-expected.txt:
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/fast/block/basic/014-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/encoding/utf-16-big-endian-expected.txt:
  • platform/gtk/fast/encoding/utf-16-little-endian-expected.txt:
  • platform/wpe/css1/text_properties/vertical_align-expected.txt:
  • platform/wpe/fast/block/basic/014-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/wpe/fast/encoding/utf-16-big-endian-expected.txt:
  • platform/wpe/fast/encoding/utf-16-little-endian-expected.txt:
8:17 PM Changeset in webkit [271427] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Implement serial tests for the ruby test writer
https://bugs.webkit.org/show_bug.cgi?id=220360

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-01-12
Reviewed by Yusuke Suzuki.

This is a verbatim copy of the implementation in the default writer.

  • Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:
8:14 PM Changeset in webkit [271426] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Invoke ccache properly on macOS aarch64
https://bugs.webkit.org/show_bug.cgi?id=220497

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2021-01-12
Reviewed by Darin Adler.

For macOS aarch64, the current homebrew recommends to install homebrew to /opt/homebrew.
https://docs.brew.sh/Installation

This patch adds it to the list which ccache-wrapper searches.

  • ccache/ccache-wrapper:
4:55 PM Changeset in webkit [271425] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=220536
<rdar://problem/70633887>

Reviewed by Zalan Bujtas.

Source/WebCore:

We have two codeblocks in this section that are meant to be used
for non-CJK text, but the compound "if" statement was causing us to hit
one of them even for CJK text.

Test: fast/text/cjk-multi-codepoint-cluster-vertical.html

  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence const):

LayoutTests:

  • fast/text/cjk-multi-codepoint-cluster-vertical-expected.html: Added.
  • fast/text/cjk-multi-codepoint-cluster-vertical.html: Added.
  • platform/win/TestExpectations:
4:19 PM Changeset in webkit [271424] by BJ Burg
  • 20 edits in trunk

[Cocoa] Web Inspector: move browser domain activation methods back to WKWebView and UIDelegate
https://bugs.webkit.org/show_bug.cgi?id=220480

Reviewed by Devin Rousso.

Source/WebKit:

Having browser domain activation methods on WKInspectorDelegate means that
the browser domain will not work with remote inspection of WKWebViews on
macOS. Move these methods back to UIDelegate/WKWebView so that it is possible
to remote inspect Safari Technology Preview with another Safari while still
benefiting from the browser domain being turned on.

Covered by existing API tests.

  • UIProcess/API/APIInspectorClient.h:

(API::InspectorClient::browserDomainEnabled): Deleted.
(API::InspectorClient::browserDomainDisabled): Deleted.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didEnableInspectorBrowserDomain): Moved.
(API::UIClient::didDisableInspectorBrowserDomain): Moved.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didEnableBrowserExtensions:]): Moved.
(-[WKWebView _didDisableBrowserExtensions:]): Moved.
Moved from WKInspector.mm. Rather than accessing the browser agent
directly from ObjC code, use the page's WebPageInspectorController.

  • UIProcess/API/Cocoa/_WKInspectorDelegate.h:
  • UIProcess/API/Cocoa/_WKInspectorPrivate.h:
  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector _browserExtensionsEnabled:]): Deleted.
(-[_WKInspector _browserExtensionsDisabled:]): Deleted.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didEnableInspectorBrowserDomain):
(WebKit::UIDelegate::UIClient::didDisableInspectorBrowserDomain):

  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:

(WebKit::InspectorBrowserAgent::enable):
(WebKit::InspectorBrowserAgent::disable):

  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm:

(WebKit::InspectorDelegate::setDelegate):
(WebKit::InspectorDelegate::InspectorClient::~InspectorClient):
(WebKit::InspectorDelegate::InspectorClient::browserDomainEnabled): Deleted.
(WebKit::InspectorDelegate::InspectorClient::browserDomainDisabled): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::browserExtensionsEnabled): Deleted.
(WebKit::WebInspectorProxy::browserExtensionsDisabled): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebPageInspectorController.h:
  • UIProcess/Inspector/WebPageInspectorController.cpp:

(WebKit::WebPageInspectorController::WebPageInspectorController):
(WebKit::WebPageInspectorController::init):
(WebKit::WebPageInspectorController::connectFrontend):
(WebKit::WebPageInspectorController::disconnectFrontend):
(WebKit::WebPageInspectorController::disconnectAllFrontends):
(WebKit::WebPageInspectorController::setIndicating):
(WebKit::WebPageInspectorController::createInspectorTarget):
(WebKit::WebPageInspectorController::webPageAgentContext):
(WebKit::WebPageInspectorController::setEnabledBrowserAgent): Added.
(WebKit::WebPageInspectorController::browserExtensionsEnabled): Added.
(WebKit::WebPageInspectorController::browserExtensionsDisabled): Added.
Drive-by: rename m_page to m_inspectedPage to emphasize that this
class exists as part of Web Inspector's backend, not its frontend.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[UIDelegate _webViewDidEnableInspectorBrowserDomain:]):
(-[UIDelegate _webViewDidDisableInspectorBrowserDomain:]):
(-[InspectorDelegate inspectorDidEnableBrowserDomain:]): Deleted.
(-[InspectorDelegate inspectorDidDisableBrowserDomain:]): Deleted.
Adapt to new location for delegate methods.

4:15 PM Changeset in webkit [271423] by Ross Kirsling
  • 4 edits in trunk

[JSC] Class names must be lexed as strict mode code
https://bugs.webkit.org/show_bug.cgi?id=220567

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark four test cases as passing.

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
Don't lex next token until *after* we've set up the class scope.

4:09 PM Changeset in webkit [271422] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

[JSC] Bypass OperationPtrTagging for JITCage verification for CallDOMGetter
https://bugs.webkit.org/show_bug.cgi?id=220564

Reviewed by Saam Barati.

JSTests:

  • stress/domjit-getter2.js: Added.

(shouldBe):
(access):

Source/JavaScriptCore:

CustomAccessorPtrTag functions are not registered ones for JITCage since we are using C++ trampoline to invoke them.
However, we do not want to use this trampoline in x64 due to performance issue. So we would like to call these
functions directly from JIT while they are not registered (And this is OK in JITCage since they are called from trampoline).
In this patch we bypass OperationPtrTagging by using WTF::tagNativeCodePtrImpl directly for non JITCage case.

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::appendOperationCall):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::appendOperationCall):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::vmCall):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::operation):

  • tools/JSDollarVM.cpp:
4:06 PM Changeset in webkit [271421] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] GPU Process unable to play MSE content due to missing sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=220549
<rdar://problem/73047290>

Reviewed by Per Arne Vollan.

Add missing sandbox rules required to support MSE playback in the GPU Process. These
rules were previously added to the WebContent process, but should have also been
included in the GPU Process sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Scripts/process-entitlements.sh:
4:05 PM Changeset in webkit [271420] by Caio Lima
  • 3 edits
    1 add in trunk

[ESNext] super accesses broken on arrow functions defined as class field
https://bugs.webkit.org/show_bug.cgi?id=220558

Reviewed by Darin Adler.

JSTests:

  • stress/class-field-arrow-function-using-super.js: Added.

Source/JavaScriptCore:

We need to properly set isClassContext for class fields
initialization.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

3:13 PM Changeset in webkit [271419] by mmaxfield@apple.com
  • 4 edits
    1 add
    10 deletes in trunk/LayoutTests

Make fast/text/international/complex-character-based-fallback.html more robust by migrating it to be a reftest instead of a DRT test
https://bugs.webkit.org/show_bug.cgi?id=220488
<rdar://problem/70556068>

Reviewed by Darin Adler.

Reference tests are more robust than render-tree dump tests.

  • fast/text/international/complex-character-based-fallback-expected.html: Added.
  • fast/text/international/complex-character-based-fallback.html:
  • platform/gtk/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/gtk/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/ios/TestExpectations:
  • platform/ios/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/ios/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/mac/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/win/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/win/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/wincairo/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/wpe/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
2:47 PM Changeset in webkit [271418] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] Add runtime logging to format reader and WebM parser
https://bugs.webkit.org/show_bug.cgi?id=220423
<rdar://problem/72896655>

Unreviewed, address post-review comments after r271270.

  • dom/Document.cpp:

(WebCore::Document::addToDocumentsMap): ASSERT that document was not already in the map.
(WebCore::Document::Document): Move ASSERT to addToDocumentsMap.

  • dom/Document.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WTF::LogArgument<webm::TrackType>::toString): Return ASCIILiteral instead of String.
(WTF::LogArgument<webm::Id>::toString): Ditto.
(WTF::LogArgument<WebCore::SourceBufferParserWebM::State>::toString): Ditto.

2:47 PM Changeset in webkit [271417] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] Reset user directory suffix before getting sandbox directory
https://bugs.webkit.org/show_bug.cgi?id=220358
<rdar://problem/57616019>

Reviewed by Alexey Proskuryakov.

Source/WebCore/PAL:

Declare functions to get and set user directory suffix.

  • pal/spi/cocoa/CoreServicesSPI.h:

Source/WebKit:

Reset the user directory suffix before getting the sandbox data vault directory with confstr. We do not want to include the user
directory suffix, since the sandbox data vault will then end up inside the host process' cache folder, which is undesirable.
Also, creating the data vault directory with confstr can fail under some circumstances if the user directory suffix is not empty.
This patch also changes how we next set the user directory suffix for the process. Instead of setting the environment variable
DIRHELPER_USER_DIR_SUFFIX, we can use the SPI _set_user_dir_suffix. The behavior should be identical, but I believe it is better
to use SPI for this.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters):
(WebKit::AuxiliaryProcess::initializeSandbox):

2:13 PM Changeset in webkit [271416] by Chris Fleizach
  • 12 edits
    2 adds in trunk

AX: Implement aria-braillelabel and aria-brailleroledescription
https://bugs.webkit.org/show_bug.cgi?id=220516
<rdar://problem/73004715>

Reviewed by Zalan Bujtas.

Source/WebCore:

Add support for new ARIA attributes.

Test: accessibility/mac/braille-label-role.html

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityBrailleLabel]):
(-[WebAccessibilityObjectWrapper accessibilityBrailleRoleDescription]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • html/HTMLAttributeNames.in:

LayoutTests:

  • accessibility/braille-label-role-expected.txt: Added.
  • accessibility/braille-label-role.html: Added.
2:07 PM Changeset in webkit [271415] by don.olmstead@sony.com
  • 14 edits in trunk/Source

Non-unified build fixes mid January 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=220560

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • API/JSLockRef.cpp:
  • runtime/JSCJSValue.cpp:
  • runtime/JSGlobalObjectFunctions.cpp:

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:
  • bindings/js/JSHTMLAllCollectionCustom.cpp:
  • dom/DocumentStorageAccess.cpp:
  • layout/inlineformatting/InlineContentBreaker.cpp:
  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:
  • page/Quirks.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

Source/WebKit:

  • UIProcess/SpeechRecognitionPermissionManager.cpp:

(WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager):
(WebKit::SpeechRecognitionPermissionManager::request):
(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest):
(WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess):
(WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess):
(WebKit::SpeechRecognitionPermissionManager::requestUserPermission):

1:59 PM Changeset in webkit [271414] by Wenson Hsieh
  • 8 edits
    2 adds in trunk

REGRESSION (r265044): [macOS] Safari autocorrects text when typing in login field on amazon.com
https://bugs.webkit.org/show_bug.cgi?id=220556
<rdar://problem/71602937>

Reviewed by Darin Adler.

Source/WebCore:

Add an internal testing hook to ask an input element whether it has disabled spellchecking (except for text
replacement).

  • testing/Internals.cpp:

(WebCore::Internals::isSpellcheckDisabledExceptTextReplacement const):

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

Source/WebKit:

Restores the implementation of WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled, which was removed in
r265044, with the reasoning that the code was unused. However, Safari still uses this SPI on macOS to prevent
automatic spelling correction from triggering when editing form fields that are AutoFillable.

Test: WebKit.DisableSpellcheck

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:

(WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled):

Tools:

Add an API test that uses WebKit C API (WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled) to disable or
enable spellchecking on input elements.

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

(-[DisableSpellcheckPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[DisableSpellcheckPlugIn webProcessPlugInBrowserContextController:didClearWindowObjectForFrame:inScriptWorld:]):
(-[DisableSpellcheckPlugIn webProcessPlugInBrowserContextController:didFinishLoadForFrame:]):

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

[ Big Sur ] platform/mac/fast/text/international/bidi-fallback-font-weight.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220551

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:15 PM Changeset in webkit [271412] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Big Sur ] media/media-source/media-source-webm-init-inside-segment.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220552

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:12 PM Changeset in webkit [271411] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Big Sur ] imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=220554

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:17 PM Changeset in webkit [271410] by Patrick Angle
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove experimental setting and enable Font details sidebar
https://bugs.webkit.org/show_bug.cgi?id=220438

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

11:48 AM Changeset in webkit [271409] by Fujii Hironori
  • 2 edits in trunk

[PlayStation] Enable ENABLE_USERSELECT_ALL for -webkit-user-select:all support
https://bugs.webkit.org/show_bug.cgi?id=220533

Reviewed by Don Olmstead.

  • Source/cmake/OptionsPlayStation.cmake: Removed the line disabling ENABLE_USERSELECT_ALL.
11:05 AM Changeset in webkit [271408] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

ASSERTION FAILED: m_connection under WebKit::WebPageProxy::acceptsFirstMouse()
https://bugs.webkit.org/show_bug.cgi?id=220545
<rdar://problem/73043854>

Reviewed by Tim Horton.

Avoid the assertion by making it safe to call WebPageProxy::messageSenderConnection in debug builds, in the
case where the web process is still launching.

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::hasConnection const):

Add a helper method that returns whether or not a process proxy has a non-null connection.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::messageSenderConnection const):

Use the above helper to avoid calling into AuxiliaryProcessProxy::connection() when the connection is null.

10:57 AM Changeset in webkit [271407] by Peng Liu
  • 4 edits in trunk/LayoutTests

REGRESSION (r271341): media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=220530

Reviewed by Eric Carlson.

Similar to r271377, this patch fixes a layout test failure/timeout by enabling "MockVideoPresentationMode"
and sending a request to enter/exit fullscreen after the current mode change is completed.

  • media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html:
  • platform/mac/TestExpectations:
9:30 AM Changeset in webkit [271406] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update force schedulers as per new buildbot
https://bugs.webkit.org/show_bug.cgi?id=220544

Reviewed by Jonathan Bedard.

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

(loadBuilderConfig):

9:20 AM Changeset in webkit [271405] by jer.noble@apple.com
  • 17 edits
    1 add in trunk/Source

[Cocoa] Support key rotation with HLS-backed encrypted media streams
https://bugs.webkit.org/show_bug.cgi?id=220493
<rdar://68227709>

Reviewed by Eric Carlson.

Source/WebCore:

Support key rotation through AVContentKeySession by explicitly handling unexpected key requests
submitted through the new -contentKeySession:didProvideContentKeyRequests:forInitializationData:.
Rotation was previously handled in the delegate method -contentKeySession:didProvideContentKeyRequest,
but that method is no longer called after the replacement delegate method was implemented, and
that method never handled "skd://" style initialization data.

Update the helper method, initTypeForRequest(), to detect "skd://" identifiers and correctly identify
those sessions as "skd".

Add a new helper method, initializationDataForRequest(), which will package the AVContentKeySession's
identifier as initialization data.

Drive-by Fix: Fixing this bug causes the default key group to update it's identifier, which causes an assert
when the group in question isn't any of those associated with an existing MediaKeySession, so handle that case
explicitly.

Drive-by Fix 2: Sometimes, when GPUP is enabled for media, we will get spurious mediaPlayerEngineUpdated()
calls which cause cdmInstanceAttached() to be called multiple times for the same player, triggering an ASSERT.
If called twice with the same CDM, just return early rather than ASSERTing.

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

(WebCore::initTypeForRequest):
(WebCore::initializationDataForRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::handleUnexpectedRequests):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):

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

(WebCore::MediaSourcePrivateAVFObjC::cdmInstanceAttached):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

Support handling the "unexpectedInitializationDataReceived()" client callback from within the GPUP.

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

(WebKit::RemoteCDMInstanceProxy::create):
(WebKit::RemoteCDMInstanceProxy::RemoteCDMInstanceProxy):
(WebKit::RemoteCDMInstanceProxy::~RemoteCDMInstanceProxy):
(WebKit::RemoteCDMInstanceProxy::unrequestedInitializationDataReceived):

  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteCDMProxy.cpp:

(WebKit::RemoteCDMProxy::createInstance):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteCDMInstance.cpp:

(WebKit::RemoteCDMInstance::RemoteCDMInstance):
(WebKit::RemoteCDMInstance::~RemoteCDMInstance):
(WebKit::RemoteCDMInstance::unrequestedInitializationDataReceived):

  • WebProcess/GPU/media/RemoteCDMInstance.h:
  • WebProcess/GPU/media/RemoteCDMInstance.messages.in: Added.
9:00 AM Changeset in webkit [271404] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Safari Networking high % CPU when Caches/WebKit/ServiceWorkers folder not writable
https://bugs.webkit.org/show_bug.cgi?id=220220
<rdar://problem/72930195>

Reviewed by Chris Dumez.

In case writing changes in the service worker database fails, we retry once.
If it fails, we give up and will only retry writing when new changes happen.
Manually tested.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::pushChanges):
(WebCore::RegistrationDatabase::schedulePushChanges):

  • workers/service/server/RegistrationDatabase.h:
8:30 AM Changeset in webkit [271403] by commit-queue@webkit.org
  • 10 edits in trunk/LayoutTests

Clean up some mainframe scroll snap tests
https://bugs.webkit.org/show_bug.cgi?id=220537

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-01-12
Reviewed by Frédéric Wang.

Clean up some mainframe scroll snap tests by removing dead code
and fixing some situations where tests cannot fail. This change
makes it so that these tests no longer sample scroll positions
before the tests. Instead they now rely on the assumption that
the initial scroll offset should be 0.

  • tiled-drawing/scrolling/scroll-snap/resources/mainframe-scroll-snap-test.js:

(async doScrollTest):
(delay): Deleted.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-legacy.html: No longer use shortScrollShouldSnapBack and

scrollGlideShouldScrollTo.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html: Ditto.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html: Ditto.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html: Ditto.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html: Ditto.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-legacy.html: Ditto.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin.html: Ditto.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html: Ditto.
7:53 AM Changeset in webkit [271402] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, workaround for GTK EnumerateDevices API test crash.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::ensureGStreamerInitialized): Disable RELEASE_ASSERT until bug #220542 is fixed.

6:34 AM Changeset in webkit [271401] by youenn@apple.com
  • 12 edits in trunk

Unmuting a track in case of end of interruption by another web process tab is not working well with capture muting icons
https://bugs.webkit.org/show_bug.cgi?id=220058

Reviewed by Eric Carlson.

Source/WebCore:

Before the patch, we were muting all tracks in case of Audio Session interruption.
This works well in case another application triggers the interruption.

In case the interruption is done by another tab, this does not work well for two reasons:

  • The UIProcess is doing the work of muting the tracks when another tab is starting to capture
  • Unmuting in case of interruption might unmute several tabs if they are in the same process

As an example, if a tab is capturing, and another tab starts to capture, going back to first tab will automatically
restart the audio capture as the Audio Session will end its interruption. But it will not mute the camera track.

To fix that, the Audio Shared Unit is no longer directly muting or unmuting the audio tracks.
Instead, each page is notified of start/end of AudioSession interruption.
When an interruption starts, all capture tracks are muted.
When an interruption ends, all capture tracks are updated according the page muted state, which is controlled by UIProcess.
This also covers the case of several tabs capturing in the same process, since only one tab will not be set as muted by UIProcess.

In case of several capture MediaStreamTrack in the same document and they are not the active source, we pick the first one as there is
no way to know which one was the last unmuted one.
We should probably add some support to always remember the last living track of a tab in iOS.

Manually tested.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::create):
(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):
(WebCore::MediaStreamTrack::updateToPageMutedState):

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):
(WebCore::Document::pageMutedStateDidChange):

  • page/Page.cpp:

(WebCore::Page::beginAudioCaptureInterruption):
(WebCore::Page::endAudioCaptureInterruption):

  • page/Page.h:
  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::suspend):

Source/WebKit:

Add an observer of AudioSession interruptions that forwards the signal to all tabs of the process.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::PageAudioSessionInterruptionObserver::PageAudioSessionInterruptionObserver):
(WebKit::PageAudioSessionInterruptionObserver::~PageAudioSessionInterruptionObserver):
(WebKit::PageAudioSessionInterruptionObserver::beginAudioSessionInterruption):
(WebKit::PageAudioSessionInterruptionObserver::endAudioSessionInterruption):
(WebKit::listenToAudioSessionInterruption):

4:44 AM Changeset in webkit [271400] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK gardening

  • platform/glib/TestExpectations: media/media-fullscreen-inline.html times out.
4:33 AM Changeset in webkit [271399] by Philippe Normand
  • 15 edits in trunk

[GStreamer] Bump version requirement
https://bugs.webkit.org/show_bug.cgi?id=220356

Reviewed by Xabier Rodriguez-Calvar.

.:

  • Source/cmake/GStreamerChecks.cmake: Bump required version to 1.14.

Source/WebCore:

Remove compile-time and runtime GStreamer version checks that are
not needed anymore since we now require at least GStreamer 1.14 at
configure time.

  • platform/GStreamer.cmake:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(_WebKitWebAudioSrcPrivate::_WebKitWebAudioSrcPrivate):
(webKitWebAudioSrcRenderAndPushFrames):
(webKitWebAudioSrcChangeState):

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(requestGLContext):
(webKitGLVideoSinkChangeState):

  • platform/graphics/gstreamer/GStreamerAudioMixer.cpp:

(WebCore::GStreamerAudioMixer::ensureState):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):
(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::convertToInternalProtocol): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:

(PlatformDisplay::tryEnsureGstGLContext const):

  • platform/graphics/gstreamer/WebKitAudioSinkGStreamer.cpp:

(webKitAudioSinkChangeState):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate):
(webKitWebSrcGetProtocols):
(convertPlaybinURI):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::payloadContainerType const):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformCaps):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcChangeState):

4:10 AM Changeset in webkit [271398] by calvaris@igalia.com
  • 5 edits in trunk

[GStreamer] Switch from ENABLE_ to USE_ in native audio/video and text sink options
https://bugs.webkit.org/show_bug.cgi?id=220515

Reviewed by Philippe Normand.

.:

  • Source/cmake/GStreamerDefinitions.cmake: Add USE_ definitions.
  • Source/cmake/WebKitFeatures.cmake: Remove global ENABLE_

definitions.

Source/WebCore:

ENABLE(TEXT_SINK), ENABLE(NATIVE_AUDIO) and ENABLE(NATIVE_VIDEO)
turned into USE(GSTREAMER_...).

This also disables soft-colorbalance when native video is active.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::setPlaybackFlags):

3:33 AM Changeset in webkit [271397] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK/WPE critical warning fix following-up r271396

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): GStreamer has to be
initialized before creating the audio sink, otherwise GLib critical warnings will be raised.

2:55 AM Changeset in webkit [271396] by Philippe Normand
  • 24 edits
    4 adds in trunk/Source

[GStreamer] Lazy initialization support
https://bugs.webkit.org/show_bug.cgi?id=209332

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The GStreamer library is now mostly used from the WebProcess only. The last remaining
GStreamer usage from the UIProcess is triggered by the webkit_web_view_can_show_mime_type()
API, which is acceptable for now.

GStreamer will now be initialized only if it is needed, so lazy initialization calls were
added in the various WebCore components relying on the library.

Based on preliminary patches by Charlie Turner <cturner@igalia.com> and Victor M Jaquez <vjaquez@igalia.com>.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::initializeDebugCategory): Lazily initialize GStreamer and load our in-house
elements (webkitwebaudiosrc is needed by this module).

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::initializeDebugCategory): Lazily initialize GStreamer.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::addGStreamerOptionsFromUIProcess): Store command-line arguments from the UIProcess.
(WebCore::ensureGStreamerInitialized): Ooptionally use command-line arguments from the
UIProcess.
(WebCore::registerWebKitGStreamerElements): Decouple from initialization function.
(WebCore::initializeGStreamer): Deleted.
(WebCore::initializeGStreamerAndRegisterWebKitElements): Deleted.

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner): Lazily initialize GStreamer.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::supportsContainerType): Bail off on non-video mime-types
and call-sites outside of the WebProcess. We can't rely on gst_is_initialized() anymore
because it is lazily initialized.
(WebCore::ImageDecoderGStreamer::canDecodeType): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::isAvailable): This is a no-op now, no need to check
the playbin factory, we can fail from setPipeline().
(WebCore::MediaPlayerPrivateGStreamer::setPipeline): Bail off if playbin wasn't found.
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamer::loadFull): Remove now-useless gif hack, the player
discards all non-audio non-video mimetype.
(WebCore::MediaPlayerPrivateGStreamer::volumeChangedCallback): Prevent ghost volume notifications.
(WebCore::MediaPlayerPrivateGStreamer::supportsType): Bail off on image mime-types.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::createImageSample): Lazily initialize GStreamer.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine): Simplify, isAvailable() now no-op.

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: Lazily initialize GStreamer.

(WebCore::initializeDebugCategory):
(WebCore::m_capturer):
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource):
(WebCore::initializeGStreamerDebug): Deleted.

  • platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp: Lazily initialize GStreamer.

(WebCore::GStreamerCaptureDeviceManager::captureDevices):

  • platform/mediastream/gstreamer/GStreamerCapturer.cpp: Ditto.

(WebCore::initializeDebugCategory):
(WebCore::GStreamerCapturer::GStreamerCapturer):
(WebCore::initializeGStreamerAndDebug): Deleted.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: Ditto.

(WebCore::initializeDebugCategory):
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource):
(WebCore::m_capturer):
(WebCore::initializeGStreamerDebug): Deleted.

  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp: Ditto.

(WebCore::MockRealtimeAudioSourceGStreamer::MockRealtimeAudioSourceGStreamer):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp: Ditto.

(WebCore::MockRealtimeVideoSourceGStreamer::MockRealtimeVideoSourceGStreamer):

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: Ditto.

(WebCore::GStreamerVideoDecoderFactory::GStreamerVideoDecoderFactory):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: Ditto.

(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory):

Source/WebKit:

Introduce a GTK/WPE UserMediaCaptureManager that relays permission requests to the
RealtimeMediaSourceCenter running in the WebProcess. We might move this to the GPUProcess at
some point but for the time being we only want to avoid initializing GStreamer from the
UIProcess.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
  • UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp: Added.

(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):

  • WebProcess/glib/UserMediaCaptureManager.cpp: Added.

(WebKit::UserMediaCaptureManager::UserMediaCaptureManager):
(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):
(WebKit::UserMediaCaptureManager::validateUserMediaRequestConstraints):

  • WebProcess/glib/UserMediaCaptureManager.h: Added.

(WebKit::UserMediaCaptureManager::supplementName):

  • WebProcess/glib/UserMediaCaptureManager.messages.in: Added.
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

2:42 AM Changeset in webkit [271395] by Manuel Rego Casasnovas
  • 28 edits
    14 adds
    1 delete in trunk/LayoutTests

[selectors] Update tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=220312

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

[selectors] Update :focus-visible tests from WPT

  • web-platform-tests/css/selectors/focus-in-focus-event-001-expected.txt:
  • web-platform-tests/css/selectors/focus-in-focus-event-001.html:
  • web-platform-tests/css/selectors/focus-in-focusin-event-001-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-in-focusin-event-001.html: Added.
  • web-platform-tests/css/selectors/focus-visible-001-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-001.html:
  • web-platform-tests/css/selectors/focus-visible-002-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-002.html:
  • web-platform-tests/css/selectors/focus-visible-003-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-003.html:
  • web-platform-tests/css/selectors/focus-visible-004-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-004.html:
  • web-platform-tests/css/selectors/focus-visible-005-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-005.html:
  • web-platform-tests/css/selectors/focus-visible-006-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-006.html: Added.
  • web-platform-tests/css/selectors/focus-visible-007.html:
  • web-platform-tests/css/selectors/focus-visible-008-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-008.html: Added.
  • web-platform-tests/css/selectors/focus-visible-009-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-009.html:
  • web-platform-tests/css/selectors/focus-visible-010-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-010.html:
  • web-platform-tests/css/selectors/focus-visible-011.html:
  • web-platform-tests/css/selectors/focus-visible-012-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-012.html:
  • web-platform-tests/css/selectors/focus-visible-014-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-014.html: Added.
  • web-platform-tests/css/selectors/focus-visible-015-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-015.html: Added.
  • web-platform-tests/css/selectors/focus-visible-016-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-016.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-focus-visible-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-focus-visible.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-not-expected.txt:

Reported failure at webkit.org/b/220532.

  • web-platform-tests/css/selectors/parsing/parse-not.html:
  • web-platform-tests/css/selectors/parsing/w3c-import.log:
  • web-platform-tests/css/selectors/w3c-import.log:

LayoutTests:

  • TestExpectations: Unskip :focus-visible tests, except focus-visible-{002,003,004}.html

because they timeout on Apple platforms, and focus-visible-007.html because
it has some problems (see https://crbug.com/976438).

  • platform/glib/TestExpectations: Mark focus-visible-{002,003,004}.html as passing.
  • platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-009-expected.txt: Removed.
1:42 AM Changeset in webkit [271394] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Multicol] set the childrenInline flag on the RenderBlockFlow properly
https://bugs.webkit.org/show_bug.cgi?id=218555

Reviewed by Zalan Bujtas.

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):

1:37 AM Changeset in webkit [271393] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.31.1

WebKitGTK 2.31.1

1:34 AM Changeset in webkit [271392] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check CSSFilter::output()
https://bugs.webkit.org/show_bug.cgi?id=220350

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

Source/WebCore:

Null check CSSFilter::output() since this is not
guaranteed to be non-null.

Test: css3/filters/large-background-size-crash.html

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

LayoutTests:

Add test for this.

  • css3/filters/large-background-size-crash-expected.txt: Added.
  • css3/filters/large-background-size-crash.html: Added.
1:32 AM Changeset in webkit [271391] by Carlos Garcia Campos
  • 5 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.1 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.31.1.
  • webkitglib-symbols.map: Remove WebKit::PluginProcessMain.

Jan 11, 2021:

11:04 PM Changeset in webkit [271390] by Fujii Hironori
  • 6 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/wincairo/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/wincairo/fast/clip/overflow-border-radius-transformed-expected.txt:
  • platform/wincairo/fast/inline-block/tricky-baseline-expected.txt:
8:36 PM Changeset in webkit [271389] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Gardening API test crash

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
6:52 PM Changeset in webkit [271388] by Simon Fraser
  • 3 edits
    3 adds in trunk

Safari 14 on 2x display renders NYS DMV page as blurry
https://bugs.webkit.org/show_bug.cgi?id=220528
<rdar://problem/71440246>

Reviewed by Tim Horton.

Source/WebCore:

Certain combinations of nested perspective and transform cause Core Animation to
rasterize at unit scale, which makes layers blurry on Retina displays.

Enable code that was already used on iOS to set layer rasterization scale.

Test: compositing/contents-scale/hidpi-tests/rasterization-scale.html

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

(WebCore::PlatformCALayerCocoa::setContentsScale):

LayoutTests:

  • compositing/contents-scale/hidpi-tests/rasterization-scale-expected.html: Added.
  • compositing/contents-scale/hidpi-tests/rasterization-scale.html: Added.
5:11 PM Changeset in webkit [271387] by Peng Liu
  • 5 edits in trunk/Source

Receiving two enter/exit fullscreen delegate callbacks on iPad when presenting fullscreen elements
https://bugs.webkit.org/show_bug.cgi?id=218688

Reviewed by Darin Adler.

Source/WebCore:

On iPads, when a video enters/exits fullscreen standby, we should not call the
video fullscreen delegate callbacks.

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

(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreen):

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::didEnterFullscreen):

4:54 PM Changeset in webkit [271386] by Megan Gardner
  • 4 edits
    2 adds in trunk

Double tap to select does not work if the page clears selections on tap, like grammarly.com does
https://bugs.webkit.org/show_bug.cgi?id=220454
Source/WebKit:

rdar://67757411

Reviewed by Wenson Hsieh.

Double tap to select content did not work on grammerly.com on iPad because this is a desktop website run on a touch-based device,
and there was a script running that would clear the selection on a mouseDown event. When we would send synthetic click events to the page
we would first update the selection and then on completion of the tap, we would dispatch a mouseDown and mouseUp event on iOS. On Mac, we
update the selection between the mouseDown and the mouseUp, so in order to bring us more in line with mac/mouse behaviors, we are now saving
the information needed to update the selection when we believe we are in the middle of a potential tap, and then setting the selection between
these two events. This makes for a more expected change of events, and does not let grammerly.com clear a valid selection based off of synthetic
clicks.

Test: fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch.html

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

(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::setSelectionRange):
(WebKit::WebPage::selectTextWithGranularityAtPoint):

LayoutTests:

Reviewed by Wenson Hsieh.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch-expected.txt: Added.
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch.html: Added.
4:11 PM Changeset in webkit [271385] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix for r271353
https://bugs.webkit.org/show_bug.cgi?id=220407

CrossOriginAccessControl.cpp(225): error C3861: 'isInNetworkProcess': identifier not found

  • platform/RuntimeApplicationChecks.h:

(WebCore::isInWebProcess):
(WebCore::isInGPUProcess):
(WebCore::isInNetworkProcess):

3:54 PM Changeset in webkit [271384] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Crash in pageDidComputePageRects()
https://bugs.webkit.org/show_bug.cgi?id=220518
<rdar://problem/71065870>

Reviewed by Ryosuke Niwa.

Make _printOperation a weak pointer and check it before use.
Since WKPrintingView is ref counted, a reference could still exist
even if _printOperation is nil. Remove the comment as it is not a
justification for a raw pointer.

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

(-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]):
(-[WKPrintingView _firstPrintedPageNumber]):
(-[WKPrintingView _lastPrintedPageNumber]):
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):
(-[WKPrintingView knowsPageRange:]):
(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):
(-[WKPrintingView _drawPageBorderWithSizeOnMainThread:]):
(-[WKPrintingView drawPageBorderWithSize:]):
(-[WKPrintingView rectForPage:]):
(-[WKPrintingView locationOfPrintRect:]):
(-[WKPrintingView beginDocument]):
(-[WKPrintingView endDocument]):

3:30 PM Changeset in webkit [271383] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Use sendWithAsyncReply instead of dataCallback for icon loading
https://bugs.webkit.org/show_bug.cgi?id=220381

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):
Use the original version of the patch that didn't break WK1 tests.

2:57 PM Changeset in webkit [271382] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Relax assertion in Element::dispatchFocusOutEvent() for non-web process case
https://bugs.webkit.org/show_bug.cgi?id=220478

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-01-11
Reviewed by Ryosuke Niwa.

Source/WebCore:

Relax an assertion in Element::dispatchFocusOutEvent()
(and Element::dispatchFocusInEvent()) that can mistakenly
fire in DumpRenderTree. Also, use
RELEASE_ASSERT_WITH_SECURITY_IMPLICATION() instead of
ASSERT_WITH_SECURITY_IMPLICATION().

Test: editing/inserting/caret-surround.html

  • dom/Element.cpp:

(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):

LayoutTests:

Add a test that verifies we do not crash
due to the assertion failure.

  • editing/inserting/caret-surround-expected.txt: Added.
  • editing/inserting/caret-surround.html: Added.
2:29 PM Changeset in webkit [271381] by commit-queue@webkit.org
  • 14 edits in trunk

Make SpeechRecognition permission error more informative
https://bugs.webkit.org/show_bug.cgi?id=220436

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebKit:

Make SpeechRecognitionPermissionManager complete requests with an optional SpeechRecognitionError instead of a
boolean value.

  • UIProcess/SpeechRecognitionPermissionManager.cpp:

(WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager):
(WebKit::SpeechRecognitionPermissionManager::request):
(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest):
(WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess):
(WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess):
(WebKit::SpeechRecognitionPermissionManager::requestUserPermission):

  • UIProcess/SpeechRecognitionPermissionManager.h:
  • UIProcess/SpeechRecognitionPermissionRequest.h:

(WebKit::SpeechRecognitionPermissionRequest::create):
(WebKit::SpeechRecognitionPermissionRequest::complete):
(WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):

  • UIProcess/SpeechRecognitionServer.cpp:

(WebKit::SpeechRecognitionServer::requestPermissionForRequest):

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

(WebKit::WebPageProxy::requestSpeechRecognitionPermission):

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

(WebKit::WebProcessProxy::createSpeechRecognitionServer):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • fast/speechrecognition/permission-error-expected.txt:
  • fast/speechrecognition/permission-error.html:
2:16 PM Changeset in webkit [271380] by Wenson Hsieh
  • 2 edits in trunk/Tools
ASSERTION FAILED: !event
event.type == NSEventTypeLeftMouseDown event.type == NSEventTypeRightMouseDown event.type == NSEventTypeOtherMouseDown

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

Reviewed by Tim Horton.

Fix the assertion by synthesizing a "mouse down" event instead of "mouse entered".

  • TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm:

(TestWebKitAPI::TEST):

2:00 PM Changeset in webkit [271379] by commit-queue@webkit.org
  • 6 edits in trunk

Keep newly created IDBObjectStores in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220483
<rdar://problem/71934293>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Darin Adler.

Source/WebCore:

When an upgrade transaction is aborted, we move objects from m_deletedObjectStores to m_referencedObjectStores
to revert the deletion operation. When updating m_referencedObjectStores, we did not check whether key already
exists (this can happen when an object store gets deleted and a new object store with the same name is
created; see updated layout test). Therefore, some object store in m_referencedObjectStores would be replaced
and destroyed (since m_referencedObjectStores holds unique pointers) when the object store is referenced by JS
object.

Test: storage/indexeddb/modern/abort-objectstore-info.html

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::internalAbort):

LayoutTests:

  • storage/indexeddb/modern/abort-objectstore-info-expected.txt:
  • storage/indexeddb/modern/abort-objectstore-info-private-expected.txt:
  • storage/indexeddb/modern/resources/abort-objectstore-info.js:

(prepareDatabase):
(secondUpgradeNeeded):
(checkState):

1:36 PM Changeset in webkit [271378] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Use sendWithAsyncReply instead of dataCallback for icon loading
https://bugs.webkit.org/show_bug.cgi?id=220381

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebCore:

Behavior covered by IconLoading API tests.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::didGetLoadDecisionForIcon):
(WebCore::DocumentLoader::finishedLoadingIcon):
(WebCore::DocumentLoader::notifyFinishedLoadingIcon): Deleted.

  • loader/DocumentLoader.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

  • Scripts/webkit/messages.py:
  • Shared/API/APIData.cpp:

(API::Data::create):

  • Shared/API/APIData.h:

(API::Data::create):

  • UIProcess/API/APIIconLoadingClient.h:

(API::IconLoadingClient::getLoadDecisionForIcon):

  • UIProcess/API/mac/WKView.mm:

(-[WKView maybeInstallIconLoadingClient]):

  • UIProcess/Cocoa/IconLoadingDelegate.h:
  • UIProcess/Cocoa/IconLoadingDelegate.mm:

(WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::finishedLoadingIcon): Deleted.

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

(WebKit::WebFrameLoaderClient::finishedLoadingIcon): Deleted.

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

(WebKit::WebPage::didGetLoadDecisionForIcon):

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

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::prepareForDataSourceReplacement):
(WebFrameLoaderClient::getLoadDecisionForIcons):
(WebFrameLoaderClient::finishedLoadingIcon):

1:33 PM Changeset in webkit [271377] by Peng Liu
  • 4 edits in trunk/LayoutTests

A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed
https://bugs.webkit.org/show_bug.cgi?id=220466

Reviewed by Jer Noble.

A follow-up patch of r271341 to fix a layout test timeout (and failure, see webkit.org/b/183490).

  • media/modern-media-controls/media-controller/media-controller-fullscreen-change-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-fullscreen-change.html:
  • platform/mac/TestExpectations:
1:12 PM Changeset in webkit [271376] by Russell Epstein
  • 1 copy in tags/Safari-611.1.9.11

Tag Safari-611.1.9.11.

1:11 PM Changeset in webkit [271375] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Take aspect-ratio into account for percentage resolution
https://bugs.webkit.org/show_bug.cgi?id=220143

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

Address review feedback that I misinterpreted and did not
include in r271293.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

  • rendering/RenderBox.cpp:

(WebCore::inlineSizeFromAspectRatio):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::blockSizeFromAspectRatio):

12:20 PM Changeset in webkit [271374] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: add nullptr check for WebInspectorProxy::m_extensionsController
https://bugs.webkit.org/show_bug.cgi?id=220485
<rdar://72496401>

Reviewed by Devin Rousso.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::frontendLoaded):

12:13 PM Changeset in webkit [271373] by Devin Rousso
  • 21 edits
    4 adds in trunk

Web Inspector: Debugger: allow breakpoint actions to be evaluated as a user gesture
https://bugs.webkit.org/show_bug.cgi?id=200275

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Debugger.json:
  • debugger/Breakpoint.h:

Add an optional emulateUserGesture property to Debugger.BreakpointAction.

  • debugger/Debugger.h:

(JSC::Debugger::Client::debuggerScopeExtensionObject): Renamed from scopeExtensionObject.
(JSC::Debugger::Client::debuggerWillEvaluate): Added.
(JSC::Debugger::Client::debuggerDidEvaluate): Added.

  • debugger/Debugger.cpp:

(JSC::Debugger::evaluateBreakpointCondition):
(JSC::Debugger::evaluateBreakpointActions):
Consult the Debugger::Client before and after evaluating each Breakpoint::Action.
Currently this is used by WebCore::PageDebuggerAgent to push onto or pop from a stack of
WebCore::UserGestureEmulationScope, each corresponding to a Breakpoint::Action that
has been set with emulateUserGesture.

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::parseBreakpointOptions):
(Inspector::InspectorDebuggerAgent::debuggerScopeExtensionObject): Renamed from scopeExtensionObject.

Source/WebCore:

Tests: inspector/debugger/breakpoint-action-emulateUserGesture.html

inspector/debugger/breakpoint-action-emulateUserGesture-userIsInteracting.html

  • inspector/agents/page/PageDebuggerAgent.cpp:
  • inspector/agents/page/PageDebuggerAgent.h:

(WebCore::PageDebuggerAgent::debuggerWillEvaluate): Added.
(WebCore::PageDebuggerAgent::debuggerDidEvaluate): Added.
Maintain a stack of UserGestureEmulationScope whenever evaluating breakpoint actions (but
only add/remove items if the current action is set to emulateUserGesture).

  • inspector/agents/page/UserGestureEmulationScope.h:

Make it fast allocated so it can be used with UniqueRef.

Source/WebInspectorUI:

  • UserInterface/Models/BreakpointAction.js:

(WI.BreakpointAction.supportsEmulateUserAction): Added.
(WI.BreakpointAction.fromJSON):
(WI.BreakpointAction.prototype.toJSON):
(WI.BreakpointAction.prototype.set type):
(WI.BreakpointAction.prototype.set data):
(WI.BreakpointAction.prototype.get emulateUserGesture): Added.
(WI.BreakpointAction.prototype.set emulateUserGesture): Added.
Add an _emulateUserGesture property to match Debugger.BreakpointAction.

  • UserInterface/Views/BreakpointActionView.js:

(WI.BreakpointActionView):
(WI.BreakpointActionView.prototype._updateBody):
(WI.BreakpointActionView.prototype._handleEmulateUserGestureCheckboxChange): Added.

  • UserInterface/Views/BreakpointActionView.css:

(.breakpoint-action-block-body .description): Added.
(.breakpoint-action-block-body > .flex):
(.breakpoint-action-block-body > .description): Deleted.
Add a "[ ] Emulate User Gesture" under the log/evaluate/probe input.

  • UserInterface/Models/Breakpoint.js:

(WI.Breakpoint):
(WI.Breakpoint.prototype.addAction):
(WI.Breakpoint.prototype.removeAction):
(WI.Breakpoint.prototype._handleBreakpointActionModified): Renamed from _handleBreakpointActionChanged.
Drive-by: combine TypeChanged and DataChanged into a single Modified event since all
the listeners currently have the same callback.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):
(WI.LogContentView.prototype._handleEmulateInUserGestureSettingChanged):
Drive-by: only show the "Emulate User Gesture" checkbox when it's supported.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/debugger/breakpoint-action-emulateUserGesture.html: Added.
  • inspector/debugger/breakpoint-action-emulateUserGesture-expected.txt: Added.
  • inspector/debugger/breakpoint-action-emulateUserGesture-userIsInteracting.html: Added.
  • inspector/debugger/breakpoint-action-emulateUserGesture-userIsInteracting-expected.txt: Added.
12:12 PM Changeset in webkit [271372] by Russell Epstein
  • 8 edits in branches/safari-611.1.9-branch/Source

Versioning.

WebKit-7611.1.9.11

12:10 PM Changeset in webkit [271371] by BJ Burg
  • 2 edits in trunk/Tools

Unreviewed, update my contributor information.

  • Scripts/webkitpy/common/config/contributors.json:
11:52 AM Changeset in webkit [271370] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271364. rdar://problem/73001152

[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249
<rdar://problem/72976067>

Unreviewed build fix after 271350.

  • rendering/MarkedTextStyle.cpp: (WebCore::resolveStyleForMarkedText):

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

11:26 AM Changeset in webkit [271369] by youenn@apple.com
  • 5 edits in trunk

WebProcessPool::establishWorkerContextConnectionToNetworkProcess should make sure to remove the selected process from the cache
https://bugs.webkit.org/show_bug.cgi?id=220503

Reviewed by Darin Adler.

Source/WebKit:

In case we reuse an existing web process, make sure to remove it from web process cache.
Covered by API test.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::addProcessIfPossible):
(WebKit::WebProcessCache::addProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
10:48 AM Changeset in webkit [271368] by commit-queue@webkit.org
  • 3 edits
    5 adds in trunk

Keep newly created IDBIndex objects in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220489
<rdar://problem/70498831>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebCore:

When an upgrade transaction is aborted, we move objects from m_deletedIndexes to m_referencedIndexes to revert
the index deletion operation. When updating m_referencedIndexes, we did not check whether key already exists.
Therefore, some indexes in m_referencedIndexes would be replaced and destroyed (since m_referencedIndexes holds
unique pointers) when the index is still referenced by JS.

Tests: storage/indexeddb/modern/abort-index-info-private.html

storage/indexeddb/modern/abort-index-info.html

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):

LayoutTests:

  • storage/indexeddb/modern/abort-index-info-expected.txt: Added.
  • storage/indexeddb/modern/abort-index-info-private-expected.txt: Added.
  • storage/indexeddb/modern/abort-index-info-private.html: Added.
  • storage/indexeddb/modern/abort-index-info.html: Added.
  • storage/indexeddb/modern/resources/abort-index-info.js: Added.

(prepareDatabase):
(versionChangeSuccessCallback.secondRequest.onerror):
(versionChangeSuccessCallback):
(secondUpgradeNeeded):
(checkState):

10:12 AM Changeset in webkit [271367] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r258321): CSS rules using :first-of-type are applied to any/all siblings in a group under certain circumstances
https://bugs.webkit.org/show_bug.cgi?id=218256
<rdar://problem/70749584>

Reviewed by Simon Fraser.

Source/WebCore:

More accurate invalidation for :hover resulted in smaller style updates that revealed a bug in the way we
mark style non-shareable. We reset style relation bits when resolving the parent but may fail to set them again if we
don't re-resolve all children.

Test case by Eben Packwood.

Test: fast/css/positional-selector-style-sharing.html

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):

Just mark all styles affected by relations non-shareable. This is achieved via various bit tests but there
is no reason not to set the simplest no-sharing bit. Since this forces real style resolution the parent
bits will also get properly reset.

LayoutTests:

  • fast/css/positional-selector-style-sharing-expected.html: Added.
  • fast/css/positional-selector-style-sharing.html: Added.
10:04 AM Changeset in webkit [271366] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Stop using deprecated addFactoryArguments method
https://bugs.webkit.org/show_bug.cgi?id=220513

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:
9:58 AM Changeset in webkit [271365] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Enable the client decoder entitlement for the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=220441
<rdar://problem/72899054>

Reviewed by Darin Adler.

The GPU process needs the client decoder entitlement we use in the WebContent process
to properly handle MSE content.

  • Scripts/process-entitlements.sh:
9:38 AM Changeset in webkit [271364] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249
<rdar://problem/72976067>

Unreviewed build fix after 271350.

  • rendering/MarkedTextStyle.cpp:

(WebCore::resolveStyleForMarkedText):

9:12 AM Changeset in webkit [271363] by Russell Epstein
  • 1 copy in branches/safari-611-branch

New branch.

8:56 AM Changeset in webkit [271362] by weinig@apple.com
  • 46 edits
    2 adds in trunk

LayoutTests/imported/w3c:
Support lab(), lch(), gray() and color(lab ...) colors
https://bugs.webkit.org/show_bug.cgi?id=205675

Reviewed by Simon Fraser.

Update tests to use rectangles rather than text to make anti-aliasing differences
not cause failures. These changes will be upstreamed to the WebPlatformTests.

  • web-platform-tests/css/css-color/lab-001-expected.html:
  • web-platform-tests/css/css-color/lab-001.html:
  • web-platform-tests/css/css-color/lab-002-expected.html:
  • web-platform-tests/css/css-color/lab-002.html:
  • web-platform-tests/css/css-color/lab-003-expected.html:
  • web-platform-tests/css/css-color/lab-003.html:
  • web-platform-tests/css/css-color/lab-004-expected.html:
  • web-platform-tests/css/css-color/lab-004.html:
  • web-platform-tests/css/css-color/lab-005-expected.html:
  • web-platform-tests/css/css-color/lab-005.html:
  • web-platform-tests/css/css-color/lab-006-expected.html:
  • web-platform-tests/css/css-color/lab-006.html:
  • web-platform-tests/css/css-color/lab-007-expected.html:
  • web-platform-tests/css/css-color/lab-007.html:
  • web-platform-tests/css/css-color/lch-001-expected.html:
  • web-platform-tests/css/css-color/lch-001.html:
  • web-platform-tests/css/css-color/lch-002-expected.html:
  • web-platform-tests/css/css-color/lch-002.html:
  • web-platform-tests/css/css-color/lch-003-expected.html:
  • web-platform-tests/css/css-color/lch-003.html:
  • web-platform-tests/css/css-color/lch-004-expected.html:
  • web-platform-tests/css/css-color/lch-004.html:
  • web-platform-tests/css/css-color/lch-005-expected.html:
  • web-platform-tests/css/css-color/lch-005.html:
  • web-platform-tests/css/css-color/lch-006-expected.html:
  • web-platform-tests/css/css-color/lch-006.html:
  • web-platform-tests/css/css-color/lch-007-expected.html:
  • web-platform-tests/css/css-color/lch-007.html:

Source/WebCore:
Support lab(), lch() and color(lab ...) colors
https://bugs.webkit.org/show_bug.cgi?id=205675

Reviewed by Simon Fraser.

Original patch by Simon Fraser.

This adds parsing support for lab(), lch() and color(lab ...) CSS colors
(https://www.w3.org/TR/css-color-4/) and color type, conversion, and serialization
support for Lab and color type and conversion support for LCH (we store these color
canonically as Lab<float>, so serialization of LCH is never needed, much like HSL).

This change does not add support for the host platform layer (e.g. CoreGraphics, etc)
understanding of the Lab colorspace, and as such, when creating host color objects
(for instance via the cachedCGColor() helper) Lab<float> colors are converted to sRGB
first and then the host color is made. The ramification of this is for platforms that
use backingstores with greater than sRGB gamuts, Lab colors will be clampted to sRGB.
This should be rectified in a follow up change that adds proper creation of these host
objects but is being left off the initial change to limit changes.

Some of the imported tests have been updated to use rectangles rather than text to
avoid anti-aliasing issues and will be upstreamed to WPT following landing.

Tests:

fast/css/parsing-lab-colors.html
imported/w3c/web-platform-tests/css/css-color/lab-001.html
imported/w3c/web-platform-tests/css/css-color/lab-002.html
imported/w3c/web-platform-tests/css/css-color/lab-003.html
imported/w3c/web-platform-tests/css/css-color/lab-004.html
imported/w3c/web-platform-tests/css/css-color/lab-005.html
imported/w3c/web-platform-tests/css/css-color/lab-006.html
imported/w3c/web-platform-tests/css/css-color/lab-007.html
imported/w3c/web-platform-tests/css/css-color/lch-001.html
imported/w3c/web-platform-tests/css/css-color/lch-002.html
imported/w3c/web-platform-tests/css/css-color/lch-003.html
imported/w3c/web-platform-tests/css/css-color/lch-004.html
imported/w3c/web-platform-tests/css/css-color/lch-005.html
imported/w3c/web-platform-tests/css/css-color/lch-006.html
imported/w3c/web-platform-tests/css/css-color/lch-007.html

  • css/CSSValueKeywords.in:

Add "lab" and "lch" keywords.

  • css/parser/CSSPropertyParser.cpp:
  • css/parser/CSSPropertyParserHelpers.h:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseGrayParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Add support for parsing "lab(...)", "lch(...)", "gray(...)"
and "color(lab ...)", all of which create Lab<float> colors.

Also adds explicit UnitlessZeroQuirk flag to angle parsing to
allow parsing of newer specs that don't want to allow unitless zero
for angles. For now, I have left FIXMEs for the properties that
should probably disable it. This was not strictly necessary for this
change (as lch actaully allows unitless angles now), but it seems
like a solid move forward.

  • platform/graphics/Color.h:

(WebCore::Color::Color):
Add overload of the Color constructor that takes a Lab<float> matching other
ColorSpace types.

  • platform/graphics/ColorConversion.cpp:

(WebCore::convertFromD50WhitePointToD65WhitePoint):
(WebCore::convertFromD65WhitePointToD50WhitePoint):
(WebCore::toXYZA):
(WebCore::toLab):
(WebCore::toLCHA):

  • platform/graphics/ColorConversion.h:

(WebCore::toLab):
(WebCore::toLCHA):
Add conversions to/from Lab to D65 white point XYZA (the white point we expect XYZA to be in), and conversion
from Lch to/from Lab.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorSerialization.h:

Add serialization for Lab colors. We currently always serialize using the lab()
notation, which appears to be correct for at least colors declared using lab(),
lch() and gray(). Unclear if it is correct for colors declared with color(lab ...).
Opened https://github.com/w3c/csswg-drafts/issues/5825 to track getting a resolution
for "color(lab ...)".

  • platform/graphics/ColorSpace.cpp:

(WebCore::operator<<):

  • platform/graphics/ColorSpace.h:

Add Lab as a ColorSpace and text stream dumping for it.

  • platform/graphics/ColorTypes.h:

(WebCore::Lab::Lab):
(WebCore::asColorComponents):
(WebCore::asLab):
Add Lab color type.

(WebCore::LCHA::LCHA):
(WebCore::asLCHA):
Add LCHA color type.

(WebCore::callWithColorType):
Add Lab to callWithColorType since it is now a valid ColorSpace.

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::labColorSpaceRef):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedCGColorSpace):
For now, return the sRGB color space to indicate to callers that they should do a conversion.

LayoutTests:
Support lab(), lch(), gray() and color(lab ...) colors
https://bugs.webkit.org/show_bug.cgi?id=205675

Reviewed by Simon Fraser.

Original patch by Simon Fraser.

Parsing tests for lab/lch/gray colors.

  • TestExpectations: Unskip lab/lch tests.
  • fast/css/parsing-lab-colors-expected.txt: Added.
  • fast/css/parsing-lab-colors.html: Added.
8:44 AM Changeset in webkit [271361] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add python 3 support - part 1
https://bugs.webkit.org/show_bug.cgi?id=220510

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/email_unittest.py:
  • CISupport/ews-build/loadConfig.py:
  • CISupport/ews-build/loadConfig_unittest.py:
7:11 AM Changeset in webkit [271360] by yoshiaki.jitsukawa@sony.com
  • 18 edits
    12 copies
    12 adds in trunk

[PlayStation] Add MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=220359

Reviewed by Don Olmstead.

.:

Enable Fullscreen API.

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebCore:

Add WidgetPlayStation to support custom cursor.

Load CA certs in CurlSSLHandle::platformInitialize().

  • PlatformPlayStation.cmake: Add WidgetPlayStation.cpp
  • platform/Widget.cpp: Allow PlayStation specific implementation.
  • platform/network/playstation/CurlSSLHandlePlayStation.cpp:

(WebCore::CurlSSLHandle::platformInitialize): Load CA certs.

  • platform/playstation/WidgetPlayStation.cpp: Added.

(WebCore::Widget::~Widget):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::setFocus):
(WebCore::Widget::setCursor): Call hostWindow()'s setCursor().
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::setIsSelected):

Source/WebKit:

Add WKRunloop API to allow an external program to run WebKit's generic runloop.

  • UIProcess/API/C/playstation/WKRunLoop.cpp: Added.

(WKRunLoopRunMain):
(WKRunLoopStopMain):
(WKRunLoopCallOnMainThread):
(WKRunLoopInitializeMain):

  • UIProcess/API/C/playstation/WKRunLoop.h: Added.

Add private WKPagePaint() to draw contents to bitmap.
Remove unused WKPageSetSize() implementation.

  • UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:

(drawPageBackground):
(WKPageHandleMouseEvent): Fix button click event handling.
(WKPagePaint):

  • UIProcess/API/C/playstation/WKPagePrivatePlayStation.h:

Add WKView API to set view client along with fullscreen API and visibility state API.

  • UIProcess/API/C/playstation/WKView.cpp:

(WKViewGetPage):
(WKViewSetSize):
(WKViewSetFocus):
(WKViewSetActive):
(WKViewSetVisible):
(WKViewWillEnterFullScreen):
(WKViewDidEnterFullScreen):
(WKViewWillExitFullScreen):
(WKViewDidExitFullScreen):
(WKViewRequestExitFullScreen):
(WKViewIsFullScreen):
(WKViewSetViewClient):

  • UIProcess/API/C/playstation/WKView.h:
  • UIProcess/API/C/playstation/WKViewClient.h: Added.
  • UIProcess/API/playstation/APIViewClient.h: Added.
  • UIProcess/playstation/PageClientImpl.cpp:
  • UIProcess/playstation/PageClientImpl.h:
  • UIProcess/playstation/PlayStationWebView.cpp:
  • UIProcess/playstation/PlayStationWebView.h:

Allow rendering without accelerated compositing.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • PlatformPlayStation.cmake: Add relevant sources and include directories.

Tools:

Add PlayStation MiniBrowser sources and CMakeLists.txt.

  • MiniBrowser/playstation/CMakeLists.txt: Added.
  • MiniBrowser/playstation/ImageButton.cpp: Added.
  • MiniBrowser/playstation/ImageButton.h: Added.
  • MiniBrowser/playstation/MainWindow.cpp: Added.
  • MiniBrowser/playstation/MainWindow.h: Added.
  • MiniBrowser/playstation/StringUtils.h: Added.
  • MiniBrowser/playstation/TitleBar.cpp: Added.
  • MiniBrowser/playstation/TitleBar.h: Added.
  • MiniBrowser/playstation/ToolkittenUtils.h: Added.
  • MiniBrowser/playstation/URLBar.cpp: Added.
  • MiniBrowser/playstation/URLBar.h: Added.
  • MiniBrowser/playstation/WebContext.cpp: Added.
  • MiniBrowser/playstation/WebContext.h: Added.
  • MiniBrowser/playstation/WebViewWindow.cpp: Added.
  • MiniBrowser/playstation/WebViewWindow.h: Added.
  • MiniBrowser/playstation/main.cpp: Added.

(loadLibraryOrExit):
(initialize):
(ApplicationClient::updateApplication):
(main):

  • PlatformPlayStation.cmake: Added.
6:56 AM Changeset in webkit [271359] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] InlineBox::setHasContent should be called when the inline box actually has some content
https://bugs.webkit.org/show_bug.cgi?id=220245

Reviewed by Antti Koivisto.

Do not call setHasContent unless the inline box has actual content (excluding border and padding).
However the "will stretch the line" logic checks against borders and paddings so move that over to
Quirks::inlineLevelBoxAffectsLineBox.
This change makes Quirks::inlineLevelBoxAffectsLineBox the only client of LineBox::isConsideredEmpty.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

5:04 AM Changeset in webkit [271358] by commit-queue@webkit.org
  • 7 edits in trunk/Source

WebKit::IPC::Encoder needs definitions of all custom enum values at the Encoder definition time
https://bugs.webkit.org/show_bug.cgi?id=220410

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-11
Reviewed by Darin Adler.

Change WTF::EnumTraits to have either EnumTraits::values or EnumTraits::isValidEnum().
Source/WebCore:

Change here needed to conform to the new protocol. Fixes an issue with the template usage
in WebKit::IPC::Encoder, see WebKit and WTF ChangeLogs for discussion.

  • platform/ContextMenuItem.h:

(WTF::EnumTraits<WebCore::ContextMenuAction>::isValidEnum):

Source/WebKit:

Fixes the upcoming problem where Encoder::encode(E) function is moved from Encoder
to other class, such as EncoderBase, and where we do not want to add redundant includes.
See the WTF/ ChangeLog for discussiong wrt why they were needed before.

  • Scripts/webkit/messages.py:
  • Scripts/webkit/tests/MessageNames.h:

(WTF::EnumTraits<IPC::MessageName>::isValidEnum):

Source/WTF:

Previously, if clients wanted to check isValidEnum for custom enum, they had to:

1) Define HasCustomIsValidEnum<TheirEnum> : true_type {};
2) Define new function template isValidEnum() for TheirEnum
3) Ensure that their isValidEnum() was defined before the definition of the call to

the isValidEnum().

This has the problem that isValidEnum() cannot be called in generic code, because
at the definition time generic code typically does not have all the types in scope
that will be used at instantiation time.
Each isValidEnum() is their own function template, C++ does not have function template
specialization.

After the change, clients need to:

1) Define EnumTraits<TheirEnum> { bool isValidEnum(...) }

Fix by using the fact that WTF::EnumTraits is a class and that can have template
specializations.

Consistent with the EnumTraits::values case:

a) Automatic case? --> Define EnumTraits::values
b) Manual/custom case? --> Define EnumTraits::isValidEnum()

  • wtf/EnumTraits.h:

(WTF::isValidEnum):

3:44 AM Changeset in webkit [271357] by svillar@igalia.com
  • 4 edits in trunk/Source/WebCore

[css-multicol] Restore placeholders on multicolumn children position changes.
https://bugs.webkit.org/show_bug.cgi?id=218501

Reviewed by Zalan Bujtas.

Whenever there is a placeholder in a multicolumn flow ("column-span: all") it must be ensured that the spanner
associated to that placeholder is properly restored as a child of the multicolumn flow when the element with
"column-span:all" is moved out of the multicolumn flow (for example by removing it, by making it out-of-flow
or because an ancestor becomes another multicolumn flow).

This was smoothly handled by the current code for the in-flow -> out-of-flow transition but not the other way
around, i.e in the case of making the placeholder (or an ancestor) an absolutely positioned element.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): restore column spanners then the element becomes
out-of-flow as it's removed from the multicolumn flow.

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow): Call the newly created method
restoreColumnSpannersForContainer().
(WebCore::RenderTreeBuilder::MultiColumn::restoreColumnSpannersForContainer): Refactored from createFragmentedFlow()
as it's now used by normalizeTreeAfterStyleChange().

  • rendering/updating/RenderTreeBuilderMultiColumn.h:
3:15 AM Changeset in webkit [271356] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

[css-multicol] Update fragment flow state on element insertion when element position changes
https://bugs.webkit.org/show_bug.cgi?id=202805

Reviewed by Zalan Bujtas.

Let's imagine the following scenario:

<div1 style="columns: 2">

<div2 style="columns:2; position: absolute">

<div3 style="column-span:all">

The generated render tree is more or less the following:

DIV
|RenderMultiColumnFlow

|DIV

|RenderMultiColumnFlow
| |
RenderMultiColumnSpannerPlaceholder
|DIV
|
RenderMultiColumnSet

both <div1> and <div2> generate RenderMultiColumnFlows because they're multicolumn containers while the <div3> becomes a spanner and leaves
a placeholder in the place where it's supposed to be as it's a "column-span:all". Note that <div2> is absolutely positioned so it isn't really
part of the column flow of <div1> (there is no RenderMultiColumnSet for <div1>). Now if the <div2> becomes a statically positioned container
(i.e. style="position:static") then it should be inserted (actually its whole subtree) in the <div1> multicolumn flow.

That insertion implies doing 2 things, first notify the RenderMultiColumnFlow of <div1> that a new child was inserted and secondly update the
flow state of the subtree which starts in <div2> so they acknowledge <div1> as their enclosing fragment flow. The former was properly done.
However the latter was not done at all, meaning that they would be treated as not belonging to any multicolumn flow when they actually did.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock): call initializeFragmentedFlowStateOnInsertion().

2:31 AM Changeset in webkit [271355] by calvaris@igalia.com
  • 5 edits in trunk

[GStreamer] Add support to build with native audio and video
https://bugs.webkit.org/show_bug.cgi?id=220087

Reviewed by Philippe Normand.

.:

  • Source/cmake/GStreamerDefinitions.cmake: Enable TEXT_SINK.
  • Source/cmake/WebKitFeatures.cmake: Declare TEXT_SINK, NATIVE_VIDEO and NATIVE_AUDIO.

Source/WebCore:

We enable native audio and video in the pipeline depending on the
build flags.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::setPlaybackFlags):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

12:43 AM Changeset in webkit [271354] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK] System font scaling not applied to 'font-size: XXXpt'
https://bugs.webkit.org/show_bug.cgi?id=218450

Reviewed by Žan Doberšek.

Apply the text scale factor as WebPageProxy text zoom factor, instead of changing the default font size in
settings that only applies to default fonts and it was incorrectly calculated.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsDispose):
(webKitSettingsConstructed):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):
(webkitWebViewDispose):
(webkit_web_view_set_zoom_level):
(webkit_web_view_get_zoom_level):

12:35 AM Changeset in webkit [271353] by Carlos Garcia Campos
  • 9 edits
    1 add in trunk/Source/WebCore

[GStreamer] Do not use the registry scanner singleton from the UI process
https://bugs.webkit.org/show_bug.cgi?id=220407

Patch by Carlos Garcia Campos <cgarcia@igalia.com> and Philippe Normand <pnormand@igalia.com> on 2021-01-11
Reviewed by Xabier Rodriguez-Calvar.

  • platform/RuntimeApplicationChecks.h:

(WebCore::isInNetworkProcess): Simplify ifdefs a bit and allow for glib implementation in a separate file.

  • platform/SourcesGLib.txt:
  • platform/glib/RuntimeApplicationChecksGLib.cpp: Added.

(WebCore::isInWebProcess): Implementation based on program filename.
(WebCore::isInNetworkProcess): Ditto.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::getSupportedDecodingTypes): Static function to get the supported MIME types
for decoding. It uses the singleton if called from the web process or creates a new instance otherwise.
(WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner): Initialize gst when not in the web process.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::getSupportedTypes): Use GStreamerRegistryScanner::getSupportedDecodingTypes().

  • platform/graphics/gstreamer/mse/GStreamerRegistryScannerMSE.cpp:

(WebCore::GStreamerRegistryScannerMSE::getSupportedDecodingTypes): Static function to get the supported MIME
types for decoding. It uses the singleton if called from the web process or creates a new instance otherwise.

  • platform/graphics/gstreamer/mse/GStreamerRegistryScannerMSE.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::getSupportedTypes): Use GStreamerRegistryScannerMSE::getSupportedDecodingTypes().

Jan 10, 2021:

9:40 PM Changeset in webkit [271352] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is disable
https://bugs.webkit.org/show_bug.cgi?id=220500

Reviewed by Mark Lam.

We should ensure that Gate mechanism just works even if ENABLE(JIT_CAGE) is OFF in ARM64E since
in LLInt we are always using Gate even if ENABLE(JIT_CAGE) is OFF. It makes LLInt code
significantly simpler: we do not want to have multiple implementations for ARM64E for ENABLE(JIT_CAGE) ON/OFF
in LLInt if it is not necessary in terms of performance. And it didn't cause performance regression.
So for simplicity, we are always using Gate in LLInt.

However, when disabling ENABLE(JIT_CAGE), we accidentally disabled Gate mechanism too in LLInt.
It makes ARM64E broken if ENABLE(JIT_CAGE) is OFF. This patch makes Gate work even if ENABLE(JIT_CAGE) is OFF,
and this is the expected design.

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):

  • llint/LLIntThunks.cpp:
  • llint/LLIntThunks.h:
11:13 AM Changeset in webkit [271351] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Make "inline level box affects line box geometry" logic more explicit
https://bugs.webkit.org/show_bug.cgi?id=220232

Reviewed by Antti Koivisto.

Since InlineLevelBox::isEmpty makes little sense in case of non-inline-boxes (e.g. <br>), let's make
the following set of changes:

  1. Introduce InlineLevelBox::setHasContent for inline boxes only (<span>has content</span>, <div>root inlinebox has content</div>)
  2. Both atomic and line box logic is moved to InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox

This is also in preparation for getting rid of the is-considered-empty concept for line/line box.

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

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

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):
(WebCore::Layout::InlineFormattingContext::Quirks::shouldInlineLevelBoxStretchLineBox const): Deleted.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::InlineLevelBox::setHasContent):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::hasContent const):
(WebCore::Layout::LineBox::InlineLevelBox::isEmpty const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setIsNonEmpty): Deleted.

10:09 AM Changeset in webkit [271350] by Antti Koivisto
  • 7 edits
    2 adds in trunk

[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249

Reviewed by Zalan Bujtas.

Source/WebCore:

This makes it possible to use the code from LFC painting.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const): Deleted.
(WebCore::InlineTextBox::resolveStyleForMarkedText): Deleted.
(WebCore::InlineTextBox::subdivideAndResolveStyle): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts): Deleted.

  • rendering/InlineTextBox.h:
  • rendering/MarkedTextStyle.cpp: Added.

(WebCore::resolveStyleForMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText):
(WebCore::subdivideAndResolveStyle):
(WebCore::coalesceAdjacentMarkedTexts):

  • rendering/MarkedTextStyle.h: Added.

(WebCore::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::StyledMarkedText::StyledMarkedText):

LayoutTests:

Mark http/wpt/css/css-highlight-api/highlight-text-cascade.html failing.

This test requires CSS4 highlight pseudo element inheritance (https://bugs.webkit.org/show_bug.cgi?id=220325)
which we (or anyone else) don't support.

It was passing by accident because the code was getting '::highlight' pseudo element style from a wrong element
(containing block instead of inline element) in certain cases. Renderer was found via InlineBox parent() which doesn't
match render tree parent in case inline culling optimization is active. The correct way is to use render tree parent.

4:04 AM Changeset in webkit [271349] by Antti Koivisto
  • 14 edits in trunk/Source/WebCore

Remove InlineBox::hasSelectedChildren bit
https://bugs.webkit.org/show_bug.cgi?id=220240

Reviewed by Sam Weinig.

It is only needed for selection gap painting and easily computed.

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::constructLine):

  • rendering/InlineBox.h:

(WebCore::InlineBox::setCanHaveLeftExpansion):
(WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields):
(WebCore::InlineBox::hasEllipsisBox const):
(WebCore::InlineBox::canHaveLeftExpansion const):
(WebCore::InlineBox::hasSelectedChildren const): Deleted.
(WebCore::InlineBox::setHasSelectedChildren): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::inlineSelectionGaps):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::setSelectionState): Deleted.

  • rendering/RenderLineBreak.h:
  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::setSelectionState): Deleted.

  • rendering/RenderListMarker.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::setSelectionState): Deleted.

  • rendering/RenderReplaced.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::setSelectionState):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::setSelectionState): Deleted.

  • rendering/RenderTextLineBoxes.h:
  • rendering/RootInlineBox.h:

Jan 9, 2021:

5:14 AM Changeset in webkit [271348] by Alan Bujtas
  • 20 edits
    2 adds in trunk

play.google.com: App preview images are clipped
https://bugs.webkit.org/show_bug.cgi?id=220470
<rdar://problem/60258531>

Reviewed by Simon Fraser.

Source/WebCore:

"The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes
or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge."
https://www.w3.org/TR/CSS22/visudet.html#leading

Test: fast/inline/inline-block-baseline-with-overflow-not-visible.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::inlineBlockBaseline const):

LayoutTests:

Progressions (matching FF and Chrome).

  • fast/inline/inline-block-baseline-with-overflow-not-visible-expected.html: Added.
  • fast/inline/inline-block-baseline-with-overflow-not-visible.html: Added.
4:31 AM Changeset in webkit [271347] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Use the bottom margin edge as the baseline for inline-block when overflow is not visible
https://bugs.webkit.org/show_bug.cgi?id=220481

Reviewed by Antti Koivisto.

"The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes
or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge."
https://www.w3.org/TR/CSS22/visudet.html#leading

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

4:01 AM Changeset in webkit [271346] by Lauro Moura
  • 2 edits in trunk/Tools

[GStreamer] Build failure with gst-build: Missing gst/audio/audio.h
https://bugs.webkit.org/show_bug.cgi?id=220494

Reviewed by Philippe Normand.

Make the tests include the audio headers for gst/audio/audio. It is
included in TestUIClient through WebPreferences -> IPC::Decoder ->
SharedBuffer -> GStreamerCommon.

  • TestWebKitAPI/glib/CMakeLists.txt:
Note: See TracTimeline for information about the timeline view.