Timeline
Dec 5, 2020:
- 6:47 PM Changeset in webkit [270480] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r268075): Animations at the top of https://browserbench.org/JetStream/ are very slow
https://bugs.webkit.org/show_bug.cgi?id=219447
<rdar://problem/71905123>
Reviewed by Sam Weinig.
SVG images have their own Page, and when they request rendering updates, they have to go through
ChromeClient, but that was missing for the Page::renderingUpdateCompleted() code path.
Make scheduleRenderingUpdateInternal() and call it from the two relevant places.
I tried making both a ref test and a test using internals.renderingUpdateCount(), but neither
were reliable. There's no way to get a signal out from the <img src="*.svg"> to say that
the animation has started, requiring tests to have flakey setTimeouts.
- page/Page.cpp:
(WebCore::Page::scheduleRenderingUpdate):
(WebCore::Page::scheduleRenderingUpdateInternal):
(WebCore::Page::renderingUpdateCompleted):
- page/Page.h:
- 4:22 PM Changeset in webkit [270479] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r270458): Crash loading https://browserbench.org/JetStream/
https://bugs.webkit.org/show_bug.cgi?id=219568
Reviewed by Tim Horton.
Get the backendSize before sinking it into a NativeImage.
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):
- 2:17 PM Changeset in webkit [270478] by
-
- 25 edits in trunk
[Concurrent display lists] Synchronize display list rendering across remote image buffers
https://bugs.webkit.org/show_bug.cgi?id=219091
<rdar://problem/71747695>
Reviewed by Geoff Garen.
Source/WebCore:
See Source/WebKit/ChangeLog for more details.
- platform/graphics/ImageBuffer.h:
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):
Add plumbing so that
didAppendDatacan inform the client whether the data was appended after switching to a
new buffer. In WebKit2's remote image buffer, we use this information to determine whether or not we need to
send a wakeup message to the GPU process. Namely, in the case ofDidChangeItemBuffer::Yes, we don't need to
wake up the GPU process even though the unread bytes count was 0 before we advanced, since the GPU process will
automatically progress to this item buffer when it's done processing items in the previous item buffer.
See WebKit changes (in
RemoteImageBufferProxy) for more details.
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::ItemBuffer::didAppendData):
(WebCore::DisplayList::ItemBuffer::appendEncodedData): Deleted.
- platform/graphics/displaylists/DisplayListItemBuffer.h:
Add a new
ItemBufferWritingClientmethod to inform clients when new bytes are appended to an item buffer,
given the additional number of bytes added and the item buffer handle.
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::ItemBuffer::uncheckedAppend):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
Remove MetaCommandEnd. I introduced this item type because I was going to make the GPU process always sleep for
more display list item data, but I've since changed the approach so that the GPU process goes to sleep naturally
when it's done processing all unread bytes.
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::flushContext):
Add a new helper method to append a
FlushContextitem via the display list recorder, to ensure that the
appropriate recorder delegate methods are invoked when appending a "flush context" item.
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::replay):
- platform/graphics/displaylists/DisplayListReplayer.h:
Source/WebKit:
Refactors the existing concurrent display list processing mechanism, such that we no longer update the unread
bytes count every 512 items (or when flushing the drawing context), and instead update it every time we append
display list item data. In order to achieve this without making it impossible for multiple display-list backed
image buffers to render simultaneously, we also add support for synchronizing display list items across
different image buffers by using the new meta command items added in bug #219262. As detailed in the ChangeLog
for that bug, a stream of display list data written by the web process and consumed by the GPU process is now
structured like so:
Wakeup message initiates display list processing with Image Buffer A and Item Buffer 1
|
| MetaCommandChangeDestinationImageBuffer(B)
| |
| | MetaCommandChangeItemBuffer(2)
| | |
| | |
v v v
+-----------------------+--------------------------------++
| +--------------------+ +------------------------------+ |
| | Destination | | Destination | | Item Buffer 1
| | Image Buffer A | | Image Buffer B | |
| +--------------------+ +------------------------------+ |
+---------------------------------------------------------+
+---------------------------------------------------------+
| +--------------+ +-----------------------+ |
| | Dst. Image | | Destination Image | Unused | Item Buffer 2
| | Buffer B | | Buffer A | Capacity |
| +--------------+ +-----------------------+ |
+-----------------+-------------------------+-------------+
|
|
MetaCommandChangeDestinationImageBuffer(A)
(Note that the
MetaCommandEnditem has been omitted, since we no longer need to explicitly tell the GPU
process to go to sleep with the latest iteration of this patch).
In order to write display list data conforming to this format, we add a mechanism to the web process that keeps
track of the "current destination image buffer" (i.e. the image buffer that has most recently
appended a display list item). Right before this destination is about to change, we append a new
MetaCommandChangeDestinationImageBufferitem before proceeding to append display list items for the new
current destination.
Since we now bump the unread count every time, we need to do some additional work to avoid an excessive number
of wakeups and sleeps in the GPU process, which would otherwise cause a massive regression. To do this, we
introduce an item count hysteresis in the web process, such that we will wait for 512 items to be written before
attempting to send the wakeup message. This allows the web process to get a small head start over the GPU
process, and thus allows the GPU process to be more consistently busy over the course of a single frame.
On the reader (GPU process) side, we make some minor adjustments so that the main display list processing loop
of the GPU process is capable of changing destination image buffers while processing a stream of display list
items.
See below for more details.
- GPUProcess/graphics/DisplayListReaderHandle.cpp:
(WebKit::DisplayListReaderHandle::advance):
Update
advanceso that it just performs a single 8-byte atomicexchangeSubrather than grabbing a spinlock.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::submit):
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
Rename
applyDisplayListsFromHandletonextDestinationImageBufferAfterApplyingDisplayLists, and make it
return the current image buffer to use as the destination for replaying display list commands. This helper is
still responsible for replaying a display list item buffer until it has no more data (that is, until we
encounter aMetaCommandChangeItemBufferitem informing us of the next item buffer to consume).
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):
Adjust this to call
nextDestinationImageBufferAfterApplyingDisplayLists.
(WebKit::RemoteRenderingBackend::decodeItem):
(WebKit::RemoteRenderingBackend::applyDisplayListsFromHandle): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.h:
- Shared/SharedDisplayListHandle.h:
Remove
SharedDisplayListHandle::Lockaltogether, now that we just have a single atomicuint64_tcounter to
represent the number of unread bytes.
(WebKit::SharedDisplayListHandle::unreadBytes):
(WebKit::SharedDisplayListHandle::Lock::Lock): Deleted.
(WebKit::SharedDisplayListHandle::Lock::~Lock): Deleted.
- WebProcess/GPU/graphics/DisplayListWriterHandle.cpp:
(WebKit::DisplayListWriterHandle::advance):
Make this use the single atomic counter, instead of grabbing a spinlock.
(WebKit::DisplayListWriterHandle::moveWritableOffsetToStartIfPossible):
(WebKit::DisplayListWriterHandle::resetWritableOffsetIfPossible): Deleted.
Rename
resetWritableOffsetIfPossibleto the more accuratemoveWritableOffsetToStartIfPossible.
- WebProcess/GPU/graphics/DisplayListWriterHandle.h:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::changeDestinationImageBuffer):
Add a helper method to append a
MetaCommandChangeDestinationImageBufferitem to the display list, given the
identifier of this next item buffer.
(WebKit::RemoteImageBufferProxy::clearDisplayList):
Add a helper method to clear the display list, such that the
RemoteImageBufferProxywill be asked for a new
buffer handle the next time we append an item.
(WebKit::RemoteImageBufferProxy::waitForDidFlushWithTimeout):
Make this hit the maximum
waitForAndDispatchImmediatelyattempt count and "fail" only if the call to
waitForAndDispatchImmediatelyactually times out. This change is necessary to ensure that the scenario of
multiple image buffers simultaneously appending display list items works when all image buffers perform (non-
blocking) flushes simultaneously, followed by a sync-wait (blocking) flush. In this situation, the web process
may receive more than threeDidFlushmessages in rapid succession, causing it to hit this maximum limit of 3
instantly and avoid waiting for the expectedDidFlushmessage to arrive.
(WebKit::RemoteImageBufferProxy::submitDisplayList): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::gpuProcessConnectionDidClose):
Reset state when the GPU process is terminated.
(WebKit::RemoteRenderingBackendProxy::willAppendItem):
Update the current destination image buffer (
m_currentDestinationImageBufferIdentifier). If this identifier
changed, then we append aMetaCommandChangeDestinationImageBufferitem to the previous destination before
setting the new destination image buffer. We also need to clear the new destination image buffer's display list
before writing new items, to prevent it from overwriting shared display list item data.
(WebKit::RemoteRenderingBackendProxy::sendWakeupMessage):
(WebKit::RemoteRenderingBackendProxy::sendDeferredWakeupMessageIfNeeded):
(WebKit::RemoteRenderingBackendProxy::didAppendData):
Implement a new
ItemBufferWritingClienthook by advancing the corresponding item buffer's unread count.
Additionally, schedule a wakeup message in the case where the unread count was zero when we advanced, and the
item buffer we've appended to is not "connected" to a previous item buffer by way of an item buffer change item.
Additionally, in the case where we don't schedule a new wakeup message, check whether or not there is a deferred
wakeup message; if there is, then decrement the remaining item count before we send the wakeup message, and send
the message if the count reaches 0.
(WebKit::RemoteRenderingBackendProxy::findReusableDisplayListHandle):
Pull logic to find a shared display list handle suitable for reuse into a separate helper method, and adjust it
so that if the most recently used display list handle has run out of available capacity, we move it to the end
of the reuse queue and only reuse the new first shared handle in the queue if its writable offset can be reset.
This ensures that the GPU process can always continue reading display list item data from the start of new item
buffers -- i.e., we don't end up with the web process writing out a stream of display list data like:
(Start) Bytes (16, 65520) in ItemBuffer[1]
Bytes (16, 65536) in ItemBuffer[2]
Bytes (65520, 65536) in ItemBuffer[1]
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):
(WebKit::RemoteRenderingBackendProxy::submitDisplayList): Deleted.
(WebKit::RemoteRenderingBackendProxy::updateReusableHandles): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- 1:28 PM Changeset in webkit [270477] by
-
- 62 edits in trunk
Remove ENABLE_GRAPHICS_CONTEXT_GL by replacing it with ENABLE(WEBGL)
https://bugs.webkit.org/show_bug.cgi?id=219551
Reviewed by Kenneth Russell.
.:
- Source/CMakeLists.txt:
- Source/cmake/GStreamerDependencies.cmake:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWinCairo.cmake:
Source/WebCore:
GraphicsContextGL is a module only for WebGL. ENABLE_WEBGL should
be removed if all ports enable it.
- CMakeLists.txt:
- page/Chrome.cpp:
(WebCore::Chrome::windowScreenDidChange):
- platform/graphics/ANGLEWebKitBridge.cpp:
- platform/graphics/ANGLEWebKitBridge.h:
- platform/graphics/FormatConverter.cpp:
- platform/graphics/FormatConverter.h:
- platform/graphics/GLContext.cpp:
- platform/graphics/GLContext.h:
- platform/graphics/GraphicsContextGL.cpp:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsContextGLAttributes.h:
- platform/graphics/GraphicsContextGLImageExtractor.cpp:
- platform/graphics/GraphicsContextGLImageExtractor.h:
- platform/graphics/OpenGLShims.cpp:
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
- platform/graphics/angle/GraphicsContextGLANGLEUtilities.h:
- platform/graphics/angle/TemporaryANGLESetting.cpp:
- platform/graphics/cairo/GraphicsContextGLCairo.cpp:
- platform/graphics/cg/GraphicsContextGLCG.cpp:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
- platform/graphics/cv/GraphicsContextGLCV.h:
- platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:
- platform/graphics/cv/GraphicsContextGLCVANGLE.h:
- platform/graphics/egl/GLContextEGL.cpp:
- platform/graphics/egl/GLContextEGL.h:
- platform/graphics/glx/GLContextGLX.cpp:
- platform/graphics/glx/GLContextGLX.h:
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
- platform/graphics/opengl/ExtensionsGLOpenGL.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.cpp:
- platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
- platform/graphics/opengl/TemporaryOpenGLSetting.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:
- platform/graphics/win/GraphicsContextGLDirect2D.cpp:
Source/WebKit:
- CMakeLists.txt:
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
- UIProcess/gtk/HardwareAccelerationManager.cpp:
(WebKit::HardwareAccelerationManager::HardwareAccelerationManager):
Source/WTF:
- wtf/Platform.h:
- wtf/PlatformEnable.h:
- 1:25 PM Changeset in webkit [270476] by
-
- 4 edits in trunk/Source/WebCore
Prelininary refactoring of TextMarker and TextMarkerRange.
https://bugs.webkit.org/show_bug.cgi?id=219491
Reviewed by Chris Fleizach.
Covered by existing tests.
TextMarker and TextMarkerRange should become classes on their own right.
As a first step in that direction, this patch moves all the static
functions in WebAccessibilityObjectWrapperMac.mm to make conversions
between TextMarkers and TextMarkerRanges to and from other types to
AXObjectCacheMac.mm.
In addition, removed all ObjectiveC wrappers to these functions and
instead call the functions directly where needed. This is relevant now
with the arrival of isolated tree mode because it saves a non-trivial
call to the wrapper's axBackingObject getter. Furthermore, all the
conversion functions are doing now the appropriate thread check, since
they all need to run on the main thread.
Fixed the handling of the NSAccessibilityMisspellingTextMarkerRangeParameterizedAttribute
request that was calling accessibilityMisspellingSearchCriteriaForParameterizedAttribute
off of the main thread.
- accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXTextMarkerRange):
(WebCore::textMarkerRangeFromMarkers):
(WebCore::AXTextMarkerRangeStart):
(WebCore::AXTextMarkerRangeEnd):
(WebCore::getBytesFromAXTextMarker):
(WebCore::accessibilityObjectForTextMarker):
(WebCore::textMarkerForVisiblePosition):
(WebCore::visiblePositionForTextMarker):
(WebCore::textMarkerRangeFromVisiblePositions):
(WebCore::visiblePositionRangeForTextMarkerRange):
(WebCore::textMarkerForCharacterOffset):
(WebCore::characterOffsetForTextMarker):
(WebCore::startOrEndTextMarkerForRange):
(WebCore::textMarkerRangeFromRange):
(WebCore::rangeForTextMarkerRange):
- accessibility/mac/WebAccessibilityObjectWrapperMac.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilityTextOperationForParameterizedAttribute):
(accessibilityMisspellingSearchCriteriaForParameterizedAttribute):
(-[WebAccessibilityObjectWrapper textMarkerForVisiblePosition:]):
(-[WebAccessibilityObjectWrapper textMarkerForFirstPositionInTextControl:]):
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
(-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarker:]):
(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapper showNodeForTextMarker:]):
(-[WebAccessibilityObjectWrapper showNodeTreeForTextMarker:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeAtTextMarker:forUnit:]):
(-[WebAccessibilityObjectWrapper lineTextMarkerRangeForTextMarker:forUnit:]):
(-[WebAccessibilityObjectWrapper textMarkerForTextMarker:atUnit:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(AXTextMarkerRangeStart): MOved to AXObjectCacheMac.mm.
(AXTextMarkerRangeEnd): MOved to AXObjectCacheMac.mm.
(getBytesFromAXTextMarker): MOved to AXObjectCacheMac.mm.
(isTextMarkerIgnored): Deleted.
(-[WebAccessibilityObjectWrapper accessibilityObjectForTextMarker:]): Deleted.
(accessibilityObjectForTextMarker): MOved to AXObjectCacheMac.mm.
(-[WebAccessibilityObjectWrapper textMarkerForCharacterOffset:]): Deleted.
(textMarkerForCharacterOffset): MOved to AXObjectCacheMac.mm.
(-[WebAccessibilityObjectWrapper rangeForTextMarkerRange:]): Deleted.
(characterOffsetForTextMarker): MOved to AXObjectCacheMac.mm.
(-[WebAccessibilityObjectWrapper characterOffsetForTextMarker:]): Deleted.
(visiblePositionForTextMarker): MOved to AXObjectCacheMac.mm.
(visiblePositionRangeForTextMarkerRange): MOved to AXObjectCacheMac.mm.
(-[WebAccessibilityObjectWrapper visiblePositionForTextMarker:]): Deleted.
(-[WebAccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]): Deleted.
- 1:18 PM Changeset in webkit [270475] by
-
- 2 edits in trunk/Source/WebCore
Add ScrollAnimation files to the Xcode project
https://bugs.webkit.org/show_bug.cgi?id=219566
Reviewed by Yusuke Suzuki.
ScrollAnimation* files were added to Sources.txt but not the Xcode project.
- WebCore.xcodeproj/project.pbxproj:
- 10:53 AM Changeset in webkit [270474] by
-
- 14 edits2 copies in trunk/Source/WebCore
[LFC Display] Store the display tree as a tree of stacking items
https://bugs.webkit.org/show_bug.cgi?id=219315
Reviewed by Zalan Bujtas.
Currently the display tree is a full tree, crossing stacking context boundaries, and the
z-order lists are built at paint time.
Change to a tree of StackingItems, where a StackingItem exists for each box that
participates in the z-order sorting algorithm (i.e. boxes that are positioned, or have
styles that create stacking context). Each StackingItem owns the subtree of Display::Boxes
that it paints, and those subtrees are not otherwise connected.
The Display::Tree owns the root StackingItem, and each StackingItem owns its child
StackingItems. The StackingItem tree is built at display tree building time by storing state
in the BuildingState stack. StackingItems are added to the z-order lists of their parent
item at creation time; when done processing boxes for a StackingItem, we then sort its
z-order lists.
Add Box::participatesInZOrderSorting() and a LineBreakBox flag, and call that function
instead of the version on Display::Style to work around webkit.org/b/219335 for now.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- display/DisplayLayerController.cpp:
- display/DisplayTree.cpp:
(WebCore::Display::Tree::Tree):
(WebCore::Display::Tree::rootBox const):
- display/DisplayTree.h:
(WebCore::Display::Tree::rootStackingItem const):
(WebCore::Display::Tree::rootBox const): Deleted.
- display/DisplayTreeBuilder.cpp:
(WebCore::Display::TreeBuilder::build):
(WebCore::Display::TreeBuilder::pushStateForBoxDescendants):
(WebCore::Display::TreeBuilder::popState):
(WebCore::Display::TreeBuilder::insertIntoTree):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree):
(WebCore::Display::outputDisplayBox):
(WebCore::Display::outputDisplayTree):
(WebCore::Display::displayTreeAsText):
(WebCore::Display::outputStackingTree):
(WebCore::Display::showDisplayTree):
- display/DisplayTreeBuilder.h:
- display/css/DisplayBox.cpp:
(WebCore::Display::Box::participatesInZOrderSorting const):
- display/css/DisplayBox.h:
(WebCore::Display::Box::isLineBreakBox const):
- display/css/DisplayBoxFactory.cpp:
(WebCore::Display::BoxFactory::displayBoxForRootBox const):
(WebCore::Display::BoxFactory::displayBoxForLayoutBox const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):
- display/css/DisplayBoxFactory.h:
- display/css/DisplayCSSPainter.cpp:
(WebCore::Display::CSSPainter::recursivePaintDescendantsForPhase):
(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):
(WebCore::Display::CSSPainter::paintStackingContext):
(WebCore::Display::CSSPainter::paintTree):
(WebCore::Display::CSSPainter::isStackingContextPaintingBoundary): Deleted.
(WebCore::Display::CSSPainter::participatesInZOrderSorting): Deleted.
(WebCore::Display::CSSPainter::collectStackingContextDescendants): Deleted.
(WebCore::Display::CSSPainter::recursiveCollectLayers): Deleted.
- display/css/DisplayCSSPainter.h:
- 6:23 AM Changeset in webkit [270473] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Create an inline box for </span> when it's the first box on the line
https://bugs.webkit.org/show_bug.cgi?id=219556
Reviewed by Antti Koivisto.
When the line starts with inline-box-end (</span>), we need to create an inline box for that box itself
and for its ancestors as well.
This fixes css1/units/rounding.html with ALLOW_INLINES enabled.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 6:21 AM Changeset in webkit [270472] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Do not construct a new layout box for every inline box end (InlineWalker)
https://bugs.webkit.org/show_bug.cgi?id=219557
Reviewed by Antti Koivisto.
We use the InlineWalker to walk the inline part of the render tree to build the corresponding layout (sub)tree.
With content e.g <span>text</span>, InlineWalker visits
- <span> (RenderInline)
- text (RenderText)
- </span> (RenderInline)
This patch ensures that we don't create yet another layout box for step #3.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- 3:54 AM Changeset in webkit [270471] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening. Gardened more media-source timeouts.
- platform/gtk/TestExpectations:
Dec 4, 2020:
- 9:59 PM Changeset in webkit [270470] by
-
- 2 edits1 delete in trunk/Source/WebKit
[GPU Process] Remove ConcreteShareableImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=219563
Reviewed by Simon Fraser.
Delete this class since the only function it implements:
'createImageBufferBackendHandle()' is not used.
- Shared/ConcreteShareableImageBuffer.h: Removed.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
- 9:49 PM Changeset in webkit [270469] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Gardening media-source timeouts
Unreviewed test gardening.
- platform/glib/TestExpectations:
- 5:26 PM Changeset in webkit [270468] by
-
- 12 edits in trunk/Source/WebCore
Simplify audio resampling code
https://bugs.webkit.org/show_bug.cgi?id=219560
Reviewed by Darin Adler.
Made the following changes to simplify / improve the resampling code:
- MultiChannelResampler & SincResampler now take a lambda upon construction to fetch input data, instead of taking a AudioSourceProvider pointer whenever process() is called.
- We can now get rid of the whole MultiChannelResampler::ChannelProvider class and have the lambda call MultiChannelResampler::provideInputForChannel() instead. Similarly, we can also get rid of SincResampler's BufferSourceProvider.
- As an optimization, MultiChannelResampler::process() now has a fast path when the AudioBus only has a single channel, to avoid the processing-in-chunks logic. The chunking logic is only needed when there are multiple channels, to make sure that provideInputForChannel() only gets called once per channel, to avoid confusing its logic. This is similar to what Chromium does.
- Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
(WebCore::MediaElementAudioSourceNode::provideInput):
(WebCore::MediaElementAudioSourceNode::process):
- Modules/webaudio/MediaElementAudioSourceNode.h:
- Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::setFormat):
(WebCore::MediaStreamAudioSourceNode::provideInput):
(WebCore::MediaStreamAudioSourceNode::process):
- Modules/webaudio/MediaStreamAudioSourceNode.h:
- platform/audio/AudioBus.cpp:
(WebCore::AudioBus::createBySampleRateConverting):
- platform/audio/MultiChannelResampler.cpp:
(WebCore::MultiChannelResampler::MultiChannelResampler):
(WebCore::MultiChannelResampler::process):
(WebCore::MultiChannelResampler::provideInputForChannel):
- platform/audio/MultiChannelResampler.h:
- platform/audio/SincResampler.cpp:
(WebCore::SincResampler::SincResampler):
(WebCore::SincResampler::processBuffer):
(WebCore::SincResampler::process):
- platform/audio/SincResampler.h:
- platform/audio/cocoa/AudioDestinationCocoa.cpp:
(WebCore::AudioDestinationCocoa::AudioDestinationCocoa):
(WebCore::AudioDestinationCocoa::renderOnRenderingThead):
- platform/audio/cocoa/AudioDestinationCocoa.h:
- 4:55 PM Changeset in webkit [270467] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Cancel image extraction when navigating
https://bugs.webkit.org/show_bug.cgi?id=219559
<rdar://problem/71997004>
Reviewed by Tim Horton.
Call
-_cancelImageExtractionduring mainframe navigation. See WebKitAdditions change for more information.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _didStartProvisionalLoadForMainFrame]):
- 4:28 PM Changeset in webkit [270466] by
-
- 8 edits in trunk/Tools
[webkitscmpy] local.Svn reports incorrect timestamps
https://bugs.webkit.org/show_bug.cgi?id=219549
<rdar://problem/71989052>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Remote dateutil dependency. Add svn remote dependencies.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version, move dateutil library hook.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.commit): Increment parsed time by UTC delta instead of configuring timezone.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
(Svn): Allow caller to specify UTC offset, treat all times as UTC to avoid issues with the
local timezone.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestLocalSvn.test_info):
- Scripts/webkitpy/init.py: Move dateutil library hook.
- 3:39 PM Changeset in webkit [270465] by
-
- 1 copy in tags/Safari-610.3.7.1.9
Tag Safari-610.3.7.1.9.
- 3:37 PM Changeset in webkit [270464] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Add support for intrusive floats when line gets stretched vertically
https://bugs.webkit.org/show_bug.cgi?id=219528
Reviewed by Antti Koivisto.
Source/WebCore:
This patch adds supports for cases when the the candidate content stretches the line vertically
and we need to check if additional floats are getting in the way and adjust the available horizontal width accordingly.
Test: fast/layoutformattingcontext/intrusive-floats-and-stretchy-lines-simple.html
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::hasInlineLevelBox const):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineBuilder::handleInlineContent):
LayoutTests:
- fast/layoutformattingcontext/intrusive-floats-and-stretchy-lines-simple-expected.html: Added.
- fast/layoutformattingcontext/intrusive-floats-and-stretchy-lines-simple.html: Added.
- 2:58 PM Changeset in webkit [270463] by
-
- 8 edits in trunk/Source
[Cocoa] Adopt AVOutputDevice.allowsHeadTrackedSpatialAudio
https://bugs.webkit.org/show_bug.cgi?id=219503
Reviewed by Eric Carlson.
Source/WebCore:
AudioConfiguration.spatialRendering is an Optional<bool>, so it both needs to be
null-checked and also value checked. Additionally, WTF::allOf() will return true if the
passed in container is empty, so empty-check that container in addition to checking its
contents.
- platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
(WebCore::createMediaPlayerDecodingConfigurationCocoa):
Source/WebCore/PAL:
On macOS, clients who wish to query head tracking AVOutputDevice capabilities must use the
sharedSystemAudioContext--not the sharedAudioPresentationOutputContext--to do so. This context
requires a specific entitlement to use.
In addition to querying -supportsHeadTrackedSpatialAudio, also query
-allowsHeadTrackedSpatialAudio, if present, to determine whether the current route supports
spatialization.
- pal/avfoundation/OutputContext.mm:
(PAL::OutputContext::sharedAudioPresentationOutputContext):
- pal/avfoundation/OutputDevice.mm:
(PAL::OutputDevice::supportsSpatialAudio const):
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WebKit:
Adopt the "com.apple.avfoundation.allow-system-wide-context" entitlement on macOS for both the WebContent and GPU processes.
- Scripts/process-entitlements.sh:
- 2:57 PM Changeset in webkit [270462] by
-
- 34 edits1 copy4 adds in trunk/Source
[GPUP] Move MediaCapabilities into the GPU process
https://bugs.webkit.org/show_bug.cgi?id=219521
Reviewed by Eric Carlson.
Source/WebCore:
Add encode() and decode() operations to all structs used inside
MediaEngineConfigurationFactory. Add the ability for clients to provide
their own factories for use in MediaEngineConfigurationFactory.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/MediaCapabilitiesDecodingInfo.h:
(WebCore::MediaCapabilitiesDecodingInfo::encode const):
(WebCore::MediaCapabilitiesDecodingInfo::decode):
- platform/MediaCapabilitiesEncodingInfo.h:
(WebCore::MediaCapabilitiesEncodingInfo::encode const):
(WebCore::MediaCapabilitiesEncodingInfo::decode):
- platform/MediaCapabilitiesInfo.h:
(WebCore::MediaCapabilitiesInfo::encode const):
(WebCore::MediaCapabilitiesInfo::decode):
- platform/mediacapabilities/AudioConfiguration.h:
(WebCore::AudioConfiguration::encode const):
(WebCore::AudioConfiguration::decode):
- platform/mediacapabilities/ColorGamut.h:
- platform/mediacapabilities/HdrMetadataType.h:
- platform/mediacapabilities/MediaCapabilitiesLogging.h:
- platform/mediacapabilities/MediaConfiguration.h:
(WebCore::MediaConfiguration::encode const):
(WebCore::MediaConfiguration::decode):
- platform/mediacapabilities/MediaDecodingConfiguration.h:
(WebCore::MediaDecodingConfiguration::encode const):
(WebCore::MediaDecodingConfiguration::decode):
- platform/mediacapabilities/MediaDecodingType.h:
- platform/mediacapabilities/MediaEncodingConfiguration.h:
(WebCore::MediaEncodingConfiguration::encode const):
(WebCore::MediaEncodingConfiguration::decode):
- platform/mediacapabilities/MediaEncodingType.h:
- platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:
(WebCore::defaultFactories):
(WebCore::factories):
(WebCore::MediaEngineConfigurationFactory::clearFactories):
(WebCore::MediaEngineConfigurationFactory::resetFactories):
(WebCore::MediaEngineConfigurationFactory::installFactory):
(WebCore::MediaEngineConfigurationFactory::hasDecodingConfigurationFactory):
(WebCore::MediaEngineConfigurationFactory::hasEncodingConfigurationFactory):
- platform/mediacapabilities/MediaEngineConfigurationFactory.h:
- platform/mediacapabilities/TransferFunction.h:
- platform/mediacapabilities/VideoConfiguration.h:
(WebCore::VideoConfiguration::encode const):
(WebCore::VideoConfiguration::decode):
Source/WebKit:
Add a new pair of process supplements, RemoteMediaEngineConfigurationFactory and ..Proxy.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::mediaEngineConfigurationFactoryProxy):
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.cpp: Added.
(WebKit::RemoteMediaEngineConfigurationFactoryProxy::RemoteMediaEngineConfigurationFactoryProxy):
(WebKit::createDecodingConfiguration):
(WebKit::RemoteMediaEngineConfigurationFactoryProxy::createEncodingConfiguration):
- GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h: Added.
- GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.messages.in: Added.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::mediaEngineConfigurationFactory):
- WebProcess/GPU/GPUProcessConnection.h:
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.h:
- WebProcess/GPU/media/RemoteMediaEngineConfigurationFactory.cpp: Added.
(WebKit::RemoteMediaEngineConfigurationFactory::RemoteMediaEngineConfigurationFactory):
(WebKit::RemoteMediaEngineConfigurationFactory::registerFactory):
(WebKit::RemoteMediaEngineConfigurationFactory::supplementName):
(WebKit::RemoteMediaEngineConfigurationFactory::gpuProcessConnection):
(WebKit::RemoteMediaEngineConfigurationFactory::createDecodingConfiguration):
(WebKit::RemoteMediaEngineConfigurationFactory::createEncodingConfiguration):
- WebProcess/GPU/media/RemoteMediaEngineConfigurationFactory.h: Copied from Source/WTF/wtf/Algorithms.h.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setUseGPUProcessForMedia):
- 2:46 PM Changeset in webkit [270461] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] inspector/animation/effectChanged.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=219555
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:39 PM Changeset in webkit [270460] by
-
- 4 edits in trunk/Source/WebCore
Stop constructing unnecessary AudioBus in SincResampler
https://bugs.webkit.org/show_bug.cgi?id=219553
Reviewed by Darin Adler.
Stop constructing unnecessary AudioBus in SincResampler. Instead, pass the float* buffer
to the lambda directly.
- platform/audio/MultiChannelResampler.cpp:
(WebCore::MultiChannelResampler::ChannelProvider::provideInputForChannel):
(WebCore::MultiChannelResampler::process):
- platform/audio/SincResampler.cpp:
(WebCore::SincResampler::consumeSource):
(WebCore::SincResampler::process):
- platform/audio/SincResampler.h:
- 2:37 PM Changeset in webkit [270459] by
-
- 5 edits in trunk/LayoutTests
[macOS] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219455
<rdar://problem/71909972>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Import flakiness fix I landed upstream:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html:
LayoutTests:
Unskip test that should no longer be flaky.
- platform/glib/TestExpectations:
- platform/mac/TestExpectations:
- 2:30 PM Changeset in webkit [270458] by
-
- 39 edits1 add in trunk/Source
[GPU Process] Clean up recreating the ImageBufferBackend because of GPU crashing
https://bugs.webkit.org/show_bug.cgi?id=219007
Reviewed by Simon Fraser.
Source/WebCore:
To allow answering questions about the backend creation parameters without
having the backend created, the new structure ImageBufferBackend::Parameters
is introduced.
This structure contains the parameters which were passed by the caller in
the WebProcess and which are sufficient to recreate RemoteImageBuffer if
the GPU Process crashes even before the backend of RemoteImageBufferProxy
is created.
ConcreteImageBuffer and ImageBufferBackend will hold an instance of the
new structure ImageBufferBackend::Parameters.
Also replace all the instances of 'isAccelerated' by 'renderingMode'. So
no need to convert one type to the other.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ConcreteImageBuffer.h:
(WebCore::ConcreteImageBuffer::create):
(WebCore::ConcreteImageBuffer::ConcreteImageBuffer):
-- Make ConcreteImageBuffer own an instance of ImageBufferBackend::Parameters.
-- Add methods to set and clear the backend of an ImageBuffer.
- platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::backend const):
(WebCore::ImageBuffer::submitDisplayList):
(WebCore::ImageBuffer::didFlush):
-- Expose the ImageBufferBackend creation parameters through methods.
-- Expose submitDisplayList() and didFlush() so no casting is needed when
calling these functions through RemoteImageBuferProxy.
- platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::ImageBufferBackend):
(WebCore::ImageBufferBackend::toBGRAData const):
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::backendSize const):
(WebCore::ImageBufferBackend::memoryCost const):
(WebCore::ImageBufferBackend::bytesPerRow const):
(WebCore::ImageBufferBackend::toBackendCoordinates const):
(WebCore::ImageBufferBackend::logicalSize const):
(WebCore::ImageBufferBackend::resolutionScale const):
(WebCore::ImageBufferBackend::colorSpace const):
(WebCore::ImageBufferBackend::pixelFormat const):
(WebCore::ImageBufferBackend::logicalRect const):
(WebCore::ImageBufferBackend::backendRect const):
(WebCore::ImageBufferBackend::baseTransform const): Deleted.
-- Add the structure ImageBufferBackend::Parameters.
-- Make ImageBufferBackend own an instance of this structure.
-- Make backendSize() a pure virtual method.
-- Delete baseTransform() since it is implemented in ConcreteImageBuffer.
- platform/graphics/PlatformImageBuffer.h:
(isType):
- platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::drawPattern):
- platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:
(WebCore::ImageBufferCairoImageSurfaceBackend::create):
(WebCore::ImageBufferCairoImageSurfaceBackend::ImageBufferCairoImageSurfaceBackend):
(WebCore::ImageBufferCairoImageSurfaceBackend::platformTransformColorSpace):
- platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.h:
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::ImageBufferCairoSurfaceBackend):
(WebCore::ImageBufferCairoSurfaceBackend::backendSize const):
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::setupContext const):
(WebCore::ImageBufferCGBackend::copyImage const):
(WebCore::ImageBufferCGBackend::sinkIntoImage):
(WebCore::ImageBufferCGBackend::draw):
(WebCore::ImageBufferCGBackend::drawPattern):
(WebCore::ImageBufferCGBackend::toCFData const):
(WebCore::ImageBufferCGBackend::baseTransform const): Deleted.
- platform/graphics/cg/ImageBufferCGBackend.h:
- platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend):
(WebCore::ImageBufferCGBitmapBackend::backendSize const):
(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):
- platform/graphics/cg/ImageBufferCGBitmapBackend.h:
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::create):
(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::backendSize const):
(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
-- Change the create() methods to take a "Parameters" argument.
-- Use the backend method to access the "Parameters" structure.
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/displaylists/DisplayListFlushIdentifier.h: Added.
Move DisplayListFlushIdentifier to a separate file so it can be included
in ImageBuffer.h without having to include DisplayList.h.
- platform/graphics/displaylists/DisplayListImageBuffer.h:
(WebCore::DisplayList::ImageBuffer::create):
(WebCore::DisplayList::ImageBuffer::ImageBuffer):
(WebCore::DisplayList::ImageBuffer::initialDrawingContextCTM): Deleted.
-- No need to pass the 'size' argument twice in the 'create' methods. The
structure Parameters has to be passed to the constructor anyway.
-- No need for initialDrawingContextCTM() since it is equivalent to
baseTransform().
- platform/graphics/win/ImageBufferDirect2DBackend.cpp:
(WebCore::ImageBufferDirect2DBackend::copyImage const):
(WebCore::ImageBufferDirect2DBackend::draw):
(WebCore::ImageBufferDirect2DBackend::drawPattern):
-- Use the backend method to access the "Parameters" structure.
Source/WebKit:
There is no need to store the backend parameters in RemoteImageBufferProxy.
These parameters are now stored in the base class ImageBuffer before the
backend is created.
Remove the traits definition for RemoteImageBufferProxy types because
they are wrong. All ImageBuffers have valid renderingResourceIdentifier()
regardless whether they are remote or not. ImageBuffer::setBackend and
ImageBuffer::submitDisplayList() are now implemented in WebCore. So no
casting is needed.
- GPUProcess/graphics/RemoteImageBuffer.h:
(WebKit::RemoteImageBuffer::RemoteImageBuffer):
(WebKit::RemoteImageBuffer::submitDisplayList): Deleted.
submitDisplayList() is now a virtual method of ImageBuffer. So make it
private and ignore the return of DisplayList::Replayer::replay() since
the caller does not use it.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::didCreateImageBufferBackend):
(WebKit::RemoteRenderingBackend::applyDisplayListsFromHandle):
(WebKit::RemoteRenderingBackend::imageBufferBackendWasCreated): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.h:
Rename 'imageBufferBackendWasCreated()' to 'didCreateImageBufferBackend()'
to be consistent with 'didFlush()'.
- Shared/ConcreteShareableImageBuffer.h:
(WebKit::ConcreteShareableImageBuffer::create):
(WebKit::ConcreteShareableImageBuffer::ConcreteShareableImageBuffer): Deleted.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
Call the function with the new name and delete the FIXME comment.
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::create):
(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
(WebKit::ImageBufferShareableBitmapBackend::backendSize const):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
Use the new structure 'ImageBufferBackend::Parameters'. Implement the
virtual method 'backendSize()'.
- WebProcess/GPU/graphics/PlatformRemoteImageBufferProxy.h:
(isType): Deleted.
Delete the wrong traits.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::create):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
Use the new structure 'ImageBufferBackend::Parameters'.
(WebKit::RemoteImageBufferProxy::clearBackend): Deleted.
(WebKit::RemoteImageBufferProxy::createBackend): Deleted.
(WebKit::RemoteImageBufferProxy::didFlush): Deleted.
(WebKit::RemoteImageBufferProxy::size const): Deleted.
(WebKit::RemoteImageBufferProxy::renderingMode const): Deleted.
(WebKit::RemoteImageBufferProxy::colorSpace const): Deleted.
(WebKit::RemoteImageBufferProxy::pixelFormat const): Deleted.
These functions are now implemented in ConcreteImageBuffer.
(WebKit::RemoteImageBufferProxy::submitDisplayList): Deleted.
submitDisplayList() is now virtual.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::reestablishGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::didCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::didFlush):
(WebKit::recreateImageBuffer): Deleted.
(WebKit::RemoteRenderingBackendProxy::waitForImageBufferBackendWasCreated): Deleted.
(WebKit::RemoteRenderingBackendProxy::imageBufferBackendWasCreated): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
No need to cast the ImageBuffer to RemoteImageBufferProxy since all what
RemoteRenderingBackendProxy needs can be accessed through the base class.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
Rename 'ImageBufferBackendWasCreated' to 'DidCreateImageBufferBackend'
to be consistent with 'DidFlush'. No need to pass the creation parameters
since they set in the ConcreteImageBuffer. No need to pass the backendSize
since it can be retrieved through the backend itself.
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableIOSurfaceBackend::create):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
Use the new structure 'ImageBufferBackend::Parameters'.
- 2:21 PM Changeset in webkit [270457] by
-
- 3 edits in trunk/Source/WebCore
Improve vectorization in SincResampler
https://bugs.webkit.org/show_bug.cgi?id=219546
Reviewed by Darin Adler.
Add USE(ACCELERATE) vectorization logic to SincResampler for Cocoa ports.
Also import HAVE(ARM_NEON_INTRINSICS) vectorization from Blink:
Move convolution implements from process() to a separate convolve() function
for clarity.
- platform/audio/SincResampler.cpp:
(WebCore::SincResampler::SincResampler):
(WebCore::SincResampler::process):
(WebCore::SincResampler::convolve):
- platform/audio/SincResampler.h:
- 2:18 PM Changeset in webkit [270456] by
-
- 11 edits in trunk
PCM: Switch to 8+4 bits for source IDs and trigger values respectively
https://bugs.webkit.org/show_bug.cgi?id=219519
<rdar://problem/70470036>
Reviewed by Brent Fulgham.
We've received a lot of feedback saying increased entropy on the click side is more
important than the current 6 bits on the conversion side. Some of that conversation
is captured in https://github.com/privacycg/private-click-measurement/issues/28.
Source/WebCore:
This patch switches from 6+6 bits to 8+4 bits. It also fixes some minor logging
issues.
Existing layout tests and API tests were updated.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
Removed the check that would log "Conversion was not accepted because the URL
path did not start with ..." on every redirect in PCM Debug Mode. It was wrong
and annoying.
(WebCore::PrivateClickMeasurement::json const):
Added a call to isValid(). Other checks made sure this wasn't an issue but I'd
rather have it in this public function too.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::AttributionTriggerData::isValid const):
Source/WebKit:
This patch switches from 6+6 bits to 8+4 bits. It also makes sure PCM Debug Mode
consistently logs on the LOG level except for real errors.
Existing layout tests and API tests were updated.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
Tools:
This patch switches from 6+6 bits to 8+4 bits.
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
This patch switches from 6+6 bits to 8+4 bits.
- http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
- http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:
- 2:14 PM Changeset in webkit [270455] by
-
- 2 edits in trunk/Source/WebCore
Drop unused data members from SincResampler
https://bugs.webkit.org/show_bug.cgi?id=219548
Reviewed by Darin Adler.
- platform/audio/SincResampler.h:
- 1:59 PM Changeset in webkit [270454] by
-
- 75 edits1 move2 adds8 deletes in trunk
Unreviewed, reverting r270422.
https://bugs.webkit.org/show_bug.cgi?id=219554
Deleted an SPI that is still in use.
Reverted changeset:
"Introduce new download API"
https://bugs.webkit.org/show_bug.cgi?id=217747
https://trac.webkit.org/changeset/270422
- 1:06 PM Changeset in webkit [270453] by
-
- 11 edits in trunk/Source
Web Inspector: InspectorFrontendAPIDispatcher should not ignore all exceptions
https://bugs.webkit.org/show_bug.cgi?id=219378
Reviewed by Devin Rousso.
Source/WebCore:
Covered by existing Web Inspector layout tests.
- bindings/js/ScriptController.h: Make evaluateInWorld public and exported.
- inspector/InspectorFrontendAPIDispatcher.h:
- inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebCore::InspectorFrontendAPIDispatcher::evaluateExpression):
Evaluate and pass along the result whether it's a value or exception.
- inspector/InspectorFrontendClientLocal.h:
- inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::evaluationResultToBoolean):
(WebCore::InspectorFrontendClientLocal::isDebuggingEnabled):
(WebCore::InspectorFrontendClientLocal::isTimelineProfilingEnabled):
(WebCore::InspectorFrontendClientLocal::isProfilingJavaScript):
Refactor the common code to take an EvaluationResult and figure out if the value is true or falsy.
- platform/Logging.h: Add an Inspector logging channel, for logging errors.
Source/WebKit:
The underlying method used for frontend expression evaluations is
ScriptController::evaluateIgnoringExceptions. This method calls
evaluateInWorld and returns nullopt if an exception happens.
Switch to using evaluateInWorld directly and using the existing ValueOrException
type from in WebCore. Change our EvaluationResult type to use ValueOrException
in place of JSC::JSValue. ValueOrException is Expected<JSC::JSValue, ExceptionDetails>
so this is exposing more error information in addition to the JSC::JSValue.
- Platform/Logging.h: Add 'Inspector' log channel for WebKit.framework.
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::WebInspectorUIExtensionController):
(WebKit::WebInspectorUIExtensionController::~WebInspectorUIExtensionController):
Remove unnecessary debugging code that was accidentally left in/commented out.
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromResult): Deleted.
(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromEvaluationResult): Added.
(WebKit::WebInspectorUIExtensionController::registerExtension):
(WebKit::WebInspectorUIExtensionController::unregisterExtension):
Adapt to using the new result type. Use the InspectorExtensionID type where possible.
- 12:53 PM Changeset in webkit [270452] by
-
- 4 edits in trunk/Source/WebCore
[LFC][Floats] FloatAvoider does not need to keep a pointer to Layout::Box around.
https://bugs.webkit.org/show_bug.cgi?id=219529
Reviewed by Antti Koivisto.
- layout/floats/FloatAvoider.cpp:
(WebCore::Layout::FloatAvoider::FloatAvoider):
- layout/floats/FloatAvoider.h:
(WebCore::Layout::FloatAvoider::isLeftAligned const):
(WebCore::Layout::FloatAvoider::isFloatingBox const):
(WebCore::Layout::FloatAvoider::layoutBox const): Deleted.
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
- 12:38 PM Changeset in webkit [270451] by
-
- 3 edits in trunk/Source/WebCore
GraphicsContextGLOpenGL: m_depthBuffer and m_stencilBuffer are used only if USE(OPENGL_ES)
https://bugs.webkit.org/show_bug.cgi?id=219422
Reviewed by Don Olmstead.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Conditioned out m_depthBuffer and m_stencilBuffer with #if !USE(ANGLE) && USE(OPENGL_ES).
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
Removed code to generate m_depthBuffer and m_stencilBuffer because
this code is only for USE(ANGLE).
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
- 12:15 PM Changeset in webkit [270450] by
-
- 8 edits in branches/safari-610.3.7.1-branch/Source
Versioning.
WebKit-7610.3.7.1.9
- 12:10 PM Changeset in webkit [270449] by
-
- 4 edits in trunk/Source
Add safety checks to xsltParamArrayFromParameterMap()
<https://webkit.org/b/219407>
<rdar://problem/71853069>
Reviewed by Darin Adler.
Source/WebCore:
- xml/XSLTProcessorLibxslt.cpp:
(WebCore::xsltParamArrayFromParameterMap):
Source/WTF:
- wtf/PlatformHave.h:
(HAVE_LIBXSLT_FIX_FOR_RADAR_71864140): Add.
- 12:05 PM Changeset in webkit [270448] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Move float constraint logic from initialConstraintsForLine to a dedicated function
https://bugs.webkit.org/show_bug.cgi?id=219526
Reviewed by Antti Koivisto.
We are going to call this new function whenever the line stretches vertically and not just once at the very beginning.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::floatConstraints const):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const):
(WebCore::Layout::LineBuilder::initialConstraintsForLine): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::floatingState const):
- 12:03 PM Changeset in webkit [270447] by
-
- 14 edits in trunk/Tools
[git-webkit] Use contributors.json
https://bugs.webkit.org/show_bug.cgi?id=217732
<rdar://problem/70309518>
Reviewed by Dewei Zhu.
The interaction between Git, Svn and old commits means that our canonical record of
commit authors is somewhat incomplete. contributors.json has most of the information
we are missing, we should rely on it to map non-standard author names to their canonical
names and email addresses.
Additionally, making the record of Contributors owned by the repository instead of being global
to the entire process.
- Scripts/git-webkit: Parse contributors.json and add it to a Contributor.Mapping.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:
(Commit): Contributor class object no longer owns record of contributors.
- Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:
(Contributor):
(Contributor.Mapping): Dictionary mapping Contributors and their potential aliases.
(Contributor.Mapping.init):
(Contributor.Mapping.add): Add Contributor to mapping.
(Contributor.Mapping.create): Find or create a contributor with the specified name and email
addresses and bind it to the record of contributors.
(Contributor.from_scm_log): Leverage Contributor.Mapping provided by caller.
(Contributor.clear): Deleted.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.init): Instantiate repository with existing Contributor.Mapping.
(Git.commit): Repository now owns the record of contributors.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.from_path): Instantiate repository with existing Contributor.Mapping.
(Scm.init): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.init): Instantiate repository with existing Contributor.Mapping.
(Svn.commit): Repository now owns the record of contributors.
- Scripts/libraries/webkitscmpy/webkitscmpy/program.py:
(main): Allow caller to pass an existing record of contributors.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:
(Scm.from_url): Instantiate repository with existing Contributor.Mapping.
(Scm.init): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn.init): Instantiate repository with existing Contributor.Mapping.
(Svn.commit): Repository now owns the record of contributors.
- Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase.init): Instantiate repository with existing Contributor.Mapping.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:
(TestContributor.test_git_log): No more global contributor record.
(TestContributor.test_git_svn_log): Ditto.
(TestContributor.test_git_no_author): Ditto.
(TestContributor.test_git_svn_no_author): Ditto.
(TestContributor.test_svn_log): Ditto.
(TestContributor.test_short_svn_log): Ditto.
(TestContributor.test_svn_patch_by_log): Ditto.
(TestContributor.test_author_mapping): Contributor record is owned by the caller of the caller
of Contributor management.
(TestContributor.test_email_mapping): Ditto.
(TestContributor.test_invalid_log): No more global contributor record.
- 11:53 AM Changeset in webkit [270446] by
-
- 24 edits4 adds in trunk
Create API to enable/disable text interaction gestures in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=217784
<rdar://problem/63406241>
Reviewed by Wenson Hsieh.
Source/WebCore:
Add API to disable text selection for macOS.
- page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromMouseEvent):
(WebCore::EventHandler::selectClosestContextualWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventDoubleClick):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::mouseDownMayStartSelect):
Create a new function to return whether a click results in a
selection. It will always return false if text interaction is disabled.
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::selectCursor):
- page/EventHandler.h:
- page/Page.cpp:
(WebCore::m_textInteractionEnabled):
(WebCore::m_shouldRelaxThirdPartyCookieBlocking): Deleted.
- page/Page.h:
Store the textInteractionEnabled value in the Page so it is
accessible from the EventHandler.
(WebCore::Page::textInteractionEnabled):
(WebCore::Page::setTextInteractionEnabled):
- page/PageConfiguration.h:
Source/WebKit:
Create a new API to disable text interaction gestures in a WKWebView.
We have SPI for this for iOS, but it could be useful to other WebKit
clients and on macOS. Add the API to WKPreferences, instead of
WKWebViewConfiguration, so it can be changed on the fly.
Deprecate the SPI.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/API/Cocoa/WKPreferences.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences encodeWithCoder:]):
(-[WKPreferences initWithCoder:]):
(-[WKPreferences textInteractionEnabled]):
(-[WKPreferences setTextInteractionEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _textInteractionEnabled]):
(-[WKWebViewConfiguration _setTextInteractionEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsNearMarkedText:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView _cascadeInteractionTintColor]):
(-[WKContentView selectForWebView:]):
(-[WKContentView selectAllForWebView:]):
Add check for textInteractionEnabled in these select*
functions because disabling text interaction should disable selection
in WKWebView.
- WebProcess/WebPage/WebPage.cpp:
Update the textInteractionEnabled value in the page when
preferences are updated.
(WebKit::WebPage::updatePreferences):
Source/WTF:
Create new WKPreference. See WebKit Changelog for details.
- Scripts/Preferences/WebPreferences.yaml:
Tools:
Add API test coverage for macOS and support for layout tests for iOS.
API tests do not support user gestures which is why iOS tests must
use WebKitTestRunner.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDisableSelection.mm: Added.
(TEST):
(clickAndDragToSelectText):
- TestWebKitAPI/Tests/WebKitCocoa/try-text-select-with-disabled-text-interaction.html: Added.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cocoaResetStateToConsistentValues):
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::textInteractionEnabled const):
LayoutTests:
Layout test coverage for iOS.
- LayoutTests/editing/selection/ios/cannot-select-after-disabling-text-interaction-expected.txt: Added.
- LayoutTests/editing/selection/ios/cannot-select-after-disabling-text-interaction.html: Added.
- 11:51 AM Changeset in webkit [270445] by
-
- 37 edits in trunk
More FALLBACK_PLATFORM adoption
https://bugs.webkit.org/show_bug.cgi?id=219545
Patch by Adam Roben <Adam Roben> on 2020-12-04
Reviewed by Tim Horton.
PerformanceTests:
- MediaTime/Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/bmalloc:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/JavaScriptCore:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/ThirdParty:
- gtest/xcode/Config/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/ThirdParty/ANGLE:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/ThirdParty/libwebrtc:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/WebCore:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/WebCore/PAL:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/WebInspectorUI:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/WebKit:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/WebKitLegacy/mac:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Source/WTF:
- Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
Tools:
- DumpRenderTree/Scripts/check-xcfilelists.sh:
- TestWebKitAPI/Scripts/check-xcfilelists.sh:
- WebKitTestRunner/Scripts/check-xcfilelists.sh:
Use FALLBACK_PLATFORM if it's defined.
- ContentExtensionTester/Configurations/SDKVariant.xcconfig:
- DumpRenderTree/mac/Configurations/SDKVariant.xcconfig:
- ImageDiff/cg/Configurations/SDKVariant.xcconfig:
- MiniBrowser/Configurations/SDKVariant.xcconfig:
- MobileMiniBrowser/Configurations/SDKVariant.xcconfig:
- TestWebKitAPI/Configurations/SDKVariant.xcconfig:
- WebEditingTester/Configurations/SDKVariant.xcconfig:
- WebKitTestRunner/Configurations/SDKVariant.xcconfig:
- lldb/lldbWebKitTester/Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
- 11:47 AM Changeset in webkit [270444] by
-
- 16 edits1 delete in trunk/Source
[GPU Process] Share the NativeImage with GPU Process through a ShareableBitmap
https://bugs.webkit.org/show_bug.cgi?id=218934
Reviewed by Tim Horton.
Source/WebCore:
Delete a NativeImage constructor and a create method which were used by
the deleted IPC coders of the NativeImage.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/NativeImage.cpp:
(WebCore::NativeImage::create):
(WebCore::NativeImage::NativeImage):
- platform/graphics/NativeImage.h:
- platform/graphics/NativeImageReference.h: Removed.
Source/WebKit:
Instead of relying on the IPC coders to transfer the NativeImage to the
GPUP, we are going to move this logic to RemoteResourceCacheProxy and
RemoteRenderingBackend. The NativeImage will be transfered as a handle of
ShareableBitamp and a renderingResourceIdentifier.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::cacheNativeImage):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Shared/ShareableBitmap.h:
(WebKit::ShareableBitmap::createPlatformImage):
Add this helper function and avoid adding directive code in many places.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Ref<NativeImage>>::encode): Deleted.
(IPC::ArgumentCoder<Ref<NativeImage>>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::copyNativeImage const):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::cacheNativeImage):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::createShareableBitmapFromNativeImage):
(WebKit::RemoteResourceCacheProxy::cacheNativeImage):
- 11:44 AM Changeset in webkit [270443] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening wheel failures and timeouts
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 11:43 AM Changeset in webkit [270442] by
-
- 215 edits in trunk/LayoutTests
Make dump-as-markup.js dump newlines within text as "\n"
https://bugs.webkit.org/show_bug.cgi?id=216749
Reviewed by Anders Carlsson.
- editing/deleting/5115601-expected.txt:
- editing/deleting/5206311-2-expected.txt:
- editing/deleting/delete-3959464-fix-expected.txt:
- editing/deleting/delete-4038408-fix-expected.txt:
- editing/deleting/delete-across-editable-content-boundaries-2-expected.txt:
- editing/deleting/delete-across-editable-content-boundaries-3-expected.txt:
- editing/deleting/delete-at-paragraph-boundaries-001-expected.txt:
- editing/deleting/delete-br-011-expected.txt:
- editing/deleting/delete-br-012-expected.txt:
- editing/deleting/delete-br-in-last-table-cell-expected.txt:
- editing/deleting/delete-image-followed-by-two-br-expected.txt:
- editing/deleting/delete-line-break-between-paragraphs-with-same-style-expected.txt:
- editing/deleting/delete-mixed-editable-content-001-expected.txt:
- editing/deleting/delete-table-cell-contents-expected.txt:
- editing/deleting/delete-uneditable-style-expected.txt:
- editing/deleting/forward-delete-empty-table-cell-expected.txt:
- editing/deleting/merge-div-from-span-with-style-expected.txt:
- editing/deleting/merge-div-with-inline-style-expected.txt:
- editing/deleting/merge-paragraph-contatining-noneditable-expected.txt:
- editing/deleting/merge-paragraph-from-address-expected.txt:
- editing/deleting/merge-paragraph-from-h6-expected.txt:
- editing/deleting/merge-paragraph-from-h6-with-style-2-expected.txt:
- editing/deleting/merge-paragraph-from-h6-with-style-expected.txt:
- editing/deleting/merge-paragraph-from-listing-expected.txt:
- editing/deleting/merge-paragraph-from-p-with-style-2-expected.txt:
- editing/deleting/merge-paragraph-from-p-with-style-3-expected.txt:
- editing/deleting/merge-paragraph-from-p-with-style-expected.txt:
- editing/deleting/merge-paragraph-from-span-with-multiple-text-decoration-expected.txt:
- editing/deleting/merge-paragraph-from-span-with-style-expected.txt:
- editing/deleting/merge-paragraph-into-blockquote-expected.txt:
- editing/deleting/merge-paragraph-into-h1-expected.txt:
- editing/deleting/merge-paragraph-into-h1-with-dir-2-expected.txt:
- editing/deleting/merge-paragraph-into-h1-with-dir-expected.txt:
- editing/deleting/merge-paragraph-into-h1-with-style-expected.txt:
- editing/deleting/merge-paragraph-into-pre-expected.txt:
- editing/deleting/merge-paragraph-with-style-from-rule-expected.txt:
- editing/deleting/merge-paragraphs-with-transparent-background-expected.txt:
- editing/deleting/paragraph-in-preserveNewline-expected.txt:
- editing/deleting/whitespace-pre-1-expected.txt:
- editing/execCommand/change-list-type-expected.txt:
- editing/execCommand/contenteditable-justify-next-paragraph-expected.txt:
- editing/execCommand/crash-indenting-list-item-expected.txt:
- editing/execCommand/crash-on-enter-in-contentEditable-list-expected.txt:
- editing/execCommand/delete-line-and-insert-text-in-font-inside-blockquote-expected.txt:
- editing/execCommand/delete-selection-has-style-expected.txt:
- editing/execCommand/format-block-contenteditable-false-expected.txt:
- editing/execCommand/format-block-expected.txt:
- editing/execCommand/format-block-from-range-selection-expected.txt:
- editing/execCommand/format-block-multiple-paragraphs-expected.txt:
- editing/execCommand/format-block-multiple-paragraphs-in-pre-expected.txt:
- editing/execCommand/format-block-table-expected.txt:
- editing/execCommand/format-block-with-braces-expected.txt:
- editing/execCommand/indent-images-2-expected.txt:
- editing/execCommand/indent-images-3-expected.txt:
- editing/execCommand/indent-pre-expected.txt:
- editing/execCommand/indent-pre-list-expected.txt:
- editing/execCommand/indent-pre-paragraphs-expected.txt:
- editing/execCommand/insert-list-in-noneditable-list-parent-expected.txt:
- editing/execCommand/insert-list-nested-with-orphaned-expected.txt:
- editing/execCommand/insert-nested-lists-in-table-expected.txt:
- editing/execCommand/insert-nested-lists-with-pre-expected.txt:
- editing/execCommand/insert-paragraph-twice-at-end-of-block-styled-listitem-expected.txt:
- editing/execCommand/insert-paragraph-twice-at-end-of-custom-listitem-expected.txt:
- editing/execCommand/insert-unordered-list-in-shadow-tree-expected.txt:
- editing/execCommand/outdent-selection-expected.txt:
- editing/execCommand/overtype-expected.txt:
- editing/execCommand/remove-format-textdecoration-in-iframe-expected.txt:
- editing/execCommand/remove-formatting-expected.txt:
- editing/execCommand/remove-list-from-multi-list-items-expected.txt:
- editing/execCommand/switch-list-type-with-inner-list-expected.txt:
- editing/execCommand/switch-list-type-with-orphaned-li-expected.txt:
- editing/find/find-and-replace-at-editing-boundary-expected.txt:
- editing/find/find-and-replace-basic-expected.txt:
- editing/find/find-and-replace-in-subframes-expected.txt:
- editing/find/find-and-replace-no-matches-expected.txt:
- editing/find/find-and-replace-noneditable-matches-expected.txt:
- editing/inserting/insert-3786362-fix-expected.txt:
- editing/inserting/insert-3907422-fix-expected.txt:
- editing/inserting/insert-div-021-expected.txt:
- editing/inserting/insert-paragraph-after-tab-span-and-text-expected.txt:
- editing/inserting/insert-paragraph-before-space-expected.txt:
- editing/inserting/insert-paragraph-between-text-expected.txt:
- editing/inserting/insert-paragraph-in-designmode-document-expected.txt:
- editing/inserting/insert-paragraph-separator-at-break-expected.txt:
- editing/inserting/insert-paragraph-with-font-and-background-color-expected.txt:
- editing/mac/selection/double-click-and-drag-over-anchor-to-select-expected.txt:
- editing/pasteboard/avoid-copying-body-with-background-expected.txt:
- editing/pasteboard/block-wrappers-necessary-expected.txt:
- editing/pasteboard/cleanup-on-move-expected.txt:
- editing/pasteboard/copy-image-with-alt-text-expected.txt:
- editing/pasteboard/copy-null-characters-expected.txt:
- editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2-expected.txt:
- editing/pasteboard/copy-paste-bidi-expected.txt:
- editing/pasteboard/copy-paste-content-starting-and-ending-canvas-expected.txt:
- editing/pasteboard/copy-paste-converts-fixed-expected.txt:
- editing/pasteboard/copy-paste-converts-sticky-expected.txt:
- editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt:
- editing/pasteboard/copy-paste-inserts-clearing-div-expected.txt:
- editing/pasteboard/copy-paste-with-important-rules-expected.txt:
- editing/pasteboard/copy-paste-wraps-position-absolute-expected.txt:
- editing/pasteboard/copy-text-with-backgroundcolor-expected.txt:
- editing/pasteboard/display-block-on-spans-expected.txt:
- editing/pasteboard/drag-drop-list-expected.txt:
- editing/pasteboard/drag-list-item-expected.txt:
- editing/pasteboard/insert-text-decoration-expected.txt:
- editing/pasteboard/interchange-newline-3-expected.txt:
- editing/pasteboard/interchange-newline-4-expected.txt:
- editing/pasteboard/line-feed-between-br-and-b-should-not-reorder-pasted-content-expected.txt:
- editing/pasteboard/nested-blocks-with-text-area-expected.txt:
- editing/pasteboard/nested-blocks-with-text-field-expected.txt:
- editing/pasteboard/paste-4039777-fix-expected.txt:
- editing/pasteboard/paste-at-end-of-node-followed-by-inline-element-expected.txt:
- editing/pasteboard/paste-before-tab-span-expected.txt:
- editing/pasteboard/paste-blockquote-into-blockquote-3-expected.txt:
- editing/pasteboard/paste-delete-insertion-position-skip-paragraph-expected.txt:
- editing/pasteboard/paste-list-001-expected.txt:
- editing/pasteboard/paste-noscript-xhtml-expected.txt:
- editing/pasteboard/paste-table-001-expected.txt:
- editing/pasteboard/paste-table-cells-expected.txt:
- editing/pasteboard/paste-table-with-unrendered-text-nodes-expected.txt:
- editing/pasteboard/paste-text-001-expected.txt:
- editing/pasteboard/paste-text-005-expected.txt:
- editing/pasteboard/paste-text-006-expected.txt:
- editing/pasteboard/paste-text-007-expected.txt:
- editing/pasteboard/paste-text-010-expected.txt:
- editing/pasteboard/paste-text-011-expected.txt:
- editing/pasteboard/paste-text-015-expected.txt:
- editing/pasteboard/paste-text-017-expected.txt:
- editing/pasteboard/paste-text-018-expected.txt:
- editing/pasteboard/paste-text-at-tabspan-001-expected.txt:
- editing/pasteboard/paste-text-at-tabspan-002-expected.txt:
- editing/pasteboard/paste-text-with-style-expected.txt:
- editing/pasteboard/pasting-into-h6-should-not-nest-h6-expected.txt:
- editing/pasteboard/pasting-into-p-should-not-nest-p-expected.txt:
- editing/pasteboard/simplfiying-markup-should-not-strip-content-expected.txt:
- editing/pasteboard/style-from-rules-expected.txt:
- editing/pasteboard/testcase-9507-expected.txt:
- editing/selection/4895428-1-expected.txt:
- editing/selection/4895428-4-expected.txt:
- editing/selection/dump-as-markup-expected.txt:
- editing/selection/dump-as-markup-form-text-expected.txt:
- editing/selection/extend-selection-backward-at-beginning-of-line-by-sentence-granularity-expected.txt:
- editing/selection/home-inside-noneditable-table-expected.txt:
- editing/selection/modify-backward-inline-block-containers-expected.txt:
- editing/selection/move-between-lines-of-different-editabilities-expected.txt:
- editing/selection/move-by-line-006-expected.txt:
- editing/selection/move-selection-backward-at-beginning-of-line-by-sentence-granularity-expected.txt:
- editing/selection/move-up-into-wrapped-line-expected.txt:
- editing/selection/shift-click-includes-existing-selection-expected.txt:
- editing/selection/user-select-all-with-shift-expected.txt:
- editing/spelling/text-replacement-after-typing-to-word-expected.txt:
- editing/spelling/text-replacement-first-word-second-line-expected.txt:
- editing/style/apply-font-size-to-multiple-nodes-expected.txt:
- editing/unsupported-content/table-delete-001-expected.txt:
- editing/unsupported-content/table-delete-003-expected.txt:
- fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:
- fast/events/5056619-expected.txt:
- fast/parser/attributes-on-close-script-expected.txt:
- fast/parser/document-write-svg-cdata-expected.txt:
- fast/parser/foster-parent-under-template-expected.txt:
- fast/parser/math-options-crash-expected.txt:
- fast/parser/object-with-textarea-fallback-expected.txt:
- fast/parser/residual-style-dom-expected.txt:
- fast/parser/style-in-create-contextual-fragment-expected.txt:
- fast/parser/style-in-create-contextual-fragment-head-expected.txt:
- fast/table/table-create-tbody-existing-tbody-expected.txt:
- fast/table/table-create-tbody-expected.txt:
- fast/table/table-create-tbody-multiple-tbody-expected.txt:
- platform/gtk/editing/deleting/delete-emoji-1-expected.txt:
- platform/gtk/editing/deleting/delete-emoji-expected.txt:
- platform/ios-wk1/editing/deleting/delete-emoji-expected.txt:
- platform/ios-wk2/editing/execCommand/indent-pre-expected.txt:
- platform/ios/editing/deleting/delete-3959464-fix-expected.txt:
- platform/ios/editing/deleting/delete-across-editable-content-boundaries-2-expected.txt:
- platform/ios/editing/deleting/delete-across-editable-content-boundaries-3-expected.txt:
- platform/ios/editing/deleting/delete-emoji-1-expected.txt:
- platform/ios/editing/deleting/delete-emoji-2-expected.txt:
- platform/ios/editing/deleting/delete-emoji-3-expected.txt:
- platform/ios/editing/deleting/delete-emoji-4-expected.txt:
- platform/ios/editing/deleting/delete-emoji-5-expected.txt:
- platform/ios/editing/deleting/delete-emoji-6-expected.txt:
- platform/ios/editing/deleting/delete-emoji-7-expected.txt:
- platform/ios/editing/deleting/delete-emoji-8-expected.txt:
- platform/ios/editing/deleting/delete-emoji-9-expected.txt:
- platform/ios/editing/deleting/delete-emoji-expected.txt:
- platform/ios/editing/execCommand/delete-line-and-insert-text-in-font-inside-blockquote-expected.txt:
- platform/ios/editing/pasteboard/paste-text-001-expected.txt:
- platform/ios/editing/pasteboard/paste-text-010-expected.txt:
- platform/ios/editing/pasteboard/paste-text-at-tabspan-001-expected.txt:
- platform/mac/editing/caret/emoji-expected.txt:
- platform/mac/editing/deleting/delete-emoji-1-expected.txt:
- platform/mac/editing/deleting/delete-emoji-2-expected.txt:
- platform/mac/editing/deleting/delete-emoji-3-expected.txt:
- platform/mac/editing/deleting/delete-emoji-4-expected.txt:
- platform/mac/editing/deleting/delete-emoji-5-expected.txt:
- platform/mac/editing/deleting/delete-emoji-6-expected.txt:
- platform/mac/editing/deleting/delete-emoji-7-expected.txt:
- platform/mac/editing/deleting/delete-emoji-8-expected.txt:
- platform/mac/editing/deleting/delete-emoji-9-expected.txt:
- platform/mac/editing/deleting/delete-emoji-expected.txt:
- platform/win/editing/deleting/delete-br-011-expected.txt:
- platform/win/editing/execCommand/indent-pre-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
- platform/wincairo/editing/deleting/delete-emoji-expected.txt:
- platform/wincairo/editing/execCommand/indent-pre-expected.txt:
Updated to expect "\n".
- resources/dump-as-markup.js:
(Markup._getMarkupForTextNode): Convert newlines into "\n".
- 11:31 AM Changeset in webkit [270441] by
-
- 1 copy in tags/Safari-610.3.7.1.8
Tag Safari-610.3.7.1.8.
- 11:30 AM Changeset in webkit [270440] by
-
- 8 edits in branches/safari-610.3.7.1-branch/Source
Versioning.
WebKit-7610.3.7.1.8
- 11:21 AM Changeset in webkit [270439] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the service 'com.apple.print.normalizerd' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219541
<rdar://problem/68878604>
Reviewed by Darin Adler.
On macOS, deny mach-lookup to the service 'com.apple.print.normalizerd' in the WebContent process, since there are no
reports of this being used.
No new tests, since the result will depend on the macOS version.
- WebProcess/com.apple.WebProcess.sb.in:
- 11:04 AM Changeset in webkit [270438] by
-
- 1 copy in tags/Safari-610.3.7.1.7
Tag Safari-610.3.7.1.7.
- 11:01 AM Changeset in webkit [270437] by
-
- 8 edits in branches/safari-610.3.7.1-branch/Source
Versioning.
WebKit-7610.3.7.1.7
- 10:56 AM Changeset in webkit [270436] by
-
- 5 edits in trunk/Source/WebKit
[iOS] Provide a context menu action to perform accessibility image extraction
https://bugs.webkit.org/show_bug.cgi?id=219524
<rdar://problem/69969613>
Reviewed by Wenson Hsieh.
- UIProcess/API/Cocoa/_WKElementAction.h:
- UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
(+[_WKElementAction imageForElementActionType:]):
(elementActionTypeToUIActionIdentifier):
(uiActionIdentifierToElementActionType):
Add a new_WKElementActionTypeImageExtractionenum type with a default icon and title.
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):
If theWKActionSheetAssistantDelegateallows it, add a_WKElementActionTypeImageExtraction
action for images (including those inside links). Call out to theWKActionSheetAssistantDelegate
when handling the action.
- 10:12 AM Changeset in webkit [270435] by
-
- 27 edits1 add in trunk/Source
[MSE] Move track buffer management from SourceBuffer to SourceBufferPrivate
https://bugs.webkit.org/show_bug.cgi?id=219332
Reviewed by Daniel Bates.
Source/WebCore:
Currently, the
SourceBufferclass deals with both the DOM related tasks (providing
Javascript interfaces, firing events, handling object properties, etc.) and track
buffer management. This patch moves the track buffer management fromSourceBuffer
toSourceBufferPrivate. The purpose of this change is to support running the track
buffer management in the GPU process so that the callbacks from a media parser regarding
a new sample is parsed does not need to cross the process boundary (SourceBufferPrivate
will run in the GPU process). We have to update the interfaceSourceBufferPrivateClient
accordingly.
When running the track buffer management in the
SourceBufferclass, we can get
some information related toMediaSourcedirectly, such asisSeeking,duration,
andcurrentMediaTime. However, after moving it toSourceBufferPrivate, we have to
get the information from the correspondingMediaSourcePrivate. This patch includes
some changes for that.
No new tests because this patch does not want to introduce any behavior change.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::seekToTime):
(WebCore::MediaSource::completeSeek):
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::~SourceBuffer):
(WebCore::SourceBuffer::buffered const):
(WebCore::SourceBuffer::timestampOffset const):
(WebCore::SourceBuffer::setTimestampOffset):
(WebCore::SourceBuffer::setAppendWindowStart):
(WebCore::SourceBuffer::setAppendWindowEnd):
(WebCore::SourceBuffer::resetParserState):
(WebCore::SourceBuffer::abort):
(WebCore::SourceBuffer::changeType):
(WebCore::SourceBuffer::highestPresentationTimestamp const):
(WebCore::SourceBuffer::readyStateChanged):
(WebCore::SourceBuffer::removedFromMediaSource):
(WebCore::SourceBuffer::seekToTime):
(WebCore::SourceBuffer::appendBufferInternal):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::removeTimerFired):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::validateInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateAppendError):
(WebCore::SourceBuffer::appendError):
(WebCore::SourceBuffer::trySignalAllSamplesEnqueued):
(WebCore::SourceBuffer::sourceBufferPrivateDidParseSample):
(WebCore::SourceBuffer::sourceBufferPrivateDurationChanged):
(WebCore::SourceBuffer::sourceBufferPrivateDidDropSample):
(WebCore::SourceBuffer::sourceBufferPrivateStreamEndedWithDecodeError):
(WebCore::SourceBuffer::extraMemoryCost const):
(WebCore::SourceBuffer::bufferedSamplesForTrackID):
(WebCore::SourceBuffer::setMode):
(WebCore::SourceBuffer::setShouldGenerateTimestamps):
(WebCore::SourceBuffer::isBufferedDirty const):
(WebCore::SourceBuffer::setBufferedDirty):
(): Deleted.
(WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Deleted.
(WebCore::SourceBuffer::TrackBuffer::enqueueDiscontinuityBoundary): Deleted.
(WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime): Deleted.
(WebCore::decodeTimeComparator): Deleted.
(WebCore::removeSamplesFromTrackBuffer): Deleted.
(WebCore::SourceBuffer::removeCodedFrames): Deleted.
(WebCore::SourceBuffer::evictCodedFrames): Deleted.
(WebCore::SampleLessThanComparator::operator()): Deleted.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Deleted.
(WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Deleted.
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples): Deleted.
(WebCore::SourceBuffer::provideMediaData): Deleted.
(WebCore::SourceBuffer::updateMinimumUpcomingPresentationTime): Deleted.
(WebCore::SourceBuffer::resetMinimumUpcomingPresentationTime): Deleted.
(WebCore::SourceBuffer::trySignalAllSamplesInTrackEnqueued): Deleted.
(WebCore::SourceBuffer::reenqueueMediaForTime): Deleted.
(WebCore::SourceBuffer::didDropSample): Deleted.
(WebCore::SourceBuffer::updateBufferedFromTrackBuffers): Deleted.
- Modules/mediasource/SourceBuffer.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/MediaSourcePrivate.h:
(WebCore::MediaSourcePrivate::setIsSeeking):
(WebCore::MediaSourcePrivate::isSeeking const):
- platform/graphics/SourceBufferPrivate.cpp: Added.
(WebCore::SourceBufferPrivate::TrackBuffer::TrackBuffer):
(WebCore::enqueueDiscontinuityBoundary):
(WebCore::SourceBufferPrivate::SourceBufferPrivate):
(WebCore::SourceBufferPrivate::resetTimestampOffsetInTrackBuffers):
(WebCore::SourceBufferPrivate::resetTrackBuffers):
(WebCore::SourceBufferPrivate::highestPresentationTimestamp const):
(WebCore::SourceBufferPrivate::updateBufferedFromTrackBuffers):
(WebCore::SourceBufferPrivate::reenqueSamples):
(WebCore::SourceBufferPrivate::seekToTime):
(WebCore::SourceBufferPrivate::clearTrackBuffers):
(WebCore::SourceBufferPrivate::bufferedSamplesForTrackID):
(WebCore::SourceBufferPrivate::fastSeekTimeForMediaTime):
(WebCore::SourceBufferPrivate::updateMinimumUpcomingPresentationTime):
(WebCore::SourceBufferPrivate::trySignalAllSamplesInTrackEnqueued):
(WebCore::SourceBufferPrivate::provideMediaData):
(WebCore::SourceBufferPrivate::reenqueueMediaForTime):
(WebCore::SourceBufferPrivate::reenqueueMediaIfNeeded):
(WebCore::decodeTimeComparator):
(WebCore::removeSamplesFromTrackBuffer):
(WebCore::SourceBufferPrivate::removeCodedFrames):
(WebCore::SourceBufferPrivate::evictCodedFrames):
(WebCore::SourceBufferPrivate::totalTrackBufferSizeInBytes const):
(WebCore::SourceBufferPrivate::addTrackBuffer):
(WebCore::SourceBufferPrivate::updateTrackIds):
(WebCore::SourceBufferPrivate::setAllTrackBuffersNeedRandomAccess):
(WebCore::SourceBufferPrivate::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivate::validateInitializationSegment):
(WebCore::SourceBufferPrivate::didReceiveSample):
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::setActive):
(WebCore::SourceBufferPrivate::setClient):
(WebCore::SourceBufferPrivate::setIsAttached):
(WebCore::SourceBufferPrivate::setCurrentTimeFudgeFactor):
(WebCore::SourceBufferPrivate::setAppendWindowStart):
(WebCore::SourceBufferPrivate::setAppendWindowEnd):
(WebCore::SourceBufferPrivate::bufferFull const):
(WebCore::SourceBufferPrivate::buffered const):
(WebCore::SourceBufferPrivate::isBufferedDirty const):
(WebCore::SourceBufferPrivate::setBufferedDirty):
(WebCore::SourceBufferPrivate::timestampOffset const):
(WebCore::SourceBufferPrivate::setTimestampOffset):
(WebCore::SourceBufferPrivate::startChangingType):
(WebCore::SourceBufferPrivate::setShouldGenerateTimestamps):
(WebCore::SourceBufferPrivate::setMode):
(WebCore::SourceBufferPrivate::setGroupStartTimestamp):
(WebCore::SourceBufferPrivate::setGroupStartTimestampToEndTimestamp):
(WebCore::SourceBufferPrivate::isActive const):
(WebCore::SourceBufferPrivate::isSeeking const):
(WebCore::SourceBufferPrivate::currentMediaTime const):
(WebCore::SourceBufferPrivate::duration const):
(WebCore::SourceBufferPrivate::flush):
(WebCore::SourceBufferPrivate::enqueueSample):
(WebCore::SourceBufferPrivate::allSamplesInTrackEnqueued):
(WebCore::SourceBufferPrivate::isReadyForMoreSamples):
(WebCore::SourceBufferPrivate::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivate::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivate::setMinimumUpcomingPresentationTime):
(WebCore::SourceBufferPrivate::clearMinimumUpcomingPresentationTime):
- platform/graphics/SourceBufferPrivateClient.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::duration const):
(WebCore::MediaSourcePrivateAVFObjC::currentMediaTime const):
(WebCore::MediaSourcePrivateAVFObjC::duration): Deleted.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource):
(WebCore::SourceBufferPrivateAVFObjC::setActive):
(WebCore::SourceBufferPrivateAVFObjC::isActive const):
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::isSeeking const):
(WebCore::SourceBufferPrivateAVFObjC::currentMediaTime const):
(WebCore::SourceBufferPrivateAVFObjC::duration const):
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer):
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession):
(WebCore::SourceBufferPrivateAVFObjC::setClient): Deleted.
(WebCore::SourceBufferPrivateAVFObjC::fastSeekTimeForMediaTime): Deleted.
- platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::duration const):
(WebCore::MediaSourcePrivateGStreamer::currentMediaTime const):
- platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::notifyReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::setActive):
(WebCore::SourceBufferPrivateGStreamer::isActive const):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):
(WebCore::SourceBufferPrivateGStreamer::isSeeking const):
(WebCore::SourceBufferPrivateGStreamer::currentMediaTime const):
(WebCore::SourceBufferPrivateGStreamer::duration const):
(WebCore::SourceBufferPrivateGStreamer::setClient): Deleted.
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
- platform/mock/mediasource/MockMediaPlayerMediaSource.h:
- platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate):
(WebCore::MockMediaSourcePrivate::currentMediaTime const):
(WebCore::MockMediaSourcePrivate::logChannel const):
(WebCore::MockMediaSourcePrivate::mediaSourceLogger const): Deleted.
(WebCore::MockMediaSourcePrivate::mediaSourceLogIdentifier): Deleted.
- platform/mock/mediasource/MockMediaSourcePrivate.h:
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::MockSourceBufferPrivate):
(WebCore::MockSourceBufferPrivate::didReceiveInitializationSegment):
(WebCore::MockSourceBufferPrivate::didReceiveSample):
(WebCore::MockSourceBufferPrivate::setActive):
(WebCore::MockSourceBufferPrivate::isActive const):
(WebCore::MockSourceBufferPrivate::isSeeking const):
(WebCore::MockSourceBufferPrivate::currentMediaTime const):
(WebCore::MockSourceBufferPrivate::duration const):
(WebCore::MockSourceBufferPrivate::logChannel const):
(WebCore::MockSourceBufferPrivate::setClient): Deleted.
(WebCore::MockSourceBufferPrivate::fastSeekTimeForMediaTime): Deleted.
(WebCore::MockSourceBufferPrivate::sourceBufferLogger const): Deleted.
(WebCore::MockSourceBufferPrivate::sourceBufferLogIdentifier): Deleted.
- platform/mock/mediasource/MockSourceBufferPrivate.h:
Source/WebKit:
Update
SourceBufferPrivateRemoteandRemoteSourceBufferProxybecause of
the changes onSourceBufferPrivateandSourceBufferPrivateClient.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDurationChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidParseSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidDropSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasAudio const):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasVideo const):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveSample): Deleted.
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReenqueSamples): Deleted.
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidBecomeReadyForMoreSamples): Deleted.
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateFastSeekTimeForMediaTime): Deleted.
- GPUProcess/media/RemoteSourceBufferProxy.h:
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::setClient): Deleted.
- WebProcess/GPU/media/SourceBufferPrivateRemote.h:
- 9:57 AM Changeset in webkit [270434] by
-
- 5 edits in trunk
[LFC][IFC] Only shrink the line with the float when it is intrusive
https://bugs.webkit.org/show_bug.cgi?id=219525
Reviewed by Antti Koivisto.
Source/WebCore:
In this patch we check if the positioned float box actually intersects the line and shrink the available width accordingly.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::initialConstraintsForLine):
(WebCore::Layout::LineBuilder::handleFloatContent):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):
(WebCore::Layout::LineBuilder::constraintsForLine): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 8:50 AM Changeset in webkit [270433] by
-
- 3 edits in trunk/LayoutTests
Followup rebase for fast/forms/listbox-width-change.html and fast/forms/search/search-size-with-decorations.html
https://bugs.webkit.org/show_bug.cgi?id=218359
Unreviewed test gardening.
- platform/mac-catalina/fast/forms/listbox-width-change-expected.txt:
- platform/mac-catalina/fast/forms/search/search-size-with-decorations-expected.txt:
- 8:45 AM Changeset in webkit [270432] by
-
- 2 edits in trunk/LayoutTests
[GStreamer] Unreviewed micro gardening
https://bugs.webkit.org/show_bug.cgi?id=214031
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video-poster-shown-preload-auto.html
is now passing, likely due to r269407.
- platform/glib/TestExpectations:
- 7:54 AM Changeset in webkit [270431] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JIT] Value profile stores wrong value in BaselineJIT for some operations
https://bugs.webkit.org/show_bug.cgi?id=219535
Reviewed by Mark Lam.
This patch is a follow up from r270423 to fix 32-bits baseline JIT
code fromop_iterator_next. It's also fixing wrong profile value for
op_get_prototype_of.
- jit/JITCall32_64.cpp:
(JSC::JIT::emit_op_iterator_next):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_get_prototype_of):
- 7:43 AM Changeset in webkit [270430] by
-
- 2 edits in trunk/Source/WebKit
GPU Process WindowServer blocking prevents CGL
https://bugs.webkit.org/show_bug.cgi?id=219431
<rdar://problem/71893390>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-12-04
Reviewed by Per Arne Vollan.
Mark the GPU process as NSSupportsAutomaticGraphicsSwitching.
This allows CGL to work in cases when WindowServer connection
is blocked.
No new tests, makes the future WebGL in GPU process work.
- GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-OSX.plist:
- 6:31 AM WebKitGtkLayoutTests edited by
- Document how to run gdb for WebProcess in a test (diff)
- 5:48 AM Changeset in webkit [270429] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Float positioning needs to happen while building the line
https://bugs.webkit.org/show_bug.cgi?id=219523
Reviewed by Antti Koivisto.
This patch is in preparation for cases when the float may fit the line and we assume it's intrusive but due to e.g. "clear"
it is not intersecting the line at all.
In order to figure out whether the float boxes intersect the current line, we need to compute their position as we find them.
In this patch the float positioning logic is moved over to LineBuilder (from the line post-processing) and floats are added
to the FloatingState as we encounter them while building the line.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::constraintsForLine):
(WebCore::Layout::LineBuilder::handleFloatContent):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::formattingState):
(WebCore::Layout::LineBuilder::floatingState):
- 5:35 AM Changeset in webkit [270428] by
-
- 3 edits2 adds in trunk
Web process assert when loading slack
https://bugs.webkit.org/show_bug.cgi?id=219079
<rdar://problem/71814675>
Reviewed by Antti Koivisto.
Source/WebCore:
While some display types do not make too much sense on replaced elements, Box::isInlineLevelBox should
return true for all of them.
Test: fast/inline/inline-flex-on-replaced-crash.html
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isInlineLevelBox const):
LayoutTests:
- fast/inline/inline-flex-on-replaced-crash-expected.txt: Added.
- fast/inline/inline-flex-on-replaced-crash.html: Added.
- 4:26 AM Changeset in webkit [270427] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Decouple inline content and float handling in LineBuilder
https://bugs.webkit.org/show_bug.cgi?id=219522
Reviewed by Antti Koivisto.
The line candidate content is either a list of inline runs or an individual float box. Let's process them separately.
This is in preparation for adding support for "vertically stretchy" lines vs. intrusive floats where the line height
may change as we add new inline level boxes and we need to probe against existing floats.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::continuousContent const):
(WebCore::Layout::LineCandidate::InlineContent::isEmpty const):
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::handleFloatContent):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineCandidate::InlineContent::operator() const): Deleted.
(WebCore::Layout::LineBuilder::handleFloatOrInlineContent): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
- 1:41 AM Changeset in webkit [270426] by
-
- 3 edits2 adds in trunk
WebGL2: Null pointer dereference in std::string implementation in gl::Shader::getTransformFeedbackVaryingMappedName
https://bugs.webkit.org/show_bug.cgi?id=218602
Patch by Rob Buis <rbuis@igalia.com> on 2020-12-04
Reviewed by Dean Jackson.
Source/ThirdParty/ANGLE:
Skip varying if field is not found since in this
case we have no match for the varying parameter name.
- src/libANGLE/Shader.cpp:
(gl::Shader::getTransformFeedbackVaryingMappedName):
LayoutTests:
Add test that triggers the Shader::getTransformFeedbackVaryingMappedName
field code.
- fast/canvas/webgl/webgl-transformed-varying-name-crash-expected.txt: Added.
- fast/canvas/webgl/webgl-transformed-varying-name-crash.html: Added.