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

Timeline



Oct 17, 2020:

10:28 PM Changeset in webkit [268652] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r25430): Fix -Wstring-concatenation warning from open source clang
<https://webkit.org/b/217884>

Reviewed by Alexey Proskuryakov.

  • WebView/WebPreferences.mm:

(cacheModelForMainBundle):

  • Add missing comma to fix unwanted string concatenation.
5:48 PM Changeset in webkit [268651] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove "lazy offset" optmization from Range to prepare to derive it from SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=217878

Reviewed by Sam Weinig.

Rysouke has suggested that we change Range so it can derive from SimpleRange.
Specifically, AbstractRange will derive from SimpleRange, and both StaticRange
and Range will continue to derive from that, and almost all functions will be
non-virtual. Doing this means we will lose the likely-unimportant "lazy offset"
that Range has today, where boundary point offsets are only computed on demand.
This patch removes that optimization without changing anything else, so we can
do performance tests and bisecting on just this part of the change.

  • dom/RangeBoundaryPoint.h: Rename m_offset and m_childBefore and don't use

an Optional for the offset any more.

5:46 PM Changeset in webkit [268650] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed fix for r268640
https://bugs.webkit.org/show_bug.cgi?id=217883

It seems I made a late adjustment that test262 was unhappy with; this reverts just that line.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

4:43 PM Changeset in webkit [268649] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r191637): Fix -Wmisleading-indentation warnings in open source clang
<https://webkit.org/b/217882>

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::accessibilityAttributeValue):

  • Fix indentation of source to match what it is doing.
1:33 PM Changeset in webkit [268648] by Darin Adler
  • 19 edits
    3 copies
    1 add in trunk

Add AbstractRange
https://bugs.webkit.org/show_bug.cgi?id=217846

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/idlharness.window-expected.txt:

Updated test result for progression.

Source/WebCore:

This makes us more accurately match the DOM specification, makes Range
and StaticRange objects slightly bigger since they now have a virtual
table pointer, and makes the AbstractRange methods a bit slower to call
from JavaScript since they are backed by C++ virtual functions.

  • CMakeLists.txt: Added AbstractRange files.
  • DerivedSources-input.xcfilelist: Ditto.
  • DerivedSources-output.xcfilelist: Ditto.
  • DerivedSources.make: Ditto.
  • Headers.cmake: Ditto.
  • Sources.txt: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.

Also removed reference to non-existent JSAudioNodeCustom.cpp and moved
JSStaticRange file from the Events group into the Ranges group.

  • bindings/js/JSAbstractRangeCustom.cpp: Added.

(WebCore::toJS): Added. Just the default implementation. Would be
nice if we did not have to write this.
(WebCore::toJSNewlyCreated): Make either a StaticRange or Range
wrapper depending on whether this is a live range or not.

  • bindings/js/JSEventCustom.cpp: Removed lots of unneeded includes.

(WebCore::toJS): Stopped using "using namespace JSC".

  • bindings/js/WebCoreBuiltinNames.h: Added AbstractRange.
  • dom/AbstractRange.cpp: Added.

(WebCore::makeSimpleRange): Added.

  • dom/AbstractRange.h: Added.
  • dom/AbstractRange.idl: Added.
  • dom/Range.h: Changed to derive from AbstractRange instead of

from RefCounted. Also marked this final since it's now polymorphic.
Marked all the functions that override final as well, to check that
they correctly override the virtual functions in the base class.
Added private isLiveRange function override that returns true.
Added SPECIALIZE_TYPE_TRAITS_BEGIN/END so we can do is<Range>.

  • dom/Range.idl: Removed ImplementationLacksVTable. Added

JSGenerateToNativeObject. Inherit from AbstractRange.
Removed the 5 attribute getters that are now inherited from AbstractRange.

  • dom/StaticRange.h: Changed to derive from AbstractRange instead of

from RefCounted. Also marked this final since it's now polymorphic.
Added functions to override the ones from StaticRange, calling through
to the ones from SimpleRange (I thought there was a way to do this
with using, but I couldn't figure that out). Added private isLiveRange
function override that returns false. Added SPECIALIZE_TYPE_TRAITS_BEGIN/END
so we can do is<StaticRange>.

  • dom/StaticRange.idl: Removed EnabledBySetting=InputEvents since

this should now always be included. I think we should probably remove the
InputEvents setting now entirely. Removed ImplementationLacksVTable.
Added JSGenerateToNativeObject. Inherit from AbstractRange.
Removed all 5 attribute getters, which are now inherited from AbstractRange.

11:30 AM Changeset in webkit [268647] by weinig@apple.com
  • 6 edits
    4 adds in trunk/Source/WebKitLegacy

Source/WebKitLegacy:
[Preferences] Add infrastructure for generating preferences for Windows WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217876

Reviewed by Simon Fraser.

  • PlatformWin.cmake:

Add generation of WebPreferences.

Source/WebKitLegacy/win:
[Preferences] Add infrastructure for generating preferences for WWindows WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217876

Reviewed by Simon Fraser.

  • Scripts: Added.
  • Scripts/PreferencesTemplates: Added.
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb: Added.
  • Scripts/PreferencesTemplates/WebViewPreferencesChangedGenerated.cpp.erb: Added.

Adds mostly empty generated files to establish infrastructure for generation.

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

  • WebView.h:

Adopt generated files, which currently don't do anything.

11:28 AM Changeset in webkit [268646] by weinig@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Convert preferences in WebPreferencesPrivate.h to use @property syntax to make them more manageable
https://bugs.webkit.org/show_bug.cgi?id=217877

Reviewed by Simon Fraser.

  • WebView/WebPreferencesPrivate.h:

Switch to using the @property syntax. No behavior change intended, just a cleanup.

10:00 AM Changeset in webkit [268645] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Incorrect inline level box geometry
https://bugs.webkit.org/show_bug.cgi?id=217875

Reviewed by Antti Koivisto.

While the generated runs have the correct geometry (they are painted at the correct position), the associated box
geometry is incorrect which results in broken render tree dumps and incorrect geometry related DOM values.
In this patch we use the correct LineBox API to get the InlineLevelBox's geometry (LineBox::InlineLevelBox::logicalRect is relative to the parent inline box and not relative to the line box).

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

7:36 AM Changeset in webkit [268644] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Atomic inline level box run height includes the vertical margin
https://bugs.webkit.org/show_bug.cgi?id=217873

Reviewed by Antti Koivisto.

RenderBox::setLocation takes the border box location. Let's not include the margin before value.
(Atomic inline level box runs include the margin box per spec, see https://www.w3.org/TR/css-inline-3/#line-layout)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

7:20 AM Changeset in webkit [268643] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant InlineFormattingContext::Geometry::LineRectAndLineBoxOffset
https://bugs.webkit.org/show_bug.cgi?id=217872

Reviewed by Antti Koivisto.

After webkit.org/b/217832, the line box offset is always 0 (line space offsetting has moved to the inline box alignment).

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

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

(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const):

6:30 AM Changeset in webkit [268642] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce layout bounds based vertical alignment
https://bugs.webkit.org/show_bug.cgi?id=217832

Reviewed by Antti Koivisto.

This patch introduces the layout bounds concept on the inline boxes.
It help with implementing https://www.w3.org/TR/css-inline-3/#line-layout (2.2. Layout Within Line Boxes)
where layout bounds are used extensively (essentially the layout bound drives the inline box's aligned vertical
position within the line box -as opposed to its logical height. Though they may match in many cases.)

With this patch nested inline boxes are positioned relative to their parent inline boxes and
LineBox::logicalRectForInlineLevelBox/logicalRectForTextRun resolves them to be relative to the line box (which then used for
generating display inline runs with relative to the line coordinates).

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):
(WebCore::Layout::InlineFormattingContext::Geometry::computedLineLogicalRect const):
(WebCore::Layout::LineBoxBuilder::adjustInlineBoxesLogicalHeight): Deleted.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::height const):
(WebCore::Layout::LineBox::InlineLevelBox::setLayoutBounds):
(WebCore::Layout::LineBox::InlineLevelBox::layoutBounds const):
(WebCore::Layout::LineBox::InlineLevelBox::lineSpacing const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLineSpacing): Deleted.

5:21 AM Changeset in webkit [268641] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Skip renderers with self-painting layers in painting code
https://bugs.webkit.org/show_bug.cgi?id=217871

Reviewed by Zalan Bujtas.

Fixes fast/images/exif-orientation-background.html and similar.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

2:59 AM Changeset in webkit [268640] by Ross Kirsling
  • 25 edits
    1 move in trunk

Ensure %TypedArray% essential internal methods adhere to spec
https://bugs.webkit.org/show_bug.cgi?id=217854

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-prototype-splice-making-typed-array.js:
  • stress/array-species-config-array-constructor.js:
  • stress/delete-property-dfg-inline.js:
  • stress/float32array-out-of-bounds.js:
  • stress/put-direct-index-broken-2.js:
  • stress/typedarray-access-monomorphic-neutered.js:
  • stress/typedarray-access-neutered.js:
  • stress/typedarray-configure-index.js:
  • stress/typedarray-functions-with-neutered.js:
  • stress/typedarray-getownproperty.js: Renamed from JSTests/stress/typedarray-getownproperty-not-configurable.js.
  • stress/typed-array-canonical-numeric-index-string.js:

Adjust tests.

  • test262/expectations.yaml:

Address all test failures under built-ins/TypedArrayConstructors/internals.
Note that there are a slew of corrections needed for these test cases,
which were discovered in the course of working on this patch:
https://github.com/tc39/test262/pull/2833#issuecomment-709635850
Accordingly, these remaining lines should all disappear in the future.

Source/JavaScriptCore:

This patch addresses https://github.com/tc39/ecma262/pull/2164,
which aligns detached buffer semantics in typed arrays with web reality.

In particular:

This patch furthermore ensures that all of these essential internal methods have a spec-perfect implementation.

Note that there are a couple of interesting ripple effects here:

  • The fill(), sort(), and set() methods should throw explicitly, but we'd been letting Get throw instead.
  • Other callback-taking methods should *not* throw anymore; they only did so implicitly via Get and Set.
  • builtins/TypedArrayPrototype.js:

(fill):
(sort):

  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

  • runtime/JSTypedArrays.cpp:

LayoutTests:

  • fast/canvas/webgl/arraybuffer-transfer-of-control.html:
  • js/dom/dfg-typed-array-neuter-expected.txt:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/dom/script-tests/dfg-typed-array-neuter.js:
  • js/resources/getOwnPropertyDescriptor.js:

Adjust tests.

1:16 AM Changeset in webkit [268639] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] flatpakutils.py reports "KeyError: 'gcc'" error if using with icecc and toolchains aren't generated yet
https://bugs.webkit.org/show_bug.cgi?id=217799

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-17
Reviewed by Fujii Hironori.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Gracefully exit with an error message when the icecc
configuration failed to complete.

12:06 AM Changeset in webkit [268638] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION(r268561): Synthetic oblique text is drawn upside-down
https://bugs.webkit.org/show_bug.cgi?id=217867
<rdar://problem/70400846>

Reviewed by Darin Adler.

Source/WebCore:

I made a typo.

Test: fast/text/synthetic-oblique.html

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::syntheticObliqueAngle):

  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::computeOverallTextMatrix):

LayoutTests:

  • fast/text/synthetic-oblique-expected.html: Added.
  • fast/text/synthetic-oblique.html: Added.

Oct 16, 2020:

11:46 PM Changeset in webkit [268637] by commit-queue@webkit.org
  • 16 edits
    3 moves in trunk/Source

Source/WebCore:
[GPU Process] Introduce RemoteResourceCache to manage the resources in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=217554

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-16
Reviewed by Simon Fraser.

Add a new virtual method named ImageBuffer::flushDisplayList() which
applies a DisplayList to the ImageBuffer::context().

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::flushDisplayList):

Source/WebKit:
[GPU Process] Introduce RemoteResourceCacheProxy to manage the resources in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=217554

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-16
Reviewed by Simon Fraser.

RemoteResourceCache will be responsible for caching the remote resources.
RemoteRenderingBackend will delegate all the resource caching to its
RemoteResourceCache.

We can get rid of RemoteImageBufferMessageHandler because all it does is
is sending messages to WebProcess. Removing it will simplify the interface
of RemoteImageBuffer. Sending the messages will be moved to RemoteRenderingBackend.

Rename flushDrawingContext() to flushDisplayList() because the name is
confusing. This function flushes a DisplayList to the context. No
DrawingContext is involved here and there is another function with the
same name which does not take any argument.

Rename ImageBufferFlushIdentifier to DisplayListFlushIdentifier to make
more general name and be ready for GPU DOM rendering.

Rename the RemoteRenderingBackendProxy messages: CreateImageBufferBackend
and CommitImageBufferFlushContext to be ImageBufferBackendWasCreated and
FlushDisplayListWasCommitted. We need to include passive verbs in them to
reflect that the actions were taken place in the GPU Process. They are
sent only to inform the Web Process with the current state.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::RemoteImageBuffer):
(WebKit::RemoteImageBuffer::apply):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::gpuConnectionToWebProcess const):
(WebKit::RemoteRenderingBackend::imageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackend::flushDisplayListWasCommitted):
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::flushDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackend::getImageData):
We should call the completion handler even if the ImageBuffer was not found.

(WebKit::RemoteRenderingBackend::releaseRemoteResource):
(WebKit::RemoteRenderingBackend::flushImageBufferDrawingContext): Deleted.
(WebKit::RemoteRenderingBackend::flushImageBufferDrawingContextAndCommit): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::renderingBackendIdentifier const): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • GPUProcess/graphics/RemoteResourceCache.cpp: Renamed from Source/WebKit/GPUProcess/graphics/RemoteImageBufferMessageHandler.cpp.

(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cachedImageBuffer):
(WebKit::RemoteResourceCache::releaseRemoteResource):

  • GPUProcess/graphics/RemoteResourceCache.h: Renamed from Source/WebKit/GPUProcess/graphics/RemoteImageBufferMessageHandler.h.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/DisplayListFlushIdentifier.h: Renamed from Source/WebKit/WebProcess/GPU/graphics/ImageBufferFlushIdentifier.h.
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.cpp:

(WebKit::RemoteImageBufferMessageHandlerProxy::waitForImageBufferBackendWasCreated):
(WebKit::RemoteImageBufferMessageHandlerProxy::waitForFlushDisplayListWasCommitted):
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDisplayList):
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDisplayListAndWaitCommit):
(WebKit::RemoteImageBufferMessageHandlerProxy::commitFlushContext):
(WebKit::RemoteImageBufferMessageHandlerProxy::waitForCreateImageBufferBackend): Deleted.
(WebKit::RemoteImageBufferMessageHandlerProxy::waitForCommitImageBufferFlushContext): Deleted.
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDrawingContext): Deleted.
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDrawingContextAndWaitCommit): Deleted.

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::waitForImageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackendProxy::waitForFlushDisplayListWasCommitted):
(WebKit::RemoteRenderingBackendProxy::imageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackendProxy::flushDisplayListWasCommitted):
(WebKit::RemoteRenderingBackendProxy::waitForCreateImageBufferBackend): Deleted.
(WebKit::RemoteRenderingBackendProxy::waitForCommitImageBufferFlushContext): Deleted.
(WebKit::RemoteRenderingBackendProxy::createImageBufferBackend): Deleted.
(WebKit::RemoteRenderingBackendProxy::commitImageBufferFlushContext): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
9:55 PM Changeset in webkit [268636] by Wenson Hsieh
  • 6 edits in trunk

Add system trace points for flushing remote image buffers
https://bugs.webkit.org/show_bug.cgi?id=217853

Reviewed by Simon Fraser.

Source/WebKit:

Add trace points to capture drawing context flushes. This encapsulates time spent encoding display lists in
preparation for IPC.

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.cpp:

(WebKit::RemoteImageBufferMessageHandlerProxy::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDrawingContextAndWaitCommit):

Source/WTF:

See WebKit ChangeLog for more details.

  • wtf/SystemTracing.h:

Tools:

See WebKit ChangeLog for more details.

  • Tracing/SystemTracePoints.plist:
9:39 PM Changeset in webkit [268635] by Devin Rousso
  • 27 edits in trunk/Source

Web Inspector: rename Highlight so it doesn't conflict with CSS Highlight
https://bugs.webkit.org/show_bug.cgi?id=217858

Reviewed by Megan Gardner.

No new tests as there is no behavior change since this is purely a rename.

Source/WebCore:

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::setDataFromConfig): Added.
(WebCore::Highlight::Highlight): Deleted.
(WebCore::Highlight::setDataFromConfig): Deleted.

  • inspector/InspectorOverlay.cpp:

(WebCore::buildRendererHighlight):
(WebCore::buildNodeHighlight):
(WebCore::buildQuadHighlight):
(WebCore::quadToPath):
(WebCore::drawOutlinedQuadWithClip):
(WebCore::drawOutlinedQuad):
(WebCore::drawFragmentHighlight):
(WebCore::drawShapeHighlight):
(WebCore::InspectorOverlay::getHighlight const):
(WebCore::InspectorOverlay::highlightNodeList):
(WebCore::InspectorOverlay::highlightNode):
(WebCore::InspectorOverlay::highlightQuad):
(WebCore::InspectorOverlay::drawQuadHighlight):
(WebCore::InspectorOverlay::drawBounds):
(WebCore::InspectorOverlay::drawElementTitle):

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

(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
(WebCore::InspectorDOMAgent::highlightNode):
(WebCore::InspectorDOMAgent::highlightNodeList):
(WebCore::InspectorDOMAgent::highlightFrame):

  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::getHighlight const):

  • testing/Internals.cpp:

(WebCore::Internals::inspectorHighlightRects):

Source/WebKit:

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

(IPC::ArgumentCoder<InspectorOverlay::Highlight>::encode): Added.
(IPC::ArgumentCoder<InspectorOverlay::Highlight>::decode): Added.
(IPC::ArgumentCoder<Highlight>::encode): Deleted.
(IPC::ArgumentCoder<Highlight>::decode): Deleted.

  • WebProcess/Inspector/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::highlight):

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

(WebKit::WebPage::showInspectorHighlight):

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

(-[WKContentView _showInspectorHighlight:]):

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

(WebKit::WebPageProxy::showInspectorHighlight):

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

(WebKit::PageClientImpl::showInspectorHighlight):

  • UIProcess/Inspector/ios/WKInspectorHighlightView.h:
  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]):
(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):

Source/WebKitLegacy/mac:

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView _layoutForNodeHighlight:parent:]):
(-[WebNodeHighlightView _layoutForRectsHighlight:parent:]):
(-[WebNodeHighlightView layoutSublayers:]):

9:34 PM Changeset in webkit [268634] by Devin Rousso
  • 4 edits
    2 adds in trunk

Web Inspector: REGRESSION(r266669): DOMBreakpoint.js:106:23: CONSOLE ASSERT ERROR domNode should not change once set
https://bugs.webkit.org/show_bug.cgi?id=217865

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/DOMBreakpoint.js:

(WI.DOMBreakpoint.prototype.set domNode):
Adjust the assertion such that null is allowed if _domNode is already null.

  • UserInterface/Base/Utilities.js:

(xor): Added.
Global utility function for doing a non-bitwise or that returns false if both values are
truthy/falsy and the truthy value if only one is truthy.

LayoutTests:

  • inspector/unit-tests/utilities.html: Added.
  • inspector/unit-tests/utilities-expected.txt: Added.
9:21 PM Changeset in webkit [268633] by rniwa@webkit.org
  • 6 edits in trunk

IPC testing API should expose whether a given IPC message has sync reply or not
https://bugs.webkit.org/show_bug.cgi?id=217861

Reviewed by Darin Adler.

Source/WebKit:

This patch adds IPC.messages.*.isSync to indicate whether a given IPC message has a sync reply or not.

Test: TestWebKitAPI.IPCTestingAPI.AlertIsSyncMessage

  • Platform/IPC/MessageArgumentDescriptions.h:
  • Scripts/webkit/messages.py:

(generate_js_value_conversion_function): Fixed a typo.
(generate_js_argument_descriptions): Ditto.
(generate_message_argument_description_implementation): Generate messageIsSync function.

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::JSIPC::wrapperClass): Updated the class name to match the implementation.
(WebKit::IPCTestingAPI::JSIPC::messages): Added isSync as a boolean property on message description.

Tools:

Added a test for IPC.messages.*.isSync using RunJavaScriptAlert.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(createWebViewWithIPCTestingAPI): Extracted to share more code between tests.
(IPCTestingAPI.AlertIsSyncMessage): Added.

9:18 PM Changeset in webkit [268632] by Peng Liu
  • 16 edits
    2 moves
    2 adds
    1 delete in trunk/Source

[Media in GPU Process] Use CARingBuffer to transfer audio data of an audio destination from a web process to the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=217715

Reviewed by Jer Noble.

Source/WebCore:

Decouple the audio output unit management from AudioDestinationCocoa so that
we can run it remotely in other processes, like the GPU process.

No new tests, no behavior change.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/AudioDestination.h: Export hardwareSampleRate().
  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestination::create): Remove an unnecessary function call.
(WebCore::AudioDestinationCocoa::AudioDestinationCocoa): Add a parameter
configureAudioOutputUnit so that we can disable the AudioOutputUnitAdaptor in
AudioDestinationCocoa when we need to run the AudioOutputUnitAdaptor in another process.
(WebCore::AudioDestinationCocoa::start):
(WebCore::AudioDestinationCocoa::stop):
(WebCore::AudioDestinationCocoa::getAudioStreamBasicDescription):
Rename setAudioStreamBasicDescription() to getAudioStreamBasicDescription() because
the function essentially queries the description.
(WebCore::AudioDestinationCocoa::hasEnoughFrames const): Add this function
so that a subclass can check whether the FIFO has enough audio samples to render.
(WebCore::AudioDestinationCocoa::render): Replace the AudioTimeStamp* parameter
because we only need two fields of AudioTimeStamp in this function.
(WebCore::AudioDestinationCocoa::~AudioDestinationCocoa): Deleted.
(WebCore::AudioDestinationCocoa::setAudioStreamBasicDescription): Deleted.
(WebCore::AudioDestinationCocoa::inputProc): Deleted. This function is moved to
AudioOutputUnitAdaptor.

  • platform/audio/cocoa/AudioDestinationCocoa.h:

(WebCore::AudioDestinationCocoa::outputUnit): Deleted.

  • platform/audio/cocoa/AudioOutputUnitAdaptor.cpp: Added.

(WebCore::AudioOutputUnitAdaptor::AudioOutputUnitAdaptor):
(WebCore::AudioOutputUnitAdaptor::~AudioOutputUnitAdaptor):
(WebCore::AudioOutputUnitAdaptor::start):
(WebCore::AudioOutputUnitAdaptor::stop):
(WebCore::AudioOutputUnitAdaptor::inputProc):

  • platform/audio/cocoa/AudioOutputUnitAdaptor.h: Added.
  • platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp: Renamed from Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp.

(WebCore::AudioOutputUnitAdaptor::configure):

  • platform/audio/mac/AudioOutputUnitAdaptorMac.cpp: Renamed from Source/WebCore/platform/audio/mac/AudioDestinationMac.cpp.

(WebCore::AudioOutputUnitAdaptor::configure):

  • platform/mock/MockAudioDestinationCocoa.cpp:

(WebCore::MockAudioDestinationCocoa::tick):

Source/WebKit:

The current implementation of RemoteAudioDestination essentially runs the
AudioDestinationCocoa in the GPU process, which is not good because we are adding
AudioWorklet stuff into AudioDestinationCocoa, but the AudioWorklet stuff is
irrelevant to the GPU process.

What really needs to run in the GPU process (for Cocoa platforms at least) is the
audio output unit. This patch adds WebCore::AudioOutputUnitAdaptor and
WebCore::AudioUnitRenderer to implement that. With this patch, RemoteAudioDestination
in the GPU process is an AudioUnitRenderer and it embeds an AudioOutputUnitAdaptor
like AudioDestinationCocoa does in the Web process. Essentially, we run AudioOutputUnitAdaptor
remotely from the AudioDestinationCocoa's perspective.

Also, in the current implementation, the RemoteAudioDestinationProxy in a Web
process transfers audio data to the RemoteAudioDestination in the GPU process
with IPC messages (RemoteAudioBusData). This is not efficient because of the
large number of IPC messages for audio samples.

With this patch, RemoteAudioDestinationProxy (Web process) transfers audio samples
to RemoteAudioDestination(GPU process) with a CARingBuffer providing shared
buffers for the Web process and the GPU process.

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::create):
(WebKit::RemoteAudioDestination::~RemoteAudioDestination):
(WebKit::RemoteAudioDestination::audioSamplesStorageChanged):
(WebKit::RemoteAudioDestination::start):
(WebKit::RemoteAudioDestination::stop):
(WebKit::RemoteAudioDestination::isPlaying const):
(WebKit::RemoteAudioDestination::RemoteAudioDestination):
(WebKit::RemoteAudioDestination::storage):
(WebKit::RemoteAudioDestination::render):
(WebKit::RemoteAudioDestinationManager::createAudioDestination):
(WebKit::RemoteAudioDestinationManager::audioSamplesStorageChanged):
(WebKit::RemoteAudioDestination::isPlaying): Deleted.
(WebKit::RemoteAudioDestination::framesPerBuffer const): Deleted.

  • GPUProcess/media/RemoteAudioDestinationManager.h:

(WebKit::RemoteAudioDestinationManager::didReceiveSyncMessageFromWebProcess):

  • GPUProcess/media/RemoteAudioDestinationManager.messages.in:

Add a message AudioSamplesStorageChanged to support using CARingBuffer to
transmit audio samples to the GPU process.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioBusData.h: Removed.
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::start):
(WebKit::RemoteAudioDestinationProxy::stop):
(WebKit::RemoteAudioDestinationProxy::requestBuffer):
(WebKit::RemoteAudioDestinationProxy::renderOnRenderingThead):
(WebKit::RemoteAudioDestinationProxy::storageChanged):
(WebKit::RemoteAudioDestinationProxy::renderBuffer): Deleted.
(WebKit::RemoteAudioDestinationProxy::didChangeIsPlaying): Deleted.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:

RemoteAudioDestinationProxy is a subclass of AudioDestinationCocoa. It pulls audio
samples from the WebAudio side and use a CARingBuffer to push audio samples to
the audio output unit (managed by RemoteAudioDestination) in the GPU process.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in:

Add a message RequestBuffer, which can be used by RemoteAudioDestination to ask
for (pull) audio samples.

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:

(WebKit::AudioMediaStreamTrackRenderer::pushSamples): A minor fix to get rid of
a type conversion.

9:11 PM Changeset in webkit [268631] by Devin Rousso
  • 6 edits in trunk

Web Inspector: REGRESSION(r266885): Controllers/ConsoleManager.js:177:27: CONSOLE ASSERT ERROR
https://bugs.webkit.org/show_bug.cgi?id=217863

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

r266885 changed Console.getLoggingChannels to return any Console.ChannelSource that
existed, rather than a hardcoded list. Remove the similarly hardcoded list in the frontend.

  • UserInterface/Controllers/ConsoleManager.js:

(WI.ConsoleManager):
(WI.ConsoleManager.prototype.initializeLogChannels):
(WI.ConsoleManager.prototype.get logChannelSources): Deleted.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._messageAdded):

LayoutTests:

  • inspector/console/webcore-logging.html:
  • inspector/console/webcore-logging-expected.txt:
9:08 PM Changeset in webkit [268630] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r266885): LoggingChannel.js:31:23: CONSOLE ASSERT ERROR
https://bugs.webkit.org/show_bug.cgi?id=217864

Reviewed by Timothy Hatcher.

r266885 changed Console.getLoggingChannels to return any Console.ChannelSource that
existed, rather than a hardcoded list. Remove the similarly hardcoded list in the frontend.

  • UserInterface/Models/LoggingChannel.js:

(WI.LoggingChannel):

9:07 PM Changeset in webkit [268629] by Devin Rousso
  • 3 edits
    3 adds in trunk

Web Inspector: REGRESSION(r266074): line-based JavaScript breakpoints don't hit after reload
https://bugs.webkit.org/show_bug.cgi?id=217862

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::clearDebuggerBreakpointState):
Don't clear the list of protocol breakpoints when the global object changes. Protocol
breakpoints should only be cleared when individually removed or by Debugger.disable.

LayoutTests:

  • inspector/debugger/resources/nested-calls.js: Added.

(inner):
(outer):

  • inspector/debugger/breakpoint-resolve-when-script-added.html: Added.
  • inspector/debugger/breakpoint-resolve-when-script-added-expected.txt: Added.
7:29 PM Changeset in webkit [268628] by jiewen_tan@apple.com
  • 5 edits in trunk/Source

[WebAuthn] Add an experimental feature flag: WebAuthenticationModernEnabled
https://bugs.webkit.org/show_bug.cgi?id=217843
<rdar://problem/70384187>

Reviewed by Brent Fulgham.

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebAuthenticationModernEnabled):
(WKPreferencesGetWebAuthenticationModernEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WTF:

Add a new experimental feature flag to test the new WebAuthn process.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
7:10 PM Changeset in webkit [268627] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Support accelerated animation of individual transform CSS properties
https://bugs.webkit.org/show_bug.cgi?id=217842
<rdar://problem/70391914>

Unreviewed. Mark some tests as failing on Mojave.

  • platform/mac/TestExpectations:
6:50 PM Changeset in webkit [268626] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r266480): line-based JavaScript breakpoint tree element titles also show the file name
https://bugs.webkit.org/show_bug.cgi?id=217859

Reviewed by Timothy Hatcher.

r266480 changed it such that WI.BreakpointTreeElement would only call updateTitles if
the constructor was not provided a title while also adding a fallback for title in the
constructor of WI.JavaScriptBreakpointTreeElement, ensuring that it would always be set
by the time it reached WI.BreakpointTreeElement, meaning that updateTitles would never
be called.

Since updateTitles was only implemented by WI.JavaScriptBreakpointTreeElement, remove
it from WI.BreakpointTreeElement and ensure that it is always called for non-special
JavaScript breakpoints (in addition to whenever the WI.SourceCodeLocation changes).

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.updateTitles): Deleted.

  • UserInterface/Views/JavaScriptBreakpointTreeElement.js:

(WI.JavaScriptBreakpointTreeElement):
(WI.JavaScriptBreakpointTreeElement.prototype._updateTitles): Added.
(WI.JavaScriptBreakpointTreeElement.prototype._breakpointLocationDidChange):
(WI.JavaScriptBreakpointTreeElement.prototype.updateTitles): Deleted.

6:04 PM Changeset in webkit [268625] by Ryan Haddad
  • 22 edits
    1 delete in trunk/LayoutTests

Unreviewed, reverting r268620.

Breaks tests for Catalina and Mojave

Reverted changeset:

"Rebaseline tests for Big Sur after the changes in r268520"
https://bugs.webkit.org/show_bug.cgi?id=209813
https://trac.webkit.org/changeset/268620

5:41 PM Changeset in webkit [268624] by Russell Epstein
  • 1 copy in tags/Safari-610.3.4

Tag Safari-610.3.4.

5:23 PM Changeset in webkit [268623] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r262708): [ Mojave debug wk2 ] imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217857

Unreviewed test gardening.
Changing test expectation for Mojave+ coverage

  • platform/mac-wk2/TestExpectations:
5:07 PM Changeset in webkit [268622] by Russell Epstein
  • 1 copy in tags/Safari-610.2.11.51.2

Tag Safari-610.2.11.51.2.

5:06 PM Changeset in webkit [268621] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r262708): [ Mojave debug wk2 ] imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217857

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:49 PM Changeset in webkit [268620] by Truitt Savell
  • 22 edits
    1 add in trunk/LayoutTests

Rebaseline tests for Big Sur after the changes in r268520
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/fast/block/basic/001-expected.txt:
  • platform/mac/fast/block/float/float-avoidance-expected.txt:
  • platform/mac/fast/css/rtl-ordering-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/mac/fast/forms/option-text-clip-expected.txt:
  • platform/mac/fast/forms/plaintext-mode-2-expected.txt:
  • platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/text/indic-expected.txt:
  • platform/mac/fast/text/javascriptlink-frames-expected.txt: Added.
  • platform/mac/media/video-display-toggle-expected.txt:
  • platform/mac/media/video-volume-slider-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
4:07 PM Changeset in webkit [268619] by Karl Rackler
  • 4 edits in trunk

Unreviewed, reverting r268178.

This reverts commit r268178 because it caused a test failure.

Reverted changeset:

"Fix image-loading-lazy-multiple-times.html"
https://bugs.webkit.org/show_bug.cgi?id=216979
https://trac.webkit.org/changeset/268178

3:57 PM Changeset in webkit [268618] by Russell Epstein
  • 4 edits in branches/safari-610.2.11.51-branch/Source

Revert "Cherry-pick r268367. rdar://problem/70320656"

This reverts commit r268512.

3:57 PM Changeset in webkit [268617] by Russell Epstein
  • 2 edits in branches/safari-610.2.11.51-branch/Source/WebKit

Revert "Cherry-pick r268377. rdar://problem/70320656"

This reverts commit r268513.

3:46 PM Changeset in webkit [268616] by graouts@webkit.org
  • 7 edits in trunk

Enable individual CSS transform properties by default
https://bugs.webkit.org/show_bug.cgi?id=217849
<rdar://problem/70052493>

Reviewed by Dean Jackson.

Source/WebKitLegacy/win:

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

3:43 PM Changeset in webkit [268615] by graouts@webkit.org
  • 17 edits
    10 adds in trunk

Support accelerated animation of individual transform CSS properties
https://bugs.webkit.org/show_bug.cgi?id=217842
<rdar://problem/70391914>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:

Source/WebCore:

In order to support accelerated animation of individual transform CSS properties, we make a list of the
various animations targeting animation-related properties in GraphicsLayerCA::updateAnimations() and apply
an animation for each of those properties in their expected application order – translate, scale, rotate and
then transform – using Core Animation's additive animation mode.

When one of those properties does not have an animation, we create a non-interpolating base transform value
animation set with both from and to values matching the value set in CSS for this particular property. We use
a new transformMatrixForProperty() method on the GraphicsLayerClient to obtain this value.

We also add a non-additive, non-interpolating identity transform first to make sure all the additive animations
build on top of a neutral transform and not the underlying value applied to the layer.

Finally, when GraphicsLayerCA::setTransform() is updated, we update the animations to ensure that any base
transform value animation is updated to match the current value of the CSS properties contributing to the
compound layer transform.

Tests: webanimations/accelerated-transform-related-animation-property-order.html

webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html
webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html
webanimations/accelerated-translate-animation-with-transform.html
webanimations/accelerated-translate-animation.html

  • animation/CSSPropertyAnimation.cpp: Add the necessary animationIsAccelerated() overrides for each of the

individual CSS transform property animation wrappers to indicate that accelerated animations are supported.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::validateTransformOperations): Update the ASSERT to check that the animated property
is any of the transform-related properties.

  • platform/graphics/GraphicsLayer.h:

(WebCore::TransformAnimationValue::TransformAnimationValue): Add a new constructor that takes a single TransformOperation*
value as input instead of a TransformOperations& so that the values coming from the individual CSS transform properties
can be used to create a TransformAnimationValue in RenderLayerBacking::startAnimation().

  • platform/graphics/GraphicsLayerClient.h: Add the new animated property identifiers for the individual CSS transform properties.

(WebCore::animatedPropertyIsTransformOrRelated): Add a new utility to identify any of the transform-related animated property
identifiers.
(WebCore::GraphicsLayerClient::transformMatrixForProperty const): New method called from GraphicsLayerCA::updateAnimations()
to query the client, such as RenderLayerBacking, for the TransformationMatrix representing a given CSS property value to be
used for base transform value non-interpolating animations.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::propertyIdToString): Account for the new animated property identifiers.
(WebCore::GraphicsLayerCA::setTransform): If we are currently running a transform-related animation, a change in underlying
transform value means we must re-evaluate all transform-related animations to ensure that the base value transform animations
are current.
(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::updateAnimations): When updating animations, keep track of the most recent animation applicable to each
individual CSS transform property and the list of animations targeting the transform CSS property. Then, ensure those animations
are applied in the specified order – translate, scale, rotate and transform – by adding those animations as additive CA animations
with non-interpolating base transform value animations for each property that does not have a specified interpolating animation.
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const): Ensure we also consider paused animations as "running" animations.
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Whether a transform animation needs to be run using the additive mode
is now determined in updateAnimations() so we remove all code related to working out whether animations ought to be additive.
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): We force the creation of CATransform3D values for individual
CSS transform properties since only this mode guarantees that additivity of such animations will yield the expected result where
the transforms are multiplied rather than simply adding float values of individual components.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation): Ensure we start animations for the individual CSS transform properties.
(WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
(WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):
(WebCore::RenderLayerBacking::transformMatrixForProperty const): Implement the new GraphicsLayerClient method to provide a
matrix that can be used as a value for non-interpolating base value transform animations in GraphicsLayerCA::updateAnimations()
for any of the transform-related CSS properties.

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const): Ensure that an animation for any of the transform-related
CSS properties yields composition of the target layer.
(WebCore::RenderLayerCompositor::isRunningTransformAnimation const):

  • rendering/style/WillChangeData.cpp:

(WebCore::propertyTriggersCompositingOnBoxesOnly): Ensure that setting the will-change CSS property to any of the transform-related
CSS properties yields composition of the target.

LayoutTests:

Add some new tests that check animations of individual CSS transform properties can be performed,
checking on their relative order with the transform property, updating the transform property while
an animation is in flight and adding animations while in flight.

  • TestExpectations:
  • webanimations/accelerated-transform-related-animation-property-order-expected.html: Added.
  • webanimations/accelerated-transform-related-animation-property-order.html: Added.
  • webanimations/accelerated-translate-animation-additional-animation-added-in-flight-expected.html: Added.
  • webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html: Added.
  • webanimations/accelerated-translate-animation-expected.html: Added.
  • webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight-expected.html: Added.
  • webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html: Added.
  • webanimations/accelerated-translate-animation-with-transform-expected.html: Added.
  • webanimations/accelerated-translate-animation-with-transform.html: Added.
  • webanimations/accelerated-translate-animation.html: Added.
3:41 PM Changeset in webkit [268614] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION(268444?): [ Win10 wk1 ews ] transforms/2d/rotate-composited.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217812

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:23 PM Changeset in webkit [268613] by jiewen_tan@apple.com
  • 11 edits in trunk

[WebAuthn] Remove experimental feature flag: WebAuthenticationLocalAuthenticatorEnabled
https://bugs.webkit.org/show_bug.cgi?id=217796
<rdar://problem/70358912>

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):

  • page/Settings.yaml:

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebAuthenticationLocalAuthenticatorEnabled): Deleted.
(WKPreferencesGetWebAuthenticationLocalAuthenticatorEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::filterTransports const):
(WebKit::WebCore::isFeatureEnabled): Deleted.

Source/WTF:

The feature is now shipped. Let's remove the experimental feature flag.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::boolDefaultsMap):
(WTR::keyTypeMap):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::enableWebAuthentication const):
(WTR::TestOptions::enableWebAuthenticationLocalAuthenticator const): Deleted.

3:20 PM Changeset in webkit [268612] by commit-queue@webkit.org
  • 12 edits
    13 moves
    1 add
    1 delete in trunk/Source/WebKit

[GPU Process] Exchange RemoteImageBuffer and RemoteImageBufferProxy
https://bugs.webkit.org/show_bug.cgi?id=217809

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-16
Reviewed by Simon Fraser.

The names of the GPU rendering classes have been confusing. RemoteImageBuffer
should be the real object in the GPU Process because it owns the backend.
And RemoteImageBufferProxy should be a proxy to this object in the Web
Process. So we are going to exchange the following classes:

-- RemoteImageBuffer <-> RemoteImageBufferProxy
-- RemoteRenderingBackend <-> RemoteRenderingBackendProxy
-- RemoteImageBufferMessageHandler <-> RemoteImageBufferMessageHandlerProxy

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

(WebKit::GPUConnectionToWebProcess::createRenderingBackend):
(WebKit::GPUConnectionToWebProcess::releaseRenderingBackend):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/graphics/PlatformRemoteImageBuffer.h: Renamed from Source/WebKit/WebProcess/GPU/graphics/PlatformRemoteImageBuffer.h.
  • GPUProcess/graphics/RemoteImageBuffer.h: Renamed from Source/WebKit/GPUProcess/graphics/RemoteImageBufferProxy.h.

(WebKit::RemoteImageBuffer::create):
(WebKit::RemoteImageBuffer::RemoteImageBuffer):
(WebKit::RemoteImageBuffer::~RemoteImageBuffer):
(WebKit::RemoteImageBuffer::apply):

  • GPUProcess/graphics/RemoteImageBufferMessageHandler.cpp: Renamed from Source/WebKit/GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.cpp.

(WebKit::RemoteImageBufferMessageHandler::RemoteImageBufferMessageHandler):
(WebKit::RemoteImageBufferMessageHandler::createBackend):
(WebKit::RemoteImageBufferMessageHandler::commitFlushContext):

  • GPUProcess/graphics/RemoteImageBufferMessageHandler.h: Renamed from Source/WebKit/GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h.

(WebKit::RemoteImageBufferMessageHandler::backend):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp: Renamed from Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp.

(WebKit::RemoteRenderingBackend::create):
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::messageSenderConnection const):
(WebKit::RemoteRenderingBackend::messageSenderDestinationID const):
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::releaseRemoteResource):
(WebKit::RemoteRenderingBackend::getImageData):
(WebKit::RemoteRenderingBackend::flushImageBufferDrawingContext):
(WebKit::RemoteRenderingBackend::flushImageBufferDrawingContextAndCommit):
(WebKit::RemoteRenderingBackend::gpuConnectionToWebProcess const):

  • GPUProcess/graphics/RemoteRenderingBackend.h: Renamed from Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.h.

(WebKit::RemoteRenderingBackend::renderingBackendIdentifier const):

  • GPUProcess/graphics/RemoteRenderingBackend.messages.in: Renamed from Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.messages.in.
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/PlatformRemoteImageBufferProxy.h: Renamed from Source/WebKit/GPUProcess/graphics/PlatformRemoteImageBufferProxy.h.
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp: Removed.
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.cpp: Added.

(WebKit::RemoteImageBufferMessageHandlerProxy::RemoteImageBufferMessageHandlerProxy):
(WebKit::RemoteImageBufferMessageHandlerProxy::~RemoteImageBufferMessageHandlerProxy):
(WebKit::RemoteImageBufferMessageHandlerProxy::getImageData const):
(WebKit::RemoteImageBufferMessageHandlerProxy::waitForCreateImageBufferBackend):
(WebKit::RemoteImageBufferMessageHandlerProxy::waitForCommitImageBufferFlushContext):
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandlerProxy::flushDrawingContextAndWaitCommit):
(WebKit::RemoteImageBufferMessageHandlerProxy::commitFlushContext):

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.h: Renamed from Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h.

(WebKit::RemoteImageBufferMessageHandlerProxy::remoteResourceIdentifier const):
(WebKit::RemoteImageBufferMessageHandlerProxy::isPendingFlush const):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h: Renamed from Source/WebKit/WebProcess/GPU/graphics/RemoteImageBuffer.h.

(WebKit::RemoteImageBufferProxy::create):
(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::putImageData):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: Renamed from Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackend.cpp.

(WebKit::RemoteRenderingBackendProxy::create):
(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::messageSenderConnection const):
(WebKit::RemoteRenderingBackendProxy::messageSenderDestinationID const):
(WebKit::RemoteRenderingBackendProxy::waitForCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::waitForCommitImageBufferFlushContext):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
(WebKit::RemoteRenderingBackendProxy::createImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::commitImageBufferFlushContext):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h: Renamed from Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackend.h.

(WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in: Renamed from Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackend.messages.in.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::ensureRemoteRenderingBackendProxy const):
(WebKit::WebChromeClient::createImageBuffer const):
(WebKit::WebChromeClient::ensureRemoteRenderingBackend const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
3:13 PM Changeset in webkit [268611] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test expectations. Update test expectations after r268606.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
2:51 PM Changeset in webkit [268610] by Andres Gonzalez
  • 7 edits in trunk/Source/WebCore

Revert AXCoreObject::topDocumentFrameView change that caused build failure on iOS debug.
https://bugs.webkit.org/show_bug.cgi?id=217841

Reviewed by Chris Fleizach.

No change in functionality, reverting part of previous re-work.

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

(WebCore::AccessibilityObject::convertRectToPlatformSpace const):
(WebCore::AccessibilityObject::topDocumentFrameView const): Deleted.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::topDocumentFrameView const): Deleted.

2:16 PM BuildingGtk edited by Lauro Moura
Added info about reusing the UserFlatpak directory. (diff)
2:00 PM Changeset in webkit [268609] by Matt Lewis
  • 2 edits in trunk/Tools

Move EWS to new SDKs: iOS 14.
https://bugs.webkit.org/show_bug.cgi?id=217840

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json:
1:10 PM Changeset in webkit [268608] by eric.carlson@apple.com
  • 12 edits
    3 adds in trunk

[GPU Process] Implement VideoPlaybackMetrics
https://bugs.webkit.org/show_bug.cgi?id=217439
<rdar://problem/60179370>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-playback-quality.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getVideoPlaybackQuality):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/VideoPlaybackQualityMetrics.h: Added.

(WebCore::VideoPlaybackQualityMetrics::encode const):
(WebCore::VideoPlaybackQualityMetrics::decode):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
(WebKit::RemoteMediaPlayerProxy::setShouldUpdatePlaybackMetrics):

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

(WebKit::MediaPlayerPrivateRemote::videoPlaybackQualityMetrics):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const):
(WebKit::RemoteMediaPlayerState::decode):

LayoutTests:

  • media/video-playback-quality-expected.txt: Added.
  • media/video-playback-quality.html: Added.
1:09 PM Changeset in webkit [268607] by eric.carlson@apple.com
  • 17 edits in trunk/Source

[GPU Process] Implement mediaPlayerGetRawCookies
https://bugs.webkit.org/show_bug.cgi?id=217739
<rdar://problem/70313370>

Reviewed by Youenn Fablet.

Source/WebCore:

Plumb mediaPlayerGetRawCookies through from the GPU process to the Web process,
which is used to provide site cookies to AVFoundation for AirPlay. This has always
been a synchronous API, which we don't want between processes, so change the interface
to take a completion handler and restructure the caller to use it.

Tested manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerGetRawCookies const):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::getRawCookies const):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerGetRawCookies const):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::getRawCookies const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
12:44 PM Changeset in webkit [268606] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

Open source clang warning: bitwise operation between different enumeration types [-Wenum-enum-conversion]
<https://webkit.org/b/217805>
<rdar://problem/70250742>

Reviewed by Darin Adler.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::StringImpl::s_hashZeroValue): Add.
(WTF::StringImpl::StringImpl):

  • Use s_hashZeroValue as first value in bitwise-or expression so that enums are converted automatically to unsigned values.
12:38 PM Changeset in webkit [268605] by jiewen_tan@apple.com
  • 26 edits
    9 copies
    1 move
    19 adds
    1 delete in trunk/Source

[WebAuthn] Implement a dummy WebAuthnProcess
https://bugs.webkit.org/show_bug.cgi?id=217559
<rdar://problem/70168749>

Reviewed by Brent Fulgham.

Source/WebCore:

No tests.

  • en.lproj/Localizable.strings:

Provides a name for the WebAuthn process.

Source/WebKit:

Previous patch r268248 introduces a new daemon to handle all WebAuthn requests. However, after more deeper investigations, the daemon
story is not very compelling for WebKit. Here are the two major road blockers:
1) The major one is on macOS. New daemons cannot be installed without a system update. It means relocatable Safari (e.g. STP)
and staged Safari on downlevel OSes will not get this feature. And relocatable STP can only utilize the system daemon. This
seems a bummer especially for the STP case given it is heavily used to test latest web features.
2) Additional plumbing is needed for testing and engineering builds. This problem is specific to WebKit and is on both macOS and iOS.
WebKit doesn't build roots to test engineering builds, which is required to update the plist on the above location. Hence, a separate
configuration is needed to generate a different plist that points to the right engineering binary and additional scripts will be needed
to ask launchd to load the plist before running any tests. Some extra exercises are probably needed to not confuse launchd about the
engineering binary and system binary as well.

Given the above constraints, a new architecture is proposed to make the daemon a WebKit XPC service/process instead and leave the launchd
event handler to a new Safari daemon. The launchd related feature is only on iOS and therefore it really doesn't make sense to overcome
all the above macOS constraints. Having different architectures on iOS (a daemon) and on macOS (a XPC service) accordingly will introduce
tons of overhead for maintainance as well. That's why relying on a Safari daemon to do the job is the most reasonable option.

This patch therefore focuses on making the WebAuthn process happen and removes the WebAuthn daemon.

  • CMakeLists.txt:
  • Configurations/WebAuthnService.xcconfig: Renamed from Source/WebKit/Configurations/WebAuthenticationAgent.xcconfig.
  • Configurations/WebKit.xcconfig:
  • Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements: Removed.
  • Daemons/WebAuthenticationAgent/com.apple.webkit.WebAuthenticationAgent.plist: Removed.
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Paperwork for building the new WebAuthn process.

  • Platform/ExtraPrivateSymbolsForTAPI.h:
  • Shared/AuxiliaryProcess.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::processStorageClass):
(WebKit::sandboxDirectory):
Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.

  • Sources.txt:
  • SourcesCocoa.txt:

Paperwork for building the new WebAuthn process.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):
(WebKit::shouldLeakBoost):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: Added.

(WebKit::WebAuthnProcessProxy::singleton):
(WebKit::WebAuthnProcessProxy::WebAuthnProcessProxy):
(WebKit::WebAuthnProcessProxy::getLaunchOptions):
(WebKit::WebAuthnProcessProxy::connectionWillOpen):
(WebKit::WebAuthnProcessProxy::processWillShutDown):
(WebKit::WebAuthnProcessProxy::getWebAuthnProcessConnection):
(WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):
(WebKit::WebAuthnProcessProxy::didClose):
(WebKit::WebAuthnProcessProxy::didReceiveInvalidMessage):
(WebKit::WebAuthnProcessProxy::didFinishLaunching):
(WebKit::WebAuthnProcessProxy::updateProcessAssertion):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h: Added.
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in: Added.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getWebAuthnProcessConnection):

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

(WebKit::WebProcessProxy::getWebAuthnProcessConnection):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist.
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist: Renamed from Source/WebKit/Daemons/WebAuthenticationAgent/Info.plist.
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnServiceInitializerDelegate::WebAuthnServiceInitializerDelegate):
(WebKit::initializeAuxiliaryProcess<WebAuthnProcess>):
(WEBAUTHEN_SERVICE_INITIALIZER):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp: Added.

(WebKit::WebAuthnConnectionToWebProcess::create):
(WebKit::WebAuthnConnectionToWebProcess::WebAuthnConnectionToWebProcess):
(WebKit::WebAuthnConnectionToWebProcess::~WebAuthnConnectionToWebProcess):
(WebKit::WebAuthnConnectionToWebProcess::didClose):
(WebKit::WebAuthnConnectionToWebProcess::didReceiveInvalidMessage):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.h: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnConnectionToWebProcess::connection):
(WebKit::WebAuthnConnectionToWebProcess::WebAuthnProcessProcess):
(WebKit::WebAuthnConnectionToWebProcess::webProcessIdentifier const):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in: Added.
  • WebAuthnProcess/WebAuthnProcess.cpp: Added.

(WebKit::WebAuthnProcess::WebAuthnProcess):
(WebKit::WebAuthnProcess::~WebAuthnProcess):
(WebKit::WebAuthnProcess::createWebAuthnConnectionToWebProcess):
(WebKit::WebAuthnProcess::removeWebAuthnConnectionToWebProcess):
(WebKit::WebAuthnProcess::connectionToWebProcessClosed):
(WebKit::WebAuthnProcess::shouldTerminate):
(WebKit::WebAuthnProcess::didClose):
(WebKit::WebAuthnProcess::lowMemoryHandler):
(WebKit::WebAuthnProcess::initializeWebAuthnProcess):
(WebKit::WebAuthnProcess::prepareToSuspend):
(WebKit::WebAuthnProcess::processDidResume):
(WebKit::WebAuthnProcess::resume):
(WebKit::WebAuthnProcess::processDidTransitionToForeground):
(WebKit::WebAuthnProcess::processDidTransitionToBackground):
(WebKit::WebAuthnProcess::webProcessConnection const):

  • WebAuthnProcess/WebAuthnProcess.h: Added.
  • WebAuthnProcess/WebAuthnProcess.messages.in: Added.
  • WebAuthnProcess/WebAuthnProcessCreationParameters.cpp: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcessCreationParameters::encode const):
(WebKit::WebAuthnProcessCreationParameters::decode):

  • WebAuthnProcess/WebAuthnProcessCreationParameters.h: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.
  • WebAuthnProcess/ios/WebAuthnProcessIOS.mm: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcess::initializeProcess):
(WebKit::WebAuthnProcess::initializeProcessName):
(WebKit::WebAuthnProcess::initializeSandbox):

  • WebAuthnProcess/mac/WebAuthnProcessMac.mm: Added.

(WebKit::WebAuthnProcess::initializeProcess):
(WebKit::WebAuthnProcess::initializeProcessName):
(WebKit::WebAuthnProcess::initializeSandbox):
Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in: Added.

The sandbox profile is originally from the GPU Process with IOKit related rules removed. Will tighten it again after the process is fully functional.

  • WebKit.xcodeproj/project.pbxproj:

Paperwork for building the new WebAuthn process.

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp: Copied from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcessConnection::WebAuthnProcessConnection):
(WebKit::WebAuthnProcessConnection::~WebAuthnProcessConnection):
(WebKit::WebAuthnProcessConnection::didClose):
(WebKit::WebAuthnProcessConnection::didReceiveInvalidMessage):

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.h: Renamed from Source/WebKit/Daemons/WebAuthenticationAgent/main.mm.

(WebKit::WebAuthnProcessConnection::create):
(WebKit::WebAuthnProcessConnection::connection):

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in: Added.
  • WebProcess/WebAuthentication/WebAuthnProcessConnectionInfo.h: Added.

(WebKit::WebAuthnProcessConnectionInfo::identifier const):
(WebKit::WebAuthnProcessConnectionInfo::releaseIdentifier):
(WebKit::WebAuthnProcessConnectionInfo::encode const):
(WebKit::WebAuthnProcessConnectionInfo::decode):

  • WebProcess/WebProcess.cpp:

(WebKit::getWebAuthnProcessConnection):
(WebKit::WebProcess::ensureWebAuthnProcessConnection):
(WebKit::WebProcess::webAuthnProcessConnectionClosed):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::existingWebAuthnProcessConnection):
Paperwork for introducing the new WebAuthn process. Mostly copied from GPU process.

12:37 PM Changeset in webkit [268604] by weinig@apple.com
  • 11 edits
    2 adds in trunk/Tools

[Testing] Support configuring any preference from test headers for WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=217645

Reviewed by Tim Horton.

Support using any preference defined in any of the WebPreference*.yaml configuration files
as a test header command rather than limiting it to a hard coded subset by generating the
list of supported commands and their types from the yaml files themselves.

This currently only works for WebKitTestRunner, but will be made to work with DumpRenderTree
in subsequent changes.

  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/DerivedSources-input.xcfilelist:
  • WebKitTestRunner/DerivedSources-output.xcfilelist:
  • WebKitTestRunner/DerivedSources.make:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/Scripts/PreferencesTemplates: Added.
  • WebKitTestRunner/Scripts/PreferencesTemplates/TestOptionsGeneratedKeys.h.erb: Added.

Add generation of TestOptionsGeneratedKeys.h from the WebPreference*.yaml using
the shared GeneratePreferences.rb script in WTF.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Move preference setting to the bottom of the file to allow any preference
to be overriden. Also adds in support for double, uint32_t, and string preferences
though none of those are currently being used.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::keyTypeMapping):
Use generated macro GENERATED_WEB_PREFERENCE_KEY_TYPE_MAPPINGS rather than hardcoding
all the preferences types.

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::boolWebPreferenceFeatures const):
(WTR::TestOptions::doubleWebPreferenceFeatures const):
(WTR::TestOptions::uint32WebPreferenceFeatures const):
(WTR::TestOptions::stringWebPreferenceFeatures const):
Expose accessors for preferences values for use in setting the actual preference
values. Rather than setting all preferences, we now only set preferences that have
been explicitly requested, using the default value for any that have not.

12:32 PM Changeset in webkit [268603] by don.olmstead@sony.com
  • 18 edits
    1 copy
    1 add in trunk/Source/WebCore

[WebGPU] Centralize Platform Defines
https://bugs.webkit.org/show_bug.cgi?id=217725

Reviewed by Myles C. Maxfield.

Centralize all the Metal forward declarations and GPU platform type definitions
into GPUPlatformTypesMetal.h. Each platform implementing WebGPU will have its own
version of the file which contains the same definitions. This file is then
referenced by GPUPlatformTypes.h.

This is in preparation for adding a Dawn based implementation which requires
more substantial definitions than the Metal backend.

No new tests. No change in behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUBindGroup.h:
  • platform/graphics/gpu/GPUBindGroupAllocator.h:
  • platform/graphics/gpu/GPUBindGroupLayout.h:
  • platform/graphics/gpu/GPUBuffer.h:

(WebCore::GPUBuffer::platformBuffer const):

  • platform/graphics/gpu/GPUCommandBuffer.h:
  • platform/graphics/gpu/GPUComputePassEncoder.h:
  • platform/graphics/gpu/GPUComputePipeline.h:
  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUPlatformTypes.h: Added.
  • platform/graphics/gpu/GPUProgrammablePassEncoder.h:
  • platform/graphics/gpu/GPUQueue.h:
  • platform/graphics/gpu/GPURenderPassEncoder.h:
  • platform/graphics/gpu/GPURenderPipeline.h:
  • platform/graphics/gpu/GPUSampler.h:
  • platform/graphics/gpu/GPUShaderModule.h:
  • platform/graphics/gpu/GPUSwapChain.h:
  • platform/graphics/gpu/GPUTexture.h:
  • platform/graphics/gpu/cocoa/GPUPlatformTypesMetal.h: Added.
12:20 PM Changeset in webkit [268602] by jiewen_tan@apple.com
  • 4 edits in trunk

[WebAuthn] Remove the "alg" field in the attestation statement
https://bugs.webkit.org/show_bug.cgi?id=217720
<rdar://problem/70349734>

Reviewed by Brent Fulgham.

Source/WebKit:

This old field was used in an unreleased old attestation statement format and is not used by
the final attestation statement format that will be added to the spec:
https://github.com/w3c/webauthn/pull/1491.

Therefore, remove it to resolve confusion.

Covered by existing tests.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
12:18 PM Changeset in webkit [268601] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org Rename slave to worker in steps.py
https://bugs.webkit.org/show_bug.cgi?id=217836

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/steps.py: Renamed slave to worker.
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Ditto.
11:31 AM Changeset in webkit [268600] by Chris Dumez
  • 11 edits in trunk

Move even more AudioContext-specific logic out of BaseAudioContext
https://bugs.webkit.org/show_bug.cgi?id=217803

Reviewed by Eric Carlson.

Source/WebCore:

Move even more AudioContext-specific logic out of BaseAudioContext and
into AudioContext. In particular, all the logic related to autoplay
restrictions, audible state, and platform media session interruptions
only apply to AudioContext and not OfflineAudioContext.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::shouldDocumentAllowWebAudioToAutoPlay):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::constructCommon):
(WebCore::AudioContext::~AudioContext):
(WebCore::AudioContext::willPausePlayback):
(WebCore::AudioContext::mediaState const):
(WebCore::AudioContext::mayResumePlayback):
(WebCore::AudioContext::willBeginPlayback):
(WebCore::AudioContext::visibilityStateChanged):
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::hostingDocumentIdentifier const):
(WebCore::AudioContext::isSuspended const):
(WebCore::AudioContext::pageMutedStateDidChange):
(WebCore::AudioContext::mediaCanStart):
(WebCore::AudioContext::logger const):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::behaviorRestrictions const):
(WebCore::AudioContext::addBehaviorRestriction):
(WebCore::AudioContext::removeBehaviorRestriction):
(WebCore::AudioContext::userGestureRequiredForAudioStart const):
(WebCore::AudioContext::pageConsentRequiredForAudioStart const):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::BaseAudioContext::~BaseAudioContext):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::startOfflineRendering):

  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

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

LayoutTests:

Update test that was trying to set the autoplay restrictions on an OfflineAudioContext
to make sure they did not apply. Now that the autoplay restrictions are on AudioContext
instead of BaseAudioContext, they definitely do not apply to OfflineAudioContext and it
is not even possible to set the restrictions on an OfflineAudioContext. I updated the
test to use webkitOfflineAudioContext when available since WebKitOfflineAudioContext
does inherit WebKitAudioContext.

  • webaudio/offlineaudiocontext-restriction.html:
11:29 AM Changeset in webkit [268599] by weinig@apple.com
  • 13 edits in trunk/Source

ENABLE_LEGACY_CSS_VENDOR_PREFIXES and RuntimeEnabledFeatures::legacyCSSVendorPrefixesEnabled() don't do anything
https://bugs.webkit.org/show_bug.cgi?id=217833

Reviewed by Simon Fraser.

Source/WebCore:

Remove support for ENABLE_LEGACY_CSS_VENDOR_PREFIXES, which only guarded code
that also checked legacyCSSVendorPrefixesEnabled(), which was never enabled.

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

(WebCore::cssPropertyID):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setLegacyCSSVendorPrefixesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::legacyCSSVendorPrefixesEnabled const): Deleted.

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

Remove support for ENABLE_LEGACY_CSS_VENDOR_PREFIXES, which only guarded code that was always disabled.

10:52 AM Changeset in webkit [268598] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

[LFC][Integration] Allow images in inline content
https://bugs.webkit.org/show_bug.cgi?id=217757

Reviewed by Zalan Bujtas.

Add support for inline images in integrated modern inline layout.
This patch doesn't yet enable the support (it is behind an ifdef).

  • dom/Position.cpp:

(WebCore::Position::ensureLineBoxes const):

  • layout/FormattingContext.cpp:

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

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateReplacedDimensions):
(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):
(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/layouttree/LayoutReplacedBox.h:

(WebCore::Layout::ReplacedBox::contentSizeForIntegration const):
(WebCore::Layout::ReplacedBox::setContentSizeForIntegration):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):

  • rendering/RenderLineBreak.cpp:
10:49 AM Changeset in webkit [268597] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitpy] Use webkitcorepy's autoinstaller for plint
https://bugs.webkit.org/show_bug.cgi?id=217793
<rdar://problem/70356095>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall): Support multiple aliases to a single library.
(AutoInstall.register):
(AutoInstall.install):
(AutoInstall.install_everything):

  • Scripts/webkitpy/init.py: Add pylint, map install zope.interface when zope is imported.
  • Scripts/webkitpy/style/checkers/python.py:

(Pylinter.run):

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove _install_pylint().
(AutoinstallImportHook._install_pylint): Deleted.

  • Scripts/webkitpy/thirdparty/init_unittest.py:

(ThirdpartyTest.test_imports): mechanize and pylint are managed by the new autoinstaller.

10:45 AM Changeset in webkit [268596] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[build.webkit.org] buildbot checkconfig fails when passwords.json is missing
https://bugs.webkit.org/show_bug.cgi?id=217831

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg: Set is_test_mode_enabled based on BUILDBOT_TESTING env variable.
  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py: Renamed test_mode_is_enabled to is_test_mode_enabled to

be consistent with EWS code.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Ditto.
9:33 AM Changeset in webkit [268595] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Add copyright message to steps_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=217830

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
9:06 AM Changeset in webkit [268594] by aakash_jain@apple.com
  • 5 edits
    1 delete in trunk/Tools

[build.webkit.org] Remove SVNMirror
https://bugs.webkit.org/show_bug.cgi?id=217823

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/factories.py: Removed SVNMirror.
  • BuildSlaveSupport/build.webkit.org-config/steps.py: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py: Ditto.

(WaitForSVNServer): Deleted.
(WaitForSVNServer.evaluateCommand): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
  • BuildSlaveSupport/wait-for-SVN-server.py: Removed.
8:52 AM Changeset in webkit [268593] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Don't emit OpSpread with a constant as the destination
https://bugs.webkit.org/show_bug.cgi?id=217800
<rdar://problem/69492311>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/spread-should-not-have-a-constant-as-dst.js: Added.

(foo):
(bar):

Source/JavaScriptCore:

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):

8:38 AM Changeset in webkit [268592] by youenn@apple.com
  • 4 edits in trunk

sdpFmtLine should be missing from RTCRtpCodecCapability instead of being an empty string
https://bugs.webkit.org/show_bug.cgi?id=217818

Reviewed by Eric Carlson.

Source/WebCore:

Covered by updated test.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::toRTCRtpCapabilities):
If line is empty, make sure to return a null string instead.

LayoutTests:

  • webrtc/video-mute-vp8.html:
8:27 AM Changeset in webkit [268591] by clopez@igalia.com
  • 4 edits in trunk/Tools

[JHBuild] Update libwpe and wpebackend-fdo and add libmanette to minimal moduleset
https://bugs.webkit.org/show_bug.cgi?id=217825

Reviewed by Adrian Perez de Castro.

libmanette 0.2.4 is required for enabling gamepad support, which
defaults to on since r268389 for developer builds. The version
shipped by ubuntu-20.04 is not enough (0.2.3), so we should include
this on the minimal moduleset which is used to generate the bundle
products on the packaging bots.

Seize to also update the libwpe and wpebackend-fdo libraries.

  • gtk/jhbuild.modules:
  • jhbuild/jhbuild-minimal.modules:
  • wpe/jhbuild.modules:
8:22 AM Changeset in webkit [268590] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Remove unused ElementType values from the registry scanner
https://bugs.webkit.org/show_bug.cgi?id=217824

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-16
Reviewed by Xabier Rodriguez-Calvar.

r268576 introduced new values in the ElementType enum but they were unused and introduced
inconsistency in in fillMimeTypeSetFromCapsMapping(). If this function needs to be used for
encoding configurations it will need to be refactored but that's not a scenario I foresee,
so for now, remove unused enum values.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::fillMimeTypeSetFromCapsMapping):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:
7:46 AM Changeset in webkit [268589] by commit-queue@webkit.org
  • 3 edits
    154 deletes in trunk

Tools:
Match webkitpy.port.base.Port's merging of .webarchive/.txt
https://bugs.webkit.org/show_bug.cgi?id=217795

Patch by Sam Sneddon <Sam Sneddon> on 2020-10-16
Reviewed by Alexey Proskuryakov.

  • Scripts/check-for-duplicated-platform-test-results:

(check_duplicate): Check for both .webarchive and .txt
(check_platform): Don't call the function that probably just threw

LayoutTests:
Remove redundant baselines in platform/
https://bugs.webkit.org/show_bug.cgi?id=217795

Patch by Sam Sneddon <Sam Sneddon> on 2020-10-16
Reviewed by Alexey Proskuryakov.

  • platform/glib/animations/steps-transform-rendering-updates-expected.txt: Removed.
  • platform/glib/fast/canvas/fallback-content-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/close-before-open-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/close-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/deflate-frame-parameter-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/extensions-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/invalid-masked-frames-from-server-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/long-control-frame-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/long-invalid-header-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/reserved-bits-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/reserved-opcodes-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/too-long-payload-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/websocket-event-target-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/css/css-values/minmax-angle-computed-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt: Removed.
  • platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt: Removed.
  • platform/glib/webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt: Removed.
  • platform/gtk/fast/css/pseudo-invalid-form-invalidation-optimization-expected.txt: Removed.
  • platform/gtk/fast/css/pseudo-valid-form-invalidation-optimization-expected.txt: Removed.
  • platform/gtk/fast/events/js-keyboard-event-creation-expected.txt: Removed.
  • platform/gtk/fast/events/nested-window-event-expected.txt: Removed.
  • platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Removed.
  • platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/telephone-expected.txt: Removed.
  • platform/ios-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/5002441-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-3778059-fix-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-at-tabspan-001-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-at-tabspan-002-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-at-tabspan-003-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-quoted-001-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-quoted-002-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-quoted-003-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-quoted-004-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-quoted-005-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-br-quoted-006-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-div-020-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-div-022-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-div-026-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/insert-text-with-newlines-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/paragraph-separator-01-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/paragraph-separator-in-table-2-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/return-key-with-selection-001-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/return-key-with-selection-002-expected.txt: Removed.
  • platform/ios-wk2/editing/inserting/return-key-with-selection-003-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/5601583-1-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/8145-2-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/bad-placeholder-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-4038267-fix-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-001-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-002-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-003-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-004-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-005-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-006-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-007-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-008-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-009-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-010-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-match-style-001-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-match-style-002-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-text-016-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/paste-text-019-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/quirks-mode-br-1-expected.txt: Removed.
  • platform/ios-wk2/editing/selection/editable-html-element-expected.txt: Removed.
  • platform/ios-wk2/editing/selection/paragraph-granularity-expected.txt: Removed.
  • platform/ios-wk2/editing/selection/select-all-iframe-expected.txt: Removed.
  • platform/ios-wk2/editing/selection/selection-actions-expected.txt: Removed.
  • platform/ios-wk2/editing/selection/word-granularity-expected.txt: Removed.
  • platform/ios-wk2/editing/style/5046875-2-expected.txt: Removed.
  • platform/ios-wk2/editing/style/block-styles-007-expected.txt: Removed.
  • platform/ios-wk2/editing/style/create-block-for-style-001-expected.txt: Removed.
  • platform/ios-wk2/editing/style/create-block-for-style-002-expected.txt: Removed.
  • platform/ios-wk2/editing/style/create-block-for-style-003-expected.txt: Removed.
  • platform/ios-wk2/editing/style/create-block-for-style-004-expected.txt: Removed.
  • platform/ios-wk2/editing/style/create-block-for-style-013-expected.txt: Removed.
  • platform/ios-wk2/editing/style/style-3998892-fix-expected.txt: Removed.
  • platform/ios-wk2/editing/style/style-boundary-001-expected.txt: Removed.
  • platform/ios-wk2/editing/style/style-boundary-004-expected.txt: Removed.
  • platform/ios-wk2/editing/unsupported-content/list-delete-003-expected.txt: Removed.
  • platform/ios-wk2/editing/unsupported-content/list-type-after-expected.txt: Removed.
  • platform/ios-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
  • platform/ios-wk2/fast/dom/focus-contenteditable-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/basic-textareas-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/textarea-scrollbar-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/textarea-scrolled-type-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/textfield-outline-expected.txt: Removed.
  • platform/ios-wk2/fast/frames/onlyCommentInIFrame-expected.txt: Removed.
  • platform/ios-wk2/fast/inline-block/tricky-baseline-expected.txt: Removed.
  • platform/ios-wk2/fast/overflow/overflow-float-stacking-expected.txt: Removed.
  • platform/ios-wk2/fast/overflow/overflow-stacking-expected.txt: Removed.
  • platform/ios-wk2/fast/overflow/overflow-x-y-expected.txt: Removed.
  • platform/ios-wk2/fast/overflow/position-fixed-transform-clipping-expected.txt: Removed.
  • platform/ios-wk2/fast/text/international/thai-baht-space-expected.txt: Removed.
  • platform/ios-wk2/fast/transforms/transformed-caret-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Removed.
  • platform/ios/fast/canvas/set-colors-expected.txt: Removed.
  • platform/ios/fast/scrolling/adjust-scroll-offset-on-zoom-expected.txt: Removed.
  • platform/mac-bigsur/fast/block/margin-collapse/103-expected.txt: Removed.
  • platform/mac-catalina/fast/block/margin-collapse/103-expected.txt: Removed.
  • platform/mac-catalina/fast/forms/button-table-styles-expected.txt: Removed.
  • platform/mac-catalina/fast/forms/date/date-input-rendering-basic-expected.png: Removed.
  • platform/mac-catalina/fast/forms/input-disabled-color-expected.txt: Removed.
  • platform/mac-catalina/fast/forms/input-readonly-dimmed-expected.txt: Removed.
  • platform/mac-catalina/fast/forms/select-change-popup-to-listbox-expected.txt: Removed.
  • platform/mac-catalina/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Removed.
  • platform/mac-mojave/fast/block/basic/001-expected.txt: Removed.
  • platform/mac-mojave/fast/block/margin-collapse/103-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/button-table-styles-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/date/date-input-rendering-basic-expected.png: Removed.
  • platform/mac-mojave/fast/forms/input-disabled-color-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/input-readonly-dimmed-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/plaintext-mode-2-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/select-change-popup-to-listbox-expected.txt: Removed.
  • platform/mac-mojave/fast/text/indic-expected.txt: Removed.
  • platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Removed.
  • platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-expected.txt: Removed.
  • platform/mac-wk2/fast/forms/time/time-appearance-basic-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Removed.
  • platform/mac/fast/canvas/set-colors-expected.txt: Removed.
  • platform/mac/http/tests/webarchive/test-preload-resources-expected.txt: Removed.
  • platform/mac/svg/custom/image-with-prefix-in-webarchive-expected.txt: Removed.
  • platform/mac/svg/webarchive/svg-feimage-subresources-expected.txt: Removed.
  • platform/mac/webarchive/adopt-attribute-styled-body-webarchive-expected.txt: Removed.
  • platform/mac/webarchive/adopt-attribute-styled-node-webarchive-expected.txt: Removed.
  • platform/mac/webarchive/adopt-inline-styled-node-webarchive-expected.txt: Removed.
  • platform/mac/webarchive/archive-empty-frame-dom-expected.txt: Removed.
  • platform/mac/webarchive/archive-empty-frame-source-expected.txt: Removed.
  • platform/mac/webarchive/archive-with-unencoded-url-expected.txt: Removed.
  • platform/mac/webarchive/css-page-rule-crash-expected.txt: Removed.
  • platform/mac/webarchive/doctype-expected.txt: Removed.
  • platform/mac/webarchive/ignore-noscript-if-scripting-enabled-expected.txt: Removed.
  • platform/mac/webarchive/test-body-background-expected.txt: Removed.
  • platform/mac/webarchive/test-css-import-expected.txt: Removed.
  • platform/mac/webarchive/test-duplicate-resources-expected.txt: Removed.
  • platform/mac/webarchive/test-frameset-expected.txt: Removed.
  • platform/mac/webarchive/test-img-src-expected.txt: Removed.
  • platform/mac/webarchive/test-input-src-expected.txt: Removed.
  • platform/mac/webarchive/test-link-href-expected.txt: Removed.
  • platform/mac/webarchive/test-object-data-expected.txt: Removed.
  • platform/mac/webarchive/test-script-src-expected.txt: Removed.
  • platform/mac/webarchive/test-table-background-expected.txt: Removed.
  • platform/mac/webarchive/test-td-background-expected.txt: Removed.
  • platform/mac/webarchive/test-xml-stylesheet-expected.txt: Removed.
  • platform/win/animations/steps-transform-rendering-updates-expected.txt: Removed.
  • platform/win/editing/style/apply-through-end-of-document-expected.txt: Removed.
  • platform/win/fast/dom/HTMLProgressElement/progress-element-with-child-crash-expected.txt: Removed.
  • platform/wincairo/animations/steps-transform-rendering-updates-expected.txt: Removed.
  • platform/wincairo/editing/style/apply-through-end-of-document-expected.txt: Removed.
  • platform/wpe/http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt: Removed.
7:17 AM Changeset in webkit [268588] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r266932): [ Mojave+ wk2 ] fast/scrolling/latching/latched-scroll-into-nonfast-region.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217001

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:12 AM Changeset in webkit [268587] by commit-queue@webkit.org
  • 8 edits in trunk/Source

REGRESSION(r267727): Warning spam from JSC_DECLARE_CUSTOM_GETTER
https://bugs.webkit.org/show_bug.cgi?id=217585

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-16
Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

A small number of source files now need to use JSC_DECLARE_CUSTOM_GETTER_WITHOUT_WTF_INTERNAL.

  • b3/testb3_5.cpp:
  • b3/testb3_7.cpp:
  • tools/JSDollarVM.cpp:

Source/WebCore:

SelectorCompiler.cpp needs the new JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL.

  • cssjit/SelectorCompiler.cpp:

Source/WTF:

The problem is that the declarations are static, so WTF_INTERNAL is redundant with that.
(File-static declarations are of course local to the current file, and apparently GCC really
wants us to not hide symbols that don't need to be hidden.)

I considered remove WTF_INTERNAL from JSC_DECLARE_JIT_OPERATION and ensuring all uses are
static, but it's not possible because it is frequently used in header files. It should only
be static when used in .cpp files.

So I decided to split JSC_DECLARE_JIT_OPERATION into two versions, the current one that uses
WTF_INTERNAL, and JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL that doesn't. That is not a
great name, but it's only used in a couple places, so I guess that's OK.
JSC_DECLARE_CUSTOM_GETTER and JSC_DECLARE_CUSTOM_SETTER use this new version, since those
are only used in static declarations in .cpp files. A small number of source files also need
the version without the WTF_INTERNAL. All other users can continue to use original
JSC_DECLARE_JIT_OPERATION with WTF_INTERNAL and not worry about the ugly name.

I'm not terribly happy with this solution, and it's a little fragile too (you probably won't
directly use JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL in a place that needs
WTF_INTERNAL, but you might use JSC_DECLARE_CUSTOM_GETTER and JSC_DECLARE_CUSTOM_SETTER in
such a way!), but at least it will avoid the warning spam and allow us to see warnings for
real problems.

  • wtf/PlatformCallingConventions.h:
6:21 AM Changeset in webkit [268586] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, follow-up to r268576

Revert a chunk of r268576 that introduced a regression in audio-related tests.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::fillMimeTypeSetFromCapsMapping): Add an ASSERT and
modify mime-type and codec hashmaps in-place.

6:03 AM Changeset in webkit [268585] by Andres Gonzalez
  • 10 edits in trunk/Source/WebCore

Refactor [WebAccessibilityObjectWrapper convertRectToSpace] so that the platform-specific code is in their corresponding AX object platform implementations.
https://bugs.webkit.org/show_bug.cgi?id=217785

Reviewed by Chris Fleizach.

No change in functionality, code refactor and cleanup.

[WebAccessibilityObjectWrapperBase convertRectToSpace] had two different
code paths for Mac and iOS, defeating the purpose of a base class.
This re-factoring Simplifies the wrapper code by moving the platform-
specific implementations to their corresponding AX object implementations
of convertRectToPlatformSpace.
Some code cleanup.

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

(WebCore::AccessibilityObject::topDocumentFrameView const):
(WebCore::AccessibilityObject::convertRectToPlatformSpace const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::convertRectToPlatformSpace const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::topDocumentFrameView const):
(WebCore::AccessibilityObject::convertRectToPlatformSpace const):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase convertRectToSpace:space:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper position]):

5:53 AM Changeset in webkit [268584] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Win10 wk1 ews ] transforms/2d/translate-change-composited.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217812

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:51 AM Changeset in webkit [268583] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectations after r268575.

Added several failures from new added tests.

  • platform/glib/TestExpectations:
5:45 AM Changeset in webkit [268582] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Win10 wk1 ews ] transforms/2d/rotate-change-composited.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217812

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:33 AM Changeset in webkit [268581] by clopez@igalia.com
  • 2 edits in trunk/Tools

Ensure the tests are run with US/Pacific time zone
https://bugs.webkit.org/show_bug.cgi?id=186612

Reviewed by Michael Catanzaro.

Some tests fail if the time zone is not set to US/Pacific, and
this causes issues for contributors living outside of that timezone.
Ideally we should fix those tests, but in the meantime setting this
environment variable before starting the layout tests seems like
an acceptable workaround. Note that something similar is also
already done for the JSC tests.

  • Scripts/webkitpy/port/base.py:

(Port.setup_environ_for_server):

5:33 AM Changeset in webkit [268580] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Win10 wk1 ews ] transforms/2d/scale-change-composited.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217812

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:22 AM Changeset in webkit [268579] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer] Audio worklet support
https://bugs.webkit.org/show_bug.cgi?id=217760

Reviewed by Xabier Rodriguez-Calvar.

This patch hooks WebAudio worklet rendering support into the GStreamer WebAudio backend.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::start): Set the render callback if it was provided.

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcAllocateBuffersAndRenderAudio): Invoke the bus rendering through the
render callback if it was set.
(webkitWebAudioSourceSetDispatchToRenderThreadCallback):

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.h:
3:55 AM Changeset in webkit [268578] by commit-queue@webkit.org
  • 16 edits
    1 copy
    1 add in trunk/Source/WebCore

Refactor WebGL implementation to use only GraphicsContextGL part 1
https://bugs.webkit.org/show_bug.cgi?id=217213
<rdar://problem/69876105>

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

Part 1 of work towards WebGL implementation which uses
GraphicsContextGL abstract base class instead of
GraphicsContextGLOpenGL concrete class.

Move pixel data related static helper funcions from
GraphicsContextGLOpenGL to GraphicsContextGL. These are
normal pixel format calculation functions that do not have
concrete class implementation details. Move pixel pack related
structures to GraphicsContextGL.

Rename GraphicsContextGLOpenGL::ImageExtractor to
GraphicsContextGLImageExtractor. The GraphicsContextGL class
interface is already quite lengthy and the image extractor
is not very tied to the context class.

Introduce a virtual member function in GraphicsContextGL for
each call that is likely needed for the WebGL implementation.

No new tests, a refactor.

  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getPackPixelStoreParams const):
(WebCore::WebGL2RenderingContext::getUnpackPixelStoreParams const):

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

(WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper):
(WebCore::WebGLRenderingContextBase::texImageImpl):
(WebCore::WebGLRenderingContextBase::getPackPixelStoreParams const):
(WebCore::WebGLRenderingContextBase::getUnpackPixelStoreParams const):

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

(WebCore::getDataFormat):
(WebCore::texelBytesForFormat):
(WebCore::packPixels):
(WebCore::GraphicsContextGL::computeFormatAndTypeParameters):
(WebCore::GraphicsContextGL::computeImageSizeInBytes):
(WebCore::GraphicsContextGL::possibleFormatAndTypeForInternalFormat):
(WebCore::GraphicsContextGL::packImageData):
(WebCore::GraphicsContextGL::extractImageData):
(WebCore::GraphicsContextGL::extractTextureData):

  • platform/graphics/GraphicsContextGL.h:

(WebCore::GraphicsContextGL::Client::~Client):
(WebCore::GraphicsContextGL::addClient):
(WebCore::GraphicsContextGL::removeClient):
(WebCore::GraphicsContextGL::getInternalFramebufferSize const):

  • platform/graphics/GraphicsContextGLImageExtractor.cpp: Copied from Source/WebCore/platform/graphics/win/GraphicsContextGLDirect2D.cpp.

(WebCore::GraphicsContextGLImageExtractor::GraphicsContextGLImageExtractor):

  • platform/graphics/GraphicsContextGLImageExtractor.h: Added.

(WebCore::GraphicsContextGLImageExtractor::extractSucceeded):
(WebCore::GraphicsContextGLImageExtractor::imagePixelData):
(WebCore::GraphicsContextGLImageExtractor::imageWidth):
(WebCore::GraphicsContextGLImageExtractor::imageHeight):
(WebCore::GraphicsContextGLImageExtractor::imageSourceFormat):
(WebCore::GraphicsContextGLImageExtractor::imageAlphaOp):
(WebCore::GraphicsContextGLImageExtractor::imageSourceUnpackAlignment):
(WebCore::GraphicsContextGLImageExtractor::imageHtmlDomSource):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:
  • platform/graphics/cairo/GraphicsContextGLCairo.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::texImage2DResourceSafe):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
  • platform/graphics/win/GraphicsContextGLDirect2D.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):

2:48 AM Changeset in webkit [268577] by youenn@apple.com
  • 22 edits
    5 adds in trunk/Source

Add support for GPUProcess WebAudio media element providers
https://bugs.webkit.org/show_bug.cgi?id=217704

Reviewed by Eric Carlson.

Source/WebCore:

Update AudioSourceProviderAVFObjC so that a specific ring buffer can be provided and to be notified of new samples being pushed.

Covered by existing web audio tests run with GPUProcess.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/AudioSourceProvider.h:

(WebCore::AudioSourceProvider::isHandlingAVPlayer const):

  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::pullSamplesInternal):
When we are too close to the end of available data, do as if we are paused and keep the same time entry for the next read operation.
This will basically make us wait for the next push of data before restarting to read succesfully.

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h:

(isType):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::prepare):
(WebCore::AudioSourceProviderAVFObjC::process):
(WebCore::AudioSourceProviderAVFObjC::setAudioCallback):
(WebCore::AudioSourceProviderAVFObjC::setRingBufferCreationCallback):

  • platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:

(WebCore::WebAudioSourceProviderCocoa::receivedNewAudioSamples):
We should use the input sample rate to compute the input media time.

Source/WebKit:

Introduce RemoteAudioSourceProviderManager which receives IPC messages from GPU process for web audio data.
RemoteAudioSourceProviderManager sends it to the identified RemoteAudioSourceProvider.

Introduce RemoteAudioSourceProviderProxy which is a client to the AV AudioSourceProviderAVFObjC.
RemoteAudioSourceProviderProxy will send IPC messages to RemoteAudioSourceProviderManager to send audio data and description.

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

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

  • GPUProcess/media/RemoteAudioSourceProviderProxy.h: Added.
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::~RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::createAudioSourceProvider):
(WebKit::RemoteMediaPlayerProxy::setShouldEnableAudioSourceProvider):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::audioSourceProviderManager):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/media/RemoteAudioSourceProvider.cpp:

(WebKit::RemoteAudioSourceProvider::create):
(WebKit::RemoteAudioSourceProvider::RemoteAudioSourceProvider):
(WebKit::RemoteAudioSourceProvider::close):
(WebKit::RemoteAudioSourceProvider::hasNewClient):

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

(WebKit::RemoteAudioSourceProviderManager::RemoteAudioSourceProviderManager):
(WebKit::RemoteAudioSourceProviderManager::~RemoteAudioSourceProviderManager):
(WebKit::RemoteAudioSourceProviderManager::setConnection):
(WebKit::RemoteAudioSourceProviderManager::addProvider):
(WebKit::RemoteAudioSourceProviderManager::removeProvider):
(WebKit::RemoteAudioSourceProviderManager::dispatchToThread):
(WebKit::RemoteAudioSourceProviderManager::audioStorageChanged):
(WebKit::RemoteAudioSourceProviderManager::audioSamplesAvailable):
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::RemoteAudio):
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::setStorage):
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::audioSamplesAvailable):

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.h: Added.

(WebKit::RemoteAudioSourceProviderManager::create):

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.messages.in: Added.
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
1:52 AM Changeset in webkit [268576] by Philippe Normand
  • 11 edits
    1 move in trunk

[GStreamer] Encoder probing support for the registry scanner
https://bugs.webkit.org/show_bug.cgi?id=217750

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The scanner is now able to probe for platform encoders for the most common formats: avc1,
av1, ogg, theora, aac and opus. The muxers for webm and mp4 are also checked.

No new tests, existing mediacapabilities test cover this change.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner):
(WebCore::GStreamerRegistryScanner::~GStreamerRegistryScanner):
(WebCore::GStreamerRegistryScanner::mimeTypeSet):
(WebCore::GStreamerRegistryScanner::isContainerTypeSupported const):
(WebCore::GStreamerRegistryScanner::hasElementForMediaType const):
(WebCore::GStreamerRegistryScanner::fillMimeTypeSetFromCapsMapping):
(WebCore::GStreamerRegistryScanner::initializeDecoders):
(WebCore::GStreamerRegistryScanner::initializeEncoders):
(WebCore::GStreamerRegistryScanner::isCodecSupported const):
(WebCore::GStreamerRegistryScanner::isContentTypeSupported const):
(WebCore::GStreamerRegistryScanner::areAllCodecsSupported const):
(WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const):
(WebCore::GStreamerRegistryScanner::configurationNameForLogging const):
(WebCore::GStreamerRegistryScanner::isConfigurationSupported const):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:

(WebCore::GStreamerRegistryScanner::isDecodingSupported const):
(WebCore::GStreamerRegistryScanner::isEncodingSupported const):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::supportsContainerType):
(WebCore::ImageDecoderGStreamer::canDecodeType):

  • platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.cpp:

(WebCore::createMediaPlayerEncodingConfigurationGStreamer):

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

(WebCore::MediaPlayerPrivateGStreamer::getSupportedTypes):
(WebCore::MediaPlayerPrivateGStreamer::supportsType):

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

(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::getSupportedTypes):
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsType):

  • platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:

(WebCore::factories):

LayoutTests:

  • platform/glib/media/mediacapabilities-types-expected.txt: Renamed from LayoutTests/platform/gtk/media/mediacapabilities/mediacapabilities-types-expected.txt.
12:52 AM Changeset in webkit [268575] by jiewen_tan@apple.com
  • 7 edits
    1 copy
    2 adds in trunk/Source

[WebAuthn] Move AppAttestInternal related code from WKA to OpenSource
https://bugs.webkit.org/show_bug.cgi?id=217790
<rdar://problem/59613406>

Reviewed by Brent Fulgham.

Source/WebKit:

Covered by manual testing.

  • Platform/spi/Cocoa/AppAttestSPI.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/AppAttestInternalSoftLink.mm.
  • SourcesCocoa.txt:
  • UIProcess/WebAuthentication/Cocoa/AppAttestInternalSoftLink.h: Added.
  • UIProcess/WebAuthentication/Cocoa/AppAttestInternalSoftLink.mm: Added.
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::getAttestation const):

  • UIProcess/WebAuthentication/Cocoa/LocalService.mm:

(WebKit::LocalService::isAvailable):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/PlatformHave.h:
12:22 AM Changeset in webkit [268574] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

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

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:09 AM Changeset in webkit [268573] by Diego Pino Garcia
  • 2 edits
    1 move
    1 delete in trunk/LayoutTests

[GTK] Update expectations for editing/pasteboard/drop-text-without-selection.html after r267997

Unreviewed test gardening.

r267997 removed GTK expected baseline for editing/pasteboard/drop-text-without-selection.html, which was stale
after the test was converted into a reftest. After this change, GTK test bot reported the baseline as Missing.
The reason was that the reference test was in platform Mac. Also remove stale GTK expected image.

  • editing/pasteboard/drop-text-without-selection-expected.html: Renamed from LayoutTests/platform/mac/editing/pasteboard/drop-text-without-selection-expected.html.
  • platform/gtk/TestExpectations:
  • platform/gtk/editing/pasteboard/drop-text-without-selection-expected.png: Removed.
Note: See TracTimeline for information about the timeline view.