Timeline



Dec 20, 2020:

8:07 PM Changeset in webkit [271019] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Rename FrameView::sendResizeEventIfNeeded() to scheduleResizeEventIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=220050

Reviewed by Ryosuke Niwa.

FrameView::sendResizeEventIfNeeded() only schedules events, it does not send them,
so rename accordingly.

Also fix some logging.

  • dom/Document.cpp:

(WebCore::Document::runResizeSteps):
(WebCore::Document::runScrollSteps):

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::scheduleResizeEventIfNeeded):
(WebCore::FrameView::setCustomSizeForResizeEvent):
(WebCore::FrameView::sendResizeEventIfNeeded): Deleted.

  • page/FrameView.h:
6:23 PM Changeset in webkit [271018] by Simon Fraser
  • 2 edits in trunk/Tools

Fix the lldb WebCoreColorProvider
https://bugs.webkit.org/show_bug.cgi?id=220049

Reviewed by Sam Weinig.

Fix the lldb color provider after Color internals where shifted around.

  • lldb/lldb_webkit.py:

(WebCoreColorProvider.to_string):

3:15 PM Changeset in webkit [271017] by Chris Dumez
  • 9 edits in trunk/Source

Unreviewed, reverting r270969.

Regressed MotionMark with GPUProcess enabled

Reverted changeset:

"[iOS] Stop leaking an XPC boost message to XPC services"
https://bugs.webkit.org/show_bug.cgi?id=219453
https://trac.webkit.org/changeset/270969

12:16 PM Changeset in webkit [271016] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed typo fix of r271015
https://bugs.webkit.org/show_bug.cgi?id=220000
<rdar://problem/72531245>

Reviewed by Kenneth Russell.

  • platform/graphics/win/PlatformDisplayWin.cpp:

(WebCore::PlatformDisplayWin::initializeEGLDisplay): Fixed a typo 'attributs'.

12:09 PM Changeset in webkit [271015] by Fujii Hironori
  • 5 edits
    1 add in trunk

[WinCairo][WebGL] webgl/1.0.3/conformance/misc/uninitialized-test.html is failing only for Debug builds
https://bugs.webkit.org/show_bug.cgi?id=220000

Reviewed by Kenneth Russell.

Source/WebCore:

Some WebGL tests were failing only in debug builds. Those test
cases expect black transparent for uninitialized buffers. ANGLE
enables debug layers as default only for debug builds. And it
fills uninitialized buffers with kDebugColorInitClearValue instead
of black transparent.

Create a PlatformDisplay with explicitly disabling debug layers by
using EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE.

  • PlatformWinCairo.cmake:
  • platform/graphics/win/PlatformDisplayWin.cpp: Added.

(WebCore::PlatformDisplayWin::initializeEGLDisplay):

  • platform/graphics/win/PlatformDisplayWin.h:

LayoutTests:

  • platform/wincairo/TestExpectations:
10:56 AM Changeset in webkit [271014] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Let's create the run and update the box geometry in one go for atomic inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=220045

Reviewed by Antti Koivisto.

Let's not run the "same" loop twice on atomic inline level boxes (first when we create the line run and the second time we
we update the associated the box geometry). Unfortunately we still have to run a second pass on the inline boxes (e.g <span>) as
they behave as containers (there's room for improvement here too).

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

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

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::hasInlineBox const):

8:29 AM Changeset in webkit [271013] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Convert remaining FrameLoaderType enums to enum classes
https://bugs.webkit.org/show_bug.cgi?id=219898

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-20
Reviewed by Sam Weinig.

Source/WebCore:

Convert remaining FrameLoaderType enums to enum classes.
Not converted is ShouldReplaceDocumentIfJavaScriptURL
since it should be removed eventually.

  • dom/Document.cpp:

(WebCore::Document::open):

  • history/BackForwardCache.cpp:

(WebCore::canCacheFrame):
(WebCore::firePageHideEventRecursively):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::isLoadingInAPISense const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::initForSynthesizedDocument):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::closeURL):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::activeDocumentLoader const):
(WebCore::FrameLoader::setState):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::detachFromParent):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::dispatchUnloadEvents):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
(WebCore::FrameLoader::shouldSuppressTextInputFromEditing const):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::schedule):

  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::loadSubframe):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • page/FrameView.cpp:

(WebCore::FrameView::shouldSuspendScrollAnimations const):

Source/WebKit:

Adapt to enum class changes.

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

(WKBundleFrameGetFrameLoadState):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):

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

[LFC] Move content height logic to the formatting contexts.
https://bugs.webkit.org/show_bug.cgi?id=220040

Reviewed by Simon Fraser.

Formatting contexts know about their content height.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

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

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedContentHeight const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/flexformatting/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::usedContentHeight const):

  • layout/flexformatting/FlexFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::usedContentHeight const):

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):

Dec 19, 2020:

11:15 PM Changeset in webkit [271011] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Move FrameLoader::arePluginsEnabled to Frame
https://bugs.webkit.org/show_bug.cgi?id=220022

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-19
Reviewed by Sam Weinig.

Source/WebCore:

The arePluginsEnabled functionality is not tied
to FrameLoader, so move it to Frame to save
some indirections.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::rendererIsEverNeeded):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::arePluginsEnabled): Deleted.

  • loader/FrameLoader.h:
  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::requestPlugin):

  • page/Frame.cpp:

(WebCore::Frame::arePluginsEnabled):

  • page/Frame.h:

Source/WebKit:

Adapt to API change.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::pluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::objectContentType):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):
(WebKit::WebPage::canShowMIMEType const):

Source/WebKitLegacy/mac:

Adapt to API change.

  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):

  • WebView/WebFrame.mm:

(-[WebFrame _canProvideDocumentSource]):

Source/WebKitLegacy/win:

Adapt to API change.

  • WebView.cpp:

(WebView::canShowMIMEType):

8:17 PM Changeset in webkit [271010] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Remove redundant InlineContent::InlineBox
https://bugs.webkit.org/show_bug.cgi?id=220042
<rdar://problem/72511784>

Reviewed by Simon Fraser.

This is not used anymore since we've decided to turn everything into a run for integration.

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::shrinkToFit):
(WebCore::LayoutIntegration::InlineContent::InlineBox::InlineBox): Deleted.
(WebCore::LayoutIntegration::InlineContent::InlineBox::layoutBox const): Deleted.
(WebCore::LayoutIntegration::InlineContent::InlineBox::lineIndex const): Deleted.
(WebCore::LayoutIntegration::InlineContent::InlineBox::rect const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayInlineBoxes const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
4:11 PM Changeset in webkit [271009] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.9.3

Tag Safari-611.1.9.3.

4:10 PM Changeset in webkit [271008] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.9.2

Tag Safari-611.1.9.2.

4:06 PM Changeset in webkit [271007] by bshafiei@apple.com
  • 8 edits in branches/safari-611.1.9-branch/Source

Versioning.

WebKit-7611.1.9.3

4:05 PM Changeset in webkit [271006] by bshafiei@apple.com
  • 8 edits in branches/safari-611.1.9-branch/Source

Versioning.

WebKit-7611.1.9.2

4:03 PM Changeset in webkit [271005] by bshafiei@apple.com
  • 2 edits in branches/safari-611.1.9-branch/Source/WebKit

Cherry-pick r271004. rdar://problem/72508138

REGRESSION(r270575): [iOS] Correct GPU Process sandbox syntax error
https://bugs.webkit.org/show_bug.cgi?id=220041
<rdar://problem/72508138>

Unreviewed build fix after r270575.

A closing parentheses was omitted when the 'play-audio' rule was changed to
remove its last rule.

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

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

3:55 PM Changeset in webkit [271004] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r270575): [iOS] Correct GPU Process sandbox syntax error
https://bugs.webkit.org/show_bug.cgi?id=220041
<rdar://problem/72508138>

Unreviewed build fix after r270575.

A closing parentheses was omitted when the 'play-audio' rule was changed to
remove its last rule.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
2:10 PM Changeset in webkit [271003] by Alan Bujtas
  • 21 edits in trunk

width: max-content with box-sizing: border-box should leave space for padding (Twitter date hover overflow)
https://bugs.webkit.org/show_bug.cgi?id=219687
<rdar://problem/72137685>

Reviewed by Antti Koivisto.

Source/WebCore:

Non-quantitative values such as auto and min-content are not influenced by the box-sizing property.
See http::www.w3.org/TR/css-sizing-3/#box-sizing
(adjustContentBoxLogicalWidthFor* now needs the property type too)

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computePreferredLogicalWidths):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::adjustContentBoxLogicalWidthForBoxSizing const):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::adjustContentBoxLogicalWidthForBoxSizing const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):

  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::computePreferredLogicalWidths):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeAutoRepeatTracksCount const):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::computePreferredLogicalWidths):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::computePreferredLogicalWidths):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computePreferredLogicalWidths):

  • rendering/RenderSlider.cpp:

(WebCore::RenderSlider::computePreferredLogicalWidths):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::computePreferredLogicalWidths):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::computePreferredLogicalWidths):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
5:16 AM Changeset in webkit [271002] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add fast path vertical alignment for non-stretchy, baseline aligned atomic inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=219962

Reviewed by Antti Koivisto.

Let's estimate the logical top of simple atomic inline level boxes while they are being constructed. It helps to avoid the rather expensive
three-pass vertical alignment code (see computeLineBoxHeightAndAlignInlineLevelBoxesVertically) when the line has nothing but such simple boxes.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndalignInlineLevelBoxesVertically): Deleted.

Dec 18, 2020:

9:41 PM Changeset in webkit [271001] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU process] Adding more tests to TestExpectations for Layout tests crashes
https://bugs.webkit.org/show_bug.cgi?id=220035

Patch by Rini Patel <rini_patel@apple.com> on 2020-12-18
Reviewed by Tim Horton.

  • gpu-process/TestExpectations:
8:30 PM Changeset in webkit [271000] by timothy_horton@apple.com
  • 8 edits in trunk

iOS wheel events don't work on many websites
https://bugs.webkit.org/show_bug.cgi?id=220034

Reviewed by Simon Fraser.

Source/WebKit:

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

(WebIOSEventFactory::createWebWheelEvent):
It turns out that many sites look at the legacy mousewheel event properties,
so compute wheelTicks in the same way that we do on macOS.

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

(-[WKWebView _scrollView:asynchronouslyHandleScrollEvent:completion:]):
If the UI process sends a wheel event with delta=0,0 to the Web Content
process, it will not be sent to the page, and thus not handled.
If this is the first event, it will prevent future events from
being cancelable.

Instead, synthetically defer the "Begin" phase to the first event in a
given gesture that has non-zero deltas, and just short-circuit any
zero-delta events entirely.

This way, WebCore can continue with its existing only-the-first-event-is-cancelable
logic, and we are assured that the first event that WebCore sees is also
the first event that the page sees, and is a Begin-phase event.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::dispatchWheelEventWithoutScrolling):
wheelScrollGestureState isn't reset to nullopt until we send the
Begin-phase event to EventHandler, so we must make an exception for
the Begin-phase event, and explicitly make it cancelable. Otherwise,
the state of the previous gesture leaks into the new gesture. Existing
API tests caught this, I just apparently failed to run them after
adopting the shared wheelScrollGestureState().

Tools:

  • TestWebKitAPI/Tests/ios/WKScrollViewTests.mm:

(TEST):
Add a test ensuring that if the UIScrollPhaseBegin scroll event
has zero delta, that we let a subsequent UIScrollPhaseChanged event
with non-zero delta cancel the gesture's default action.

6:01 PM Changeset in webkit [270999] by Said Abou-Hallawa
  • 2 edits in trunk/Tools

Upgrade motionmark1.1.plan to r270959
https://bugs.webkit.org/show_bug.cgi?id=220016

Reviewed by Alexey Proskuryakov.

r270959 increases the warm-up time to 1000ms. This should fix a bi-
modality problem in the score of Images and Multiply sub-tests.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
5:02 PM Changeset in webkit [270998] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Fix some issues with PDFs as <object>.
https://bugs.webkit.org/show_bug.cgi?id=220024

Reviewed by Tim Horton.

No new tests (Unable to write automated tests)

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::PDFPlugin::getResourceBytesAtPosition): Set the correct URL.
(WebKit::PDFPlugin::ByteRangeRequest::completeWithAccumulatedData): Try harder to catch mismatches in delivered bytes vs expected bytes.

4:39 PM Changeset in webkit [270997] by jeffm@apple.com
  • 3 edits in trunk/Source/WebKit

WKProcessPool enhancements for URL schemes
https://bugs.webkit.org/show_bug.cgi?id=220030

Reviewed by Brian Weinstein.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _registerURLSchemeAsSecure:]):
Added, equivalent to WKContextRegisterURLSchemeAsSecure().

(-[WKProcessPool _registerURLSchemeAsBypassingContentSecurityPolicy:]):
Added, equivalent to WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy().

(-[WKProcessPool _setDomainRelaxationForbiddenForURLScheme:]):
Added, equivalent to WKContextSetDomainRelaxationForbiddenForURLScheme().

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
4:16 PM Changeset in webkit [270996] by BJ Burg
  • 4 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: clean up _WKRemoteWebInspectorViewController
https://bugs.webkit.org/show_bug.cgi?id=219963

Reviewed by Devin Rousso.

Remove deprecated and unused debuggableType-based SPI to load the frontend.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h:

Promote the _WKInspectorDebuggableInfo-based SPI to the main header.
Fix availability annotations. This class has never worked on iOS.
Add TBA annotations for things added since the Big Sur SDK was finalized.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(legacyDebuggableTypeToModernDebuggableType): Deleted.
(-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]): Deleted.

4:11 PM Changeset in webkit [270995] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

Login flows on sites with ITP quirks no longer work with ITP disabled
https://bugs.webkit.org/show_bug.cgi?id=220019
<rdar://problem/72472858>

Reviewed by Darin Adler.

We should add a check for ITP enabled before attempting to apply quirks,
otherwise the quirks will commandeer the login process, fail (because
no ITP), and thus result in an inability to login when ITP is disabled.

No new tests, this will fix login flows on sites with ITP quirks when
ITP is turned off. I confirmed these cases manually.

  • page/Quirks.cpp:

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

4:10 PM Changeset in webkit [270994] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r270983. rdar://problem/72484021

Crash in DOMSelection::getRangeAt()
https://bugs.webkit.org/show_bug.cgi?id=219804

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-12-18
Reviewed by Darin Adler.

Add a check in HTMLTextFormControlElement::setSelectionRange()
that ensures we do not try to move the frame's selection
if the HTMLTextFormControlElement is no longer connected.

  • html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setSelectionRange):

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

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

Build fix after r270988.
https://bugs.webkit.org/show_bug.cgi?id=220021
<rdar://problem/72474809>

Not reviewed.

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

REGRESSION(iOS 14): http/tests/cache-storage/page-cache-domcache-pending-promise.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217408

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Add DumpJSConsoleLogInStdErr since it was errantly removed in r268078.
3:14 PM Changeset in webkit [270991] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CachedRefPtr should adoptRef before calling ref to appease RefCounted's debug assertions
https://bugs.webkit.org/show_bug.cgi?id=219953
<rdar://problem/72391255>

Reviewed by Tadeu Zagallo.

  • runtime/CachedTypes.cpp:

(JSC::CachedRefPtr::decode const):

2:27 PM Changeset in webkit [270990] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Line snapping fails when the content is taller than the page.
https://bugs.webkit.org/show_bug.cgi?id=220020
<rdar://problem/68761119>

Reviewed by Antti Koivisto.

When the snapped position of the current line falls off of the page, we call lineSnapAdjustment() recursively to figure out the snapped position on the next page.
We usually find the final position on the next page mostly slightly below the logical top.
However when the line is taller than the page itself, it does not fit the next page or any of the following pages (assuming uniform page height).

Let the line overflow when the pages can't accommodate it.

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::lineSnapAdjustment const):

2:17 PM Changeset in webkit [270989] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Use EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE now it is in the build
https://bugs.webkit.org/show_bug.cgi?id=219968
<rdar://problem/72405724>

Reviewed by Darin Adler.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::InitializeEGLDisplay): Use the named value.

1:42 PM Changeset in webkit [270988] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Fix MacroAssemblerARM64E::validateUntaggedPtr() to account for TBI.
https://bugs.webkit.org/show_bug.cgi?id=220021
<rdar://problem/72474809>

Reviewed by Saam Barati.

  • assembler/AbstractMacroAssembler.h:
  • assembler/DisallowMacroScratchRegisterUsage.h:
  • templatized the DisallowMacroScratchRegisterUsage class so that we can #include it in MacroAssembler implementations.
  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::validateUntaggedPtr):

1:10 PM Changeset in webkit [270987] by Peng Liu
  • 11 edits in trunk

[Media in GPU Process][MSE] SourceBufferPrivateRemote needs to override some track buffer related functions of SourceBufferPrivate
https://bugs.webkit.org/show_bug.cgi?id=219998

Reviewed by Jer Noble.

Source/WebCore:

No new tests, fix layout test failures.

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::setTimestampOffset):
(WebCore::SourceBufferPrivate::setAppendWindowStart):
(WebCore::SourceBufferPrivate::setAppendWindowEnd):
(WebCore::SourceBufferPrivate::hasVideo const):
(WebCore::SourceBufferPrivate::timestampOffset const):
Change these functions to virtual because SourceBufferPrivateRemote needs to override them.

Source/WebKit:

Implement some track buffer related functions of SourceBufferPrivateRemote with new IPC messages.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::resetTrackBuffers):
(WebKit::RemoteSourceBufferProxy::clearTrackBuffers):
(WebKit::RemoteSourceBufferProxy::resetTimestampOffsetInTrackBuffers):
(WebKit::RemoteSourceBufferProxy::setTimestampOffset):
(WebKit::RemoteSourceBufferProxy::setAppendWindowStart):
(WebKit::RemoteSourceBufferProxy::setAppendWindowEnd):
(WebKit::RemoteSourceBufferProxy::updateTrackIds):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):
MediaSource manages the track information for the MSE media player, so we should not call
MediaPlayer::addAudioTrack(), MediaPlayer::addTextTrack() and MediaPlayer::addVideoTrack().

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::resetTrackBuffers):
(WebKit::SourceBufferPrivateRemote::clearTrackBuffers):
(WebKit::SourceBufferPrivateRemote::resetTimestampOffsetInTrackBuffers):
(WebKit::SourceBufferPrivateRemote::setTimestampOffset):
(WebKit::SourceBufferPrivateRemote::setAppendWindowStart):
(WebKit::SourceBufferPrivateRemote::setAppendWindowEnd):
(WebKit::SourceBufferPrivateRemote::updateTrackIds):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:

LayoutTests:

  • gpu-process/TestExpectations:
12:32 PM Changeset in webkit [270986] by sihui_liu@apple.com
  • 9 edits in trunk/Source

SpeechRecognitionRemoteRealtimeMediaSourceManager should not issue sandbox extension for mocked devices
https://bugs.webkit.org/show_bug.cgi?id=219972

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/mediastream/CaptureDevice.h:

(WebCore::CaptureDevice::isMockDevice const): Add a member in CaptureDevice to indicate if it's mocked device.
(WebCore::CaptureDevice::setIsMockDevice):
(WebCore::CaptureDevice::encode const):
(WebCore::CaptureDevice::decode):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::toCaptureDevice):

Source/WebKit:

  • UIProcess/SpeechRecognitionPermissionManager.cpp:

(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): We need to sync the preference not only
on when mockCaptureDevicesEnabled is set, but also when it is unset.

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:

(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::addSource): Grant sandbox extensions to web process
when the first source that uses a real device is created.
(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::removeSource): Revoke sandbox extensions from web
process when the last source that uses a real device is delete.

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
  • UIProcess/SpeechRecognitionServer.cpp: Correct a typo.

(WebKit::SpeechRecognitionServer::SpeechRecognitionServer):

  • UIProcess/SpeechRecognitionServer.h: Correct a typo
11:43 AM Changeset in webkit [270985] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/ThirdParty/libwebrtc

Cherry-pick r270895. rdar://problem/72474836

Cherry-pick usrsctp 355fb576b1a9dfef70fc0e158d66692662baaddc
https://bugs.webkit.org/show_bug.cgi?id=219937

Reviewed by Alex Christensen.

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c: (sctp_process_cookie_existing):

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

11:42 AM Changeset in webkit [270984] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/ThirdParty/libwebrtc

Cherry-pick r270894. rdar://problem/72474831

Cherry-pick usrsctp 7dab23aa0d8db86fedd222a308067439b03fad0f
https://bugs.webkit.org/show_bug.cgi?id=219936
<rdar://problem/72304588>

Reviewed by Alex Christensen.

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c: (sctp_process_cookie_existing):

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

11:34 AM Changeset in webkit [270983] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in DOMSelection::getRangeAt()
https://bugs.webkit.org/show_bug.cgi?id=219804

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-12-18
Reviewed by Darin Adler.

Add a check in HTMLTextFormControlElement::setSelectionRange()
that ensures we do not try to move the frame's selection
if the HTMLTextFormControlElement is no longer connected.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

11:32 AM Changeset in webkit [270982] by Russell Epstein
  • 1 copy in tags/Safari-611.1.9.1.1

Tag Safari-611.1.9.1.1.

11:25 AM Changeset in webkit [270981] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add tagging to JIT probe's return address.
https://bugs.webkit.org/show_bug.cgi?id=220008
rdar://71279530

Reviewed by Keith Miller and Robin Morisset.

  • assembler/MacroAssemblerARM64.cpp:
  • assembler/testmasm.cpp:

(JSC::testProbeModifiesProgramCounter):

  • runtime/JSCPtrTag.h:
11:16 AM Changeset in webkit [270980] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r270938): ASSERTION FAILED: !m_renderThread in WebKit::RemoteAudioDestinationProxy::startRenderingThread
https://bugs.webkit.org/show_bug.cgi?id=220017
<rdar://problem/72470176>

Reviewed by Darin Adler.

In case of a GPU process crash, we call stopRenderingThread() and then connectToGPUProcess() which
calls startRenderingThread(). We were hitting an assertion in startRenderingThread() making sure
that m_renderThread is null because stopRenderingThread() was failing to set it to null after
stopping the thread.

No new tests, covered by existing failing API test.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::stopRenderingThread):

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

Versioning.

WebKit-7611.1.9.1.1

11:05 AM Changeset in webkit [270978] by Russell Epstein
  • 1 copy in tags/Safari-611.1.9.1

Tag Safari-611.1.9.1.

11:02 AM Changeset in webkit [270977] by Russell Epstein
  • 4 edits in branches/safari-611.1.9-branch

Cherry-pick r270962. rdar://problem/72472070

REGRESSION(r270638) decidePolicyForNewWindowAction should have non-null request
https://bugs.webkit.org/show_bug.cgi?id=220001
Source/WebKit:

<rdar://72436824>

Reviewed by Tim Horton.

A ResourceRequest was used after being moved in the super old C SPI that we need to remove,
but to keep our client functioning correctly until they do we copy the ResourceRequest instead of moving it.
Covered by an API test.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNewWindowAction):

Tools:

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm: (TEST):

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

10:30 AM Changeset in webkit [270976] by Russell Epstein
  • 1 copy in tags/Safari-611.1.9.0.1

Tag Safari-611.1.9.0.1.

10:27 AM Changeset in webkit [270975] by Russell Epstein
  • 1 delete in tags/Safari-611.1.9.0.1

Delete tag.

10:25 AM Changeset in webkit [270974] by Megan Gardner
  • 24 edits in trunk/Source

Gate all of the code associated with app highlights
https://bugs.webkit.org/show_bug.cgi?id=220003
Source/WebCore:

<rdar://problem/72451893>

Reviewed by Tim Horton.

Only gating code, no new tests needed.

  • Modules/highlight/AppHighlightListData.cpp:
  • Modules/highlight/AppHighlightListData.h:
  • Modules/highlight/AppHighlightStorage.cpp:
  • Modules/highlight/AppHighlightStorage.h:
  • Modules/highlight/HighlightRegister.cpp:
  • Modules/highlight/HighlightRegister.h:
  • dom/Document.cpp:

(WebCore::Document::commonTeardown):
(WebCore::Document::updateHighlightPositions):

  • dom/Document.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:
  • rendering/RenderTheme.h:

Source/WebKit:

<rdar://problem/72451893>

Reviewed by Tim Horton.

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAppHighlightsEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):

Source/WebKitLegacy/mac:

<rdar://problem/72451893>

Reviewed by Tim Horton.

  • WebView/WebHTMLView.mm:

(toTag):

Source/WTF:

Reviewed by Tim Horton.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
10:23 AM Changeset in webkit [270973] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Mojave] webanimations/accelerated-transform-related-animation-property-order.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220018

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as failing.
10:23 AM Changeset in webkit [270972] by Russell Epstein
  • 8 edits in branches/safari-611.1.9-branch/Source

Versioning.

WebKit-7611.1.9.1

10:21 AM Changeset in webkit [270971] by Russell Epstein
  • 1 copy in tags/Safari-611.1.9.0.1

Tag Safari-611.1.9.0.1.

10:11 AM Changeset in webkit [270970] by Russell Epstein
  • 8 edits in branches/safari-611.1.9-branch/Source

Versioning.

WebKit-7611.1.9.0.1

9:23 AM Changeset in webkit [270969] by Chris Dumez
  • 9 edits in trunk/Source

[iOS] Stop leaking an XPC boost message to XPC services
https://bugs.webkit.org/show_bug.cgi?id=219453

Reviewed by Geoff Garen.

Source/WebKit:

Stop leaking an XPC boost message to XPC services on builds where RunningBoard is able to give the right
priorities to our XPC services based on the type of RunningBoard assertion is being held. There is no
behavior change for the Network/WebContent processes since those were blocklisted in RunningBoard (Turning
on the RB_full_manage_WK_jetsam feature flag gives us the default RunningBoard behavior without
blocklisting). However, this allows the new GPUProcess to move to IDLE jetsam band when homing out of
MobileSafari, which makes the GPUProcess eligible for the freezer. Previously, the leaked boost message
would keep the GPUProcess in a higher jetsam band.

  • FeatureFlags/WebKit.plist:

Add RB_full_manage_WK_jetsam feature flag and turn it on. On recent enough builds of RunningBoard, this
disables the blocklisting of the WebContent/Network processes in RunningBoard so that RunningBoard can now
set the priority of those processes (instead of us boosting our priority via boost messages).

  • GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-iOS.plist:
  • NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-iOS.plist:
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist:
  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:

Set _ProcessType=App so that RunningBoard is able to set the priority of our XPC services on iOS. Without
this change, we get a permission denied when RunningBoard attempts to set the priority of our XPC services.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::shouldLeakBoost):
Stop leaking a boost message on iOS when RUNNINGBOARD_WEBKIT_PRIORITY_SUPPORT compile-time flag is enabled
and when the RB_full_manage_WK_jetsam feature flag is enabled.

Source/WTF:

Add new RUNNINGBOARD_WEBKIT_PRIORITY_SUPPORT build time flag since we need a recent
enough build of RunningBoard to do this.

  • wtf/PlatformHave.h:
5:29 AM Changeset in webkit [270968] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed buildfix after r270964

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
2:27 AM Changeset in webkit [270967] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[CSSJIT] Do not use trampoline if JITCage is disabled
https://bugs.webkit.org/show_bug.cgi?id=220004

Reviewed by Tadeu Zagallo.

Source/JavaScriptCore:

  • llint/LLIntData.cpp:
  • llint/LowLevelInterpreter.asm:

Source/WebCore:

This trampoline is not necessary if JITCage is not enabled.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateReturn):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorChecker):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorChecker):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerWithCheckingContext):

2:09 AM Changeset in webkit [270966] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/JSTests

[WASM-References] Add reference spec tests for table instructions
https://bugs.webkit.org/show_bug.cgi?id=220005

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

These are reference types spec tests that we've already supported.
It help us prevent future inconsistencies with the proposal:
https://github.com/WebAssembly/reference-types/tree/master/test/core

  • wasm.yaml:
  • wasm/references-spec-tests/table-sub.wast.js: Added.
  • wasm/references-spec-tests/table_get.wast.js: Added.
  • wasm/references-spec-tests/table_set.wast.js: Added.
  • wasm/references-spec-tests/table_size.wast.js: Added.
1:59 AM Changeset in webkit [270965] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[WASM-References] Reuse instance initElementSegment to reduce duplication
https://bugs.webkit.org/show_bug.cgi?id=220007

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

Simple refactroing. We need only one place to initialize elements
segments.

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

Dec 17, 2020:

11:05 PM Changeset in webkit [270964] by commit-queue@webkit.org
  • 28 edits in trunk/Source

REGRESSION (r268386): Snapshots of WebGL content in the tab picker don't work (black map on Google Maps)
https://bugs.webkit.org/show_bug.cgi?id=219946
<rdar://problem/72013784>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-12-17
Reviewed by Dean Jackson.

Source/WebCore:

Fix case where WebGL would first be displayed with hardware code path
and then displayed with software code path (painting from the paint
tree). Former happens when user looks at the page and latter happens
when printing or when Safari takes a snapshot.

This is not a real regression of r268386. Prior to that, the software
display would have used uninitialized IOSurface contents or contents of
1-2 frames prior and would leave the hardware display buffer not
updated.

CanvasRenderingContext::paintRenderingResultsToCanvas() is used for two
purposes:

1) Image extraction uses, such as toData() or

constructing an Image out of the contents.

2) Painting the rendering to the document during software display.

The 1) case uses always the drawing buffer.

The 2) case presents the drawing buffer as the new display buffer if
there are changes to the drawing buffer and uses the potentially new
display buffer to display.

For 2D canvas, these two cases are the same case. For WebGL they are
different.

The display is destructive for WebGL drawing buffer when
preserveDrawingBuffer == false. This means that if hardware display has
happened, we must read the display buffer during case 2. This code was
missing, so the scenario could not have ever worked.

The previous code tried to workaround this by the
WebGLGraphicsContextBase to detect what the owner intended with the
paintRenderingResultsToCanvas, then skip the potential drawing buffer
clear, read the drawing buffer and put that data to the "presentation
copy" of the HTMLElement. This is not ok, as the uncleared drawing
buffer has non-deterministic contents in case the context has displayed
and the client has not drawn new content to the drawing buffer.

Fix by removing the "presentation copy" of the HTMLCanvas. The
presentation image can always be drawn to the CanvasBase::buffer():

  • The current contents of the buffer is the presentation image if the context has not changed since updating the buffer with either drawing buffer or previous display buffer.
  • If the context has changed, we must present and put the new display buffer to the CanvasBase::buffer()
  • This is also correct contents for the potential next image extraction uses, up to a point when context changes.
  • If the context changes before an image extraction use, CanvasBase::buffer() is updated with the normal logic, the same as what happens when CanvasBase::buffer() is updated between two image extraction uses.

Prior to this, there was an unneeded and incorrectly implemented
GPUCanvasContext::markLayerComposited(). The sequence would be:

HTMLCanvasElement::paint():

canvasContext().paintRenderingResultsToCanvas(buffer());
context().drawImageBuffer(buffer());
canvasContext().markLayerComposited();

The markLayerComposited() would incorrectly mark the WebGL context compositing
being done, but there was no compositing actually happening. The GPU-side
display buffer would be incorrect. Also, there is nothing to be done at
this stage, as the compositing of WebGL context itself is already
finished at WebGL context paintRenderingResultsToCanvas() return.

Instead, add CanvasRenderingContext::prepareForDisplayWithPaint() which signals that next
paintRenderingResultsToCanvas() is a display operation. This can be used to to detect the
paintRenderingResultsToCanvas() in which we must present the drawing buffer as
display buffer.

Implement the display buffer read with OpenGL.

Refactor the drawing buffer read code to be able to reuse the read code
for the display buffer read. The refactored code reduces redundant the
allocations of full-screen malloc buffers and ensures allocation results are
checked instead of crashing with nullptr derefs when OOM happens. Fixes
errors such as rdar://67553531 (CrashTracer: com.apple.WebKit.WebContent at
WebCore: WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas).
Removes RGBA->BGRA->RGBA conversions from
GraphicsContextGLOpenGL::paintRenderingResultsToImageData().
Removes manual alpha premultiplication and makes CG draw with unpremultiplied
alpha.
Changes Cairo variant of GraphicsContextGLOpenGL to convert manually RGBA->BGRA
instead of (big) OpenGL driver doing it in case of non-NVIDIA platforms.

No new tests, the snapshot / sw+hw drawing is not testable at the moment.

  • Modules/webgpu/GPUCanvasContext.cpp:

(WebCore::GPUCanvasContext::configureSwapChain):
(WebCore::GPUCanvasContext::prepareForDisplayWithPaint):
(WebCore::GPUCanvasContext::paintRenderingResultsToCanvas):

  • Modules/webgpu/GPUCanvasContext.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint):

  • html/HTMLCanvasElement.h:
  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::prepareForDisplayWithPaint):

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

(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::prepareForDisplayWithPaint):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContextBase::validateElementArraySize):
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawElements):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
(WebCore::WebGLRenderingContextBase::initVertexAttrib0):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixelsForPaintResults):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):

  • platform/graphics/angle/GraphicsContextGLANGLEUtilities.h:

(WebCore::ScopedRestoreTextureBinding::ScopedRestoreTextureBinding):
(WebCore::ScopedBufferBinding::ScopedBufferBinding):
(WebCore::ScopedBufferBinding::~ScopedBufferBinding):
(WebCore::ScopedBufferBinding::query):
(WebCore::ScopedRestoreReadFramebufferBinding::ScopedRestoreReadFramebufferBinding):
(WebCore::ScopedRestoreReadFramebufferBinding::markBindingChanged):
(WebCore::ScopedRestoreReadFramebufferBinding::bindFramebuffer):
(WebCore::ScopedRestoreReadFramebufferBinding::~ScopedRestoreReadFramebufferBinding):
(WebCore::ScopedPixelStorageMode::ScopedPixelStorageMode):
(WebCore::ScopedPixelStorageMode::~ScopedPixelStorageMode):
(WebCore::ScopedPixelStorageMode::pixelStore):
(WebCore::ScopedPixelStorageMode::operator GLint const):
(WebCore::ScopedTexture::ScopedTexture):
(WebCore::ScopedTexture::~ScopedTexture):
(WebCore::ScopedTexture::operator GLuint const):
(WebCore::ScopedFramebuffer::ScopedFramebuffer):
(WebCore::ScopedFramebuffer::~ScopedFramebuffer):
(WebCore::ScopedFramebuffer::operator GLuint const):

  • platform/graphics/cairo/GraphicsContextGLCairo.cpp:

(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::releaseImageData):
(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.h:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::allowOfflineRenderers const):
(WebCore::GraphicsContextGLOpenGL::readCompositedResults):

  • platform/graphics/cocoa/WebGLLayer.mm:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToImageData):
(WebCore::GraphicsContextGLOpenGL::readCompositedResults):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixelsForPaintResults):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveAttrib):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniform):
(WebCore::GraphicsContextGLOpenGL::originalSymbolName):
(WebCore::GraphicsContextGLOpenGL::mappedSymbolName):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
(WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderSource):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixelsForPaintResults):

Source/WebKit:

Add dummy implementations of GraphicsContextGL::paintCompositedResultsToCanvas.
Painting to canvas is not implemented yet for the remote GraphicsContextGL implementation.

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGLCocoa::displayBuffer const):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
8:45 PM Changeset in webkit [270963] by jer.noble@apple.com
  • 6 edits in trunk/Tools

REGRESSION: [ BigSur ] 3 PictureInPicture related API tests timing out
https://bugs.webkit.org/show_bug.cgi?id=219999

Reviewed by Eric Carlson.

Not a fix for the timeout itself, but a change which will allow us to see the Util::run() statement which
is timing out. Rather than just get a generic TIMEOUT result with no clue to the cause, a Util::run() statement
which takes longer than the specified amount of time will generate an ASSERT() error with the line number
which caused the timeout.

  • TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:

(TEST):

  • TestWebKitAPI/Utilities.h:
  • TestWebKitAPI/cocoa/UtilitiesCocoa.mm:

(TestWebKitAPI::Util::runFor):

7:24 PM Changeset in webkit [270962] by achristensen@apple.com
  • 4 edits in trunk

REGRESSION(r270638) decidePolicyForNewWindowAction should have non-null request
https://bugs.webkit.org/show_bug.cgi?id=220001
Source/WebKit:

<rdar://72436824>

Reviewed by Tim Horton.

A ResourceRequest was used after being moved in the super old C SPI that we need to remove,
but to keep our client functioning correctly until they do we copy the ResourceRequest instead of moving it.
Covered by an API test.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNewWindowAction):

Tools:

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:

(TEST):

5:21 PM Changeset in webkit [270961] by Chris Dumez
  • 23 edits in trunk/Source

[GPUProcess] https://www.waveplayer.info/createmediaelementsource-test/ demo is flaky
https://bugs.webkit.org/show_bug.cgi?id=219951

Reviewed by Geoff Garen.

The issue was with the following line in AudioSourceProviderAVFObjC::prepare:
m_ringBuffer = m_ringBufferCallback(description, capacity).moveToUniquePtr();

In the case where m_ringBuffer was non-null before the assignment, we would have
2 RingBuffers that would coexist for a very small period of time. When the new
one was created, we would send an IPC to the remote process with the shared
memory handle of the new RingBuffer. However, very shortly after, the old
ring buffer would get destroyed, causing us to send another IPC to the remote
process with a null handle (since the shared memory associated with the old
ring buffer is getting destroyed). As a result, of this ordering issue, the
remote process would end up with a RingBuffer with a null shared memory handle
and no audio would be rendered.

We could have addressed the issue like so:
`
m_ringBuffer = nullptr;
m_ringBuffer = m_ringBufferCallback(description, capacity).moveToUniquePtr();
`
However, this would be super fragile. Instead, I have made the following changes:

  1. If there is already a ringBuffer, reuse it instead of reconstructing it. Calling allocate() with the new parameters on the existing ring buffer is sufficient in this case.
  2. Because of 1, the ring buffer creation callback no longer needs to call CARingBuffer::allocate().

I also made the following changes to make the code simpler and to reduce code
duplication:

  • The storage change handler passed to SharedRingBufferStorage is now given as parameter the CAAudioStreamDescription & frameCount. What the handler always does is send an IPC to the remote process to tell it that the storage changed and in all cases, it needs to provide these 2 parameters as well. This is because the remote process will need to call CARingBuffer::allocate(), which requires those 2 parameters. This simplifies our code in some cases since we no longer need a mechanism to retrieve those 2 parameters from inside the storage change handler.
  • The logic of the StorageChange IPC recipient to update its ringbuffer with the new shared memory handle is complicated and was duplicated in a LOT of places. To address this, I introduced a new SharedRingBufferStorage::updateReadOnlyStorage() function which does exactly what we need.

Source/WebCore:

  • platform/audio/cocoa/CARingBuffer.cpp:

(WebCore::CARingBuffer::allocate):

  • platform/audio/cocoa/CARingBuffer.h:
  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h:
  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::AudioSourceProviderAVFObjC):
(WebCore::AudioSourceProviderAVFObjC::prepare):
(WebCore::AudioSourceProviderAVFObjC::setRingBufferCreationCallback):

Source/WebKit:

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::audioSamplesStorageChanged):

  • GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:

(WebKit::RemoteAudioSourceProviderProxy::create):
(WebKit::RemoteAudioSourceProviderProxy::createRingBuffer):
(WebKit::RemoteAudioSourceProviderProxy::storageChanged):

  • GPUProcess/media/RemoteAudioSourceProviderProxy.h:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:

(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):

  • Shared/Cocoa/SharedRingBufferStorage.cpp:

(WebKit::SharedRingBufferStorage::setStorage):
(WebKit::SharedRingBufferStorage::updateReadOnlyStorage):
(WebKit::SharedRingBufferStorage::allocate):
(WebKit::SharedRingBufferStorage::deallocate):

  • Shared/Cocoa/SharedRingBufferStorage.h:

(WebKit::SharedRingBufferStorage::SharedRingBufferStorage):
(WebKit::SharedRingBufferStorage::storage const):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::storageChanged):

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:

(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::storageChanged):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:

(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::setStorage):

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:

(WebKit::AudioMediaStreamTrackRenderer::AudioMediaStreamTrackRenderer):
(WebKit::AudioMediaStreamTrackRenderer::storageChanged):

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

(WebKit::MediaRecorderPrivate::startRecording):
(WebKit::MediaRecorderPrivate::storageChanged):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

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

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

[ Big Sur ] imported/w3c/web-platform-tests/fetch/content-type/script.window.html is failing
https://bugs.webkit.org/show_bug.cgi?id=219965

unreviewed test gardening.

  • platform/mac/TestExpectations:
3:43 PM Changeset in webkit [270959] by Said Abou-Hallawa
  • 3 edits in trunk/PerformanceTests

[MotionMark] Increase the warm-up time for each sub-test from 100ms to 1000ms
https://bugs.webkit.org/show_bug.cgi?id=219984

Reviewed by Jon Lee.

Ensure the warm-up time is enough for the system to finish any initialization
work which may be triggered by the sub-test before starting the sampling.
This should prevent bi-modality in the score of the sub-tests since the
initial frame rate is crucial in deciding how much the complexity can grow.

  • MotionMark/developer.html:
  • MotionMark/resources/runner/motionmark.js:

(this.clear):

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

[LFC][IFC] Reserve vector capacity for inline runs and line boxes
https://bugs.webkit.org/show_bug.cgi?id=219985

Reviewed by Simon Fraser.

...and some of the predefined vector capacities got lost at r267325.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineFormattingState.h:
  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::InlineLevelBox::InlineLevelBox):
(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_isConsideredEmpty):

  • layout/inlineformatting/InlineLineBox.h:
3:31 PM Changeset in webkit [270957] by Alan Coon
  • 1 copy in tags/Safari-611.1.9

Tag Safari-611.1.9.

3:30 PM Changeset in webkit [270956] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Correct mock git log call in standard git repositories
https://bugs.webkit.org/show_bug.cgi?id=219992
<rdar://problem/72436380>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: git_svn flag should only

control the final line of the message, not the existence of the entire message.

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

(TestFind.test_basic_git):
(TestFind.test_identifier_git):
(TestFind.test_identifier_git_svn):
(TestFind.test_hash):

3:21 PM Changeset in webkit [270955] by Manuel Rego Casasnovas
  • 5 edits in trunk

[selectors] Default namespace gets ignored inside non-type selectors for :is() and :not()
https://bugs.webkit.org/show_bug.cgi?id=219950

Reviewed by Antti Koivisto.

Source/WebCore:

Based on Blink r820500 and r820557 by <andruud@chromium.org>.

Default namespace declarations do not affect the compound selector
representing the subject of any selector within a :is() or :not() pseudo-class,
unless that compound selector contains an explicit universal selector or type selector.
Spec: https://drafts.csswg.org/selectors-4/#matches

This patch aligns WebKit implementation with Chromium and Firefox, so two WPT tests pass now.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::atEndIgnoringWhitespace):
(WebCore::CSSSelectorParser::consumeCompoundSelector):
(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::defaultNamespace const):

  • css/parser/CSSSelectorParser.h:

LayoutTests:

3:19 PM Changeset in webkit [270954] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Stop parsing reftest.list files
https://bugs.webkit.org/show_bug.cgi?id=203783

Patch by Sam Sneddon <Sam Sneddon> on 2020-12-17
Reviewed by Jonathan Bedard.

This has only been used by the webkitpy integration tests in recent years. Needless to say,
this is Not Useful.

We do still have one reftest.list file,
media/track/opera/track/webvtt/rendering/reftest/reftest.list, but as this is in a reftest
directory we don't run any of the tests in it (and never have). See the above bug for more
detail about that history.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RebaselineTest.assertBaselines): docstring fix
(RunTest.test_reftest_should_not_use_naming_convention_if_not_listed_in_reftestlist): Deleted.
(EndToEndTest): Deleted.
(EndToEndTest.test_reftest_with_two_notrefs): Deleted.

  • Scripts/webkitpy/port/base.py:

(Port.init): remove Port._reftest_list
(Port.reference_files): don't use reftest.list as source of truth
(Port._get_reftest_list): Deleted.
(Port._parse_reftest_list): Deleted.

  • Scripts/webkitpy/port/base_unittest.py:

(PortTest.test_parse_reftest_list): Deleted.

  • Scripts/webkitpy/port/test.py:

(unit_test_list): remove tests used to test reftest.list

3:17 PM Changeset in webkit [270953] by Jonathan Bedard
  • 4 edits in trunk/Tools

[run-webkit-tests] Replace FailureNotTested with FailureNoOutput
https://bugs.webkit.org/show_bug.cgi?id=219994
<rdar://problem/72440201>

Reviewed by Geoffrey Garen.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_text): Replace FailureNotTest with FailureNoOutput.

  • Scripts/webkitpy/layout_tests/models/test_failures.py:

(determine_result_type): Replace FailureNotTest with FailureNoOutput.
(FailureNoOutput): Renamed from FailureNotTested.
(FailureNotTested): Renamed to FailureNoOutput.

  • Scripts/webkitpy/layout_tests/models/test_failures_unittest.py:

(TestFailuresTest.test_all_failure_classes): Replace FailureNotTest with FailureNoOutput.

3:14 PM Changeset in webkit [270952] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] WebM format reader doesn't work with a url in a <source> element
https://bugs.webkit.org/show_bug.cgi?id=219961
<rdar://problem/72399014>

Unreviewed, address post-review comments after r270939.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::canLoadFormatReader): Use an #elif so we don’t compile multiple
return statements.

2:39 PM Changeset in webkit [270951] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r270938.

Add missing include.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
2:27 PM Changeset in webkit [270950] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase http/tests/navigation/javascriptlink-frames.html for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=219186

Unreviewed test gardening

  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
2:26 PM Changeset in webkit [270949] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, drop unnecessary forward declaration added in r270938.

  • wtf/cocoa/MachSemaphore.h:
2:25 PM Changeset in webkit [270948] by commit-queue@webkit.org
  • 26 edits
    1 move
    4 adds in trunk

[WASM-References] Add support for memory.copy, memory.init and data.drop
https://bugs.webkit.org/show_bug.cgi?id=219943

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

JSTests:

Added ref-types spec tests for memory.copy, memory.init and data.drop:
https://github.com/WebAssembly/reference-types/tree/master/test/core.
Renamed table_instructions_parse_unreachable test into just
parse_unreachable to prevent confusion.

  • wasm.yaml:
  • wasm/references-spec-tests/memory_copy.wast.js: Added.
  • wasm/references-spec-tests/memory_init.wast.js: Added.
  • wasm/references/memory_copy.js: Added.

(async test):

  • wasm/references/memory_copy_shared.js: Added.

(async test):

  • wasm/references/parse_unreachable.js: Renamed from JSTests/wasm/references/table_instructions_parse_unreachable.js.

(invalidMemoryCopyUnreachable):
(invalidMemoryInitUnreachable):
(invalidDataDropUnreachable):

  • wasm/wasm.json:

Source/JavaScriptCore:

Add support for memory.copy [dstAddress, srcAddress, length] -> []
that copies one memory segment to another memory segment.
The memory.copy calls C memcpy function to utilize all possible optimization for copy.
This instruction speedup copying data segments in wasm because without it we need to use a lot
load/store instructions with loops in wasm.

Add support for memory.init data_segment_index [dstAddress, srcAddress, length] -> []
that copies data from a passive data segment into a memory segment.
This instruction is the same as memory.copy but for read-only data segments.
It also utilize C memcpy under the hood.

Add support for data.drop data_segment_index [] -> []
that resize given data segment to zero.
Data.drop makes redundant data segment and prevents usage of it in the next.
BTW, it is just a hint for the host runtime so we don't have to change data segment.

Add support for Data count section.
This section just stores the number of data segments.
We need this to validate memory.init instruction's data index because
Code section comes before Data section.

These instructions are needed to support reference types proposal and bulk proposal.

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

(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):
(JSC::Wasm::AirIRGenerator::addDataDrop):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):
(JSC::Wasm::B3IRGenerator::addDataDrop):

  • wasm/WasmFormat.cpp:

(JSC::Wasm::Segment::create):

  • wasm/WasmFormat.h:

(JSC::Wasm::Segment::isActive const):
(JSC::Wasm::Segment::isPassive const):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseDataSegmentIndex):
(JSC::Wasm::FunctionParser<Context>::parseMemoryCopyImmediates):
(JSC::Wasm::FunctionParser<Context>::parseMemoryInitImmediates):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::Instance):
(JSC::Wasm::Instance::memoryInit):
(JSC::Wasm::Instance::dataDrop):

  • wasm/WasmInstance.h:
  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addMemoryInit):
(JSC::Wasm::LLIntGenerator::addDataDrop):
(JSC::Wasm::LLIntGenerator::addMemoryCopy):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::copy):
(JSC::Wasm::Memory::init):

  • wasm/WasmMemory.h:
  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::dataSegmentsCount const):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

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

(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseI32InitExpr):
(JSC::Wasm::SectionParser::parseI32InitExprForElementSection):
(JSC::Wasm::SectionParser::parseI32InitExprForDataSection):
(JSC::Wasm::SectionParser::parseDataSegmentCoreSpec):
(JSC::Wasm::SectionParser::parseDataSegmentReferenceTypesSpec):
(JSC::Wasm::SectionParser::parseGlobalType):
(JSC::Wasm::SectionParser::parseData):
(JSC::Wasm::SectionParser::parseDataCount):

  • wasm/WasmSectionParser.h:
  • wasm/WasmSections.h:

(JSC::Wasm::validateOrder):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

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

(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/wasm.json:
2:23 PM Changeset in webkit [270947] by Chris Dumez
  • 12 edits in trunk/Source

[WebAudio] Simplify code related to dispatchToRenderThread
https://bugs.webkit.org/show_bug.cgi?id=219990

Reviewed by Geoffrey Garen.

Simplify code related to dispatchToRenderThread in WebAudio:

  1. AudioDestination::start() now always gets called with a non-null dispatchToRenderThread lambda. In the case where there is no AudioWorkletThread to dispatch to, the lambda simply calls its task synchronously.
  2. For Cocoa ports, make it so that only AudioDestinationCocoa needs to worry about the dispatchToRenderThread lambda. The dispatchToRenderThread lambda is no longer exposed to subclasses such as MockAudioDestinationCocoa & RemoteAudioDestinationProxy.

Source/WebCore:

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::Function<void):

  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::start):
(WebCore::AudioDestinationCocoa::startRendering):
(WebCore::AudioDestinationCocoa::stop):
(WebCore::AudioDestinationCocoa::stopRendering):
(WebCore::AudioDestinationCocoa::render):

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::start):

  • platform/mock/MockAudioDestinationCocoa.cpp:

(WebCore::MockAudioDestinationCocoa::startRendering):
(WebCore::MockAudioDestinationCocoa::stopRendering):
(WebCore::MockAudioDestinationCocoa::tick):

  • platform/mock/MockAudioDestinationCocoa.h:

Source/WebKit:

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::startRenderingThread):
(WebKit::RemoteAudioDestinationProxy::startRendering):
(WebKit::RemoteAudioDestinationProxy::stopRendering):
(WebKit::RemoteAudioDestinationProxy::gpuProcessConnectionDidClose):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
2:21 PM Changeset in webkit [270946] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Fix "Open with Preview" menu item in PDF context menus on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=219986
<rdar://problem/72406073>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-17
Reviewed by Geoffrey Garen.

In r266654 I removed the ability for the web process to open a PDF in Preview on Big Sur.
I overlooked the fact that context menus also allow you to open a PDF in Preview,
which this fixes by having the UI process initiate the Preview opening if the user clicks on
the context menu item with the correct index.

  • Shared/mac/PDFContextMenu.h:

(WebKit::PDFContextMenu::encode const):
(WebKit::PDFContextMenu::decode):

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

(WebKit::WebPageProxy::showPDFContextMenu):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleContextMenuEvent):

2:07 PM Changeset in webkit [270945] by Truitt Savell
  • 4 edits in trunk/LayoutTests

Rebase 3 tests for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=219184

unreviewed test gardening

  • platform/mac/fast/forms/listbox-width-change-expected.txt:
  • platform/mac/fast/forms/search-rtl-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
1:35 PM Changeset in webkit [270944] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Capture Mock process logging during tests
https://bugs.webkit.org/show_bug.cgi?id=219989
<rdar://problem/72435662>

Reviewed by Dewei Zhu.

When declaring two mock local repositories, we need to ensure that logs are captured when
Instantiating the second repository so that "Mock process # send signal 9" is not logged
to the user's terminal.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:

(TestCheckout):

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

(TestFind):

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

(TestGit):

1:33 PM Changeset in webkit [270943] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[macOS] Use low-power audio buffer sizes for more output devices
https://bugs.webkit.org/show_bug.cgi?id=219975
<rdar://problem/72391280>

Reviewed by Eric Carlson.

In r171069, we limited setting the preferred buffer duration to a "low power", high-duration value to
built-in hardware, as some external audio devices would report supporting those high-duration values
only to have audible glitches when that value was set. Since then, external, wireless audio devices have
become vastly more prevalent. To enable "low power" buffer durations on those devices, allow these larger
durations to be set on external devices so long as they claim to support that larger duration.

  • platform/audio/AudioHardwareListener.cpp:

(WebCore::AudioHardwareListener::AudioHardwareListener):

  • platform/audio/AudioHardwareListener.h:

(WebCore::AudioHardwareListener::BufferSizeRange::operator bool const):
(WebCore::AudioHardwareListener::BufferSizeRange::nearest const):
(WebCore::AudioHardwareListener::supportedBufferSizes const):
(WebCore::AudioHardwareListener::setSupportedBufferSizes):
(WebCore::AudioHardwareListener::outputDeviceSupportsLowPowerMode const): Deleted.
(WebCore::AudioHardwareListener::setOutputDeviceSupportsLowPowerMode): Deleted.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::currentDeviceSupportedBufferSizes):
(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
(WebCore::AudioHardwareListenerMac::outputDeviceChanged):
(WebCore::currentDeviceSupportsLowPowerBufferSize): Deleted.

1:22 PM Changeset in webkit [270942] by Kate Cheney
  • 6 edits in trunk/Source

Followup patch: Still can't login to my.playstation.com
https://bugs.webkit.org/show_bug.cgi?id=219900
<rdar://problem/72062985>

Reviewed by Darin Adler.

Source/WebCore:

  • en.lproj/Localizable.strings:

Source/WebKit:

Using curly quotes when constructing the Storage Access prompt message
may create issues with localizable strings. We should make a separate
localizable string for this quirk case and remove it when Sony
migrates away from third party cookies in their login flow.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm):
(WebKit::buildListForStorageAccessPrompt): Deleted.

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

(WebKit::presentStorageAccessAlert):
(WebKit::presentStorageAccessAlertQuirk):
(WebKit::displayStorageAccessAlert):

12:30 PM Changeset in webkit [270941] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Remove branches argument from mock Git
https://bugs.webkit.org/show_bug.cgi?id=219988
<rdar://problem/72434657>

Reviewed by Dewei Zhu.

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

(Git.init): Remote branches argument.

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

(TestGit.test_branches):

12:30 PM Changeset in webkit [270940] by Fujii Hironori
  • 12 edits in trunk/Source/WebCore

[CMake] Unify WebGL source files into the common WebCore/CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=219970

Reviewed by Don Olmstead.

CMake build scripts should have a single place to list WebGL
source files to ease WebGL devs.

After all ports will switch to use GraphicsContextGLANGLE.cpp,
those files can be added to the common Sources.txt.

GraphicsContextGLOpenGLPrivate is used only by AppleWin port.
Enclosed by #if PLATFORM(WIN) && USE(CA).

  • CMakeLists.txt:
  • PlatformFTW.cmake:
  • PlatformGTK.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWin.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
12:14 PM Changeset in webkit [270939] by eric.carlson@apple.com
  • 9 edits in trunk/Source

[Cocoa] WebM format reader doesn't work with a url in a <source> element
https://bugs.webkit.org/show_bug.cgi?id=219961
<rdar://problem/72399014>

Reviewed by Andy Estes.

Source/WebCore:

Work around a bug that makes the format reader fail to load when the AVURLAssetOutOfBandMIMETypeKey
is included in the AVURLAsset options dictionary. Also include some cleanup:

  • Move the code to check for WebM MIME types from MediaPlayerPrivateAVFoundationObjC to AVAssetMIMETypeCache.
  • Don't use RuntimeEnabledFeatures in MediaPlayerPrivateAVFoundationObjC.
  • Register the WebM format reader when creating an AVURLAsset for a WebM url instead of when checking the MIME type.
  • Cleanup WebM "codecs" parameter parsing.
  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.h:
  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):
(WebCore::AVAssetMIMETypeCache::staticContainerTypeList):
(WebCore::AVAssetMIMETypeCache::setWebMFormatReaderEnabled):

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

(WebCore::registerFormatReaderIfNecessary):
(WebCore::shouldAdvertiseOutOfBandMIMEType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsTypeAndCodecs):
(WebCore::ensureFormatReaderIsRegistered): Deleted.
(WebCore::isFormatReaderAvailable): Deleted.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::setWebMFormatReaderEnabled):
(WebCore::SourceBufferParserWebM::webmMIMETypes):
(WebCore::SourceBufferParserWebM::isWebMFormatReaderAvailable):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:10 AM Changeset in webkit [270938] by Chris Dumez
  • 14 edits
    2 adds in trunk/Source

[GPUProcess] Replace WebAudio rendering timer with a cross-process semaphore
https://bugs.webkit.org/show_bug.cgi?id=219964

Reviewed by Geoff Garen.

Source/WebCore:

Revert changes to CARingBuffer from r270907. These are no longer needed
with this new approach so we might as well remove the complexity from
our ring buffer implementation.

  • platform/audio/cocoa/CARingBuffer.cpp:

(WebCore::CARingBufferStorageVector::flush):
(WebCore::CARingBuffer::fetchIfHasEnoughData):
(WebCore::CARingBuffer::fetch):

  • platform/audio/cocoa/CARingBuffer.h:

Source/WebKit:

r270907 replaced the per-rendering quantum IPC from the GPUProcess to the
WebProcess with a very high-frequency timer in the WebProcess to trigger
the rendering. While this works, this seemed a bit fragile and it also
adds some latency to avoid missed frames.

In this patch, I am replacing the high-frequency timer introduced in r270907
with a cross-process semaphore. When the WebProcess asks the GPU process
to create an audio device, the GPUProcess sends it back a MachSendRight
to the "rendering" semaphore. The WebProcess then starts a high-priority
AudioThread which waits this semaphore to be signaled to render a quantum.
Whenever render() gets called on the GPUProcess side, the GPUProcess
simply signals the "rendering" semaphore, causing the WebProcess to do
the rendering of a quantum. As was the case before, the WebProcess stores
rendered buffers into the RingBuffer it shares with the GPUProcess and
the GPUProcess fetches from the RingBuffer as needed.

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::createRenderSemaphoreSendRight):
(WebKit::RemoteAudioDestination::audioSamplesStorageChanged):
(WebKit::RemoteAudioDestination::render):
(WebKit::RemoteAudioDestinationManager::createAudioDestination):

  • GPUProcess/media/RemoteAudioDestinationManager.h:
  • GPUProcess/media/RemoteAudioDestinationManager.messages.in:
  • Shared/Cocoa/SharedRingBufferStorage.cpp:
  • Shared/Cocoa/SharedRingBufferStorage.h:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::startRenderingThread):
(WebKit::RemoteAudioDestinationProxy::stopRenderingThread):
(WebKit::RemoteAudioDestinationProxy::connectToGPUProcess):
(WebKit::RemoteAudioDestinationProxy::~RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::start):
(WebKit::RemoteAudioDestinationProxy::stop):
(WebKit::RemoteAudioDestinationProxy::renderQuantum):
(WebKit::RemoteAudioDestinationProxy::storageChanged):
(WebKit::RemoteAudioDestinationProxy::gpuProcessConnectionDidClose):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:

Source/WTF:

Introduce MachSemaphore class, which is a C++ wrapper around a low-level
mach semaphore. This semaphore can be used cross-process and sent via
IPC as a MachSendRight.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • wtf/cocoa/MachSemaphore.cpp: Added.

(WTF::MachSemaphore::MachSemaphore):
(WTF::MachSemaphore::~MachSemaphore):
(WTF::MachSemaphore::signal):
(WTF::MachSemaphore::wait):
(WTF::MachSemaphore::createSendRight):

  • wtf/cocoa/MachSemaphore.h: Added.
10:26 AM Changeset in webkit [270937] by Patrick Angle
  • 13 edits in trunk

Web Inspector: REGRESSION(r266467): viewing a WebSocket created before Web Inspector was opened doesn't show any message frames
https://bugs.webkit.org/show_bug.cgi?id=219510

Reviewed by Youenn Fablet.

Source/WebCore:

Updated test: http/tests/websocket/tests/hybi/inspector/before-load.html

Restored functionality prior to r266467 so that the progressIdentifier (previously channelIdentifier) is
available from WebSocketChannel.

  • Modules/websockets/ThreadableWebSocketChannel.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::didCloseSocketStream):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::sendFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Reinstate a separate progress identifier for inspection
  • Modules/websockets/WebSocketChannelInspector.cpp:

(WebCore::progressIdentifier const):

  • Modules/websockets/WebSocketChannelInspector.h:
  • Support getting the progress identifier.
  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::enable):
(WebCore::InspectorNetworkAgent::webSocketForRequestId):

Source/WebKit:

Restored functionality prior to r266467 so that the progressIdentifier (previously channelIdentifier) is
available from WebSocketChannel.

  • WebProcess/Network/WebSocketChannel.h:

LayoutTests:

Updated test to check that sent and received frames are correctly associated with WebSockets that were open
before the Web Inspector was opened.

  • http/tests/websocket/tests/hybi/inspector/before-load-expected.txt:
  • http/tests/websocket/tests/hybi/inspector/before-load.html:
10:21 AM Changeset in webkit [270936] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase fast/css/text-overflow-input.html
https://bugs.webkit.org/show_bug.cgi?id=219959

Unreviewed test gardening

  • platform/mac/fast/css/text-overflow-input-expected.txt:
9:17 AM Changeset in webkit [270935] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

Unreviewed, reordering associated email addresses in
preparation for the GitHub migration.

  • Scripts/webkitpy/common/config/contributors.json:
6:55 AM Changeset in webkit [270934] by aestes@apple.com
  • 1 edit
    3 deletes in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback-expected.txt: Removed.
  • platform/mac-wk2/media/media-can-play-webm-expected.txt: Removed.
5:41 AM Changeset in webkit [270933] by Manuel Rego Casasnovas
  • 9 edits
    52 adds in trunk/LayoutTests

[selectors] Update WPT test suite
https://bugs.webkit.org/show_bug.cgi?id=219958

Reviewed by Carlos Alberto Lopez Perez.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-001-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-001.html: Added.
  • web-platform-tests/css/selectors/focus-visible-002-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-002.html: Added.
  • web-platform-tests/css/selectors/focus-visible-003-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-003.html: Added.
  • web-platform-tests/css/selectors/focus-visible-004-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-004.html: Added.
  • web-platform-tests/css/selectors/focus-visible-012-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-012.html: Added.
  • web-platform-tests/css/selectors/hover-002-expected.txt: Added.
  • web-platform-tests/css/selectors/hover-002.html: Added.
  • web-platform-tests/css/selectors/invalidation/not-001-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/not-001.html: Added.
  • web-platform-tests/css/selectors/invalidation/not-002-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/not-002.html: Added.
  • web-platform-tests/css/selectors/invalidation/w3c-import.log:
  • web-platform-tests/css/selectors/is-default-ns-001-expected.html: Added.
  • web-platform-tests/css/selectors/is-default-ns-001.html: Added.
  • web-platform-tests/css/selectors/is-default-ns-002-expected.html: Added.
  • web-platform-tests/css/selectors/is-default-ns-002.html: Added.
  • web-platform-tests/css/selectors/is-default-ns-003-expected.html: Added.
  • web-platform-tests/css/selectors/is-default-ns-003.html: Added.
  • web-platform-tests/css/selectors/is-specificity-shadow-expected.txt: Added.
  • web-platform-tests/css/selectors/is-specificity-shadow.html: Added.
  • web-platform-tests/css/selectors/not-complex-expected.txt: Added.
  • web-platform-tests/css/selectors/not-complex.html: Added.
  • web-platform-tests/css/selectors/not-default-ns-001-expected.html: Added.
  • web-platform-tests/css/selectors/not-default-ns-001.html: Added.
  • web-platform-tests/css/selectors/not-default-ns-002-expected.html: Added.
  • web-platform-tests/css/selectors/not-default-ns-002.html: Added.
  • web-platform-tests/css/selectors/not-default-ns-003-expected.html: Added.
  • web-platform-tests/css/selectors/not-default-ns-003.html: Added.
  • web-platform-tests/css/selectors/not-specificity-expected.txt: Added.
  • web-platform-tests/css/selectors/not-specificity.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-not-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-not.html:
  • web-platform-tests/css/selectors/selectors-dir-selector-auto-expected.txt: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-auto.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-001-expected.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-001.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-002-expected.xht: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-002.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-003-expected.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-003.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-004-expected.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-change-004.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-ltr-002-expected.xht: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-ltr-002.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-ltr-003-expected.xht: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-ltr-003.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-querySelector-expected.txt: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-querySelector.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-white-space-001-expected.html: Added.
  • web-platform-tests/css/selectors/selectors-dir-selector-white-space-001.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:

LayoutTests:

  • TestExpectations: Mark failures associated with the relevant bugs. Two focus-visible tests are skipped, as the only test they have is failing with different messages in each platform because the outline color varies.
  • platform/ios/TestExpectations: Skip 2 tests that don't work in iOS.
  • tests-options.json:
3:18 AM Changeset in webkit [270932] by commit-queue@webkit.org
  • 13 edits in trunk/Source

Make FontCascade::CodePath an enum class
https://bugs.webkit.org/show_bug.cgi?id=219947

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-17
Reviewed by Alex Christensen.

Source/WebCore:

Make FontCascade::CodePath an enum class. Besides the
usual enum class benefits, one additional nice thing
is that it removed the need for the "Complex" ifdef.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFontAndText):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

  • platform/graphics/ComplexTextController.cpp:

(WebCore::TextLayout::isNeeded):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::layoutText const):
(WebCore::FontCascade::displayListForTextRun const):
(WebCore::FontCascade::widthOfTextRange const):
(WebCore::FontCascade::width const):
(WebCore::FontCascade::widthForSimpleText const):
(WebCore::FontCascade::adjustSelectionRectForText const):
(WebCore::FontCascade::offsetForPosition const):
(WebCore::FontCascade::codePath const):
(WebCore::FontCascade::characterRangeCodePath):

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/win/WebCoreTextRenderer.cpp:

(WebCore::WebCoreSetAlwaysUsesComplexTextCodePath):
(WebCore::WebCoreAlwaysUsesComplexTextCodePath):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):
(WebCore::RenderText::computeCanUseSimpleFontCodePath const):

  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):

Source/WebKit:

Adapt to enum class change.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setAlwaysUsesComplexTextCodePath):

Source/WebKitLegacy/mac:

Adapt to enum class change.

  • WebView/WebView.mm:

(+[WebView _setAlwaysUsesComplexTextCodePath:]):

3:13 AM Changeset in webkit [270931] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

Make MixedContentChecker stateless
https://bugs.webkit.org/show_bug.cgi?id=219771

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-17
Reviewed by Alex Christensen.

Make MixedContentChecker stateless, it only needs the frame
in a few cased which we can just pass as a parameter. Making
MixedContentChecker stateless means that FrameLoader does
not have to know it.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::parseAttribute):

  • html/parser/XSSAuditor.cpp:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):

  • loader/FrameLoader.h:
  • loader/MixedContentChecker.cpp:

(WebCore::logWarning):
(WebCore::MixedContentChecker::canDisplayInsecureContent):
(WebCore::MixedContentChecker::canRunInsecureContent):
(WebCore::MixedContentChecker::checkFormForMixedContent):
(WebCore::MixedContentChecker::checkForMixedContentInFrameTree):
(WebCore::MixedContentChecker::MixedContentChecker): Deleted.
(WebCore::MixedContentChecker::client const): Deleted.
(WebCore::MixedContentChecker::canDisplayInsecureContent const): Deleted.
(WebCore::MixedContentChecker::canRunInsecureContent const): Deleted.
(WebCore::MixedContentChecker::checkFormForMixedContent const): Deleted.
(WebCore::MixedContentChecker::logWarning const): Deleted.

  • loader/MixedContentChecker.h:
  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::pluginIsLoadable):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::checkInsecureContent const):

1:41 AM Changeset in webkit [270930] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Move service workers failures to GLIB.

Some of flaky failures have been passing consistently for the last
4000 revisions, so they're actually removed from test expectations.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:

Dec 16, 2020:

11:28 PM Changeset in webkit [270929] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Gardened several flaky failures.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:20 PM Changeset in webkit [270928] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Not using JITCage trampoline for non JITCage JSC
https://bugs.webkit.org/show_bug.cgi?id=219974

Reviewed by Tadeu Zagallo.

We avoid using JITCage trampoline in YarrJIT if JSC is not using JITCage.

  • llint/LowLevelInterpreter.asm:
  • yarr/YarrJIT.cpp:
  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::execute):

10:08 PM Changeset in webkit [270927] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. fast/text/simple-line-wordspacing.html is an image failure.

  • platform/wpe/TestExpectations:
8:48 PM Changeset in webkit [270926] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update several baselines of tests failing and update expectations.

  • platform/glib/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Update after r270882.
  • platform/glib/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Update after r270882.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Update after r270837.
  • platform/gtk/TestExpectations:
7:30 PM Changeset in webkit [270925] by Diego Pino Garcia
  • 1 edit
    2 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Add baseline after r270823.

  • platform/gtk/fast/media/mq-prefers-contrast-forced-value-expected.html: Added.
7:16 PM Changeset in webkit [270924] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Flaky crash under AudioBuffer::channelData() when running layout tests
https://bugs.webkit.org/show_bug.cgi?id=219914

Reviewed by Geoffrey Garen.

The issue was that AudioBuffer::channelData() returns a RefPtr<Float32Array>,
Float32Array not being ThreadSafeRefCounted. The AudioBuffers in ScriptProcessorNode
are constructed on the main thread but ScriptProcessorNode::process() was calling
AudioBuffer::channelData() on the audio rendering thread. This would do some
non-thread-safe refcounting churn which would cause the crashes.

To address the issue, I introduced AudioBuffer::rawChannelData() which returns
the data as a float*, without any refcounting. I ported ScriptProcessorNode::process()
to use AudioBuffer::rawChannelData() instead of AudioBuffer::channelData().

No new tests, covered by existing layout tests that are flakily crashing.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::rawChannelData):

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

(WebCore::ScriptProcessorNode::process):

6:46 PM Changeset in webkit [270923] by ysuzuki@apple.com
  • 10 edits
    4 adds in trunk

[JSC] Accept arbitrary module namespace identifier names
https://bugs.webkit.org/show_bug.cgi?id=217576
JSTests:

<rdar://problem/70416104>

Reviewed by Darin Adler.

  • modules/arbitrary-module-names.js: Added.
  • modules/arbitrary-module-names/export.js: Added.
  • modules/arbitrary-module-names/export2.js: Added.
  • stress/modules-syntax-error.js:
  • test262/config.yaml:

Source/JavaScriptCore:

<rdar://problem/70416104>

Reviewed by Darin Adler.

This patch implements arbitrary module namespace identifier names[1].
After this, we can export and import arbitrary module export names which are not valid as a variable identifier.
For example,

import { "delete" as deletedValue } from "./ok.js";

...

export {

deletedValue as "delete"

};

[1]: https://github.com/tc39/ecma262/pull/2154

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • parser/Parser.h:

Source/WebCore:

Reviewed by Darin Adler.

  • bindings/js/JSDOMConvertStrings.cpp:

(WebCore::hasUnpairedSurrogate): Deleted.

Source/WTF:

Reviewed by Darin Adler.

  • wtf/text/StringView.h:

(WTF::hasUnpairedSurrogate):

6:20 PM Changeset in webkit [270922] by Russell Epstein
  • 4 edits in branches/safari-611.1.9-branch

Revert r270664. rdar://problem/72408033

6:19 PM Changeset in webkit [270921] by Russell Epstein
  • 6 edits in branches/safari-611.1.9-branch

Revert r270665. rdar://problem/72408033

6:19 PM Changeset in webkit [270920] by Russell Epstein
  • 2 edits in branches/safari-611.1.9-branch/Source/JavaScriptCore

Revert r270700. rdar://problem/72408033

6:19 PM Changeset in webkit [270919] by Peng Liu
  • 34 edits in trunk

[Media in GPU Process][MSE] Add an IPC message BufferedSamplesForTrackId for testing purposes
https://bugs.webkit.org/show_bug.cgi?id=219956

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, fix a layout test failure.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::bufferedSamplesForTrackId):
(WebCore::SourceBuffer::bufferedSamplesForTrackID): Deleted.

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

(WebCore::SourceBufferPrivate::bufferedSamplesForTrackId):
(WebCore::SourceBufferPrivate::bufferedSamplesForTrackID): Deleted.

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::enqueuedSamplesForTrackID):

  • testing/Internals.cpp:

(WebCore::Internals::bufferedSamplesForTrackId):
(WebCore::Internals::bufferedSamplesForTrackID): Deleted.

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

Source/WebKit:

Implement SourceBufferPrivateRemote::bufferedSamplesForTrackId() with a new IPC message.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::bufferedSamplesForTrackId):

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

(WebKit::SourceBufferPrivateRemote::bufferedSamplesForTrackId):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:

LayoutTests:

The tests using internals.bufferedSamplesForTrackID() need to be updated since the function
is asynchronous now.

  • gpu-process/TestExpectations:
  • media/media-source/media-source-append-acb-no-frame-lost.html:
  • media/media-source/media-source-append-acb-tolerance.html:
  • media/media-source/media-source-append-overlapping-dts.html:
  • media/media-source/media-source-append-presentation-durations.html:
  • media/media-source/media-source-append-twice-overlapping-sync-frame.html:
  • media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html:
  • media/media-source/media-source-dropped-iframe.html:
  • media/media-source/media-source-overlapping-append.html:
  • media/media-source/media-source-overlapping-decodetime.html:
  • media/media-source/media-source-range-end-frame-not-removed.html:
  • media/media-source/media-source-range-start-frame-replaced.html:
  • media/media-source/media-source-remove-b-frame.html:
  • media/media-source/media-source-samples-out-of-order.html:
  • media/media-source/media-source-samples-resolution-change.html:
  • media/media-source/media-source-sequence-timestamps.html:
  • media/media-source/media-source-timeoffset.html:
  • media/media-source/media-source-timestampoffset-rounding-error.html:
  • media/media-source/media-source-timestampoffset-then-zero.html:
6:18 PM Changeset in webkit [270918] by Russell Epstein
  • 2 edits in branches/safari-611.1.9-branch/Source/JavaScriptCore

Revert r270719. rdar://problem/72408033

5:32 PM Changeset in webkit [270917] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a build fix for the latest Internal SDK

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
4:26 PM Changeset in webkit [270916] by Truitt Savell
  • 1 edit
    6 copies
    8 adds
    1 delete in trunk/LayoutTests

Remove LayoutTests/platform/mac-bigsur-wk1
https://bugs.webkit.org/show_bug.cgi?id=218359

Unreviewed test gardening

  • platform/mac-catalina-wk1/editing/selection/select-across-readonly-input-4-expected.txt: Copied from LayoutTests/platform/mac-bigsur-wk1/editing/selection/select-across-readonly-input-4-expected.txt.
  • platform/mac-catalina-wk1/editing/selection/select-across-readonly-input-5-expected.txt: Copied from LayoutTests/platform/mac-bigsur-wk1/editing/selection/select-across-readonly-input-5-expected.txt.
  • platform/mac-catalina-wk1/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Copied from LayoutTests/platform/mac-bigsur-wk1/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt.
  • platform/mac-wk1/editing/selection/select-across-readonly-input-4-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/editing/selection/select-across-readonly-input-4-expected.txt.
  • platform/mac-wk1/editing/selection/select-across-readonly-input-5-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/editing/selection/select-across-readonly-input-5-expected.txt.
  • platform/mac-wk1/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt.
4:11 PM Changeset in webkit [270915] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WTF

Cherry-pick r269930. rdar://problem/72298580

Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219030

Unreviewed build fix for macCatalyst.

  • wtf/PlatformHave.h:

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

4:11 PM Changeset in webkit [270914] by Alan Coon
  • 6 edits in branches/safari-610-branch/Source

Cherry-pick r269900. rdar://problem/72298580

Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219030

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-17
Reviewed by Antti Koivisto.

Fix compile for simulator builds.
Rename HAVE_CV_AGX_420_PIXEL_FORMAT_TYPES to
HAVE_COREVIDEO_COMPRESSED_PIXEL_FORMAT_TYPES to better reflect what the ifdef does.

Source/WebCore:

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp: (WebCore::pixelRangeFromPixelFormat): (WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):

Source/WebCore/PAL:

  • pal/spi/cf/CoreVideoSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

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

4:10 PM Changeset in webkit [270913] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source

Cherry-pick r269898. rdar://problem/72298580

Build fails on internal Catalina due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
https://bugs.webkit.org/show_bug.cgi?id=219026

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-17
Reviewed by Antti Koivisto.

Fix compile for macOS versions before Big Sur.

On macOS, only use the private header on Big Sur. On Catalina, use the
manual enums.

Regressed in:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]

  • pal/spi/cf/CoreVideoSPI.h:

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

3:14 PM Changeset in webkit [270912] by Kate Cheney
  • 13 edits in trunk/Source

Still can't login to my.playstation.com
https://bugs.webkit.org/show_bug.cgi?id=219900
<rdar://problem/72062985>

Reviewed by John Wilander.

Adapted from an original patch by John Wilander.

This is a temporary quirk to assist a high-traffic website while they
complete the large task of migrating away from login flows that
require third party cookies. This quirk will be removed when the site
is updated.

Source/WebCore:

Create a quirk to call the Storage Access API on behalf of Sony. This
case is unique because playstation.com requires storage access for 2
login domains: sony.com and sonyentertainmentnetwork.com. This patch
handles this by requesting storage access for both domains if either
domain is requested to avoid massive changes to the Storage Access
code to handle multiple domains at once.

This patch adjusts the quirk code in NetworkStorageSession to handle
multiple login domains for a single first party domain.

No new tests, site specific quirk.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

  • page/Quirks.cpp:

(WebCore::isPlaystationLoginElement):
(WebCore::Quirks::hasStorageAccessForAllLoginDomains):
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
Adjust the existing quirks to handle the new format of a HashSet of
login domains, and add the new playstation.com case.

  • page/Quirks.h:
  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::grantCrossPageStorageAccess):
(WebCore::NetworkStorageSession::hasStorageAccess const):
(WebCore::NetworkStorageSession::storageAccessQuirks):
(WebCore::NetworkStorageSession::loginDomainMatchesRequestingDomain):
(WebCore::NetworkStorageSession::loginDomainsForFirstParty):
(WebCore::NetworkStorageSession::findAdditionalLoginDomain):
Function to match up Sony login domains with one another at storage
endpoints and for prompting so we don't need to thread them through
all of the existing storage access code.

(WebCore::NetworkStorageSession::loginDomainForFirstParty): Renamed to be plural.

  • platform/network/NetworkStorageSession.h:

Adjusted existing quirk code to handle a HashSet of login domains
instead of a single domain.

Source/WebKit:

Create a quirk to call the Storage Access API on behalf of Sony.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::buildList):
(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm):

  • UIProcess/Cocoa/WKStorageAccessAlert.mm:

(WebKit::presentStorageAccessAlert):
Prompt for multiple domains if site-specific quirks are enabled and
either Sony login domain is being requested.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::hasCrossPageStorageAccess const):
(WebKit::WebResourceLoadObserver::setDomainsWithCrossPageStorageAccess):

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

(WebKit::WebPage::addDomainWithPageLevelStorageAccess):
Store both Sony login domains as having page level storage access if
quirks are enabled and the domain passed is one of the Sony login
domains. In this case we know that both login domains were prompted
for.

1:35 PM Changeset in webkit [270911] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.30.4

WPE WebKit 2.30.4

1:33 PM Changeset in webkit [270910] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.30.4.
1:21 PM Changeset in webkit [270909] by Russell Epstein
  • 2 edits in branches/safari-611.1.9-branch/Source/WebKit

Cherry-pick r270900. rdar://problem/72396877

REGRESSION (r270657) [AS Only] GGE: Netflix, YouTube, Amazon Prime, and Hulu fail to playback
https://bugs.webkit.org/show_bug.cgi?id=219954
<rdar://problem/72325887>

Reviewed by Per Arne Vollan.

Correct a syntax error in a sandbox rule added in r270657.

  • WebProcess/com.apple.WebProcess.sb.in:

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

1:20 PM Changeset in webkit [270908] by Russell Epstein
  • 7 edits in branches/safari-611.1.9-branch/Source

Cherry-pick r270872. rdar://problem/72396884

[Cocoa] Adopt -externalContentProtectionStatus
https://bugs.webkit.org/show_bug.cgi?id=219911

Reviewed by Eric Carlson.

Source/WebCore:

Adopt a new AVContentKeyRequest API which provides a "pending" status (in addition to usable/unusable).

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyRequestHasInsufficientProtectionForDisplayID const): Deleted.

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

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

1:07 PM Changeset in webkit [270907] by Chris Dumez
  • 17 edits
    1 delete in trunk/Source

[GPUProcess] Avoid doing an IPC per rendering quantum when using WebAudio
https://bugs.webkit.org/show_bug.cgi?id=219818

Reviewed by Geoff Garen.

Source/WebCore:

  • platform/audio/AudioDestination.h:

Make sure AudioDestination always gets destroyed on the main thread.

  • platform/audio/cocoa/CARingBuffer.cpp:

(WebCore::CARingBuffer::lastReadFrame const):
(WebCore::CARingBufferStorageVector::setLastReadFrame):
(WebCore::CARingBufferStorageVector::lastReadFrame const):
(WebCore::CARingBuffer::fetchIfHasEnoughData):
(WebCore::CARingBuffer::fetch):

  • platform/audio/cocoa/CARingBuffer.h:

Add API to CARingBuffer to query the last frame that the reader attempted to
read. This is helpful to make sure the writer keeps up with the reader and
does not stray too far ahead.

Source/WebKit:

Previously, the GPUProcess was sending an IPC to the WebProcess to request to rendering
of each quantum, which was very inefficient and a big regression compared to when we
do not use a GPUProcess.

To address the issue, we now start a rendering timer on the WebProcess side when rendering
starts, so that the WebProcess renders each quantum as needed, without needing an IPC from
the GPUProcess. Whenever a quantum is rendered, the WebProcess adds it to the RingBuffer
it shares with the GPUProcess.

To make sure that the WebProcess' writer keeps up with the GPUProcess' reader and that it
does not stray too far ahead, the writer keeps track of the last frame that the reader
attempted to read. It uses this information to try and stay a few rendering quantums ahead
of the GPUProcess, to avoid missed frames.

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

(WebKit::RemoteAudioDestination::audioSamplesStorageChanged):
(WebKit::RemoteAudioDestination::RemoteAudioDestination):
(WebKit::RemoteAudioDestination::render):

  • Platform/SharedMemory.h:

(WebKit::SharedMemory::protection const):

  • Shared/Cocoa/SharedRingBufferStorage.cpp:

(WebKit::SharedRingBufferStorage::sharedFrameBounds const):
(WebKit::SharedRingBufferStorage::setCurrentFrameBounds):
(WebKit::SharedRingBufferStorage::setLastReadFrame):
(WebKit::SharedRingBufferStorage::lastReadFrame const):

  • Shared/Cocoa/SharedRingBufferStorage.h:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::startRenderingThread):
(WebKit::RemoteAudioDestinationProxy::stopRenderingThreadIfNecessary):
(WebKit::RemoteAudioDestinationProxy::connectToGPUProcess):
(WebKit::RemoteAudioDestinationProxy::~RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::start):
(WebKit::RemoteAudioDestinationProxy::startRendering):
(WebKit::RemoteAudioDestinationProxy::stop):
(WebKit::RemoteAudioDestinationProxy::stopRenderingIfNecessary):
(WebKit::RemoteAudioDestinationProxy::renderQuantum):
(WebKit::RemoteAudioDestinationProxy::storageChanged):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:

(WebKit::RemoteAudioDestinationProxy::stopRenderingIfNecessary):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in: Removed.
12:57 PM Changeset in webkit [270906] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Debug][GStreamer] Crash in fast/mediastream/change-tracks-media-stream-being-played.html
https://bugs.webkit.org/show_bug.cgi?id=219437

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-12-16
Reviewed by Philippe Normand.

The crash was a product of a race condition where a new sample, either video or audio,
appeared after the track was already removed from the stream and the GStreamer's source was
already removed. The result was a segmentation fault when the sample observer is called,
since the observer is coupled with the GStreamer's source.

This fix consists of removing the observers as soon as the track is removed from the stream.

No new tests needed since it fix one.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcRemoveTrackObserver): New function.
(stopObservingTracks): Use new function.
(webkitMediaStreamSrcSetupSrc): Use track's type method rather than source's.

12:52 PM Changeset in webkit [270905] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION [iOS] Flaky GPU Process crash under -[RTCVideoEncoderH264 destroyCompressionSession]
https://bugs.webkit.org/show_bug.cgi?id=219899
<rdar://problem/72347652>

Reviewed by Alex Christensen.

We can no longer get the connection when needed as we are now operating in a background thread.
For that reason, capture the IPC connection in the lambda to make sure we have a valid IPC connection.
Remove LibWebRTCCodecsProxy when being closed instead of when being destroyed as well.

Covered by existing tests.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::~LibWebRTCCodecsProxy):
(WebKit::LibWebRTCCodecsProxy::close):
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::createEncoder):

12:51 PM Changeset in webkit [270904] by ysuzuki@apple.com
  • 3 edits in trunk/Tools

Use python3 in Tools/Scripts/dump-class-layout
https://bugs.webkit.org/show_bug.cgi?id=219945

Reviewed by Simon Fraser.

Newer LLDB python module only contains python3 version. So Tools/Scripts/dump-class-layout does not work.
This patch makes Tools/Scripts/dump-class-layout working with python3.

  • Scripts/dump-class-layout:

(webkit_build_dir): Deleted.
(main): Deleted.
(main.or): Deleted.

  • lldb/lldb_dump_class_layout.py:

(ClassLayoutBase.dump):
(LLDBDebuggerInstance.init):
(LLDBDebuggerInstance._get_first_file_architecture):
(LLDBDebuggerInstance.layout_for_classname):

12:42 PM Changeset in webkit [270903] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION (r270806): [iOS] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html is frequently failing
https://bugs.webkit.org/show_bug.cgi?id=219897
<rdar://problem/72346130>

Reviewed by Alex Christensen.

Merge https://github.com/web-platform-tests/wpt/pull/26926 to address test flakiness.

  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html:
12:41 PM Changeset in webkit [270902] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU process] Update TestExpectations to skip Layout tests crashes under encodeSingleObject()
https://bugs.webkit.org/show_bug.cgi?id=219955

Patch by Rini Patel <rini_patel@apple.com> on 2020-12-16
Reviewed by Tim Horton.

  • gpu-process/TestExpectations:
12:39 PM Changeset in webkit [270901] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Suppress the image extraction interaction while editing text
https://bugs.webkit.org/show_bug.cgi?id=219952
<rdar://problem/72390053>

Reviewed by Devin Rousso.

See radar and WebKitAdditions for more details.

  • UIProcess/ios/WKContentViewInteraction.h:

(WebKit::SuppressInteractionToken::SuppressInteractionToken):
(WebKit::SuppressInteractionToken::~SuppressInteractionToken):

Add a helper class to help facilitate the temporary removal of UIInteraction objects from a WKContentView.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setIsEditable:]):

Use the above helper class to temporarily remove the image extraction interaction while the user is editing
text (and is therefore depending on editable text interaction gestures). Note that we avoid unnecessarily
clearing out and resetting this member variable when changing focus between editable text fields.

(-[WKContentView _didStartProvisionalLoadForMainFrame]):

12:33 PM Changeset in webkit [270900] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (r270657) [AS Only] GGE: Netflix, YouTube, Amazon Prime, and Hulu fail to playback
https://bugs.webkit.org/show_bug.cgi?id=219954
<rdar://problem/72325887>

Reviewed by Per Arne Vollan.

Correct a syntax error in a sandbox rule added in r270657.

  • WebProcess/com.apple.WebProcess.sb.in:
12:04 PM Changeset in webkit [270899] by Fujii Hironori
  • 14 edits
    2 adds in trunk

[WinCairo] Enable USE_ANGLE
https://bugs.webkit.org/show_bug.cgi?id=219421

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWinCairo.cmake:

Source/ThirdParty/ANGLE:

  • CMakeLists.txt: Added entry_points_egl_ext.h to libglesv2_entry_points_headers.

Source/WebCore:

Switch GraphicsContextGLOpenGL implementation from old one
(GraphicsContextGLOpenGLES.cpp) to new one
(GraphicsContextGLANGLE.cpp), which is using ANGLE's internal API
and verification code, for WinCairo port. I will enable WebGL2 for
WinCairo in a follow-up patch.

GL_TEXTURE_RECTANGLE_ANGLE is not available for ANGLE D3D backend.
Use GL_TEXTURE_2D instead.

Add a new class WebCore::ANGLEContext by copying
Nicosia::GCGLANGLELayer::ANGLEContext. It'd be better to merge
them after GTK and WPE will also switch.

  • PlatformWin.cmake:
  • platform/TextureMapper.cmake:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::compileShader):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/ANGLEContext.cpp: Added.

(WebCore::ANGLEContext::errorString):
(WebCore::ANGLEContext::lastErrorString):
(WebCore::ANGLEContext::createContext):
(WebCore::ANGLEContext::ANGLEContext):
(WebCore::ANGLEContext::~ANGLEContext):
(WebCore::ANGLEContext::makeContextCurrent):
(WebCore::ANGLEContext::platformContext const):

  • platform/graphics/texmap/ANGLEContext.h: Added.
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::isGLES2Compliant const):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTarget):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:

LayoutTests:

  • platform/wincairo/TestExpectations:
11:14 AM Changeset in webkit [270898] by Alan Coon
  • 1 edit in branches/safari-610-branch/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp

Unreviewed build fix. rdar://problem/72298523

Missing imports. Partial cherry-pick of r266061.

10:31 AM Changeset in webkit [270897] by mark.lam@apple.com
  • 10 edits in branches/safari-610-branch

Cherry-pick r270686. rdar://problem/72321615

2020-12-11 Mark Lam <mark.lam@apple.com>

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

Reviewed by Robin Morisset.

  • assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::untagReturnAddress): (JSC::AbstractMacroAssembler::validateUntaggedPtr):
  • assembler/MacroAssemblerARM64E.h: (JSC::MacroAssemblerARM64E::untagReturnAddress): (JSC::MacroAssemblerARM64E::validateUntaggedPtr):
  • dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::reifyInlinedCallFrames):
  • ftl/FTLThunks.cpp: (JSC::FTL::genericGenerationThunkGenerator):
  • jit/CCallHelpers.h: (JSC::CCallHelpers::prepareForTailCallSlow):
  • jit/CallFrameShuffler.cpp: (JSC::CallFrameShuffler::prepareForTailCall):
  • jit/ThunkGenerators.cpp: (JSC::emitPointerValidation): (JSC::arityFixupGenerator):
  • llint/LLIntThunks.cpp: (JSC::LLInt::createTailCallGate): (JSC::LLInt::untagGateThunk):
  • wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::jsCallEntrypointSlow):
10:23 AM Changeset in webkit [270896] by Chris Fleizach
  • 5 edits in trunk

AX: Update list heuristics to include linked lists inside navigation containers
https://bugs.webkit.org/show_bug.cgi?id=193382
<rdar://problem/47233475>

Reviewed by Zalan Bujtas.

Source/WebCore:

If an unstyled list is inside a <nav> or a role=navigation, it should be marked
as an accessibility list.

Updated test: accessibility/list-detection2.html

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::determineAccessibilityRole):

LayoutTests:

  • accessibility/list-detection2-expected.txt:
  • accessibility/list-detection2.html:
9:28 AM Changeset in webkit [270895] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Cherry-pick usrsctp 355fb576b1a9dfef70fc0e158d66692662baaddc
https://bugs.webkit.org/show_bug.cgi?id=219937

Reviewed by Alex Christensen.

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:

(sctp_process_cookie_existing):

9:27 AM Changeset in webkit [270894] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Cherry-pick usrsctp 7dab23aa0d8db86fedd222a308067439b03fad0f
https://bugs.webkit.org/show_bug.cgi?id=219936
<rdar://problem/72304588>

Reviewed by Alex Christensen.

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:

(sctp_process_cookie_existing):

9:23 AM Changeset in webkit [270893] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitscmpy] Include remote directories when packaging
https://bugs.webkit.org/show_bug.cgi?id=219927
<rdar://problem/72362529>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/setup.py: Include remote directories.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
8:16 AM Changeset in webkit [270892] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Make FrameView::m_customSizeForResizeEvent an Optional<IntSize>
https://bugs.webkit.org/show_bug.cgi?id=219931

Reviewed by Zalan Bujtas.

Replace bool + IntSize with an Optional<IntSize>.

  • page/FrameView.cpp:

(WebCore::FrameView::sizeForResizeEvent const):
(WebCore::FrameView::setCustomSizeForResizeEvent):

  • page/FrameView.h:
8:13 AM Changeset in webkit [270891] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][BFC] Non-quantitative values such as auto and min-content are not influenced by the box-sizing property
https://bugs.webkit.org/show_bug.cgi?id=219944

Reviewed by Antti Koivisto.
Source/WebCore:

See https://www.w3.org/TR/css-sizing-3/#box-sizing

Test: fast/layoutformattingcontext/max-content-and-box-sizing-simple.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedWidth):

LayoutTests:

Need to fix it in RenderBox first to be able to geometry-test it (webkit.org/b/219687).

  • fast/layoutformattingcontext/max-content-and-box-sizing-simple-expected.html: Added.
  • fast/layoutformattingcontext/max-content-and-box-sizing-simple.html: Added.
  • platform/mac-wk2/TestExpectations:
8:12 AM Changeset in webkit [270890] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Disable the WebM format reader in configurations where the plug-in will fail to load
https://bugs.webkit.org/show_bug.cgi?id=219938

Reviewed by Eric Carlson.

The user default for loading an ad-hoc code-signed WebM format reader plug-in is not
respected in customer installs of macOS, leaving no known way to load the plug-in in an
engineering build running on a customer OS variant. Fixing this is tracked by
rdar://72320419, but for now we must disable the plug-in for this configuration.

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

(WebCore::isFormatReaderAvailable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsTypeAndCodecs):

8:03 AM Changeset in webkit [270889] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Calls to setFixedLayoutSize() should not be inside ENABLE(TEXT_AUTOSIZING)
https://bugs.webkit.org/show_bug.cgi?id=219932

Reviewed by Wenson Hsieh.

We always want to call setFixedLayoutSize(), whether or not ENABLE(TEXT_AUTOSIZING) is defined.

For code simplicity, make resetTextAutosizing() an empty function when ENABLE(TEXT_AUTOSIZING)
is not defined.

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

(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::resetTextAutosizing):
(WebKit::WebPage::viewportConfigurationChanged):

5:47 AM Changeset in webkit [270888] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix stale assertions
https://bugs.webkit.org/show_bug.cgi?id=219847

After r270764, HostFunctionPtrTag and CustomAccessorPtrTag are categorized as Native ones.
However, in non-JIT-caged environment, still they are used as JIT ones. Then, we are getting
stale assertions. Several other tags are showing similar things for non JIT environments etc.
Add Options::useJITCage() check since this caller/callee type is only valid in JIT Cage environment.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::call):
(JSC::MacroAssemblerARM64E::farJump):

5:35 AM Changeset in webkit [270887] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Add sandbox parameter for message filter entitlement status
https://bugs.webkit.org/show_bug.cgi?id=219852
<rdar://problem/72145560>

Reviewed by Brent Fulgham.

Add sandbox parameter to determine whether the WebContent process has message filter entitlement.
This parameter will be used in the sandbox to enable message filtering.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox):

  • WebProcess/com.apple.WebProcess.sb.in:
4:55 AM Changeset in webkit [270886] by Antti Koivisto
  • 9 edits in trunk

Remove simpleUserAgentStyleSheet (to fix flaky fast/lists/001.html and fast/lists/001-vertical.html)
https://bugs.webkit.org/show_bug.cgi?id=218995
<rdar://problem/71452387>

Reviewed by Antoine Quint.

Source/WebCore:

The simpleUserAgentStyleSheet optimization allows WebKit to load a very simple version of the user agent
stylesheet as long as the document is very simple too (mostly just <div>/<span>). It was implemented
to support certain non-web use cases a long time ago when the cost of simply parsing the main stylesheet was
significant.

It can cause problems like seen here when it is not fully in-sync with the real stylesheet. The ways it may be out
of sync can be pretty obscure.

The optimization hasn't been useful for a while now. Let's just remove it instead of continuing fix problems caused by it.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchUARules):

  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::Resolver):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::initDefaultStyleSheet):
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):
(WebCore::Style::elementCanUseSimpleDefaultStyle): Deleted.
(WebCore::Style::UserAgentStyle::initDefaultStyle): Deleted.
(WebCore::Style::UserAgentStyle::loadFullDefaultStyle): Deleted.
(WebCore::Style::UserAgentStyle::loadSimpleDefaultStyle): Deleted.

  • style/UserAgentStyle.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
12:59 AM Changeset in webkit [270885] by youenn@apple.com
  • 5 edits
    2 adds in trunk

Remove ILBC audio codec as WebRTC audio codec
https://bugs.webkit.org/show_bug.cgi?id=219912
<rdar://problem/72302868>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:

Compile out ILBC audio codec.

LayoutTests:

  • webrtc/audio-capabilities-expected.txt: Added.
  • webrtc/audio-capabilities.html: Added.
12:30 AM Changeset in webkit [270884] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Make sure to correctly initialize the vpcC configuration in RTCVideoDecoderVTBVP9
https://bugs.webkit.org/show_bug.cgi?id=219782

Reviewed by Eric Carlson.

We need to initialize the configuration record based on the frame header.
We do so for every key frame.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:

(convertSubsamplingXYToChromaSubsampling):
(-[RTCVideoDecoderVTBVP9 startDecodeWithNumberOfCores:]):
(-[RTCVideoDecoderVTBVP9 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
(-[RTCVideoDecoderVTBVP9 decodeData:size:timeStamp:]):

12:28 AM Changeset in webkit [270883] by youenn@apple.com
  • 3 edits
    3 adds in trunk

Expose SFrameTransform to DedicatedWorker
https://bugs.webkit.org/show_bug.cgi?id=219890

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/wpt/webrtc/sframe-transform-in-worker.html

  • Modules/mediastream/RTCRtpSFrameTransform.idl:

LayoutTests:

  • http/wpt/webrtc/sframe-transform-in-worker-expected.txt: Added.
  • http/wpt/webrtc/sframe-transform-in-worker.html: Added.
  • http/wpt/webrtc/sframe-transform.js: Added.

(SFrameRTCRtpTransformer):
(SFrameRTCRtpTransformer.prototype.start):

12:27 AM Changeset in webkit [270882] by youenn@apple.com
  • 4 edits in trunk/Source

Make sure WebKit WebSocketChannel handle suspend/resume correctly
https://bugs.webkit.org/show_bug.cgi?id=219910

Reviewed by Alex Christensen.

Source/WebCore:

Covered by http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html
and http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html with NSURLSession WebSocket code path enabled.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::resume):
In case resume is called and there are some events to dispatch, start the timer
even if the channel is not null.

Source/WebKit:

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::fail):
Make sure fail triggers close event if page resumes.

Note: See TracTimeline for information about the timeline view.