Timeline



Dec 4, 2020:

9:59 PM Changeset in webkit [270470] by Said Abou-Hallawa
  • 2 edits
    1 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 Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening media-source timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
5:26 PM Changeset in webkit [270468] by Chris Dumez
  • 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 Wenson Hsieh
  • 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 -_cancelImageExtraction during mainframe navigation. See WebKitAdditions change for more information.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _didStartProvisionalLoadForMainFrame]):

4:28 PM Changeset in webkit [270466] by Jonathan Bedard
  • 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 Russell Epstein
  • 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 Alan Bujtas
  • 3 edits
    2 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 jer.noble@apple.com
  • 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 jer.noble@apple.com
  • 34 edits
    1 copy
    4 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 Truitt Savell
  • 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 Chris Dumez
  • 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 Chris Dumez
  • 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 Said Abou-Hallawa
  • 39 edits
    1 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 Chris Dumez
  • 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 wilander@apple.com
  • 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 Chris Dumez
  • 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 commit-queue@webkit.org
  • 75 edits
    1 move
    2 adds
    8 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 BJ Burg
  • 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 Alan Bujtas
  • 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 Fujii Hironori
  • 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 Russell Epstein
  • 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 ddkilzer@apple.com
  • 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 Alan Bujtas
  • 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 Jonathan Bedard
  • 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 Kate Cheney
  • 24 edits
    4 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 commit-queue@webkit.org
  • 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 Said Abou-Hallawa
  • 16 edits
    1 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 Lauro Moura
  • 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 Darin Adler
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 pvollan@apple.com
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Devin Rousso
  • 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 _WKElementActionTypeImageExtraction enum type with a default icon and title.

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

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):
If the WKActionSheetAssistantDelegate allows it, add a _WKElementActionTypeImageExtraction
action for images (including those inside links). Call out to the WKActionSheetAssistantDelegate
when handling the action.

10:12 AM Changeset in webkit [270435] by Peng Liu
  • 27 edits
    1 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 SourceBuffer class 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 from SourceBuffer
to SourceBufferPrivate. 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 interface SourceBufferPrivateClient
accordingly.

When running the track buffer management in the SourceBuffer class, we can get
some information related to MediaSource directly, such as isSeeking, duration,
and currentMediaTime. However, after moving it to SourceBufferPrivate, we have to
get the information from the corresponding MediaSourcePrivate. 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 SourceBufferPrivateRemote and RemoteSourceBufferProxy because of
the changes on SourceBufferPrivate and SourceBufferPrivateClient.

  • 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 Alan Bujtas
  • 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 Truitt Savell
  • 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 aboya@igalia.com
  • 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 Caio Lima
  • 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 from op_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 commit-queue@webkit.org
  • 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 vjaquez@igalia.com
Document how to run gdb for WebProcess in a test (diff)
5:48 AM Changeset in webkit [270429] by Alan Bujtas
  • 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 Alan Bujtas
  • 3 edits
    2 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 Alan Bujtas
  • 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 commit-queue@webkit.org
  • 3 edits
    2 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.

Dec 3, 2020:

11:10 PM Changeset in webkit [270425] by Simon Fraser
  • 19 edits
    1 delete in trunk

Only the first wheel event in a gesture should be cancelable
https://bugs.webkit.org/show_bug.cgi?id=218764
<rdar://problem/71248946>

Reviewed by Tim Horton.

Source/WebCore:

Implement the WebKit2 version of r270312, where only the first wheel event in a gesture is
cancelable.

When scrolling over an element with handlers, we do event handling on the main thread,
so we can take the compute value of EventHandler's Optional<WheelScrollGestureState>
from the first event and send it back to the scrolling thread.

However, the scrolling thread needs to block until this first event comes back from
the main thread. To achieve this, EventDispatcher::wheelEvent() now dispaches
main thread scrolls from the scrolling thread (not the dispatcher thread), and
waits on m_waitingForBeganEventCondition with a 50ms timeout for that first event to
come back.

In the normal case, main thread handling dispatches the event back to the scrolling
thread for scrolling via handleWheelEventAfterMainThread(), and then calls
wheelEventWasProcessedByMainThread() to signal the condition. If for some reason
handleWheelEventAfterMainThread() doesn't get called (e.g. nothing was scrollable),
then wheelEventWasProcessedByMainThread() still gets called to signal.

If m_waitingForBeganEventCondition times out, then the scrolling thread falls back
to non-blocking behaviour (as if the first event was not canceled).

Finally, when we know the gesture will become non-blocking, we transition to running
the scroll from the scrolling thread, which requires that we set up latching, hence
the changes in ScrollingTreeLatchingController.

Tested by existing tests in fast/events/wheel.

  • page/EventHandler.cpp:

(WebCore::EventHandler::wheelEventWasProcessedByMainThread):
(WebCore::EventHandler::handleWheelEventInScrollableArea):

  • page/WheelEventTestMonitor.cpp:

(WebCore::operator<<):

  • page/WheelEventTestMonitor.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::processWheelEventForScrolling):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::determineWheelEventProcessing):
(WebCore::ScrollingTree::setGestureState):
(WebCore::ScrollingTree::gestureState):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::willSendEventToMainThread):
(WebCore::ScrollingTree::waitForEventToBeProcessedByMainThread):

  • page/scrolling/ScrollingTreeLatchingController.cpp:

(WebCore::ScrollingTreeLatchingController::receivedWheelEvent):
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):

  • page/scrolling/ScrollingTreeLatchingController.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):
(WebCore::ThreadedScrollingTree::wheelEventWasProcessedByMainThread):
(WebCore::ThreadedScrollingTree::willSendEventToMainThread):
(WebCore::ThreadedScrollingTree::waitForEventToBeProcessedByMainThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEventForScrolling): Need to track deferral
for WheelEventTestMonitor.
(WebCore::ScrollingCoordinatorMac::wheelEventWasProcessedByMainThread): This is now synchronous
to the scrolling thread so no need for the deferrer.
(WebCore::nextDeferIdentifier): Deleted.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::wheelEventWasProcessedByMainThread):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

Source/WebKit:

In EventDispatcher::wheelEvent(), all wheel events now bounce through the scrolling
thread, even those destined for main thread scrolling. This allows the scrolling thread
to wait on a condition for the event to come back to the scrolling thread via
handleWheelEventAfterMainThread(), since we have to know whether content called
preventDefault() on the first event before sending subsequent events.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

LayoutTests:

  • fast/scrolling/mac/rubberband-overflow-in-wheel-region-root-jiggle.html: Make more robust.
  • platform/mac-wk2/fast/events/wheel/wheel-events-become-non-cancelable-expected.txt: Test now passes in WK2.
10:45 PM Changeset in webkit [270424] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Gardening anchor download failures after r270422

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
8:08 PM Changeset in webkit [270423] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

"done" checkpoint of iterator_next stores the wrong register in the value profile in baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=219501

Reviewed by Keith Miller.

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

(JSC::JIT::emit_op_iterator_next):

  • jit/JITInlines.h:

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

7:30 PM Changeset in webkit [270422] by commit-queue@webkit.org
  • 75 edits
    3 copies
    1 move
    5 adds
    2 deletes in trunk

Source/WebKit:
Introduce new download API
https://bugs.webkit.org/show_bug.cgi?id=217747

Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-03
Reviewed by Brady Eidson.

Safari currently uses _WKDownload, which has evolved strangely over the last decade.
In order to make a nicer interface, we need to learn from those lessons and take a step back.
I did that, and here's what I came up with: WKDownload and WKDownloadDelegate!

Notable changes include:

  1. The delegate now lives on the download object instead of the process pool.
  2. WKDownload does not conform to NSCopying because we have NSMapTable instead of NSDictionary.
  3. publishProgressAtURL is gone. That will be reimplemented in the UI process of the client that used it.
  4. cancel has a completion handler to get the resume data instead of waiting for didCancel then getting it from the download object.
  5. didFailWithError also gives you the resume data, so there is no way to get it from the download object. That's more about a fail/cancel

event than a property of the download.

  1. wasUserInitiated is gone. Instead, WKNavigationDelegate has a callback that links a navigation action (where _isUserInitiated is exposed) to the download.
  2. redirectChain is also gone. That can also be gotten from the link to the navigation and the download delegate's redirect callback.
  3. _downloadDidStart is gone. Instead, we have completion handlers that expose a WKDownload once it's started. There's no need to

reference the download object before then anyways. Note: that's when the download "starts" which is before it receives the response,
so there will be no server delay in the difference between download object availabilities.

  1. didReceiveServerRedirectToURL now gives you the option of continuing or cancelling. This reflects the amount of control the

WKNavigationDelegate has.

  1. decideDestinationWithSuggestedFilename and didReceiveResponse have been merged, since they actually happen at the same time and

NSURLResponse has suggestedFilename API. allowOverwrite is also gone. It wasn't used, and not really needed.

  1. didCreateDestination is gone. That callback time wasn't really necessary. If you need to know when it's created, wait until the first

didWriteData callback. The destination has definitely been created by then.

  1. shouldDecodeSourceDataOfMIMEType is gone. It's actually not called since we adopted NSURLSession, and we should remove the related dead code.
  2. originatingFrame is gone. On _WKDownload it was actually a non-null WKFrameInfo that often contained no information. When information was there,

the information access has been replaced by didBecomeDownload which links the WKNavigationResponse which has frame info on it.

I wrote API tests for everything I could think of.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::resumeDownload):

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):
(WebKit::Download::platformCancelNetworkLoad):

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::suggestedFilename const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::resumeDownload):
(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):

  • Scripts/webkit/messages.py:
  • Shared/API/Cocoa/WebKit.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIDownloadClient.h:

(API::DownloadClient::legacyDidStart):
(API::DownloadClient::didFail):
(API::DownloadClient::didStart): Deleted.

  • UIProcess/API/APINavigationAction.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::navigationResponseDidBecomeDownload):
(API::NavigationClient::navigationActionDidBecomeDownload):
(API::NavigationClient::contextMenuDidCreateDownload):

  • UIProcess/API/APIPolicyClient.h:

(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDownloadClient): Deleted.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKContextDownloadClient.h: Removed.
  • UIProcess/API/C/WKDownload.cpp: Removed.
  • UIProcess/API/C/WKDownloadClient.h: Added.
  • UIProcess/API/C/WKDownloadRef.cpp: Added.

(WKDownloadGetTypeID):
(WKDownloadCopyRequest):
(WKDownloadCancel):
(WKDownloadGetOriginatingPage):
(WKDownloadGetWasUserInitiated):
(WKDownloadSetClient):

  • UIProcess/API/C/WKDownloadRef.h: Renamed from Source/WebKit/UIProcess/API/C/WKDownload.h.
  • UIProcess/API/C/WKNavigationActionRef.cpp:

(WKNavigationActionGetDownloadAttribute):
(WKNavigationActionShouldPerformDownload): Deleted.

  • UIProcess/API/C/WKNavigationActionRef.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPagePolicyClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKPageNavigationClient.h:
  • UIProcess/API/Cocoa/WKDownload.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h.
  • UIProcess/API/Cocoa/WKDownload.mm: Added.

(-[WKDownload cancel:]):
(-[WKDownload originalRequest]):
(-[WKDownload delegate]):
(-[WKDownload setDelegate:]):
(-[WKDownload dealloc]):
(-[WKDownload _apiObject]):

  • UIProcess/API/Cocoa/WKDownloadDelegate.h: Added.
  • UIProcess/API/Cocoa/WKDownloadInternal.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction downloadAttribute]):
(-[WKNavigationAction _shouldPerformDownload]):

  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _downloadURLRequest:websiteDataStore:originatingWebView:]):
(-[WKProcessPool _resumeDownloadFromData:websiteDataStore:path:originatingWebView:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView downloadRequest:completionHandler:]):
(-[WKWebView resumeDownloadWithData:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKDownload.mm:

(-[_WKDownload initWithDownload2:]):
(+[_WKDownload downloadWithDownload:]):
(-[_WKDownload cancel]):
(-[_WKDownload publishProgressAtURL:]):
(-[_WKDownload request]):
(-[_WKDownload originatingWebView]):
(-[_WKDownload redirectChain]):
(-[_WKDownload wasUserInitiated]):
(-[_WKDownload resumeData]):
(-[_WKDownload originatingFrame]):
(-[_WKDownload _apiObject]):
(-[_WKDownload dealloc]): Deleted.

  • UIProcess/API/Cocoa/_WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/_WKDownloadInternal.h:
  • UIProcess/API/glib/WebKitDownloadClient.cpp:
  • UIProcess/Cocoa/LegacyDownloadClient.h:
  • UIProcess/Cocoa/LegacyDownloadClient.mm:

(WebKit::LegacyDownloadClient::legacyDidStart):
(WebKit::LegacyDownloadClient::didReceiveResponse):
(WebKit::LegacyDownloadClient::didReceiveData):
(WebKit::LegacyDownloadClient::didReceiveAuthenticationChallenge):
(WebKit::LegacyDownloadClient::didCreateDestination):
(WebKit::LegacyDownloadClient::processDidCrash):
(WebKit::LegacyDownloadClient::decideDestinationWithSuggestedFilename):
(WebKit::LegacyDownloadClient::didFinish):
(WebKit::LegacyDownloadClient::didFail):
(WebKit::LegacyDownloadClient::legacyDidCancel):
(WebKit::LegacyDownloadClient::willSendRequest):
(WebKit::LegacyDownloadClient::didStart): Deleted.

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

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
(WebKit::NavigationState::NavigationClient::navigationActionDidBecomeDownload):
(WebKit::NavigationState::NavigationClient::navigationResponseDidBecomeDownload):
(WebKit::NavigationState::NavigationClient::contextMenuDidCreateDownload):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:
  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::~DownloadProxy):
(WebKit::DownloadProxy::didStart):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::setClient):

  • UIProcess/Downloads/DownloadProxy.h:

(WebKit::DownloadProxy::setDidStartCallback):
(WebKit::DownloadProxy::setSuggestedFilename):

  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::resumeDownload):
(WebKit::WebPageProxy::downloadRequest):
(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::receivedPolicyDecision):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::resumeDownload):

  • UIProcess/WebProcessPool.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:
Introduce new download SPI
https://bugs.webkit.org/show_bug.cgi?id=217747

Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-03
Reviewed by Brady Eidson.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/DownloadDecideDestinationCrash.cpp:

(TestWebKitAPI::decidePolicyForNavigationResponse):
(TestWebKitAPI::decideDestinationWithSuggestedFilename):
(TestWebKitAPI::navigationResponseDidBecomeDownload):
(TestWebKitAPI::setPagePolicyClient):
(TestWebKitAPI::TEST):
(TestWebKitAPI::decidePolicyForNavigationAction): Deleted.
(TestWebKitAPI::setContextDownloadClient): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:

(TestWebKitAPI::decideDestinationWithSuggestedFilename):
(TestWebKitAPI::contextMenuDidCreateDownload):
(TestWebKitAPI::TEST):
(TestWebKitAPI::decideDestinationWithSuggestedFilenameContainingSlashes):
(TestWebKitAPI::contextMenuDidCreateDownloadWithSuggestedFilenameContainingSlashes):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(-[BecomeDownloadDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(-[ConvertResponseToDownloadNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[TestDownloadNavigationResponseFromMemoryCacheDelegate webView:didFailProvisionalNavigation:withError:]):
(-[TestDownloadNavigationResponseFromMemoryCacheDelegate webView:didFinishNavigation:]):
(TEST):
(downloadTestServer):
(checkResumedDownloadContents):
(simpleDownloadTestServer):
(checkFileContents):
(tempFileThatDoesNotExist):
(-[DownloadTestSchemeDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(TestWebKitAPI::mutateFile):

  • TestWebKitAPI/Tests/WebKitCocoa/DownloadProgress.mm:

(-[DownloadProgressTestRunner webView:decidePolicyForNavigationResponse:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(TEST):

  • TestWebKitAPI/cocoa/TestDownloadDelegate.h:
  • TestWebKitAPI/cocoa/TestDownloadDelegate.mm:

(-[TestDownloadDelegate download:willPerformHTTPRedirection:newRequest:decisionHandler:]):
(-[TestDownloadDelegate download:decideDestinationWithResponse:suggestedFilename:completionHandler:]):
(-[TestDownloadDelegate download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[TestDownloadDelegate download:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestDownloadDelegate downloadDidFinish:]):
(-[TestDownloadDelegate download:didFailWithError:resumeData:]):
(-[TestDownloadDelegate webView:navigationResponse:didBecomeDownload:]):
(-[TestDownloadDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[TestDownloadDelegate waitForDownloadDidFinish]):
(-[TestDownloadDelegate takeCallbackRecord]):
(-[TestDownloadDelegate _downloadDidStart:]): Deleted.
(-[TestDownloadDelegate _download:didReceiveServerRedirectToURL:]): Deleted.
(-[TestDownloadDelegate _download:didReceiveResponse:]): Deleted.
(-[TestDownloadDelegate _download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): Deleted.
(-[TestDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]): Deleted.
(-[TestDownloadDelegate _downloadDidFinish:]): Deleted.
(-[TestDownloadDelegate _download:didFailWithError:]): Deleted.
(-[TestDownloadDelegate _downloadDidCancel:]): Deleted.
(-[TestDownloadDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]): Deleted.
(-[TestDownloadDelegate _download:didCreateDestination:]): Deleted.

  • TestWebKitAPI/cocoa/TestLegacyDownloadDelegate.h: Copied from Tools/TestWebKitAPI/cocoa/TestDownloadDelegate.h.
  • TestWebKitAPI/cocoa/TestLegacyDownloadDelegate.mm: Copied from Tools/TestWebKitAPI/cocoa/TestDownloadDelegate.mm.

(-[TestLegacyDownloadDelegate _downloadDidStart:]):
(-[TestLegacyDownloadDelegate _download:didReceiveServerRedirectToURL:]):
(-[TestLegacyDownloadDelegate _download:didReceiveResponse:]):
(-[TestLegacyDownloadDelegate _download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[TestLegacyDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]):
(-[TestLegacyDownloadDelegate _downloadDidFinish:]):
(-[TestLegacyDownloadDelegate _download:didFailWithError:]):
(-[TestLegacyDownloadDelegate _downloadDidCancel:]):
(-[TestLegacyDownloadDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestLegacyDownloadDelegate _download:didCreateDestination:]):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::navigationDidBecomeDownloadShared):
(WTR::TestController::navigationActionDidBecomeDownload):
(WTR::TestController::navigationResponseDidBecomeDownload):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::decideDestinationWithSuggestedFilename):
(WTR::TestController::downloadDidFinish):
(WTR::TestController::downloadDidFail):
(WTR::TestController::downloadDidReceiveServerRedirectToURL):
(WTR::TestController::downloadDidStart):
(WTR::TestController::decidePolicyForNavigationAction):
(WTR::TestController::downloadDidCancel): Deleted.

  • WebKitTestRunner/TestController.h:

LayoutTests:
Introduce new download API
https://bugs.webkit.org/show_bug.cgi?id=217747

Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-03
Reviewed by Brady Eidson.

  • fast/dom/HTMLAnchorElement/anchor-download-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt:

Now that NetworkDataTaskBlob::suggestedFilename doesn't suggest "unknown"
the capitalization has changed to "Unknown" from NSURLResponse's suggestedFilename.

5:32 PM Changeset in webkit [270421] by Kate Cheney
  • 4 edits in trunk/Source/WebCore

Issue logging in to Microsoft Teams if logged into other Microsoft accounts and navigating directly to teams.microsoft.com
https://bugs.webkit.org/show_bug.cgi?id=219505
<rdar://problem/71391657>

Reviewed by Alex Christensen.

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

No new tests, site specific quirk.

In https://bugs.webkit.org/show_bug.cgi?id=218778 we added a quirk to
call the Storage Access API on behalf of microsoft.com when logging
into Microsoft Teams. This patch covers a final edge case where a user
was logged into other Microsoft accounts prior to the fix. In this
case, if the user tries to go straight to teams.microsoft.com, an endless
redirect loop will occur because the site has login credentials from a previous
Microsoft login but does not have 3rd party cookie access to authenticate the
login on teams.microsoft.com. The solution is to redirect the user to
the login page for Teams on microsoft.com where the previous fix added
a Storage Access prompt.

  • loader/DocumentLoader.cpp:

(WebCore::microsoftTeamsRedirectURL):
(WebCore::DocumentLoader::responseReceived):

  • page/Quirks.cpp:

(WebCore::Quirks::isMicrosoftTeamsRedirectURL):

  • page/Quirks.h:
5:22 PM Changeset in webkit [270420] by commit-queue@webkit.org
  • 41 edits in trunk

Adopt FALLBACK_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=219504

Patch by Adam Roben <Adam Roben> on 2020-12-03
Reviewed by Tim Horton.

PerformanceTests:

  • MediaTime/Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM

it if it's defined, otherwise use PLATFORM_NAME as before.

Source/bmalloc:

  • Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Source/JavaScriptCore:

  • Configurations/SDKVariant.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/check-xcfilelists.sh:

Use FALLBACK_PLATFORM it if it's defined, otherwise use PLATFORM_NAME
as before.

Source/ThirdParty:

  • gtest/xcode/Config/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if

it's defined, otherwise use PLATFORM_NAME as before.

Source/ThirdParty/ANGLE:

  • Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Source/ThirdParty/libwebrtc:

  • Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Source/WebCore:

  • Configurations/SDKVariant.xcconfig:
  • Scripts/check-xcfilelists.sh:

Use FALLBACK_PLATFORM it if it's defined, otherwise use PLATFORM_NAME
as before.

Source/WebCore/PAL:

  • Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Source/WebInspectorUI:

  • Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Source/WebKit:

  • Configurations/SDKVariant.xcconfig:
  • Scripts/check-xcfilelists.sh:

Use FALLBACK_PLATFORM it if it's defined, otherwise use PLATFORM_NAME
as before.

Source/WebKitLegacy:

  • scripts/check-xcfilelists.sh: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Source/WebKitLegacy/mac:

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Use FALLBACK_PLATFORM it if it's defined, otherwise use PLATFORM_NAME
as before.

Source/WTF:

  • Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's

defined, otherwise use PLATFORM_NAME as before.

Tools:

  • 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:

Use FALLBACK_PLATFORM it if it's defined, otherwise use PLATFORM_NAME
as before.

4:38 PM Changeset in webkit [270419] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Drop unimplemented suspension functions on GPUConnectionToWebProcess and WebAuthnConnectionToWebProcess
https://bugs.webkit.org/show_bug.cgi?id=219513

Reviewed by Tim Horton.

These functions are never called and have no implementation. This is just bad copy/paste from
NetworkConnectionToWebProcess.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • WebAuthnProcess/WebAuthnConnectionToWebProcess.h:
4:31 PM Changeset in webkit [270418] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

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

Reviewed by Per Arne Vollan.

Instead of globally extending access to the AppleSNBFBUserClient IOKit class,
only extend it when the GPU process is not in use.

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses): Add 'AppleSNBFBUserClient' as a dynamically-extended
IOKit class.

  • WebProcess/com.apple.WebProcess.sb.in: Only allow 'AppleSNBFBUserClient' if it

was dynamically extended.

4:24 PM Changeset in webkit [270417] by Said Abou-Hallawa
  • 6 edits in trunk/Source

[GPU Process] Disconnect NativeImages from RemoteResourceCacheProxy when RemoteRenderingBackendProxy is destroyed
https://bugs.webkit.org/show_bug.cgi?id=219417

Reviewed by Tim Horton.

Source/WebCore:

Allow multiple observers for a single NativeImage. The NativeImage is
usually a frame of a CachedImage. The CachedImage can be referenced by
multiple pages and every page has its RemoteRenderingBackendProxy which
is a superclass of NativeImage::Observer.s

  • platform/graphics/NativeImage.cpp:

(WebCore::NativeImage::~NativeImage):

  • platform/graphics/NativeImage.h:

(WebCore::NativeImage::addObserver):
(WebCore::NativeImage::removeObserver):
(WebCore::NativeImage::setObserver): Deleted.
(): Deleted.

Source/WebKit:

If the WebPage is destroyed before destroying the CachedImages, a crash
may happen. The NativeImage will try to release itself from its observer,
which is RemoteResourceCacheProxy, after it has been freed.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::~RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::cacheNativeImage):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
4:07 PM Changeset in webkit [270416] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Use red color for sync wheel event handler debug overlay text
https://bugs.webkit.org/show_bug.cgi?id=219514

Reviewed by Tim Horton.

Use red for the "sync" wheel event handler debug overlay text.

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForEventListenerRegionType):

4:02 PM Changeset in webkit [270415] by Chris Dumez
  • 9 edits in trunk/Source/WebKit

Bad IPC from the WebProcess should not terminate the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=219511

Reviewed by Simon Fraser.

Bad IPC from the WebProcess should not terminate the GPUProcess. The GPUProcess is shared by all
WebProcesses and it is not acceptable for a single bad WebProcess to negatively impact other
WebProcesses. Instead, we should terminate the bad WebProcess, like the NetworkProcess already
does on bad IPC.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didReceiveInvalidMessage):

  • Shared/ProcessTerminationReason.h:
  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::wkProcessTerminationReason):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::terminateWebProcess):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/GPU/GPUProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::shouldReloadAfterProcessTermination):

4:01 PM Changeset in webkit [270414] by commit-queue@webkit.org
  • 22 edits
    1 copy
    1 add in trunk

Serialize NFA to disk before converting it to a DFA when compiling a WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=219452

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

Source/WebCore:

This decreases maximum memory use by about 50% because the NFA and DFA never need to be in memory at the same time.
I'll have to do some tuning and on-device measurement, but this may allow us to increase maxRuleCount.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):

  • contentextensions/CombinedURLFilters.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileToBytecode):
(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::shrinkToFit): Deleted.

  • contentextensions/DFA.h:
  • contentextensions/ImmutableNFA.h:

(WebCore::ContentExtensions::ImmutableNFA::clear):
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator* const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator-> const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator== const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!= const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator== const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!= const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::first const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::last const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::range const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::transitionsForNode const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::root const): Deleted.
(WebCore::ContentExtensions::ImmutableNFA::finalize): Deleted.

  • contentextensions/ImmutableNFANodeBuilder.h:
  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::epsilonClosureExcludingSelf):
(WebCore::ContentExtensions::resolveEpsilonClosures):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):
(WebCore::ContentExtensions::createCombinedTransition):
(WebCore::ContentExtensions::getOrCreateDFANode):
(WebCore::ContentExtensions::NFAToDFA::convert):

  • contentextensions/NFAToDFA.h:
  • contentextensions/SerializedNFA.cpp: Added.

(WebCore::ContentExtensions::writeAllToFile):
(WebCore::ContentExtensions::SerializedNFA::serialize):
(WebCore::ContentExtensions::SerializedNFA::SerializedNFA):
(WebCore::ContentExtensions::SerializedNFA::pointerAtOffsetInFile const):
(WebCore::ContentExtensions::SerializedNFA::nodes const const):
(WebCore::ContentExtensions::SerializedNFA::transitions const const):
(WebCore::ContentExtensions::SerializedNFA::targets const const):
(WebCore::ContentExtensions::SerializedNFA::epsilonTransitionsTargets const const):
(WebCore::ContentExtensions::SerializedNFA::actions const const):

  • contentextensions/SerializedNFA.h: Copied from Source/WebCore/contentextensions/ImmutableNFA.h.

(WebCore::ContentExtensions::SerializedNFA::Range::Range):
(WebCore::ContentExtensions::SerializedNFA::Range::begin const):
(WebCore::ContentExtensions::SerializedNFA::Range::end const):
(WebCore::ContentExtensions::SerializedNFA::Range::size const):
(WebCore::ContentExtensions::SerializedNFA::Range::operator[] const):
(WebCore::ContentExtensions::SerializedNFA::root const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator* const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator-> const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator== const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator!= const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator++):
(WebCore::ContentExtensions::SerializedNFA::IterableConstTargets::begin const):
(WebCore::ContentExtensions::SerializedNFA::IterableConstTargets::end const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::operator== const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::operator!= const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::operator++):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::first const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::last const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::data const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::range const):
(WebCore::ContentExtensions::SerializedNFA::IterableConstRange::begin const):
(WebCore::ContentExtensions::SerializedNFA::IterableConstRange::end const):
(WebCore::ContentExtensions::SerializedNFA::IterableConstRange::debugPrint const):
(WebCore::ContentExtensions::SerializedNFA::transitionsForNode const):

Source/WebKit:

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):

  • UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h:

Remove NS_RELEASES_ARGUMENT because it was incorrect and unnecessary because the WTF::String is copied to a background thread.

Tools:

Update syntax of existing tests, which cover behavior quite well.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::createNFAs):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAHelpers.h:

(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):

3:54 PM Changeset in webkit [270413] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Make sure the GPUConnectionToWebProcess gets destroyed when the connection to the WebProcess gets severed
https://bugs.webkit.org/show_bug.cgi?id=219508

Reviewed by Geoffrey Garen.

Make sure the GPUConnectionToWebProcess gets destroyed when the connection to the WebProcess gets severed
(WebProcess exited normally or crashed). This is similar to what we do in the NetworkProcess for
NetworkConnectionToWebProcess.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):

3:34 PM Changeset in webkit [270412] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitscmpy] Incorrect identifier on remote SVN branches
https://bugs.webkit.org/show_bug.cgi?id=219509
<rdar://problem/71953465>

Reviewed by Stephanie Lewis.

Request reconstructed from packet inspection of requests sent by the svn binary.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:

(Svn._cache_revisions): Clarify that revisions should only come from the specified branch.

3:20 PM Changeset in webkit [270411] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] not using std::make_pair for workaround of (possibly) ASan bug
https://bugs.webkit.org/show_bug.cgi?id=219502
<rdar://71642789>

Reviewed by Robin Morisset.

We are getting ASan crash in LayoutTests/fast/canvas/webgl/array-unit-tests.html after r269574.
However, this is inside std::make_pair, and it looks like a bug in ASan.
To workaround this for now, we avoid using std::make_pair and instead just using C++ uniform initialization.

  • runtime/JSArrayBufferPrototype.cpp:
3:15 PM Changeset in webkit [270410] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: isMainThread() in WTF::Optional<IntSize> &WebCore::surfaceMaximumSize()
https://bugs.webkit.org/show_bug.cgi?id=219492

Reviewed by Ryosuke Niwa.

No new tests; fixes a failing test.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::surfaceMaximumSize):
(WebCore::IOSurface::setMaximumSize):
(WebCore::IOSurface::maximumSize):
maximumSize() is used off the main thread, so wrap it in a WTF::Atomic.

3:09 PM Changeset in webkit [270409] by Truitt Savell
  • 42 edits
    40 copies
    3 adds
    2 deletes in trunk/LayoutTests

Get rid of LayoutTests/platform/mac-bigsur
https://bugs.webkit.org/show_bug.cgi?id=218359

Unreviewed test gardening.

  • platform/mac-bigsur/editing/pasteboard/pasting-tabs-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/select-from-textfield-outwards-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt: Removed.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Removed.
  • platform/mac-bigsur/fast/css/apple-system-control-colors-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/basic-textareas-quirks-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/box-shadow-override-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/form-element-geometry-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/hidpi-textfield-background-bleeding-expected.html: Removed.
  • platform/mac-bigsur/fast/forms/input-appearance-preventDefault-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/input-appearance-spinbutton-up-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/input-placeholder-visibility-1-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/input-placeholder-visibility-3-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/input-table-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/input-value-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/listbox-width-change-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/search-rtl-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/search/search-size-with-decorations-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/search/search-zoom-computed-style-height-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/select-visual-hebrew-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/textAreaLineHeight-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/textarea-placeholder-visibility-1-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/textarea-placeholder-visibility-2-expected.txt: Removed.
  • platform/mac-bigsur/fast/forms/visual-hebrew-text-field-expected.txt: Removed.
  • platform/mac-bigsur/fast/parser/entity-comment-in-textarea-expected.txt: Removed.
  • platform/mac-bigsur/fast/parser/open-comment-in-textarea-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/backslash-to-yen-sign-euc-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/drawBidiText-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/international/danda-space-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/international/system-language/system-font-punctuation-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/justify-ideograph-leading-expansion-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/vertical-rl-rtl-linebreak-expected.txt: Removed.
  • platform/mac-bigsur/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Removed.
  • platform/mac-catalina/fast/forms/listbox-width-change-expected.txt:
  • platform/mac-catalina/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt:
  • platform/mac/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt:
  • platform/mac/fast/css/apple-system-control-colors-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/listbox-width-change-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/mac/fast/forms/search-rtl-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/select-visual-hebrew-expected.txt:
  • platform/mac/fast/forms/textAreaLineHeight-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/fast/text/backslash-to-yen-sign-euc-expected.txt:
  • platform/mac/fast/text/drawBidiText-expected.txt:
  • platform/mac/fast/text/international/danda-space-expected.txt:
  • platform/mac/fast/text/international/system-language/system-font-punctuation-expected.txt:
  • platform/mac/fast/text/justify-ideograph-leading-expansion-expected.txt:
  • platform/mac/fast/text/vertical-rl-rtl-linebreak-expected.txt:
  • platform/mac/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt:
2:24 PM Changeset in webkit [270408] by Chris Dumez
  • 4 edits
    2 adds in trunk

Crash when trying to suspend an OfflineAudioContext with a bad buffer
https://bugs.webkit.org/show_bug.cgi?id=219496

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: webaudio/OfflineAudioContext-bad-buffer-suspend-crash.html

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::startOfflineRendering):
Throw a NotSupportedError for consistency with Blink.

(WebCore::OfflineAudioContext::suspendOfflineRendering):
Use length() instead of dereferencing the potentially null renderTarget to get
the length.

LayoutTests:

Add layout test coverage.

  • webaudio/OfflineAudioContext-bad-buffer-suspend-crash-expected.txt: Added.
  • webaudio/OfflineAudioContext-bad-buffer-suspend-crash.html: Added.
1:14 PM Changeset in webkit [270407] by Russell Epstein
  • 1 copy in tags/Safari-611.1.7

Tag Safari-611.1.7.

1:14 PM Changeset in webkit [270406] by Chris Dumez
  • 9 edits
    1 move in trunk/Source

Refactor macros for low power mode code
https://bugs.webkit.org/show_bug.cgi?id=219497

Reviewed by Geoffrey Garen.

Source/WebCore:

Use HAVE(APPLE_LOW_POWER_MODE_SUPPORT) instead of PLATFORM(IOS_FAMILY), which is equivalent.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/LowPowerModeNotifier.h:
  • platform/cocoa/LowPowerModeNotifier.mm: Renamed from Source/WebCore/platform/ios/LowPowerModeNotifierIOS.mm.

(-[WebLowPowerModeObserver initWithNotifier:]):
(-[WebLowPowerModeObserver dealloc]):
(-[WebLowPowerModeObserver _didReceiveLowPowerModeChange]):
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::~LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled const):
(WebCore::LowPowerModeNotifier::notifyLowPowerModeChanged):
(WebCore::notifyLowPowerModeChanged):

Source/WTF:

Add new HAVE_APPLE_LOW_POWER_MODE_SUPPORT macro, enabled on iOS_FAMILY.

  • wtf/PlatformHave.h:
1:14 PM Changeset in webkit [270405] by Russell Epstein
  • 1 copy in tags/Safari-610.4.2

Tag Safari-610.4.2.

1:12 PM Changeset in webkit [270404] by aboya@igalia.com
  • 4 edits
    4 adds in trunk

[GStreamer] Fix video losing size at the end of the stream
https://bugs.webkit.org/show_bug.cgi?id=219493

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

Added a test reproducing the bug that gets fixed with the patch.

  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html: Added.
  • web-platform-tests/media/test-1s.mp4: Added.
  • web-platform-tests/media/test-1s.webm: Added.

Source/WebCore:

Our port for long had an issue where at the end of the video the
tracks would be erased, causing the video to lose its size and by
extension its aspect ratio.

In absence of a size, WebKit uses the default video size defined by
the spec of 300x150 (2:1 aspect ratio). This causes a video element
that doesn't have a size set through CSS to shrink to that size at the
end of playback, and also for black bars to appear on wider content
(e.g. 16:9 video) when watched in full screen mode.

This patch fixes the problem by not removing the tracks after an end
of stream, and instead reusing them with different pads the next time
the video is played.

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::setPad):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
12:47 PM Changeset in webkit [270403] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[iOS][FCR] Add new look for buttons in their default state
https://bugs.webkit.org/show_bug.cgi?id=219446
<rdar://problem/71904353>

Reviewed by Wenson Hsieh.

Controls with a button-like appearance include <button> and <input>
elements with the following type attributes: “button”, “submit”,
“reset”, and “file”. All of these have the same default appearance,
with the exception of "submit", which has a darker background and
lighter text color than the others.

Note that styles for additional states (pressed, disabled) will be
added once final specifications are obtained.

  • css/formControlsIOS.css:

(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
(input:matches([type="button"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
(input[type="submit"]):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintPushButtonDecorations):

The old button appearance painted a gradient over the button background.
This gradient is no longer necessary under the new design.

12:28 PM Changeset in webkit [270402] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JIT::emit_op_iterator_next fast path passes in the wrong identifier to the "done" JITGetByIdGenerator
https://bugs.webkit.org/show_bug.cgi?id=219499

Reviewed by Keith Miller.

The reason nothing was failing here is that the slow path which calls into C
code to do repatching of the IC was using the right "done" identifier. The
fast path only checks if the identifier is "length", so the code sidestepped
itself being wrong in any way. However, it's good form to use the correct
identifier.

  • jit/JITCall.cpp:

(JSC::JIT::emit_op_iterator_next):

11:58 AM Changeset in webkit [270401] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

GraphicsContextGLOpenGL: Rename IOSurfaceTextureTarget to drawingBufferTextureTarget
https://bugs.webkit.org/show_bug.cgi?id=219475

Reviewed by Don Olmstead.

Cocoa port has IOSurfaceTextureTarget method to switch a buffer
target type. Non-Cocoa ports also need a similar method.

Rename IOSurfaceTextureTarget, IOSurfaceTextureTargetQuery and
EGLIOSurfaceTextureTarget to drawingBufferTextureTarget,
drawingBufferTextureTargetQuery and EGLDrawingBufferTextureTarget.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTarget):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTargetQuery):
(WebCore::GraphicsContextGLOpenGL::EGLDrawingBufferTextureTarget):
(WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLOpenGL::bindDisplayBufferBacking):
(WebCore::GraphicsContextGLOpenGL::IOSurfaceTextureTarget): Deleted.
(WebCore::GraphicsContextGLOpenGL::IOSurfaceTextureTargetQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::EGLIOSurfaceTextureTarget): Deleted.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects):
(WebCore::GraphicsContextGLCVANGLE::attachIOSurfaceToTexture):
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
11:29 AM Changeset in webkit [270400] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebCore

GraphicsContextGL has a couple non-robust getters and other small API problems preventing GPU process implementation
https://bugs.webkit.org/show_bug.cgi?id=219486

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

Changes GraphicsContextGL and ExtensionsGL to not have duplicate names
and have the correct function signatures.

Changes few remaining GraphicsContextGL getters to use robust GCGLSpan
form.

Changes few robust getters to GCGLSpan form and moves them from
ExtensionsGL to GraphicsContextGL.

Changes GraphicsContextGLOpenGL::getActiveUniforms to return the result
vector instead of taking it as non-const reference. This way the out
vector does not need to be transferred to the GPU process, when the
code is implemented. The call site is also more natural.

Requests GL_EXT_occlusion_query_boolean so that WebGL 2.0 occlusion
queries work when called with gl::GetQueryObjectuivRobustANGLE.

Removes use of mapBufferRange and related functions, changes them to a single
getBufferSubData. If the mapping ever is useful, the more complex
form of API can be added back.

Changes the getInternalformativ call site to check erros similar to other
generic error checking: first clear the errors and then after the call
check if there are new errors. This is slightly less efficient than
using the domain knowledge that the function never returns -1 in the slot.
Current single-value-as-return-value pattern cannot express this. In the
future, GPU process context cannot / will not support passing non-default
in-arrays. In the future, the generic error checking pattern will possibly
be improved, circumventing the need for the -1 domain knowledge case.

Removes getVertexAttrib*v, they are not used.

Removes getAttachedShaders, it is not used.

Removes the vendor-based workarounds from ANGLE ExtensionsGL, it was not
used.

No new tests, a refactor.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getBufferSubData):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::getSamplerParameter):
(WebCore::WebGL2RenderingContext::clientWaitSync):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::readPixels):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::readPixels):

  • html/canvas/WebGLSync.cpp:

(WebCore::WebGLSync::updateCache):

  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/GraphicsContextGL.h:

(WebCore::GraphicsContextGL::getInternalformati):

  • platform/graphics/GraphicsTypesGL.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::ExtensionsGLANGLE):
(WebCore::ExtensionsGLANGLE::getGraphicsResetStatusARB):
(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::blitFramebufferANGLE):
(WebCore::ExtensionsGLANGLE::renderbufferStorageMultisampleANGLE):
(WebCore::ExtensionsGLANGLE::drawArraysInstancedANGLE):
(WebCore::ExtensionsGLANGLE::drawElementsInstancedANGLE):
(WebCore::ExtensionsGLANGLE::vertexAttribDivisorANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):

  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::readnPixels):
(WebCore::GraphicsContextGLOpenGL::readnPixelsImpl):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectui):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteri):
(WebCore::GraphicsContextGLOpenGL::getSynci):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp:

(WebCore::ExtensionsGLOpenGL::blitFramebufferANGLE):
(WebCore::ExtensionsGLOpenGL::renderbufferStorageMultisampleANGLE):
(WebCore::ExtensionsGLOpenGL::drawArraysInstancedANGLE):
(WebCore::ExtensionsGLOpenGL::drawElementsInstancedANGLE):
(WebCore::ExtensionsGLOpenGL::vertexAttribDivisorANGLE):

  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::blitFramebufferANGLE):
(WebCore::ExtensionsGLOpenGLES::renderbufferStorageMultisampleANGLE):
(WebCore::ExtensionsGLOpenGLES::drawArraysInstancedANGLE):
(WebCore::ExtensionsGLOpenGLES::drawElementsInstancedANGLE):
(WebCore::ExtensionsGLOpenGLES::vertexAttribDivisorANGLE):

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

(WebCore::GraphicsContextGLOpenGL::readnPixels):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveAttrib):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniform):
(WebCore::GraphicsContextGLOpenGL::originalSymbolName):
(WebCore::GraphicsContextGLOpenGL::mappedSymbolName):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
(WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderSource):
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced):
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced):
(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectui):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteri):
(WebCore::GraphicsContextGLOpenGL::getSynci):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::readnPixels):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::readnPixels):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

11:07 AM Changeset in webkit [270399] by Aditya Keerthi
  • 4 edits
    11 adds in trunk

[iOS][FCR] Add new look for search fields
https://bugs.webkit.org/show_bug.cgi?id=219443
<rdar://problem/71902666>

Reviewed by Wenson Hsieh.

Source/WebCore:

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

fast/forms/ios/form-control-refresh/search/border.html
fast/forms/ios/form-control-refresh/search/font-size.html
fast/forms/ios/form-control-refresh/search/results-attribute.html
fast/forms/ios/form-control-refresh/search/width-height.html

  • css/formControlsIOS.css:

(input[type="search"]):

Unlike traditional text fields, the new appearance has no border and a
filled background.

(input[type="search"]::-webkit-search-decoration,):

The new appearance has a magnifying glass glyph in the search field.
On macOS, the glyph changes depending on the value of the "results"
attribute. However, on iOS, the glyph should always be shown.
Consequently, "-webkit-search-decoration", "-webkit-search-results-decoration",
and "-webkit-search-results-button" all specify the same glyph.

  • rendering/RenderThemeIOS.mm:

(WebCore::canAdjustBorderRadiusForAppearance):

The old search field forced a pill-like appearance. This is no longer
required under the new appearance.

(WebCore::RenderThemeIOS::adjustRoundBorderRadius):

LayoutTests:

Added tests to verify the stylability of search fields with the new appearance.

  • fast/forms/ios/form-control-refresh/search/background-color-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/search/background-color.html: Added.
  • fast/forms/ios/form-control-refresh/search/border-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/search/border.html: Added.
  • fast/forms/ios/form-control-refresh/search/font-size-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/search/font-size.html: Added.
  • fast/forms/ios/form-control-refresh/search/results-attribute-expected.html: Added.
  • fast/forms/ios/form-control-refresh/search/results-attribute.html: Added.
  • fast/forms/ios/form-control-refresh/search/width-height-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/search/width-height.html: Added.
11:01 AM Changeset in webkit [270398] by Aditya Keerthi
  • 4 edits in trunk/Source/WebCore

[iOS][FCR] Add new look for controls with text entry
https://bugs.webkit.org/show_bug.cgi?id=219362
rdar://problem/71813850

Reviewed by Wenson Hsieh.

Controls with text entry include <textarea> and the following <input>
types: "email", "password", "search", "tel", "text", and "url".
Additionally, <input> without a specified type is also a control with
text entry, since the default behavior matches <input type="text">.

  • css/formControlsIOS.css:

(textarea, input): Updated border and font to match new look.

  • css/html.css:

Removed input[type="range"] and input:matches([type="password"], [type="search"])
from the rule-set containing the selector "input", since "input" encompasses
"range", "password", and "search".

This change aligns with the user-agent stylesheets in Chrome and Firefox.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintTextFieldDecorations):

The previous appearance painted a gradient inside the control. However,
the new appearance does not have any decorations.

10:59 AM Changeset in webkit [270397] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS WK1] imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-padding-003.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219498

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as flaky.
10:41 AM Changeset in webkit [270396] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

(r270171) [ iOS ] http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html is failing
https://bugs.webkit.org/show_bug.cgi?id=219439
<rdar://problem/71900353>

Reviewed by Darin Adler.

  • http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html:

Remove the audio track to allow both video elements to play concurrently on iOS.
Tested by running the test on iOS simulator.

9:24 AM Changeset in webkit [270395] by Fujii Hironori
  • 5 edits in trunk/Source

Remove GraphicsContextGLOpenGL::setRenderbufferStorageFromDrawable declaration
https://bugs.webkit.org/show_bug.cgi?id=219463

Reviewed by Alex Christensen.

Source/WebCore:

r268198 removed the definition.

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

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
Removed a dead code of USE(OPENGL_ES) in PLATFORM(COCOA).

Source/WTF:

  • wtf/Platform.h: Removed checking whether USE_ANGLE, USE_OPENGL,

and USE_OPENGL_ES are exclusive because Cocoa ports no longer use
USE_OPENGL and USE_OPENGL_ES, and they are not exclusive on
non-Cocoa ports.

9:15 AM Changeset in webkit [270394] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

MediaSessionHelper::setSharedHelper() hangs when "media in the GPU process" is enabled
https://bugs.webkit.org/show_bug.cgi?id=219466
<rdar://problem/71566601>

Reviewed by Chris Dumez.

The WebProcess will attempt to set a RemoteMediaSessionHelper as the sharedHelper, but calling
MediaSessionHelper::setSharedHelper() will cause a MediaSessionHelperIOS to be created, which in
turn tries to talk to AVSystemController.sharedAVSystemController, which fails due to sandbox
restrictions.

Refactor sharedHelperInstance() to not create a MediaSessionHelperIOS by default, which allows
setSharedHelper to assign a new helper without creating one by default.

  • platform/audio/ios/MediaSessionHelperIOS.mm:

(sharedHelperInstance):
(MediaSessionHelper::sharedHelper):
(MediaSessionHelper::resetSharedHelper):
(MediaSessionHelper::setSharedHelper):

6:08 AM Changeset in webkit [270393] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

Fix for crash handling NSAccessibilityInsertionPointLineNumberAttribute for text fields in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=219477

Reviewed by Chris Fleizach.

Tests:
accessibility/content-editable-as-textarea.html
accessibility/mac/content-editable-range-properties.html

  • Implemented AXIsolatedObject::selectionStart/End, selectedText, visiblePositionForIndex.
  • Handler of the NSAccessibilityInsertionPointLineNumberAttribute

request now dispatches to the main thread the calls that involve
VisiblePositions.

  • This change fixes the above mentioned layout tests in isolated tree mode.
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selectionStart const):
(WebCore::AXIsolatedObject::selectionEnd const):
(WebCore::AXIsolatedObject::selectedText const):
(WebCore::AXIsolatedObject::visiblePositionForIndex const):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

3:09 AM Changeset in webkit [270392] by timothy_horton@apple.com
  • 8 edits in trunk/Source

GPU Process: Sandbox violations under IOSurface::maximumSize in the Web Content process
https://bugs.webkit.org/show_bug.cgi?id=219484
<rdar://problem/71603808>

Reviewed by Ryosuke Niwa.

Source/WebCore:

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

(WebCore::computeMaximumSurfaceSize):
(WebCore::surfaceMaximumSize):
(WebCore::IOSurface::setMaximumSize):
(WebCore::IOSurface::maximumSize):
Make it possible to externally override IOSurface::maximumSize.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
Fetch the maximum allowed size of an IOSurface on the current hardware
in the UI process, and push it to the Web Content process on creation.

2:30 AM Changeset in webkit [270391] by Lauro Moura
  • 8 edits in trunk/Source

[WTF] Avoid JSONValue::create with raw string falling to bool overload
https://bugs.webkit.org/show_bug.cgi?id=219483

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeAsyncCall): Convert to WTF::String when creating the value.

Source/WebCore:

Covered by existing tests.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::setAttachedWindow): Convert to WTF::String when creating the value.

Source/WebDriver:

Avoid accidental conversion of "selected" to bool that would make the
getElementAttribute javascriptcode to fail with "attributeName.toLowerCase
is undefined"

  • Session.cpp:

(WebDriver::Session::isElementSelected): Convert to WTF::String when creating the value.

Source/WTF:

r269757 removed the const char* overload for Value::create() and replaced
them with makeString() versions. While this worked most of the time, one
could still call Value::create(raw_string) and it would end up calling the
bool overload. This could cause side effects like making a number of
WebDriver tests to fail with wrong types in the executed javascript code.

To avoid these accidental conversions, this commit added an overload to
delete all implicit conversions of Value::create().

  • wtf/JSONValues.h: Delete implicit overloads for Value::create(T).
1:50 AM Changeset in webkit [270390] by commit-queue@webkit.org
  • 14 edits
    1 move
    1 delete in trunk/Source

Move code from AxisScrollSnapOffsets to ScrollSnapOffsetsInfo
https://bugs.webkit.org/show_bug.cgi?id=219345

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-12-03
Reviewed by Daniel Bates.

Source/WebCore:

No new tests. This should not modify behavior.

  • Headers.cmake: Remove AxisScrollSnapOffsets.h from header list.
  • Sources.txt: Update source list.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • page/FrameView.cpp: Update includes.
  • page/scrolling/AxisScrollSnapOffsets.h: Removed.
  • page/scrolling/ScrollSnapOffsetsInfo.cpp: Renamed from Source/WebCore/page/scrolling/AxisScrollSnapOffsets.cpp.

(WebCore::indicesOfNearestSnapOffsetRanges): Added from AxisScrollSnapOffsets.
(WebCore::indicesOfNearestSnapOffsets): Ditto.
(WebCore::closestSnapOffset): Ditto.
(WebCore::computeScrollSnapPortOrAreaRect): Ditto.
(WebCore::computeScrollSnapAlignOffset): Ditto.
(WebCore::operator<<): Ditto.
(WebCore::computeAxisProximitySnapOffsetRanges): Ditto.
(WebCore::updateSnapOffsetsForScrollableArea): Ditto.

  • page/scrolling/ScrollSnapOffsetsInfo.h: Added functions from AxisScrollSnapOffsets.h and surrounded

this header in conditional compilation so it can be included unconditionally.

  • page/scrolling/ScrollingCoordinator.h: Updated includes.
  • page/scrolling/ScrollingMomentumCalculator.h: Ditto.
  • platform/cocoa/ScrollSnapAnimatorState.h: Ditto.
  • rendering/RenderLayer.cpp: Ditto.

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: Remove AxisScrollSnapOffsets.h include.
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: Ditto.

Dec 2, 2020:

11:58 PM Changeset in webkit [270389] by Simon Fraser
  • 20 edits in trunk/Source/WebCore

Determine the WheelScrollGestureState on the main thread before passing it to ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=219481

Reviewed by Tim Horton.

Fixing webkit.org/b/218764 requires that we store state for a given series of wheel events
related to whether the "begin" event had preventDefault() called on it (i.e. was canceled).
Previously code was designed to propagate OptionSet<EventHandling> around, and use it to compute
WheelScrollGestureState in both EventHandler and ScrollingTree code. However, we can
compute WheelScrollGestureState just once in EventHandler, and pass it to ScrollingCoordinator.

To achieve this, add a bottleneck in the form of EventHandler::handleWheelEventInScrollableArea()
and before calling the ScrollableArea function (implementation of which can call ScrollingCoordinator),
compute WheelScrollGestureState from OptionSet<EventHandling>. This required making
handleWheelEventInAppropriateEnclosingBox() a member function.

  • page/EventHandler.cpp:

(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::handleWheelEventPhaseInScrollableArea):
(WebCore::didScrollInScrollableArea):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEventInScrollableArea):
(WebCore::EventHandler::updateWheelGestureState):
(WebCore::EventHandler::defaultWheelEventHandler):
(WebCore::handleWheelEventInAppropriateEnclosingBox): Deleted.

  • page/EventHandler.h:
  • page/FrameView.cpp:

(WebCore::FrameView::handleWheelEventForScrolling):

  • page/FrameView.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::wheelEventWasProcessedByMainThread):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinator::wheelEventWasProcessedByMainThread):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):
(WebCore::ThreadedScrollingTree::wheelEventWasProcessedByMainThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinatorMac::wheelEventWasProcessedByMainThread):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinatorNicosia::wheelEventWasProcessedByMainThread):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::handleWheelEventForScrolling):

  • platform/ScrollableArea.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::handleWheelEventForScrolling):

  • rendering/RenderLayer.h:
11:38 PM Changeset in webkit [270388] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove m_reversedOrderIteratorForHitTesting
https://bugs.webkit.org/show_bug.cgi?id=218554

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-02
Reviewed by Zalan Bujtas.

Remove m_reversedOrderIteratorForHitTesting as
determining it at hit test time should not be very expensive.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::hitTestChildren):
(WebCore::RenderFlexibleBox::layoutFlexItems):

  • rendering/RenderFlexibleBox.h:
9:06 PM Changeset in webkit [270387] by timothy_horton@apple.com
  • 7 edits in trunk

Many different assertion failures on the GPU process bot after r270366
https://bugs.webkit.org/show_bug.cgi?id=219467

Reviewed by Simon Fraser.

Source/WebKit:

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::supportsGPUProcessRendering):

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

(WebKit::WebPage::WebPage):
(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:

Disable DOM rendering in the GPU process if the DrawingArea doesn't support it.
Currently only RemoteLayerTreeDrawingArea does.

Tools:

  • CISupport/build-webkit-org/config.json:

Revert r270366; macOS UI-side compositing is in way too sad
of a state, the world is not ready for this yet.

8:59 PM Changeset in webkit [270386] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

GPU Process: Temporarily disable Web Fonts when DOM rendering in the GPU process is enabled
https://bugs.webkit.org/show_bug.cgi?id=219479

Reviewed by Simon Fraser.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Web fonts don't work in the GPU process yet, so disable them.
Unstyled text is better than no text.

8:06 PM Changeset in webkit [270385] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

GraphicsContextGL: Remove unused platformTexture and platformGraphicsContextGL interface
https://bugs.webkit.org/show_bug.cgi?id=219461

Reviewed by Daniel Bates.

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::platformGraphicsContextGL): Deleted.
(WebCore::GraphicsContextGLOpenGL::platformTexture const): Deleted.

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::platformGraphicsContextGL const): Deleted.
(WebCore::GraphicsContextGLOpenGL::platformTexture const): Deleted.

7:58 PM Changeset in webkit [270384] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/JavaScriptCore

Apply patch. rdar://problem/71921536

7:25 PM Changeset in webkit [270383] by Russell Epstein
  • 2 edits in branches/safari-610.3.7.0-branch/Source/JavaScriptCore

Revert "Apply patch. rdar://problem/71911423"

This reverts commit r270370.

6:56 PM Changeset in webkit [270382] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Gardened several flaky timeout failures.

  • platform/wpe/TestExpectations:
5:40 PM Changeset in webkit [270381] by Brent Fulgham
  • 8 edits in trunk

[macOS] WebContent sandbox; remove AppleIntelMEUserClient
https://bugs.webkit.org/show_bug.cgi?id=219012
<rdar://problem/70462796>

Reviewed by Eric Carlson.

Source/WebKit:

Instead of globally extending access to the AppleIntelMEUserClient IOKit class,
only extend it when the GPU process is not in use.

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses): Add 'AppleIntelMEUserClient' as a dynamically-extended
IOKit class.

  • WebProcess/com.apple.WebProcess.sb.in: Only allow 'AppleIntelMEUserClient' if it

was dynamically extended.

Tools:

Update the various sandboxes to allow the UIProcess to extend IOKit classes
to child processes on macOS. We already do this on iOS.

  • MiniBrowser/MiniBrowser.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
  • WebKitTestRunner/Configurations/WebKitTestRunner.entitlements:
5:08 PM Changeset in webkit [270380] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

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

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:06 PM Changeset in webkit [270379] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS Debug] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-* tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=219464

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark tests as flaky.
4:55 PM Changeset in webkit [270378] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitcorepy] Allow caller of autoinstall to specify CA file
https://bugs.webkit.org/show_bug.cgi?id=219433
<rdar://problem/71869247>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall):
(AutoInstall._request): Allow user to specify CA cert file.
(AutoInstall.set_index): Allow caller to specify CA cert file.

4:42 PM Changeset in webkit [270377] by commit-queue@webkit.org
  • 9 edits in trunk/Source

aarch64 llint does not build with JIT disabled
https://bugs.webkit.org/show_bug.cgi?id=219288
<rdar://problem/71855960>

Source/JavaScriptCore:

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-12-02
Reviewed by Darin Adler.

  • assembler/ARM64Assembler.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).

(JSC::ARM64Assembler::replaceWithJump):
(JSC::ARM64Assembler::linkJumpOrCall):

  • assembler/AbstractMacroAssembler.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).

(JSC::AbstractMacroAssembler::prepareForAtomicRepatchNearCallConcurrently):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode): Guard JIT-specific code with ENABLE(JIT).

  • jit/ExecutableAllocator.cpp: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).

(JSC::initializeJITPageReservation):

  • jit/ExecutableAllocator.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).

Source/WTF:

Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS), and make it depend on ENABLE(JIT). We need
it to depend on ENABLE(JIT) to fix the build, but this is awkward to do otherwise, because
USE macros are defined in PlatformUse.h before ENABLE macros in PlatformEnable.h. But it
makes sense, since USE macros should be used for "a particular third-party library or
optional OS service," and jump islands are neither, so ENABLE is more suitable anyway.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-12-02
Reviewed by Darin Adler.

  • wtf/PlatformEnable.h:
  • wtf/PlatformUse.h:
4:29 PM Changeset in webkit [270376] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[iOS macOS] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219460

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
  • platform/mac/TestExpectations: Ditto.
3:15 PM Changeset in webkit [270375] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] Update expectations for http/wpt/service-workers/skipFetchEvent.https.html which is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=208581

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:11 PM Changeset in webkit [270374] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/canvas/canvas-overflow-hidden-animation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219438

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:01 PM Changeset in webkit [270373] by Chris Dumez
  • 5 edits
    3 adds in trunk

iframe with sandbox=allow-top-navigation-by-user-activation can navigate top frame when the user interacts with an iframe from another origin
https://bugs.webkit.org/show_bug.cgi?id=219413
<rdar://problem/64887657>

Reviewed by Geoffrey Garen.

Source/WebCore:

An iframe with sandbox=allow-top-navigation-by-user-activation can navigate the top frame when the user
interacts with an frame from another origin. This is not strict enough and does not match the behavior of
Chrome.

In Chrome, the user activation is only valid for the purpose of navigation if the user interacted with either:

  • The iframe triggering the navigation
  • A descendant iframe of the iframe triggering the navigation
  • A frame from the same origin as the iframe triggering the navigation

This patch aligns our behavior with Chrome's.

Test: http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html

  • dom/Document.cpp:

(WebCore::Document::canNavigateInternal):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureToken::UserGestureToken):
(WebCore::UserGestureToken::isValidForDocument const):
(WebCore::UserGestureIndicator::processingUserGesture):

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::create):

LayoutTests:

Add layout test coverage.

  • http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture-expected.txt: Added.
  • http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html: Added.
  • http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-message-handler.html: Added.
3:00 PM Changeset in webkit [270372] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.1.6

Tag Safari-610.3.7.1.6.

2:57 PM Changeset in webkit [270371] by Ross Kirsling
  • 4 edits in trunk

%TypedArray%#slice shouldn't care about source buffer detachment if there's nothing to copy
https://bugs.webkit.org/show_bug.cgi?id=219451

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark four test cases as passing.

Source/JavaScriptCore:

From https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice:

  1. Let A be ? TypedArraySpeciesCreate(O, « 𝔽(count) »).
  2. If count > 0, then
    1. If IsDetachedBuffer(O.ViewedArrayBuffer?) is true, throw a TypeError exception. ...
  3. Return A.

We had step 14.a raised above 14; this patch fixes the ordering.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncSlice):

2:56 PM Changeset in webkit [270370] by Alan Coon
  • 2 edits in branches/safari-610.3.7.0-branch/Source/JavaScriptCore

Apply patch. rdar://problem/71911423

2:15 PM Changeset in webkit [270369] by Ryan Haddad
  • 2 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

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
2:15 PM Changeset in webkit [270368] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, skip two webgl tests that are frequently timing out on macOS.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
1:55 PM Changeset in webkit [270367] by Chris Dumez
  • 3 edits
    3 adds in trunk

Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified
https://bugs.webkit.org/show_bug.cgi?id=219408
<rdar://problem/71049726>

Reviewed by Geoffrey Garen.

Source/WebCore:

Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified,
when the parent of the sandboxed iframe is not first-party.

Test: http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html

  • dom/Document.cpp:

(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):

LayoutTests:

Add layout test coverage.

  • http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe-expected.txt: Added.
  • http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html: Added.
  • http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-sandboxed-iframe.html: Added.
1:39 PM Changeset in webkit [270366] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Enable UI-side compositing on the GPU Process layout tests bot
https://bugs.webkit.org/show_bug.cgi?id=219450

Reviewed by Simon Fraser.

  • CISupport/build-webkit-org/config.json:

GPU Process without UI-side compositing is not a valid configuration.

1:03 PM Changeset in webkit [270365] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Json encode Contributor
https://bugs.webkit.org/show_bug.cgi?id=217932
<rdar://problem/70462473>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:

(Commit.Encoder.default): Use Json encoding for Contributor.

  • Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:

(Contributor.Encoder): Encode Contributor object as dictionary.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:

(TestContributor.test_json_encode):
(TestContributor.test_json_decode):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
12:33 PM Changeset in webkit [270364] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the iOS build after r270362

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView createHighlightInCurrentGroupWithRange:]):
(-[WKContentView createHighlightInNewGroupWithRange:]):

12:16 PM Changeset in webkit [270363] by Truitt Savell
  • 4 edits
    2 deletes in trunk

Unreviewed, reverting r270339.

introduced a constantly failing test.

Reverted changeset:

"Toggling pointer-events on body does not re-enable scrolling
on child"
https://bugs.webkit.org/show_bug.cgi?id=218533
https://trac.webkit.org/changeset/270339

12:09 PM Changeset in webkit [270362] by Megan Gardner
  • 31 edits
    1 copy in trunk

Create and draw app highlights
https://bugs.webkit.org/show_bug.cgi?id=219365

Reviewed by Wenson Hsieh.

Source/WebCore:

Create a separate highlight register for app highlights so that there is a clear separation
with no risk of web content accessing the wrong highlights. Extend rendering to include the
app highlights with the current default settings.

  • Modules/highlight/Highlight.h:
  • Modules/highlight/HighlightRegister.cpp:

(WebCore::HighlightRegister::appHighlightKey):
(WebCore::HighlightRegister::addAppHighlight):

  • Modules/highlight/HighlightRegister.h:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSValueKeywords.in:
  • dom/Document.cpp:

(WebCore::Document::appHighlightRegister):
(WebCore::Document::collectRageDataFromRegister):
(WebCore::Document::updateHighlightPositions):

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

(WebCore::ContextMenuController::contextMenuItemSelected):

  • rendering/HighlightData.cpp:

(WebCore::rendererAfterOffset):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::resolveStyleForMarkedText):
(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):

  • rendering/MarkedText.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::platformAppHighlightColor const):

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

(WebCore::cssValueIDSelectorList):

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

(WebCore::RenderThemeMac::platformAppHighlightColor const):
(WebCore::RenderThemeMac::systemColor const):

Source/WebKit:

Handle the creation of App Highlights from selections when the context menu item is selected.
This patch will add the highlights to the Document's app Highlight register, and handle drawing
them in InlineTextBox. Later patches will handle the persistent storage and repopulation of app
highlights on launch or reload of a page.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createAppHighlightInSelectedRange):

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

(WebKit::WebPageProxy::contextMenuItemSelected):

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

(-[WKContentView createHighlightInCurrentGroupWithRange:]):
(-[WKContentView createHighlightInNewGroupWithRange:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createAppHighlightInSelectedRange):

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

Tools:

  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp:

(WebCore::operator<<):

12:07 PM Changeset in webkit [270361] by clopez@igalia.com
  • 2 edits in trunk/Tools

Remove unused JSC ARMv7 worker from EWS
https://bugs.webkit.org/show_bug.cgi?id=219444

Reviewed by Aakash Jain.

Worker igalia-jsc32-armv7-ews-03 is unused and there isn't any
plan to use it on the near future.

  • CISupport/ews-build/config.json:
11:35 AM Changeset in webkit [270360] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] webgl/1.0.3/conformance/rendering/multisample-corruption.html is also timing out

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
11:30 AM Changeset in webkit [270359] by Russell Epstein
  • 2 edits in branches/safari-610.3.7.1-branch/Source/JavaScriptCore

Apply patch. rdar://problem/70289034

11:29 AM Changeset in webkit [270358] by Jonathan Bedard
  • 10 edits in trunk/Tools

[webkitscmpy] Provide switch to exclude commit message
https://bugs.webkit.org/show_bug.cgi?id=219409
<rdar://problem/71866445>

Rubber-stamped by Aakash Jain.

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

(Git.commit): Pass --format-short if the user is opting out of the commit message.
(Git.find): Add include_log flag, pass to commit(...) function.

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

(Svn.commit): Skip network call to retrieve commit message if include_log is false.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program.py:

(Find.parser): Add --log and --no-log flags.
(Find.main): Allow user to skip network call to retrieve commit message.

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

(Svn.info): Support case were SVN cannot determine the author.
(Svn.commit): Skip network call to retrieve commit message if include_log is false.

  • Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:

(ScmBase.commit): Add include_log flag.
(ScmBase.find): Add include_log flag, pass to commit(...) function.

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

(TestFind.test_no_log_svn):
(TestFind.test_no_log_git):

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

(TestGit.test_no_log):

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

(TestLocalSvn.test_no_log):
(TestRemoteSvn.test_no_log):

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

Versioning.

WebKit-7610.3.7.1.6

11:10 AM Changeset in webkit [270356] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS] Silence sandbox warning for unneeded sysctl-read of "hw.tbfrequency_compat"
https://bugs.webkit.org/show_bug.cgi?id=219414
<rdar://problem/71740719>

Reviewed by Per Arne Vollan.

Silence a spurious log generated when our sandbox denies access to the unused sysctl
"hw.tbfrequency_compat". I have confirmed with the framework that attempts to read this
value, and they confirm they don't need the value, and actually are not using the result
anywhere in their framework.

Let's silence this report.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
11:07 AM Changeset in webkit [270355] by commit-queue@webkit.org
  • 5 edits in trunk

Fix crash with performance.measure() with negative duration
https://bugs.webkit.org/show_bug.cgi?id=219418

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-12-02
Reviewed by Alex Christensen.

Source/WebCore:

In PerformanceUserTiming::measure(), the wrong variable is used
to look up the exception to return if an invalid duration
value is provided.

Updated user-timing-apis test to catch this crash.

  • page/PerformanceUserTiming.cpp:

(WebCore::PerformanceUserTiming::measure):

LayoutTests:

Add a test to verify that an Exception is thrown when
passing a negative duration to performance.measure(),
instead of a crash occurring.

  • performance-api/resources/user-timing-api.js:
  • performance-api/user-timing-apis-expected.txt:
11:05 AM Changeset in webkit [270354] by aakash_jain@apple.com
  • 4 edits
    1 add in trunk/Tools

[build.webkit.org] Add unit-tests based on new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219363

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/loadConfig_unittest.py: Drive-by fix to import loadConfig when running through runUnittests.py
  • CISupport/build-webkit-org/htdigestparser.py: Adding python 3 compatibality.
  • CISupport/build-webkit-org/htdigestparser_unittest.py: Adding python 3 compatibality.
  • CISupport/build-webkit-org/steps_unittest.py: Added unit-tests for various steps.

(ExpectMasterShellCommand):
(BuildStepMixinAdditions):
(TestStepNameShouldBeValidIdentifier):
(TestStepNameShouldBeValidIdentifier.test_step_names_are_valid):
(TestRunBindingsTests):
(TestRunBindingsTests.test_success):
(TestRunBindingsTests.test_failure):
(TestKillOldProcesses):
(TestKillOldProcesses.test_success):
(TestKillOldProcesses.test_failure):
(TestCleanBuildIfScheduled):
(TestCleanBuildIfScheduled.test_success):
(TestCleanBuildIfScheduled.test_failure):
(TestCleanBuildIfScheduled.test_skip):
(TestInstallGtkDependencies):
(TestInstallGtkDependencies.test_success):
(TestInstallGtkDependencies.test_failure):
(TestInstallWpeDependencies):
(TestInstallWpeDependencies.test_success):
(TestInstallWpeDependencies.test_failure):
(TestCompileWebKit):
(TestCompileWebKit.test_success):
(TestCompileWebKit.test_success_gtk):
(TestCompileWebKit.test_success_wpe):
(TestCompileWebKit.test_failure):
(TestCompileJSCOnly):
(TestCompileJSCOnly.test_success):
(TestCompileJSCOnly.test_failure):

10:56 AM Changeset in webkit [270353] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Entire image elements are sometimes selected after ending a image extraction interaction
https://bugs.webkit.org/show_bug.cgi?id=219435
<rdar://problem/71897557>

Reviewed by Megan Gardner.

If the image extraction interaction is currently active, regular text interactions may need to defer to these
image extraction interactions. See WebKitAdditions changes for more details.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

10:47 AM Changeset in webkit [270352] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Fix for accessibility layout tests involving ranges in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=219436

Reviewed by Chris Fleizach.

Tests:
accessibility/mac/bounds-for-range.html
accessibility/misspelling-range.html

  • Implementation of AXIsolatedObject::boundsForRange and misspellingRange.
  • Fix for bug in stringForRange that wasn't isolatedCopying the returned

string. Also this method should not dispatch the call to the main thread
since the caller needs to do so because it is passing a SimpleRange as a
parameter.

  • Implementation of AXIsolatedObject::lineForPosition. Other methods

that take or return VisiblePositions and VisiblePositionRanges need also
to be implemented.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::stringForRange const):
(WebCore::AXIsolatedObject::boundsForRange const):
(WebCore::AXIsolatedObject::misspellingRange const):
(WebCore::AXIsolatedObject::lineForPosition const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
10:36 AM Changeset in webkit [270351] by dino@apple.com
  • 868 edits
    4 copies
    18 moves
    147 adds
    19 deletes in trunk

Re-landing r270129, r270194, and r270258.

9:30 AM Changeset in webkit [270350] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Context menu should be shown after a long timeout following image extraction
https://bugs.webkit.org/show_bug.cgi?id=219415
<rdar://problem/71872600>

Reviewed by Andy Estes.

Ensures that the context menu can still be shown when triggering an image extraction gesture. To do this, we
add a new long press gesture recognizer with a much longer delay. See WebKitAdditions patch for more details.

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

(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _doAfterPendingImageExtraction:]):
(-[WKContentView _invokeAllActionsToPerformAfterPendingImageExtraction]):

Drive-by fix: move a couple of methods out of WebKitAdditions and into non-internal source.

9:05 AM Changeset in webkit [270349] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkitscmpy] Handle adding, modifying and deleting files on branches
https://bugs.webkit.org/show_bug.cgi?id=219432
<rdar://problem/71894089>

Rubber-stamped by Aakash Jain.

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

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

(Svn._branch_for): Support branch detection when files are added or deleted.

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

(Svn.init):

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

(Svn.request):

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

(Svn._branch_for): Support branch detection when files are deleted.

8:39 AM Changeset in webkit [270348] by clopez@igalia.com
  • 4 edits in trunk/Tools

Switch EWS workers for JSC-ARMv7-32bits build and test queues to a new machine.
https://bugs.webkit.org/show_bug.cgi?id=219189

Reviewed by Aakash Jain.

This switches the workers for the JSC-ARMv7-32bits-Build-EWS and
JSC-ARMv7-32bits-Test-EWS queues to a new ARM server that will run
things faster than the previous combination of cross-builder + RPis

Since now the tets run natively there is no need for passing the
"--remote-config-file" switch to the run-javascriptcore-tests script.

However "--memory-limited" is still needed because the issues with
failures on memory intensive tests happen on all Linux machines.
So the check to pass this flag is generalized like we do for all
Linux ports on the build.webkit.org buildbot config.

  • CISupport/ews-build/config.json:
  • CISupport/ews-build/steps.py:

(RunJavaScriptCoreTests.start):

  • CISupport/ews-build/steps_unittest.py:

(TestRunJavaScriptCoreTests.test_remote_success):
(TestRunJavaScriptCoreTests.test_dfg_air_and_stress_test_failure):
(TestReRunJavaScriptCoreTests.test_remote_success):

8:05 AM Changeset in webkit [270347] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Optimize padding in EventHandler and platform event classes
https://bugs.webkit.org/show_bug.cgi?id=219420

Reviewed by Ryosuke Niwa.

Organize the member variables in EventHandler a bit better, to minimize padding
and avoid redundant #ifdefs. This shrinks it from 632 bytes to 576 bytes.

Minimize padding in the Platform*Event classes.

  • page/EventHandler.h:
  • platform/PlatformEvent.h:

(WebCore::PlatformEvent::PlatformEvent):

  • platform/PlatformKeyboardEvent.h:

(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::PlatformMouseEvent):

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::m_wheelTicksY):
(WebCore::PlatformWheelEvent::m_granularity): Deleted.

7:46 AM Changeset in webkit [270346] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

REGRESSION: [iOS] imported/w3c/web-platform-tests/css/css-ui/appearance-revert-001.tentative.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=219410
<rdar://problem/71868276>

Reviewed by Wenson Hsieh.

The flaky failure started appearing after r270065, which introduced a
new look for progress bars when the iOSFormControlRefresh setting is
enabled. Animated indeterminate progress bars were added as part of the
new appearance.

However, since the setting is disabled by default, there should have
been no effect on existing tests. r270065 omitted an early return in
RenderThemeIOS::animationRepeatIntervalForProgressBar, which would
lead to the existing progress bar being repainted 30 times per second.
This repainting is the likely cause of the flaky image failure.

Furthermore, this test uses a determinate progress bar, so repainting
due to animation should never occur, regardless of whether or not the
iOSFormControlRefresh setting is enabled. To fix the incorrect behavior,
a change was made to RenderProgress::updateAnimationState.

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::updateAnimationState):

Only indeterminate progress bars have an animation.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar const):

Use the original value if the iOSFormControlRefresh setting is disabled.

6:44 AM Changeset in webkit [270345] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Tetsuharu Ohzeki to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=219429

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-12-02
Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/contributors.json:
2:43 AM Changeset in webkit [270344] by commit-queue@webkit.org
  • 12 edits
    1 add in trunk

[WASM-References] Add support for active mods in element section
https://bugs.webkit.org/show_bug.cgi?id=219192

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

JSTests:

Fix builder dsl to produce the right element section.
It produces correct wasm code for the previous spec and for the ref-types spec because the core spec is binary compatible with the ref-types.
https://webassembly.github.io/reference-types/core/binary/modules.html#element-section.
Added basic tests for the element section.

  • wasm/Builder.js:

(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):

  • wasm/Builder_WebAssemblyBinary.js:

(const.emitters.Element):

  • wasm/references-spec-tests/ref_null.js:

(module):

  • wasm/references/element_active_mod.js: Added.

(module):
(basicTest):
(refNullExternInElemsSection):

  • wasm/references/element_parsing.js:
  • wasm/references/multitable.js:

Source/JavaScriptCore:

Adjust wasm parser to parse new form of element section.
https://webassembly.github.io/reference-types/core/binary/modules.html#element-section.

  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::prepare):

  • wasm/WasmFormat.h:

(JSC::Wasm::Element::Element):
(JSC::Wasm::Element::active const):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::validateElementTableIdx):
(JSC::Wasm::SectionParser::parseI32InitExpr):
(JSC::Wasm::SectionParser::parseElemKind):
(JSC::Wasm::SectionParser::parseIndexCountForElemSection):
(JSC::Wasm::SectionParser::parseFuncIdxFromRefExpForElemSection):
(JSC::Wasm::SectionParser::parseFuncIdxForElemSection):

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

(JSC::WebAssemblyModuleRecord::evaluate):

Dec 1, 2020:

8:56 PM Changeset in webkit [270343] by Lauro Moura
  • 4 edits
    10 copies
    3 moves
    2 deletes in trunk/LayoutTests

[GLIB] Add some WPE-specific baselines

Unreviewed test gardening.

These tests started failing by small amounts after some layout commits

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/named-images-expected.txt: Copied from LayoutTests/platform/glib/fast/css/named-images-expected.txt.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Copied from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt.
  • platform/gtk/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt: Copied from LayoutTests/platform/glib/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt.
  • platform/gtk/svg/transforms/svg-css-transforms-clip-path-expected.txt: Copied from LayoutTests/platform/glib/svg/transforms/svg-css-transforms-clip-path-expected.txt.
  • platform/gtk/svg/transforms/svg-css-transforms-expected.txt: Copied from LayoutTests/platform/glib/svg/transforms/svg-css-transforms-expected.txt.
  • platform/gtk/transforms/3d/general/perspective-units-expected.txt: Copied from LayoutTests/platform/glib/transforms/3d/general/perspective-units-expected.txt.
  • platform/wpe/TestExpectations:
  • platform/wpe/fast/css/named-images-expected.txt: Renamed from LayoutTests/platform/glib/fast/css/named-images-expected.txt.
  • platform/wpe/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Renamed from LayoutTests/platform/glib/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt.
  • platform/wpe/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt: Renamed from LayoutTests/platform/glib/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt.
  • platform/wpe/svg/transforms/svg-css-transforms-clip-path-expected.txt: Renamed from LayoutTests/platform/glib/svg/transforms/svg-css-transforms-clip-path-expected.txt.
  • platform/wpe/svg/transforms/svg-css-transforms-expected.txt: Copied from LayoutTests/platform/glib/svg/transforms/svg-css-transforms-expected.txt.
  • platform/wpe/transforms/3d/general/perspective-units-expected.txt: Renamed from LayoutTests/platform/glib/transforms/3d/general/perspective-units-expected.txt.
  • platform/wpe/transforms/svg-vs-css-expected.txt: Renamed from LayoutTests/platform/glib/svg/transforms/svg-css-transforms-expected.txt.
8:23 PM Changeset in webkit [270342] by timothy_horton@apple.com
  • 14 edits
    2 copies in trunk/Source

GPU Process: IOSurfaces should not be mapped into the Web Content Process
https://bugs.webkit.org/show_bug.cgi?id=219368

Reviewed by Said Abou-Hallawa.

Source/WebCore:

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Make it possible to determine if an image buffer's backend is capable of mapping the backing store in-process or not.

Source/WebKit:

Since the Web Content process sandbox will eventually not have access to IOKit,
it will not be able to map/lock/use IOSurfaces. Thankfully, all it really needs
to be able to do is carry a reference to the surface from the GPU process to the
UI process (where it is mapped and applied as layer contents).

  • GPUProcess/graphics/PlatformRemoteImageBuffer.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h:
  • WebProcess/GPU/graphics/PlatformRemoteImageBufferProxy.h:

(isType):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::reestablishGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::imageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackendProxy::didFlush):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableIOSurfaceBackend::create):
(WebKit::ImageBufferShareableIOSurfaceBackend::createImageBufferBackendHandle const):
(WebKit::ImageBufferShareableIOSurfaceBackend::context const):
(WebKit::ImageBufferShareableIOSurfaceBackend::copyNativeImage const):
(WebKit::ImageBufferShareableIOSurfaceBackend::copyImage const):
(WebKit::ImageBufferShareableIOSurfaceBackend::draw):
(WebKit::ImageBufferShareableIOSurfaceBackend::drawPattern):
(WebKit::ImageBufferShareableIOSurfaceBackend::toDataURL const):
(WebKit::ImageBufferShareableIOSurfaceBackend::toData const):
(WebKit::ImageBufferShareableIOSurfaceBackend::toBGRAData const):
(WebKit::ImageBufferShareableIOSurfaceBackend::getImageData const):
(WebKit::ImageBufferShareableIOSurfaceBackend::putImageData):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp.

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::createImageBufferBackendHandle const):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h: Copied from Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h.

Rename ImageBufferShareableIOSurfaceBackend to ImageBufferShareableMappedIOSurfaceBackend.
Readd ImageBufferShareableIOSurfaceBackend, the unmapped variant. The mapped variant is only used:

  • in the GPU process
  • in the Web Content process when DOM rendering in the GPU process is disabled

The unmapped variant cannot perform most ImageBufferBackend duties, except creating an ImageBufferBackendHandle,
which it does by cloning the existing handle. It explicitly does *not* map the IOSurface in the
process, and is meant for use in Web Content processes that do not have access to IOSurface.

7:47 PM Changeset in webkit [270341] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening wheel timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
7:41 PM Changeset in webkit [270340] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Fix for accessibility attributed string tests in isolated mode.
https://bugs.webkit.org/show_bug.cgi?id=219419

Reviewed by Chris Fleizach.

Tests:
accessibility/mac/attributed-string-includes-misspelled-with-selection.html
accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable.html
accessibility/mac/misspelled-attributed-string.html

Implemented AXIsolatedObject::rangeForPlainTextRange which is needed to
build the attributed string for a given range.
Also Implemented AXIsolatedObject::doAXBoundsForRangeUsingCharacterOffset
and makeRangeVisible as a follow up to the previous patch to support
PlaintTextRanges in isolated tree mode.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::rangeForPlainTextRange const):
(WebCore::AXIsolatedObject::makeRangeVisible):
(WebCore::AXIsolatedObject::doAXBoundsForRangeUsingCharacterOffset const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
7:35 PM Changeset in webkit [270339] by Devin Rousso
  • 4 edits
    2 adds in trunk

Toggling pointer-events on body does not re-enable scrolling on child
https://bugs.webkit.org/show_bug.cgi?id=218533
<rdar://problem/71009746>

Reviewed by Simon Fraser.

Source/WebCore:

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRecompositeLayer const):
Changes to the CSS pointer-events property should also also indicate that a recomposite is
required (StyleDifference::RecompositeLayer), resulting in RenderElement::styleWillChange
being called, which invalidates the event region since the value of the CSS pointer-events
property has changed.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerStyleChanged):
Don't limit StyleDifference::RecompositeLayer changes to only affect RenderWidget.

LayoutTests:

  • fast/scrolling/ios/overflow-scroll-pointer-events.html: Added.
  • fast/scrolling/ios/overflow-scroll-pointer-events-expected.txt: Added.
7:25 PM Changeset in webkit [270338] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

Simplify some callsites of WheelEventTestMonitor
https://bugs.webkit.org/show_bug.cgi?id=219416

Reviewed by Daniel Bates.

Migrate towards more usage of WheelEventTestMonitorCompletionDeferrer, using a pattern
where we WTFMove() one into a completion handler to pair the defer/undefer pairs,
rather than having manual deferral/undeferral.

To make this work, WheelEventTestMonitorCompletionDeferrer gains a move constructor,
that nullifies the m_monitor in the source to prevent double firing.

Remove the WheelEventTestMonitor::RequestedScrollPosition deferral, since that code path
is now synchronous.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollOffsetChangedViaPlatformWidgetImpl):

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::removeDeferralForReason):

  • page/WheelEventTestMonitor.h:

(WebCore::WheelEventTestMonitorCompletionDeferrer::WheelEventTestMonitorCompletionDeferrer):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::synchronizeStateFromScrollingTree):
(WebCore::AsyncScrollingCoordinator::applyPendingScrollUpdates):
(WebCore::AsyncScrollingCoordinator::applyScrollUpdate):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::noteScrollingThreadSyncCompleteForNode): Deleted.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::wheelEventTestMonitor):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
(WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
(WebCore::ThreadedScrollingTree::scrollingTreeNodeRequestsScroll): Deleted.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::wheelEventWasProcessedByMainThread):

  • page/scrolling/mac/ScrollingTreeMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

6:46 PM Changeset in webkit [270337] by Russell Epstein
  • 2 edits in branches/safari-611.1.7-branch/Source/WebKit

Cherry-pick r270330. rdar://problem/71876973

[macCatalyst] Embedded YouTube videos fail to play
https://bugs.webkit.org/show_bug.cgi?id=219412
<rdar://problem/71869657>

Reviewed by Tim Horton.

Add a missing comma in list of Media services, for which sandbox extensions are created. The missing comma
is causing a sandbox violation, since strings are concatenated when there's no comma.

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

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

6:46 PM Changeset in webkit [270336] by Russell Epstein
  • 5 edits in branches/safari-611.1.7-branch

Cherry-pick r270311. rdar://problem/71876970

Unreviewed, reverting r270132.

Caused at least one regression test failure
(webkit.org/b/219401)

Reverted changeset:

"Use a Version 1 CFRunLoopSource for faster task dispatch"
https://bugs.webkit.org/show_bug.cgi?id=202874
https://trac.webkit.org/changeset/270132

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

6:46 PM Changeset in webkit [270335] by Russell Epstein
  • 4 edits in branches/safari-611.1.7-branch/Source/WebCore

Cherry-pick r270303. rdar://problem/71876962

DedicatedWorkerGlobalScope should clear m_rtcRtpTransformerConstructorMap before destructor
https://bugs.webkit.org/show_bug.cgi?id=219389

Reviewed by Eric Carlson.

Clear the constructor map before the destructor in prepareForDestruction like done for audio worklet.
Covered by http/wpt/webrtc/webrtc-transform.html no longer crashing with guard malloc.

  • workers/DedicatedWorkerGlobalScope.cpp: (WebCore::DedicatedWorkerGlobalScope::prepareForDestruction):
  • workers/DedicatedWorkerGlobalScope.h:
  • workers/WorkerGlobalScope.h:

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

5:44 PM Changeset in webkit [270334] by Peng Liu
  • 36 edits
    3 copies
    2 adds in trunk/Source

[Media In GPU Process][MSE] Add the support to forward initialization segment from the GPU Process to Web processes
https://bugs.webkit.org/show_bug.cgi?id=219227

Reviewed by Eric Carlson.

Source/WebCore:

  • Headers.cmake:

Source/WebKit:

This patch adds the support to forward sourceBufferPrivateDidReceiveInitializationSegment()
callback from the source buffer parser running in the GPU process to the SourceBufferPrivateRemote
running in the Web process, which in turn provides the initialization segment to SourceBuffer.

No change in behavior.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/media/InitializationSegmentInfo.h: Added.

(WebKit::InitializationSegmentInfo::TrackInformation::encode const):
(WebKit::InitializationSegmentInfo::TrackInformation::decode):
(WebKit::InitializationSegmentInfo::encode const):
(WebKit::InitializationSegmentInfo::decode):

  • GPUProcess/media/RemoteAudioTrackProxy.cpp:

(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::~RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configurationChanged):
(WebKit::RemoteAudioTrackProxy::willRemove):

  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteAudioTrackProxy.messages.in: Copied from Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in.
  • GPUProcess/media/RemoteMediaDescription.h: Added.

(WebKit::MediaDescriptionInfo::encode const):
(WebKit::MediaDescriptionInfo::decode):
(WebKit::RemoteMediaDescription::RemoteMediaDescription):

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::loadMediaSource):
(WebKit::RemoteMediaPlayerProxy::addRemoteAudioTrackProxy):
(WebKit::RemoteMediaPlayerProxy::addRemoteVideoTrackProxy):
(WebKit::RemoteMediaPlayerProxy::addRemoteTextTrackProxy):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddAudioTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveAudioTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveVideoTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddTextTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveTextTrack):
(WebKit::RemoteMediaPlayerProxy::audioTrackSetEnabled): Deleted.
(WebKit::RemoteMediaPlayerProxy::videoTrackSetSelected): Deleted.
(WebKit::RemoteMediaPlayerProxy::textTrackSetMode): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/RemoteMediaSourceProxy.cpp:

(WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::addSourceBuffer):

  • GPUProcess/media/RemoteMediaSourceProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::create):
(WebKit::RemoteSourceBufferProxy::RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::~RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::configurationChanged):
(WebKit::RemoteTextTrackProxy::willRemove):
(WebKit::RemoteTextTrackProxy::addDataCue):
(WebKit::RemoteTextTrackProxy::updateDataCue):
(WebKit::RemoteTextTrackProxy::removeDataCue):
(WebKit::RemoteTextTrackProxy::addGenericCue):
(WebKit::RemoteTextTrackProxy::updateGenericCue):
(WebKit::RemoteTextTrackProxy::removeGenericCue):
(WebKit::RemoteTextTrackProxy::parseWebVTTFileHeader):
(WebKit::RemoteTextTrackProxy::parseWebVTTCueData):

  • GPUProcess/media/RemoteTextTrackProxy.h:
  • GPUProcess/media/RemoteTextTrackProxy.messages.in: Copied from Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in.
  • GPUProcess/media/RemoteVideoTrackProxy.cpp:

(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::~RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::configurationChanged):
(WebKit::RemoteVideoTrackProxy::willRemove):

  • GPUProcess/media/RemoteVideoTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.messages.in: Copied from Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in.
  • Scripts/webkit/messages.py:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:

(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::setEnabled):

  • WebProcess/GPU/media/AudioTrackPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):

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

(WebKit::MediaSourcePrivateRemote::create):
(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::addSourceBuffer):
(WebKit::MediaSourcePrivateRemote::readyState const):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::create):
(WebKit::SourceBufferPrivateRemote::SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::readyState const):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):

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

(WebKit::TextTrackPrivateRemote::TextTrackPrivateRemote):
(WebKit::TextTrackPrivateRemote::setMode):

  • WebProcess/GPU/media/TextTrackPrivateRemote.h:
  • WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:

(WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote):
(WebKit::VideoTrackPrivateRemote::setSelected):

  • WebProcess/GPU/media/VideoTrackPrivateRemote.h:

(WebKit::VideoTrackPrivateRemote::create):

4:55 PM Changeset in webkit [270333] by Chris Fleizach
  • 16 edits
    4 adds in trunk

AX: VoiceOver does not announce the aria-checked state for ARIA treeitem
https://bugs.webkit.org/show_bug.cgi?id=218316
<rdar://problem/70787809>

Reviewed by Zalan Bujtas.

Source/WebCore:

Tree items need to be able to support their aria-checked status according to WAI-ARIA.
In addition, when the value changes they need to be able to post an appropriate notification.
While working on this, I realized that if an attribute changes, the notification is not fired until the next layout change
which is problematic. Those need to fire immediately.

Test: accessibility/mac/checked-status-tree-items.html

accessibility/ios-simulator/checked-status-tree-items.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::deferAttributeChangeIfNeeded):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isChecked const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsCheckedState const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityTreeItem.cpp:

(WebCore::AccessibilityTreeItem::supportsCheckedState const):

  • accessibility/AccessibilityTreeItem.h:
  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

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

(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/ios-simulator/checked-status-tree-items-expected.txt: Added.
  • accessibility/ios-simulator/checked-status-tree-items.html: Added.
  • accessibility/mac/checked-status-tree-items-expected.txt: Added.
  • accessibility/mac/checked-status-tree-items.html: Added.
4:54 PM Changeset in webkit [270332] by Wenson Hsieh
  • 8 edits
    2 copies in trunk/Source/WebKit

[iOS] Support image extraction interactions for accessibility
https://bugs.webkit.org/show_bug.cgi?id=219398
<rdar://problem/70744914>

Reviewed by Devin Rousso.

Adds support for a new accessibility feature related to images. Refer to the bug for more details.

  • Shared/ios/InteractionInformationRequest.cpp:

(WebKit::InteractionInformationRequest::encode const):
(WebKit::InteractionInformationRequest::decode):
(WebKit::InteractionInformationRequest::isValidForRequest const):

  • Shared/ios/InteractionInformationRequest.h:

Add a new flag to request image data via position information. This flag works similarly to the existing
includeSnapshot flag, except that it only grabs data when the hit-tested node is an image. As such, a position
information request with the includeSnapshot flag set is valid for an identical request with this new
includeImageData flag set, but not vice versa.

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

Add various extension points for new WebKitAdditions snippets.

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):

Call new methods to set up and tear down the image extraction interaction (defined in WebKitAdditions).

(-[WKContentView _webTouchEventsRecognized:]):

Upon starting a new gesture, reset the active (or pending) image extraction interaction, if appropriate.

(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):

Allow the image extraction gesture to fire alongside any other gesture.

(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):

These existing interactions may conflict with pending image extraction interactions. Luckily, since these
interactions are both asynchronous, we're able to defer them until any pending image extraction request has
finished, to determine whether or not they should commence. In both cases, image extraction should take
precedence over dragging and context menus.

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

Add a new long press gesture recognizer that fires on a very short (100ms) delay. This gesture is used to
preflight image extraction requests ahead of the other long press gestures (in particular, context menus), such
that these other gestures should be minimally impacted by the time required to perform image extraction.

This is still a long press gesture instead of a regular gesture recognizer, since preflighting image extraction
requests could be expensive if performed during every single gesture (i.e. scrolling, taps, etc).

(-[WKImageExtractionGestureRecognizer initWithDelegate:]):
(-[WKImageExtractionGestureRecognizer setState:]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):

4:44 PM Changeset in webkit [270331] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Fix for multiple LayoutTests/accessibility tests in isolated tree mode that rely on PlainTextRange.
https://bugs.webkit.org/show_bug.cgi?id=219411

Reviewed by Chris Fleizach.

Tests:
accessibility/insert-newline.html
accessibility/mac/input-string-for-range-crash.html
accessibility/mac/range-for-contenteditable-newline.html
accessibility/mac/range-for-line-textarea.html
accessibility/set-selected-text-range-after-newline.html
accessibility/textarea-line-for-index.html
accessibility/mac/select-element-selection-with-optgroups.html

Implementation of AXIsolatedObject methods that take or return PlainTextRanges.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selectedTextRange const):
(WebCore::AXIsolatedObject::doAXRangeForLine const):
(WebCore::AXIsolatedObject::doAXStringForRange const):
(WebCore::AXIsolatedObject::doAXRangeForPosition const):
(WebCore::AXIsolatedObject::doAXRangeForIndex const):
(WebCore::AXIsolatedObject::doAXStyleRangeForIndex const):
(WebCore::AXIsolatedObject::doAXBoundsForRange const):
(WebCore::AXIsolatedObject::doAXLineForIndex):

  • accessibility/isolatedtree/AXIsolatedObject.h:
4:40 PM Changeset in webkit [270330] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Embedded YouTube videos fail to play
https://bugs.webkit.org/show_bug.cgi?id=219412
<rdar://problem/71869657>

Reviewed by Tim Horton.

Add a missing comma in list of Media services, for which sandbox extensions are created. The missing comma
is causing a sandbox violation, since strings are concatenated when there's no comma.

  • UIProcess/WebPageProxy.cpp:

(WebKit::mediaRelatedMachServices):

3:00 PM Changeset in webkit [270329] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[macOS / iOS ] Layout Test imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=197662

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:23 PM Changeset in webkit [270328] by Chris Dumez
  • 2 edits in trunk/Tools

[iOS] GPUProcess.CrashWhilePlayingVideo is flaky
https://bugs.webkit.org/show_bug.cgi?id=219377
<rdar://problem/71859117>

Reviewed by Darin Adler.

Disable the flaky check on iOS while this is investigated so that the bots are happy.

In the iOS simulator, I see the audio track getting disabled shortly after the GPU
process is relaunched for some reason. I have spent a lot of time investigating the
issue but have been unable to identify the root cause yet.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

1:39 PM Changeset in webkit [270327] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/ThirdParty/libwebrtc

Apply patch. rdar://problem/71381873

1:38 PM Changeset in webkit [270326] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Deny mach lookup of 'com.apple.webinspector' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219386
<rdar://problem/60932734>

Reviewed by Darin Adler.

After r270035, mach-lookup of 'com.apple.webinspector' can be denied in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
12:57 PM Changeset in webkit [270325] by Aditya Keerthi
  • 11 edits
    2 adds in trunk

[iOS] <button> with multi-line content does not render properly
https://bugs.webkit.org/show_bug.cgi?id=219372
<rdar://problem/6061602>

Reviewed by Darin Adler.

Source/WebCore:

Currently, on iOS, a <button> that has multiple lines of content clips
the content to a single line. This behavior is incorrect, since <button>
can contain arbitrary HTML and should resize based on its content.

The incorrect behavior occurs due to the forcing of a single line height
for the button in RenderThemeIOS::adjustButtonStyle. To fix, replace
setHeight with setMinHeight when styling the button. This ensures the
button retains its appearance for single-line content, but does not clip
multi-line content.

Test: fast/forms/button-multiline-height.html

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustButtonStyle const):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::setButtonSize): Removed.

This virtual method is unnecessary, as it is only used by a single
derived class, RenderThemeIOS.

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

(WebCore::RenderThemeIOS::adjustButtonStyle const):

No longer round down the height calculation, to ensure the min height
better matches the font size.

LayoutTests:

  • fast/forms/button-multiline-height-expected.txt: Added.
  • fast/forms/button-multiline-height.html: Added.
  • platform/ios/css3/flexbox/button-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/button-sizes-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/input-button-sizes-expected.txt:
12:33 PM Changeset in webkit [270324] by Chris Dumez
  • 5 edits in trunk/LayoutTests

REGRESSION: imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219366
<rdar://problem/71819641>

LayoutTests/imported/w3c:

Unreviewed, rebaseline test.

  • web-platform-tests/streams/transform-streams/terminate.any-expected.txt:

LayoutTests:

Unreviewed, silence console output to address flakiness.

12:21 PM Changeset in webkit [270323] by Lauro Moura
  • 1 edit
    4 copies
    2 moves
    1 add
    1 delete in trunk/LayoutTests

[GLIB] Add some WPE-specific baselines after r269745

Unreviewed test gardening.

  • platform/gtk/fast/block/basic/013-expected.txt: Copied from LayoutTests/platform/glib/fast/block/basic/013-expected.txt.
  • platform/gtk/fast/frames/iframe-scrolling-attribute-expected.txt: Copied from LayoutTests/platform/glib/fast/frames/iframe-scrolling-attribute-expected.txt.
  • platform/gtk/svg/as-object/object-box-sizing-no-width-height-expected.txt: Copied from LayoutTests/platform/glib/svg/as-object/object-box-sizing-no-width-height-expected.txt.
  • platform/wpe/fast/block/basic/013-expected.txt: Renamed from LayoutTests/platform/glib/fast/block/basic/013-expected.txt.
  • platform/wpe/fast/frames/iframe-scrolling-attribute-expected.txt: Renamed from LayoutTests/platform/glib/fast/frames/iframe-scrolling-attribute-expected.txt.
  • platform/wpe/svg/as-object/object-box-sizing-no-width-height-expected.txt: Renamed from LayoutTests/platform/glib/svg/as-object/object-box-sizing-no-width-height-expected.txt.
12:02 PM Changeset in webkit [270322] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix Aarch64 build failure
https://bugs.webkit.org/show_bug.cgi?id=219395

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-12-01
Reviewed by Yusuke Suzuki.

  • offlineasm/arm64.rb:
11:29 AM Changeset in webkit [270321] by youenn@apple.com
  • 9 edits in trunk

Update list of block ports according fetch spec
https://bugs.webkit.org/show_bug.cgi?id=219154

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port.any.js:
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

  • wtf/URL.cpp:

(WTF::portAllowed):

11:28 AM Changeset in webkit [270320] by Russell Epstein
  • 3 edits
    3 deletes in branches/safari-611.1.7-branch/Source/ThirdParty/ANGLE

Revert r270062. rdar://problem/71831151

11:14 AM Changeset in webkit [270319] by youenn@apple.com
  • 6 edits in trunk/Source/WebCore

Update SFrame transformation implementation according post-commit review
https://bugs.webkit.org/show_bug.cgi?id=218981

Reviewed by Geoffrey Garen.

Add an ASSERT that salt key size is 16 or above so that IV computation is safe.
Move HMAC SHA 256 Cocoa implementation to CryptoUtilitiesCocoa.cpp.
A follow-up patch should move CryptoUtilitiesCocoa.cpp to platform or PAL.

No change of behavior.

  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::setEncryptionKey):

  • Modules/mediastream/RTCRtpSFrameTransformerCocoa.cpp:

(WebCore::RTCRtpSFrameTransformer::computeEncryptedDataSignature):

  • crypto/mac/CryptoAlgorithmHMACMac.cpp:

(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
(WebCore::calculateSignature): Deleted.

  • crypto/mac/CryptoUtilitiesCocoa.cpp:

(WebCore::calculateHMACSignature):
(WebCore::calculateSHA256Signature):

  • crypto/mac/CryptoUtilitiesCocoa.h:
11:08 AM Changeset in webkit [270318] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Add telemetry for sandbox rules we believe are unused
https://bugs.webkit.org/show_bug.cgi?id=219141
<rdar://problem/71569084>

Reviewed by Per Arne Vollan.

This patch adds telemetry to a set of sandbox features we believe are unused. We should
capture telemetry to verify, and confirm before removing.

  • WebProcess/com.apple.WebProcess.sb.in:
10:54 AM Changeset in webkit [270317] by Truitt Savell
  • 3 edits in trunk/LayoutTests

(r270252) [ Mac ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-candidate-in-sdp.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=219403

unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:41 AM Changeset in webkit [270316] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Sergey Rubanov to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=219400

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-12-01
Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/contributors.json:
10:39 AM Changeset in webkit [270315] by Keith Rollin
  • 8 edits in trunk/Source

Consolidate header postprocessing scripts
https://bugs.webkit.org/show_bug.cgi?id=219388
<rdar://problem/71840357>

Reviewed by David Kilzer.

Our build system contains the following scripts to perform some
postprocessing of headers that we export to the SDK:

JavaScriptCore/postprocess-headers.sh
WebKit/mac/postprocess-framework-headers.sh
WebKitLegacy/mac/postprocess-headers.sh

The preceding scripts are used when using the non-XCBuild -- or
"legacy" -- Xcode build system. They are invoked in a custom Run
Script build phase after the headers have been exported with the
standard Xcode facility for creating frameworks.

Alternatively, we also have the following postprocessing scripts:

WebKit/Scripts/postprocess-header-rule
JavaScriptCore/Scripts/postprocess-header-rule
WebKitLegacy/scripts/postprocess-header-rule

These scripts are used when using the XCBuild build system. They are
invoked *during* the header export process to copy and postprocess the
headers in one blow. They are part of a Custom Build Rule for
exporting files ending in ".h".

The reason why we have two sets of scripts is because of the different
capabilities of the two Xcode build systems. The legacy system does
not support a custom "export header" step that would allow us to copy
and postprocess each header in a single step. Therefore, when using
the legacy build system, we export in one build step and postprocess
in a subsequent build step. And XCBuild doesn't like the approach
taken by the old build system where files are exported first and then
munged in a separate step, since that confuses its notion of the state
of the build ("Hey! That file I exported in the previous build? I see
now that it's been changed, so I'm going to export it again. And
change its modification date. And then rebuild everything downstream
that uses it."). Therefore, XCBuild added a facility for copying and
postprocessing in one step.

The scripts supporting each of these approaches are very similar to
each other, such that there is a lot of code duplication between them.
At the same time, by having two sets of scripts that are very similar
to each other, we run the risk of "drift", where files in one set may
get updated while their counterparts in the other set are not.

Address this duplication by making the scripts in the "legacy" set be
mere stubs that invoke the scripts in the new "XCBuild" set. In doing
this, we also fix a case of drift: the legacy-based scripts made use
of a timestamp file to determine if headers needed to be reprocessed
and exported, while the XCBuild-based scripts used a "process the
files and export them if any actual changes now exist between this new
version and any previously-exported version" approach.

Along the way, fix a bug in WebKitLegacy's postprocess-header-rule
that resulted in WebKitAvailability.h not being processed. The
practical effect of this bug is that the file ended up with both macOS
and iOS code, along with the #if that controlled which chunk of code
was compiled, instead of just the chunk of code specific to the
targeted SDK. Normally, the unused chunk of code would get removed
through the invocation of unifdef. But, because of the bug, the
results of running unifdef were being discarded.

Source/JavaScriptCore:

  • postprocess-headers.sh:

Source/WebKit:

  • mac/postprocess-framework-headers.sh:

Source/WebKitLegacy:

  • scripts/postprocess-header-rule:

Source/WebKitLegacy/mac:

  • postprocess-headers.sh:
10:25 AM Changeset in webkit [270314] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r269190. rdar://problem/71381759

Increase camera failing timer to 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=218389

Reviewed by Eric Carlson.

From testing, 3 seconds is not always enough if getUserMedia is quickly called multiple times.
Let's increase to 30 seconds to give room for slow systems while still being able to identify failures.

  • platform/mediastream/mac/AVVideoCaptureSource.h:

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

10:20 AM Changeset in webkit [270313] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix the reaches end of non-void function warning since r270294.

No new tests. No new behaviors.

  • Modules/mediastream/RTCRtpScriptTransformerContext.h:

(WebCore::RTCRtpScriptTransformerContext::requestKeyFrame): Add default clause returning void.

10:01 AM Changeset in webkit [270312] by Simon Fraser
  • 8 edits
    6 adds in trunk

[WK1] Only the first wheel event in a gesture should be cancelable
https://bugs.webkit.org/show_bug.cgi?id=219384

Reviewed by Chris Dumez.

Source/WebCore:

Implement the logic described at <https://w3c.github.io/uievents/#cancelability-of-wheel-events>,
where only the first wheel event in a sequence is cancelable, and, if not canceled, then the
rest of the events in the sequence become non-cancelable.

This is done for the non-async scrolling code path (i.e. WebKitLegacy) by storing
a Optional<WheelScrollGestureState> on EventHandler, which is cleared when we receive
the "begin" event, set when we finish processing that event, then consulted for subsequent
move events.

Tests: fast/events/wheel/first-wheel-event-cancelable.html

fast/events/wheel/wheel-events-become-non-cancelable.html

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::wheelEvent):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::wheelEventWasProcessedByMainThread):

  • platform/PlatformWheelEvent.cpp:

(WebCore::operator<<):

  • platform/PlatformWheelEvent.h:

LayoutTests:

Add a temporary failing result for WK2 until the async scrolling implementation lands.

  • fast/events/wheel/first-wheel-event-cancelable-expected.txt: Added.
  • fast/events/wheel/first-wheel-event-cancelable.html: Added.
  • fast/events/wheel/wheel-events-become-non-cancelable-expected.txt: Added.
  • fast/events/wheel/wheel-events-become-non-cancelable.html: Added.
  • platform/mac-wk2/fast/events/wheel/wheel-events-become-non-cancelable-expected.txt: Added.
  • platform/win/TestExpectations:
10:00 AM Changeset in webkit [270311] by Ryan Haddad
  • 5 edits in trunk

Unreviewed, reverting r270132.

Caused at least one regression test failure
(webkit.org/b/219401)

Reverted changeset:

"Use a Version 1 CFRunLoopSource for faster task dispatch"
https://bugs.webkit.org/show_bug.cgi?id=202874
https://trac.webkit.org/changeset/270132

9:59 AM Changeset in webkit [270310] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r270072. rdar://problem/71836681

REGRESSION (r259151): The "Convert Text to Traditional Chinese" services menu action is broken
https://bugs.webkit.org/show_bug.cgi?id=219190
<rdar://problem/71438389>

Reviewed by Tim Horton.

Source/WebKit:

Some system services, such as "Convert Text to (Traditional|Simplified) Chinese", use `-[NSServicesMenuRequestor
readSelectionFromPasteboard:]` to insert the contents of the given pasteboard into the current selection. After
the changes in r259151, this requires the UI process to explicitly grant access to the contents of the given
pasteboard, on behalf of the web content process.

Fix the bug by adding the missing call to grantAccessToCurrentPasteboardData. This is only called from API in
the UI process, so it cannot be abused by a compromised web content process to grab the contents of
NSPasteboard.

Test: PasteHTML.ReadSelectionFromPasteboard

  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::readSelectionFromPasteboard):

Tools:

Add an API test to exercise -readSelectionFromPasteboard:.

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

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

9:59 AM Changeset in webkit [270309] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r269954. rdar://problem/71836563

RenderTreeBuilderBlock using an incorrect anonymous parent to attach a new renderer
https://bugs.webkit.org/show_bug.cgi?id=218505

Reviewed by Antti Koivisto.

Let's consider the following simplified render tree:

PARENT
|_beforeChildAnonymousContainer

|_hierarchy of anonymous blocks

|_beforeChild

When RenderTreeBuilderBlock is attaching a new renderer given PARENT and beforeChild, it first tries to attach it to the PARENT
if beforeChild is a direct child of PARENT. Otherwise it assumes that beforeChild is the direct child of an anonymous block which is
in between PARENT and beforeChild. However in some cases, as the one presented above, beforeChild might have a whole hierarchy of
anonymous blocks in between. That's why we cannot assume that beforeChild->parent() is a direct child of PARENT. Instead we should use
beforeChildAnonymousContainer as the parent of the new renderer.

  • rendering/updating/RenderTreeBuilderBlock.cpp: (WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation): Use beforeChildAnonymousContainer instead of beforeChild->parent().

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

9:58 AM Changeset in webkit [270308] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/JavaScriptCore

Cherry-pick r269931. rdar://problem/71836676

Add more info to the RELEASE_ASSERT inside Parser::parseInner
https://bugs.webkit.org/show_bug.cgi?id=219054
<rdar://problem/71506453>

Reviewed by Mark Lam.

We have some crashes here, and it'll be helpful for the crashlogs to have
more info in the register state.

  • parser/Lexer.h: (JSC::Lexer::codeLength):
  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

9:58 AM Changeset in webkit [270307] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r269695. rdar://problem/71836652

Protect ScheduledURLNavigation member
https://bugs.webkit.org/show_bug.cgi?id=218593

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

Protect ScheduledURLNavigation member m_url by using a copy since
ScheduledURLNavigation itself is not protected and may be cancelled
(and thus deleted) just at the time it is sending a message to the
UIProcess which encodes the passed m_url member variable.

  • loader/NavigationScheduler.cpp:

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

9:47 AM Changeset in webkit [270306] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.4.2

9:45 AM Changeset in webkit [270305] by youenn@apple.com
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

libwebrtc.dylib relies on dead code stripping (fails to link if dead code is not stripped in Debug builds)
https://bugs.webkit.org/show_bug.cgi?id=218453

Reviewed by Eric Carlson.

Update build config and code to allow building without code stripping.

  • Configurations/Base.xcconfig:
  • Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c:

Compile out some functions that are not-realtime only.

  • libwebrtc.xcodeproj/project.pbxproj:
9:31 AM Changeset in webkit [270304] by youenn@apple.com
  • 9 edits in trunk

REGRESSION(STP116): wpt.live/webrtc/RTCRtpTransceiver.https.html crashes on load
https://bugs.webkit.org/show_bug.cgi?id=219259

Reviewed by Eric Carlson.

Source/WebCore:

Make use of StopStandard instead of the old StopInternal method.
Covered by rebased tests.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addInternalTransceiver):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpTransceiver.cpp:

(WebCore::RTCRtpTransceiver::setConnection):
(WebCore::RTCRtpTransceiver::stop):

  • Modules/mediastream/RTCRtpTransceiver.h:
  • Modules/mediastream/RTCRtpTransceiver.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:

(WebCore::LibWebRTCRtpTransceiverBackend::stop):

LayoutTests:

  • TestExpectations: mark test as flaky, as identified by EWS and in results.webkit.org since resyncing WPT tests.
9:30 AM Changeset in webkit [270303] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

DedicatedWorkerGlobalScope should clear m_rtcRtpTransformerConstructorMap before destructor
https://bugs.webkit.org/show_bug.cgi?id=219389

Reviewed by Eric Carlson.

Clear the constructor map before the destructor in prepareForDestruction like done for audio worklet.
Covered by http/wpt/webrtc/webrtc-transform.html no longer crashing with guard malloc.

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::prepareForDestruction):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/WorkerGlobalScope.h:
9:28 AM Changeset in webkit [270302] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Skip http/wpt/webrtc/sframe-transform.html

Unreviewed test gardening

  • platform/glib/TestExpectations:
9:23 AM Changeset in webkit [270301] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Common module should use a dedicated logging category
https://bugs.webkit.org/show_bug.cgi?id=219348

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

Because this module can be used outside of the MediaPlayer scope, we cannot assume the
MediaPlayer debug category will be initialized in time when GST_DEBUG logs need to be
emitted from GStreamerCommon. So it is safer to introduce a new, standalone, logging
category for this module.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer):

9:14 AM Changeset in webkit [270300] by commit-queue@webkit.org
  • 5 edits in trunk

Lazy loaded iframe should not lazy load when scripting is disabled
https://bugs.webkit.org/show_bug.cgi?id=217315

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

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-in-script-disabled-iframe-expected.txt:

Source/WebCore:

Lazy loaded iframe should not lazy load when scripting is disabled [1].

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-in-script-disabled-iframe.html

[1] https://html.spec.whatwg.org/#will-lazy-load-element-steps

This matches Chrome and Firefox.

  • html/HTMLIFrameElement.cpp:

(WebCore::isFrameLazyLoadable):
(WebCore::HTMLIFrameElement::shouldLoadFrameLazily):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isLazyLoadable const):

7:53 AM Changeset in webkit [270299] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

ITP logging mixes up the UI process ITP state with the Settings ITP state
https://bugs.webkit.org/show_bug.cgi?id=219359
<rdar://problem/71808489>

Reviewed by Youenn Fablet.

Update an ITP logging message in the network process which mixes up
the variables for the ITP state passed from the UI process and the
ITP value from Settings.

No new tests, this only updates an incorrect logging message.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::activateSessionCleanup):

7:50 AM Changeset in webkit [270298] by Alexey Shvayka
  • 13 edits in trunk/Source/JavaScriptCore

Remove unused getPrimitiveNumber() methods
https://bugs.webkit.org/show_bug.cgi?id=219370

Reviewed by Mark Lam.

These methods were originated in KJS, have weird signature / return value,
are currently unused, and were displaced by toNumber() / toPrimitive().

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::getPrimitiveNumber const): Deleted.

  • runtime/JSBigInt.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::getPrimitiveNumber): Deleted.

  • runtime/JSCell.cpp:

(JSC::JSCell::getPrimitiveNumber const): Deleted.

  • runtime/JSCell.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::getPrimitiveNumber const): Deleted.

  • runtime/JSObject.h:
  • runtime/JSString.cpp:

(JSC::JSString::getPrimitiveNumber const): Deleted.

  • runtime/JSString.h:

(JSC::JSString::toBoolean const):

  • runtime/Symbol.cpp:

(JSC::Symbol::getPrimitiveNumber const): Deleted.

  • runtime/Symbol.h:
7:21 AM Changeset in webkit [270297] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk/Source/WebCore

[WebIDL] Move ShadowRootInit to dedicated idl file from Element.idl
https://bugs.webkit.org/show_bug.cgi?id=219261

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-12-01
Reviewed by Don Olmstead.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:
  • dom/Element.h:
  • dom/Element.idl:
  • dom/ShadowRootInit.h: Added.
  • dom/ShadowRootInit.idl: Added. This patch use the same license header used in bug 216336 because this patch does not change the code essentially at here.
6:58 AM Changeset in webkit [270296] by youenn@apple.com
  • 11 edits in trunk

CSSStyleSheet.cssRules and rules should throw in case of opaque stylesheets
https://bugs.webkit.org/show_bug.cgi?id=219203

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebased tests.

  • web-platform-tests/css/cssom/stylesheet-same-origin.sub-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https-expected.txt:

Source/WebCore:

In case of opaque stylesheet, throw a SecurityError as done by Chrome and Firefox.
Covered by updated and rebased tests.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::cssRulesFromJS):
(WebCore::CSSStyleSheet::rulesFromJS):

  • css/CSSStyleSheet.idl:

LayoutTests:

Rebased tests and update test to expect throwing.

  • http/tests/security/cannot-read-cssrules-expected.txt:
  • http/tests/security/cannot-read-cssrules-redirect-expected.txt:
  • http/tests/security/cross-origin-css-9.html:
6:43 AM Changeset in webkit [270295] by aakash_jain@apple.com
  • 3 edits
    1 move in trunk/Tools

Share runUnittests.py for ews-build and build.webkit.org unit-tests
https://bugs.webkit.org/show_bug.cgi?id=219374

Reviewed by Jonathan Bedard.

  • CISupport/runUnittests.py: Moved from Tools/CISupport/ews-build/runUnittests.py.
  • CISupport/ews-build/runUnittests.py: Removed.
  • CISupport/ews-build/steps.py:

(RunEWSUnitTests): Updated ews configuration appropriately.
(RunEWSUnitTests.init):

  • CISupport/ews-build/steps_unittest.py: Updated EWS unit-tests accordingly.
4:34 AM Changeset in webkit [270294] by youenn@apple.com
  • 32 edits
    2 copies
    5 adds in trunk

Allow RTCRtpScriptTransformer to request key frames
https://bugs.webkit.org/show_bug.cgi?id=219199
Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

Add GenerateKeyFrame to sender and receiver interface.
Pipe the request to the necessary underlying objects implementing this as follows:

  • Ask encoder to generate a key frame for sender transforms
  • Send a FIR network request from receiver to sender for receiver transforms
  • Source/webrtc/api/rtp_receiver_interface.h:
  • Source/webrtc/api/rtp_sender_interface.h:
  • Source/webrtc/call/video_send_stream.h:
  • Source/webrtc/media/base/media_channel.h:

(cricket::MediaChannel::GenerateKeyFrame):

  • Source/webrtc/media/engine/webrtc_video_engine.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.h:
  • Source/webrtc/pc/rtp_sender.cc:
  • Source/webrtc/pc/rtp_sender.h:
  • Source/webrtc/pc/video_rtp_receiver.cc:
  • Source/webrtc/pc/video_rtp_receiver.h:
  • Source/webrtc/video/video_send_stream.cc:
  • Source/webrtc/video/video_send_stream.h:

Source/WebCore:

<rdar://problem/71763010>

Reviewed by Eric Carlson.

Expose RTCRtpScriptTransformerContext to RTCRtpScriptTransformer as part of third parameter of the 'start' callback.
This context exposes some states (sender or receiver transform, audio or video transform).
It also exposes the ability to request key frames for video transforms.

Make RTCRtpTransformableFrame ref counted so that we can keep it even though the frame was piped to the writable stream.
Make LibWebRTCRtpTransformableFrame able to cope with a nullptr internal rtc frame.

Add support for RTCEncodedVideoFrame.type.

Tests: http/wpt/webrtc/audio-script-transform.html

http/wpt/webrtc/video-script-transform.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCEncodedVideoFrame.cpp:

(WebCore::RTCEncodedVideoFrame::RTCEncodedVideoFrame):

  • Modules/mediastream/RTCEncodedVideoFrame.h:

(WebCore::RTCEncodedVideoFrame::type const):

  • Modules/mediastream/RTCEncodedVideoFrame.idl:
  • Modules/mediastream/RTCRtpScriptTransformerContext.h: Added.

(WebCore::RTCRtpScriptTransformerContext::side const):
(WebCore::RTCRtpScriptTransformerContext::mediaType const):
(WebCore::RTCRtpScriptTransformerContext::create):
(WebCore::RTCRtpScriptTransformerContext::RTCRtpScriptTransformerContext):
(WebCore::RTCRtpScriptTransformerContext::requestKeyFrame):

  • Modules/mediastream/RTCRtpScriptTransformerContext.idl: Added.
  • Modules/mediastream/RTCRtpTransformBackend.h:
  • Modules/mediastream/RTCRtpTransformableFrame.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverTransformBackend.cpp:

(WebCore::LibWebRTCRtpReceiverTransformBackend::requestKeyFrame):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverTransformBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderTransformBackend.cpp:

(WebCore::LibWebRTCRtpSenderTransformBackend::requestKeyFrame):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderTransformBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp:

(WebCore::LibWebRTCRtpTransformableFrame::isKeyFrame const):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Reviewed by Eric Carlson.

  • http/wpt/webrtc/audio-script-transform-expected.txt: Added.
  • http/wpt/webrtc/audio-script-transform.html: Added.
  • http/wpt/webrtc/video-script-transform-expected.txt: Added.
  • http/wpt/webrtc/video-script-transform.html: Added.
  • http/wpt/webrtc/context-transform.js: Added.
3:31 AM Changeset in webkit [270293] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove m_gridItemsIndexesMap
https://bugs.webkit.org/show_bug.cgi?id=219392

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-01
Reviewed by Manuel Rego Casasnovas.

Remove m_gridItemsIndexesMap since it is not used.

  • rendering/Grid.h:
2:26 AM Changeset in webkit [270292] by commit-queue@webkit.org
  • 6 edits in trunk/Source

[GTK][WPE] Async scrolling udpates are blocked in the main thread
https://bugs.webkit.org/show_bug.cgi?id=219308

Patch by Alejandro G. Castro <alex@igalia.com> on 2020-12-01
Reviewed by Simon Fraser.

Source/WebCore:

We need to avoid this performance improvement of avoiding the
refresh for the scrolling thread when no wheel events were
recently sent because GTK and WPE kinetic scrolling does not use
wheel events to control the animation. We are discussing to change
this for the future and make the code more similar for every port.

No new tests, not sure if we can add tests for this situation. We
detected it manually.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::displayDidRefresh): This function
is also called by the threaded compositor thread in case of GTK
and WPE. We can not use that condition for GTK and WPE, kinetic
animation does not use the wheel events.

Source/WebKit:

We need to use the EventDispatcher from the frameDone callback in
the ThreadedCompositor, for GTK and WPE we receive the frame
information in that thread. We have to notify the scrolling trees
in the scrolling thread even if the main thread is busy or we will
freeze when the main thread is busy. For that we use the API in
the EventDispatcher.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::sceneUpdateFinished): Call the
EventDispatcher to notify the scrolling trees a frame was rendered.

  • WebProcess/WebPage/EventDispatcher.cpp: Enable the compilation

of the notify function for all the ports.

  • WebProcess/WebPage/EventDispatcher.h: Ditto.
1:44 AM Changeset in webkit [270291] by Lauro Moura
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Make Bytecodes generator command also depend on wasm.json
https://bugs.webkit.org/show_bug.cgi?id=219383

Reviewed by Adrian Perez de Castro.

r270265 added some new operations to wasm.json but its change did not
trigger the bytecodes generator command, causing the build to fail in
some platforms (in fact, it was caught by GTK and WPE EWS bots).

  • CMakeLists.txt: Add wasm.json as dependency to the bytecodes.h generator

command.

1:43 AM Changeset in webkit [270290] by youenn@apple.com
  • 34 edits
    1 copy in trunk

Add support for readable/writable to RTCRtpSFrameTransform
https://bugs.webkit.org/show_bug.cgi?id=219298

Reviewed by Eric Carlson.

Source/WebCore:

Add support for locking WritableStream and checking locked state.
Add readable/writable getters so that RTCRtpSFrameTransform can be used as a TransformStream.
Make a refactoring to allow reuse of SimpleReadableStreamSource and SimpleWritableStreamSink.

In case of encryption/decryption error, we do not error the transform as this is final.
Instead, we output empty buffers.
In case of trying to encrypt unexpected objects, we error the transform.

Move RTCRtpTransformableFrame to be ref counted.
This allows to keep a RTCRtpTransformableFrame for each RTCEncodedFrame even though the underlying
webrtc frame (which is a unique ptr) is given back to the webrtc backend after processing.

Covered by updated test.

  • Modules/mediastream/RTCEncodedAudioFrame.cpp:

(WebCore::RTCEncodedAudioFrame::RTCEncodedAudioFrame):

  • Modules/mediastream/RTCEncodedAudioFrame.h:

(WebCore::RTCEncodedAudioFrame::create):

  • Modules/mediastream/RTCEncodedFrame.cpp:

(WebCore::RTCEncodedFrame::RTCEncodedFrame):

  • Modules/mediastream/RTCEncodedFrame.h:

(WebCore::RTCEncodedFrame::rtcFrame):

  • Modules/mediastream/RTCEncodedVideoFrame.cpp:

(WebCore::RTCEncodedVideoFrame::RTCEncodedVideoFrame):

  • Modules/mediastream/RTCEncodedVideoFrame.h:

(WebCore::RTCEncodedVideoFrame::create):

  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::RTCRtpSFrameTransform::RTCRtpSFrameTransform):
(WebCore::RTCRtpSFrameTransform::isAttached const):
(WebCore::RTCRtpSFrameTransform::initializeTransformer):
(WebCore::RTCRtpSFrameTransform::willClearBackend):
(WebCore::transformFrame):
(WebCore::RTCRtpSFrameTransform::createStreams):
(WebCore::RTCRtpSFrameTransform::readable):
(WebCore::RTCRtpSFrameTransform::writable):

  • Modules/mediastream/RTCRtpSFrameTransform.h:

(WebCore::RTCRtpSFrameTransform::create):

  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::setEncryptionKey):
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):
(WebCore::RTCRtpSFrameTransformer::transform):
(WebCore::RTCRtpSFrameTransformer::updateAuthenticationSize):

  • Modules/mediastream/RTCRtpSFrameTransformer.h:

(WebCore::RTCRtpSFrameTransformer::setIsEncrypting):
(WebCore::RTCRtpSFrameTransformer::setAuthenticationSize):

  • Modules/mediastream/RTCRtpSFrameTransformerCocoa.cpp:

(WebCore::RTCRtpSFrameTransformer::updateAuthenticationSize):

  • Modules/mediastream/RTCRtpScriptTransformer.cpp:

(WebCore::RTCRtpScriptTransformer::startStreams):

  • Modules/mediastream/RTCRtpScriptTransformer.h:
  • Modules/mediastream/RTCRtpTransformBackend.h:
  • Modules/mediastream/RTCRtpTransformableFrame.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderTransformBackend.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp:

(WebCore::LibWebRTCRtpTransformBackend::processTransformedFrame):
(WebCore::LibWebRTCRtpTransformBackend::Transform):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.h:
  • Modules/streams/ReadableStreamSource.h:

(WebCore::SimpleReadableStreamSource::create):
(WebCore::SimpleReadableStreamSource::close):
(WebCore::SimpleReadableStreamSource::enqueue):

  • Modules/streams/WritableStreamSink.h:

(WebCore::SimpleWritableStreamSink::create):
(WebCore::SimpleWritableStreamSink::SimpleWritableStreamSink):
(WebCore::SimpleWritableStreamSink::write):

  • bindings/js/WritableStream.cpp:

(WebCore::WritableStreamInternal::callFunction):
(WebCore::checkWritableStream):
(WebCore::WritableStream::lock):
(WebCore::WritableStream::isLocked const):

  • bindings/js/WritableStream.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):

Tools:

  • TestWebKitAPI/Tests/WebCore/RTCRtpSFrameTransformerTests.cpp:

(TestWebKitAPI::createVideoTransformer):

LayoutTests:

  • http/wpt/webrtc/sframe-transform-expected.txt:
  • http/wpt/webrtc/sframe-transform.html:
1:31 AM Changeset in webkit [270289] by Diego Pino Garcia
  • 8 edits
    3 adds in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update baselines after r270284.

  • platform/wpe/css1/formatting_model/height_of_lines-expected.png: Added.
  • platform/wpe/css1/formatting_model/height_of_lines-expected.txt: Update after r238730.
  • platform/wpe/fast/block/float/overhanging-tall-block-expected.png: Added.
  • platform/wpe/fast/block/float/overhanging-tall-block-expected.txt: Update after r270070.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any-expected.txt: Update after r269947.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any.worker-expected.txt: Update after r269947.
  • platform/wpe/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt: Update after r269745.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Update after r270102.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Update after r270102.
1:21 AM Changeset in webkit [270288] by svillar@igalia.com
  • 7 edits in trunk

[css-flexbox] WebKit doesn't preserve aspect ratio when computing cross size of flexed images in auto-height flex container
https://bugs.webkit.org/show_bug.cgi?id=209983
<rdar://problem/61288094>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flexitem-stretch-image-expected.txt: Replace FAIL by PASS expectations.

Source/WebCore:

Aspect ratio was not preserved in the cross axis because WebKit was stretching the items (as they're auto sized) without considering
the aspect ratio. Instead of letting flexbox code deal with that we basically don't stretch them and let RenderReplaced compute the
cross size based on the aspect ratio as it does with other elements that are not flex items.

This allows us to pass 3 tests from the WPT test suite.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::needToStretchChildLogicalHeight const): Return false for replaced elements with aspect ratio.

LayoutTests:

  • TestExpectations: Unskipped 2 tests that are working fine now
  • css3/flexbox/flexitem.html: Updated expectations. Aspect ratio must be preserved.
12:42 AM Changeset in webkit [270287] by Diego Pino Garcia
  • 8 edits
    7 adds in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update WPE baselines of baselines updated r238731.

  • platform/wpe/fast/css/resize-corner-tracking-expected.png: Added.
  • platform/wpe/fast/css/resize-corner-tracking-expected.txt:
  • platform/wpe/fast/css/text-overflow-input-expected.png: Added.
  • platform/wpe/fast/css/text-overflow-input-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/native-progress-bar-expected.png: Added.
  • platform/wpe/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/wpe/fast/text/hyphenate-limit-before-after-expected.png: Added.
  • platform/wpe/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
12:24 AM Changeset in webkit [270286] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit

GPU Process: Invalid static_cast from ConcreteImageBuffer to RemoteImageBufferProxy
https://bugs.webkit.org/show_bug.cgi?id=219387

Reviewed by Ryosuke Niwa.

  • Shared/ConcreteShareableImageBuffer.h: Copied from Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h.

(WebKit::ConcreteShareableImageBuffer::create):
(WebKit::ConcreteShareableImageBuffer::ConcreteShareableImageBuffer):
(WebKit::ConcreteShareableImageBuffer::createImageBufferBackendHandle):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • WebKit.xcodeproj/project.pbxproj:

Add and adopt ConcreteShareableImageBuffer. This is a ConcreteImageBuffer that knows how
to create an ImageBufferBackendHandle, with no other behavior change.
Previously, we were (completely incorrectly) casting ConcreteImageBuffer to RemoteImageBufferProxy
to get this behavior, and somehow just got very lucky.

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

Fix some unified source issues.

Nov 30, 2020:

11:02 PM Changeset in webkit [270285] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines after r270269.

  • platform/glib/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt:
10:49 PM Changeset in webkit [270284] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] Adopt SPI to prevent establishing XPC connections to Launch Services
https://bugs.webkit.org/show_bug.cgi?id=219173
<rdar://problem/71595536>

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Declare enum value to be used when adopting the SPI.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

Adopt SPI to prevent establishing XPC connections to Launch Services in the WebContent process on macOS.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

8:47 PM Changeset in webkit [270283] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Making module entry promise-like by setting "then"
https://bugs.webkit.org/show_bug.cgi?id=216695

Reviewed by Saam Barati.

Setting then: @undefined to make entry promise-like.
We also optimize @InternalPromise.internalAll a bit.

  • builtins/InternalPromiseConstructor.js:

(internalAll.newResolveElement):
(internalAll):

  • builtins/ModuleLoader.js:

(globalPrivate.newRegistryEntry):
(requestImportModule):
(async requestImportModule): Deleted.

  • builtins/PromiseOperations.js:

(globalPrivate.fulfillPromiseWithFirstResolvingFunctionCallCheck):

7:59 PM Changeset in webkit [270282] by Wenson Hsieh
  • 3 edits in trunk/Tools

check-webkit-style should allow WebKitAdditions headers to appear after soft linking headers
https://bugs.webkit.org/show_bug.cgi?id=219382

Reviewed by Darin Adler.

The header include ordering rule that forces soft linking headers to be included last in implementation (cpp and
mm) files shouldn't really apply to WebKitAdditions headers, since those additions headers are only meant to
contain method and function implementations anyways.

Fix this by adding code to recognize WebKitAdditions headers as a special type of header, and exempt these
headers from the '*SoftLink.h header should be included after all other headers.' rule.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_IncludeState):
(_IncludeState.check_next_include_order):
(_classify_include):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py: Add a test case to exercise this scenario.
6:37 PM Changeset in webkit [270281] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

[WebAccessibilityObjectWrapper doAXAttributedStringForRange] needs to run on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=219360

Reviewed by Chris Fleizach.

Dispatch this call to the main thread in isolated tree mode.
In addition, moved several TextMarker static functions and ObjectiveC
wrappers out of the WebAccessibilityObjectWrapper implementation in an
ongoing effort to move core code out of the accessibility platform
wrapper.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::textMarkerRangeFromMarkers):
(WebCore::startOrEndTextMarkerForRange):
(WebCore::textMarkerRangeFromRange):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromRange:]): Deleted,
not needed, instead call the C function directly.
(textMarkerRangeFromRange): Deleted, moved to AXObjectCacheMac.mm.
(-[WebAccessibilityObjectWrapper startOrEndTextMarkerForRange:isStart:]):
Deleted, not needed, instead call the C function directly.
(startOrEndTextmarkerForRange): Deleted, Moved to AXObjectCacheMac.mm.

6:18 PM Changeset in webkit [270280] by timothy_horton@apple.com
  • 9 edits
    3 deletes in trunk/Source/WebKit

Unreviewed, reverting r270275.

Broke canvas painting

Reverted changeset:

"GPU Process: IOSurfaces should not be mapped into the Web
Content Process"
https://bugs.webkit.org/show_bug.cgi?id=219368
https://trac.webkit.org/changeset/270275

6:09 PM Changeset in webkit [270279] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo?] GPU process remains alive even after UI process exited
https://bugs.webkit.org/show_bug.cgi?id=219321

Reviewed by Don Olmstead.

GPUConnectionToWebProcess::didClose is called when web process
exits, and GPUProcess::didClose is called when UI process exits in
GPU process. GPUProcess::didClose should terminate the GPU
process.

AuxiliaryProcess is the base class of GPUProcess.
AuxiliaryProcess::didClose is calling _exit. However, GPUProcess
overrode AuxiliaryProcess::didClose but it did nothing. GPUProcess
doesn't need to override it.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::didClose): Deleted.

  • GPUProcess/GPUProcess.h:
5:29 PM Changeset in webkit [270278] by Simon Fraser
  • 20 edits in trunk/Source

Pass OptionSet<EventHandling> to various wheel event handler functions
https://bugs.webkit.org/show_bug.cgi?id=219373

Reviewed by Tim Horton.

Source/WebCore:

Fixing webkit.org/b/218764 will require that code that dispatches wheel events
can tell later whether script called preventDefault() on the event, since this
will affect whether the rest of the wheel events in a gesture are cancelable.

To prepare for this, pass OptionSet<EventHandling> around in event handling
code.

No behavior change.

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent):

  • page/EventHandler.cpp:

(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::EventHandler::defaultWheelEventHandler):

  • page/EventHandler.h:
  • page/FrameView.cpp:

(WebCore::FrameView::handleWheelEventForScrolling):

  • page/FrameView.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::processWheelEventForScrolling):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::handleWheelEventForScrolling):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEventForScrolling):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::handleWheelEventForScrolling):
(WebCore::ScrollingCoordinatorNicosia::wheelEventWasProcessedByMainThread):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::handleWheelEventForScrolling):

  • platform/ScrollableArea.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::handleWheelEventForScrolling):

  • rendering/RenderLayer.h:

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleWheelEvent):

4:46 PM Changeset in webkit [270277] by Tadeu Zagallo
  • 2 edits
    108 copies
    96 adds
    4 deletes in trunk/PerformanceTests

Add C and ObjC tests to APIBench
https://bugs.webkit.org/show_bug.cgi?id=219246

Reviewed by Yusuke Suzuki.

The benchmark now consists of two groups: initially they are identical, but the first group will not
be changed going forward while the second group will be free to adopt new APIs.
The two original tests (one mostly JS and the other mostly native) were also split into three tests each (C, ObjC and Swift).

  • APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/xcshareddata/xcschemes/RichardsMostlyC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC/richards.c: Added.

(pkt):
(trace):
(schedule):
(wait_):
(holdself):
(findtcb):
(release):
(qpkt):
(idlefn):
(valueToTask):
(waitWrapper):
(qpktWrapper):
(readFile):
(workfn):
(handlerfn):
(devfn):
(append):
(setup):
(getQpktcount):
(getHoldcount):
(main):

  • APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC/richards.js: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(createWorkfn):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Device.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[DeviceTask createWithScheduler:device:priority:]):
(-[DeviceTask run:]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.m: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.

(+[HandlerTask createWithScheduler:device:priority:queue:]):
(-[HandlerTask run:]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[IdleTask createWithScheduler:priority:]):
(-[IdleTask run:]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.

(+[Packet create:withLink:]):
(-[Packet addToQueue:]):
(+[DevicePacket create:withLink:]):
(+[WorkPacket createWithLink:]):
(+[WorkPacket size]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.h: Added.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.m: Added.

(-[Scheduler schedule]):
(-[Scheduler addTask:]):
(-[Scheduler releaseDevice:]):
(-[Scheduler holdCurrent]):
(-[Scheduler waitCurrent]):
(-[Scheduler queue:]):
(-[Scheduler handle:]):
(-[Scheduler _queueImpl:packet:]):
(-[Scheduler _find:]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.h: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.m: Added.

(+[Task createWithScheduler:priority:queue:]):
(-[Task run:]):
(-[Task release_]):
(-[Task hold]):
(-[Task wait]):
(-[Task resume]):
(-[Task takePacket]):
(-[Task checkPriorityAdd:packet:]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m: Added.

(+[WorkerTask createWithScheduler:priority:queue:]):
(+[WorkerTask context]):
(+[WorkerTask constructor]):
(-[WorkerTask run:]):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/main.m: Added.

(runRichards):
(main):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.

(return.prototype.run):

  • APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/Packet.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Packet.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/Task.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Task.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/main.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/main.swift.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.
  • APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/richards.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.swift.
  • APIBench/CurrentAPI/RichardsSomeC/RichardsSomeC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/CurrentAPI/RichardsSomeC/RichardsSomeC/main.m: Added.

(WorkerTask_run):
(WorkerTask_constructor):
(WorkerTask_getProperty):
(main):

  • APIBench/CurrentAPI/RichardsSomeC/RichardsSomeC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
  • APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/xcshareddata/xcschemes/RichardsSomeObjC.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
  • APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC/main.m: Added.

(-[WorkerTask initWithScheduler:v1:v2:]):
(-[WorkerTask toString]):
(-[WorkerTask run:]):
(main):

  • APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.

(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):

  • APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/xcshareddata/xcschemes/RichardsSomeSwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
  • APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift/main.swift: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/main.swift.
  • APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.

(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):

  • APIBench/References/RichardsC/RichardsC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/References/RichardsC/RichardsC.xcodeproj/xcshareddata/xcschemes/RichardsC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/References/RichardsC/RichardsC/richards.c: Added.

(pkt):
(trace):
(schedule):
(wait_):
(holdself):
(findtcb):
(release):
(qpkt):
(idlefn):
(workfn):
(handlerfn):
(devfn):
(append):
(setup):
(getQpktcount):
(getHoldcount):
(main):

  • APIBench/References/RichardsC/RichardsC/richards.js: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(createWorkfn):

  • APIBench/References/RichardsJS/RichardsJS.js: Renamed from PerformanceTests/APIBench/RichardsJS/RichardsJS.js.
  • APIBench/References/RichardsObjC/RichardsObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
  • APIBench/References/RichardsObjC/RichardsObjC.xcodeproj/xcshareddata/xcschemes/RichardsObjC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/References/RichardsObjC/RichardsObjC/Device.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/DeviceTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/DeviceTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[DeviceTask createWithScheduler:device:priority:]):
(-[DeviceTask run:]):

  • APIBench/References/RichardsObjC/RichardsObjC/HandlerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/HandlerTask.m: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.

(+[HandlerTask createWithScheduler:device:priority:queue:]):
(-[HandlerTask run:]):

  • APIBench/References/RichardsObjC/RichardsObjC/IdleTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/IdleTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[IdleTask createWithScheduler:priority:]):
(-[IdleTask run:]):

  • APIBench/References/RichardsObjC/RichardsObjC/Packet.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/Packet.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.

(+[Packet create:withLink:]):
(-[Packet addToQueue:]):
(+[DevicePacket create:withLink:]):
(+[WorkPacket createWithLink:]):
(+[WorkPacket size]):

  • APIBench/References/RichardsObjC/RichardsObjC/Scheduler.h: Added.
  • APIBench/References/RichardsObjC/RichardsObjC/Scheduler.m: Added.

(-[Scheduler schedule]):
(-[Scheduler addTask:]):
(-[Scheduler releaseDevice:]):
(-[Scheduler holdCurrent]):
(-[Scheduler waitCurrent]):
(-[Scheduler queue:]):
(-[Scheduler handle:]):
(-[Scheduler _queueImpl:packet:]):
(-[Scheduler _find:]):

  • APIBench/References/RichardsObjC/RichardsObjC/Task.h: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/Task.m: Added.

(+[Task createWithScheduler:priority:queue:]):
(-[Task run:]):
(-[Task release_]):
(-[Task hold]):
(-[Task wait]):
(-[Task resume]):
(-[Task takePacket]):
(-[Task checkPriorityAdd:packet:]):

  • APIBench/References/RichardsObjC/RichardsObjC/WorkerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsObjC/RichardsObjC/WorkerTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[WorkerTask createWithScheduler:priority:queue:]):
(-[WorkerTask run:]):

  • APIBench/References/RichardsObjC/RichardsObjC/main.m: Added.

(runRichards):
(main):

  • APIBench/References/RichardsObjC/RichardsObjC/richards.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsSwift/RichardsSwift.xcodeproj/project.pbxproj: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/project.pbxproj.
  • APIBench/References/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/References/RichardsSwift/RichardsSwift/DeviceTask.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/DeviceTask.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/HandlerTask.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/HandlerTask.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/IdleTask.swift: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/Packet.swift: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/Scheduler.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Scheduler.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/Task.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Task.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/WorkerTask.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/WorkerTask.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/main.swift: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/References/RichardsSwift/RichardsSwift/richards.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/richards.swift.
  • APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/xcshareddata/xcschemes/RichardsMostlyC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c: Added.

(pkt):
(trace):
(schedule):
(wait_):
(holdself):
(findtcb):
(release):
(qpkt):
(idlefn):
(valueToTask):
(waitWrapper):
(qpktWrapper):
(readFile):
(workfn):
(handlerfn):
(devfn):
(append):
(setup):
(getQpktcount):
(getHoldcount):
(main):

  • APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.js: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(createWorkfn):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Device.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[DeviceTask createWithScheduler:device:priority:]):
(-[DeviceTask run:]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.m: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.

(+[HandlerTask createWithScheduler:device:priority:queue:]):
(-[HandlerTask run:]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.

(+[IdleTask createWithScheduler:priority:]):
(-[IdleTask run:]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.h: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.m: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.

(+[Packet create:withLink:]):
(-[Packet addToQueue:]):
(+[DevicePacket create:withLink:]):
(+[WorkPacket createWithLink:]):
(+[WorkPacket size]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.h: Added.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.m: Added.

(-[Scheduler schedule]):
(-[Scheduler addTask:]):
(-[Scheduler releaseDevice:]):
(-[Scheduler holdCurrent]):
(-[Scheduler waitCurrent]):
(-[Scheduler queue:]):
(-[Scheduler handle:]):
(-[Scheduler _queueImpl:packet:]):
(-[Scheduler _find:]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.h: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.m: Added.

(+[Task createWithScheduler:priority:queue:]):
(-[Task run:]):
(-[Task release_]):
(-[Task hold]):
(-[Task wait]):
(-[Task resume]):
(-[Task takePacket]):
(-[Task checkPriorityAdd:packet:]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m: Added.

(+[WorkerTask createWithScheduler:priority:queue:]):
(+[WorkerTask context]):
(+[WorkerTask constructor]):
(-[WorkerTask run:]):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/main.m: Added.

(runRichards):
(main):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.

(return.prototype.run):

  • APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.m: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme.
  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.

(DeviceTask.create(_:device:priority:)):
(DeviceTask.run(_:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift.

(HandlerTask.device):
(HandlerTask.create(_:device:priority:queue:)):
(HandlerTask.run(_:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift.

(IdleTask.create(_:priority:)):
(IdleTask.run(_:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/Packet.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Packet.swift.

(Packet.addTo(_:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift.

(waitCurrent):
(handle(_:)):
(Scheduler.schedule):
(Scheduler.add(_:)):
(Scheduler.release_(_:)):
(holdCurrent):
(queue(_:)):
(queueImpl(_:packet:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/Task.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Task.swift.

(Task.run(_:)):
(Task.release_):
(Task.hold):
(Task.wait):
(Task.resume):
(Task.takePacket):
(Task.checkPriorityAdd(_:packet:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.

(WorkerTask.create(_:priority:queue:)):
(WorkerTask.run(_:)):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/main.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/main.swift.
  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/richards.js: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.

(return.prototype.run):

  • APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/richards.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.swift.

(runRichards):

  • APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC/main.m: Added.

(WorkerTask_run):
(WorkerTask_constructor):
(WorkerTask_getProperty):
(main):

  • APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.

(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):

  • APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/xcshareddata/xcschemes/RichardsSomeObjC.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
  • APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC/main.m: Added.

(-[WorkerTask initWithScheduler:v1:v2:]):
(-[WorkerTask toString]):
(-[WorkerTask run:]):
(main):

  • APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.

(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):

  • APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/project.pbxproj: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
  • APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/xcshareddata/xcschemes/RichardsSomeSwift.xcscheme: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
  • APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/main.swift: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/main.swift.

(run(_:)):
(toString):
(WorkerTask.toString):
(WorkerTask.run(_:)):

  • APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/richards.js: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.

(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):

  • APIBench/api-bench:
4:34 PM Changeset in webkit [270276] by BJ Burg
  • 2 edits in trunk/Tools

filter-build-webkit: reduce non-actionable warnings from objc runtime and xcodebuild
https://bugs.webkit.org/show_bug.cgi?id=219376

Reviewed by Simon Fraser.

  • Scripts/filter-build-webkit:

(shouldIgnoreLine):

4:30 PM Changeset in webkit [270275] by timothy_horton@apple.com
  • 9 edits
    1 copy
    2 adds in trunk/Source/WebKit

GPU Process: IOSurfaces should not be mapped into the Web Content Process
https://bugs.webkit.org/show_bug.cgi?id=219368

Reviewed by Ryosuke Niwa.

Since the Web Content process sandbox will eventually not have access to IOKit,
it will not be able to map/lock/use IOSurfaces. Thankfully, all it really needs
to be able to do is carry a reference to the surface from the GPU process to the
UI process (where it is mapped and applied as layer contents).

  • Shared/ConcreteShareableImageBuffer.h: Copied from Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h.

(WebKit::ConcreteShareableImageBuffer::create):
(WebKit::ConcreteShareableImageBuffer::ConcreteShareableImageBuffer):
(WebKit::ConcreteShareableImageBuffer::createImageBufferBackendHandle):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
Add and adopt ConcreteShareableImageBuffer. This is a ConcreteImageBuffer that knows how
to create an ImageBufferBackendHandle, with no other behavior change.
Previously, we were (completely incorrectly) casting ConcreteImageBuffer to RemoteImageBufferProxy
to get this behavior, and somehow just got very lucky.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h:
  • WebProcess/GPU/graphics/PlatformRemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:

Remove the ImageBufferShareableIOSurfaceBackend create() method that takes
an ImageBufferBackendHandle, since we always use the Unmapped variant.
ImageBufferShareableIOSurfaceBackend is now only used:

  • in the GPU process
  • in the Web Content process when DOM rendering in the GPU process is disabled

In both cases, the process that uses ImageBufferShareableIOSurfaceBackend also
originates the surface, so does not create it from a handle.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableUnmappedIOSurfaceBackend.cpp: Added.

(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::create):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::createImageBufferBackendHandle const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::context const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::copyNativeImage const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::copyImage const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::draw):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::drawPattern):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::toDataURL const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::toData const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::toBGRAData const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::getImageData const):
(WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::putImageData):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableUnmappedIOSurfaceBackend.h: Added.

Add and adopt ImageBufferShareableUnmappedIOSurfaceBackend, which is a ImageBufferBackend
that cannot perform most ImageBufferBackend duties, except creating an ImageBufferBackendHandle,
which it does by cloning the existing handle. It explicitly does *not* map the IOSurface in the
process, and is meant for use in Web Content processes that do not have access to IOSurface.

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

Fix some unified source issues.

3:57 PM Changeset in webkit [270274] by Russell Epstein
  • 868 edits
    18 moves
    22 adds
    141 deletes in branches/safari-611.1.7-branch

Cherry-pick r270272. rdar://problem/71819648

Unreviewed, reverting r270129, r270194, and r270258.

r270129 broke macCatalyst build

Reverted changesets:

"Update ANGLE 2020-11-12"
https://bugs.webkit.org/show_bug.cgi?id=218877
https://trac.webkit.org/changeset/270129

"Fix ANGLE CMakeLists.txt warnings"
https://bugs.webkit.org/show_bug.cgi?id=219260
https://trac.webkit.org/changeset/270194

"Attempted build fix for Mac Catalyst. Include the SystemInfo
header."
https://trac.webkit.org/changeset/270258

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

3:43 PM Changeset in webkit [270273] by Chris Dumez
  • 18 edits
    2 adds in trunk

sessionStorage should not be cloned when a window is opened with rel=noopener
https://bugs.webkit.org/show_bug.cgi?id=218804
<rdar://problem/71286606>

Reviewed by Alex Christensen.

Source/WebCore:

sessionStorage should not be cloned when a window is opened with rel=noopener, as per:

Both Firefox and Chrome have already implemented this behavior.

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

(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):

  • loader/FrameLoaderClient.h:
  • page/Chrome.cpp:

(WebCore::Chrome::createWindow const):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

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

(WebFrameLoaderClient::dispatchCreatePage):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchCreatePage):

  • WebCoreSupport/WebFrameLoaderClient.h:

Tools:

Add API test coverage.

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

(-[SessionStorageUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(-[SessionStorageUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
(createAndInitializeTestWebView):
(checkSessionStorageInNewWindow):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/confirm.html: Added.
3:37 PM Changeset in webkit [270272] by Ryan Haddad
  • 868 edits
    6 copies
    12 moves
    22 adds
    101 deletes in trunk

Unreviewed, reverting r270129, r270194, and r270258.

r270129 broke macCatalyst build

Reverted changesets:

"Update ANGLE 2020-11-12"
https://bugs.webkit.org/show_bug.cgi?id=218877
https://trac.webkit.org/changeset/270129

"Fix ANGLE CMakeLists.txt warnings"
https://bugs.webkit.org/show_bug.cgi?id=219260
https://trac.webkit.org/changeset/270194

"Attempted build fix for Mac Catalyst. Include the SystemInfo
header."
https://trac.webkit.org/changeset/270258

3:24 PM Changeset in webkit [270271] by Alan Coon
  • 8 edits in branches/safari-610.3.7.0-branch/Source

Versioning.

WebKit-7610.3.7.0.4

3:23 PM Changeset in webkit [270270] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.0.3

Tag Safari-610.3.7.0.3.

3:15 PM Changeset in webkit [270269] by commit-queue@webkit.org
  • 9 edits in trunk

Allow blob URLs with fragments
https://bugs.webkit.org/show_bug.cgi?id=219361

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-30
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt:
  • web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt:
  • web-platform-tests/FileAPI/url/url-with-xhr.any-expected.txt:
  • web-platform-tests/FileAPI/url/url-with-xhr.any.worker-expected.txt:

Source/WebCore:

When fetching blob content, we use the whole blob URL.
In order to match Chrome and Firefox, we need to remove the fragment if there is one.

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::getBlobDataFromURL const):

3:05 PM Changeset in webkit [270268] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git transition] Add old aliases to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=219367
<rdar://problem/71821209>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/common/config/contributors.json: Add old aliases for Ken Kocienda and

Maciej Stachowiak.

2:25 PM Changeset in webkit [270267] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7611.1.8

2:23 PM Changeset in webkit [270266] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Move old buildbot unittests to steps_unittest_old.py (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=219364
<rdar://problem/71821157>

Unreviewed minor follow-up fix.

  • CISupport/build-webkit-org/loadConfig_unittest.py:
2:12 PM Changeset in webkit [270265] by commit-queue@webkit.org
  • 13 edits in trunk

Add support for the Wasm i64 sign-extension-ops proposal
https://bugs.webkit.org/show_bug.cgi?id=218990

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-11-30
Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/spec-tests/i64.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

  • llint/WebAssembly.asm:
  • offlineasm/arm64.rb:
  • offlineasm/cloop.rb:
  • offlineasm/instructions.rb:
  • offlineasm/x86.rb:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Extend8S>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Extend16S>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Extend32S>):

  • wasm/wasm.json:

LayoutTests:

  • workers/wasm-references/test.js:
1:49 PM Changeset in webkit [270264] by Russell Epstein
  • 2 edits in branches/safari-611.1.7-branch/Source/ThirdParty/ANGLE

Cherry-pick r270258. rdar://problem/71819648

Attempted build fix for Mac Catalyst. Include the SystemInfo header.

  • src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp:

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

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

REGRESSION: imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219366

unreviewed test gardening.

  • platform/mac/TestExpectations:
1:45 PM Changeset in webkit [270262] by aakash_jain@apple.com
  • 3 edits
    2 moves in trunk/Tools

[build.webkit.org] Move old buildbot unittests to steps_unittest_old.py
https://bugs.webkit.org/show_bug.cgi?id=219364

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/committer_auth_unittest.py: Removed.
  • CISupport/build-webkit-org/committer_auth_unittest_old.py: Moved from Tools/CISupport/build-webkit-org/committer_auth_unittest.py.
  • CISupport/build-webkit-org/steps_unittest.py: Removed.
  • CISupport/build-webkit-org/steps_unittest_old.py: Moved from Tools/CISupport/build-webkit-org/steps_unittest.py.
  • CISupport/ews-build/steps.py:

(RunBuildWebKitOrgUnitTests): Updated ews configuration appropriately.
(RunBuildWebKitOrgUnitTests.getResultSummary):

  • CISupport/ews-build/steps_unittest.py: Updated ews unit-tests.
1:42 PM Changeset in webkit [270261] by Russell Epstein
  • 1 copy in branches/safari-611.1.7-branch

New branch.

1:38 PM Changeset in webkit [270260] by Russell Epstein
  • 1 copy in tags/Safari-611.1.6.1

Tag Safari-611.1.6.1.

1:23 PM Changeset in webkit [270259] by Russell Epstein
  • 8 edits in branches/safari-611.1.6-branch/Source

Versioning.

WebKit-7611.1.6.1

12:54 PM Changeset in webkit [270258] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Attempted build fix for Mac Catalyst. Include the SystemInfo header.

  • src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp:
12:29 PM Changeset in webkit [270257] by James Darpinian
  • 15 edits
    6 adds in trunk

Support KHR_parallel_shader_compile
https://bugs.webkit.org/show_bug.cgi?id=219266

Reviewed by Kenneth Russell.

Source/WebCore:

Tested by webgl/conformance/extensions/khr-parallel-shader-compile.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/KHRParallelShaderCompile.cpp: Added.

(WebCore::KHRParallelShaderCompile::KHRParallelShaderCompile):
(WebCore::KHRParallelShaderCompile::getName const):
(WebCore::KHRParallelShaderCompile::supported):

  • html/canvas/KHRParallelShaderCompile.h: Added.
  • html/canvas/KHRParallelShaderCompile.idl: Added.
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::loseExtensions):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/ExtensionsGL.h:

LayoutTests:

  • webgl/conformance/extensions/khr-parallel-shader-compile-expected.txt: Added.
  • webgl/conformance/extensions/khr-parallel-shader-compile.html: Added.
  • webgl/resources/webgl_test_files/conformance/extensions/khr-parallel-shader-compile.html: Added.
11:36 AM Changeset in webkit [270256] by youenn@apple.com
  • 24 edits in trunk

Introduce an experimental flag specific to VP9 profile 2
https://bugs.webkit.org/show_bug.cgi?id=219350

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Allow to enable profile 0 but not profile 2 for VP9 encoder and decoder.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(webrtc::createWebKitEncoderFactory):

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:

(-[RTCDefaultVideoDecoderFactory initWithH265:vp9Profile0:vp9Profile2:vp9VTB:]):
(-[RTCDefaultVideoDecoderFactory supportedCodecs]):
(-[RTCDefaultVideoDecoderFactory initWithH265:vp9:vp9VTB:]): Deleted.

  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:

(-[RTCDefaultVideoEncoderFactory initWithH265:vp9Profile0:vp9Profile2:lowLatencyH264:]):
(+[RTCDefaultVideoEncoderFactory supportedCodecs]):
(+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9Profile0:vp9Profile2:]):
(-[RTCDefaultVideoEncoderFactory supportedCodecs]):
(-[RTCDefaultVideoEncoderFactory initWithH265:vp9:lowLatencyH264:]): Deleted.
(+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9:]): Deleted.

Source/WebCore:

Introduce an experimental flag for VP9 profile 2.
Pass it to libwebrtc backend when creating codec factories.
Profile 2 support is only enabled if profile 0 support is also enabled.
Covered by updated test.

  • page/Page.cpp:

(WebCore::m_shouldRelaxThirdPartyCookieBlocking):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCVP9Profile0CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9Profile0CodecEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCVP9Profile2CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9Profile2CodecEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCVP9CodecEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9CodecEnabled): Deleted.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

(WebCore::LibWebRTCProvider::setVP9Support):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

  • testing/Internals.cpp:

(WebCore::Internals::setWebRTCVP9Support):

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

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • webrtc/vp9-expected.txt:
  • webrtc/vp9-vtb.html:
  • webrtc/vp9.html:
11:29 AM Changeset in webkit [270255] by youenn@apple.com
  • 4 edits in trunk

Missing WebRTC Metrics in iOS 14 Beta 5
https://bugs.webkit.org/show_bug.cgi?id=215678
<rdar://problem/67625414>

Reviewed by Eric Carlson.

Source/WebCore:

Expose more stats and fix a bug in stat exposure code for kind.
Covered by updated test.

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillInboundRtpStreamStats):
(WebCore::fillRemoteInboundRtpStreamStats):
(WebCore::fillOutboundRtpStreamStats):

LayoutTests:

  • webrtc/video-stats.html:
11:23 AM Changeset in webkit [270254] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Support remote repositories in git-webkit
https://bugs.webkit.org/show_bug.cgi?id=219172
<rdar://problem/71594909>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program.py:

(Command.parser): Remove repository, since it depends on the parser.
(Command.main): Support arguments to main functions.
(Find.parser): Remove repository, since it depends on the parser.
(Checkout.parser): Ditto.
(Checkout.main): Early return if specified repository is remote.
(main): Construct repository based on path argument.

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

(TestCheckout):
(TestCheckout.test_checkout_remote):

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

(TestFind.test_baisc_svn_remote):

11:20 AM Changeset in webkit [270253] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebGL2] Rasterizer discard interferes with implicit clears
https://bugs.webkit.org/show_bug.cgi?id=219061

Patch by Kenneth Russell <kbr@chromium.org> on 2020-11-30
Reviewed by Dean Jackson.

When rasterizer discard is enabled, user-level draw calls and
clears skip the implicit clear since they have no effect.
Readbacks and copies still perform the implicit clear.

A new WebGL conformance test has been added for this in
https://github.com/KhronosGroup/WebGL/pull/3183 which passes with
this fix. WebKit's TestRunner doesn't run the composite phase as
the browser or MiniBrowser do, so wouldn't pass this test as
integrated as a layout test. Per discussion with dino and
kkinnunen on Slack, will address this in follow-on work.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::copyTexSubImage3D):
(WebCore::WebGL2RenderingContext::readPixels):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::ScopedDisableRasterizerDiscard::ScopedDisableRasterizerDiscard):
(WebCore::ScopedDisableRasterizerDiscard::~ScopedDisableRasterizerDiscard):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContextBase::clear):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::disable):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::enable):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):

  • html/canvas/WebGLRenderingContextBase.h:
11:08 AM Changeset in webkit [270252] by youenn@apple.com
  • 50 edits
    1 copy
    33 adds
    2 deletes in trunk/LayoutTests

Update WPT WebRTC tests
https://bugs.webkit.org/show_bug.cgi?id=219272

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc: Resynced.

LayoutTests:

Mark a new test as flaky in iOS simulator.

  • platform/ios-simulator-wk2/TestExpectations:
  • tests-options.json:
10:44 AM Changeset in webkit [270251] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix.

Fix non-unified builds after r270224.

  • display/DisplayTreeBuilder.cpp:
  • display/DisplayTreeBuilder.h:
10:13 AM Changeset in webkit [270250] by Aditya Keerthi
  • 11 edits in trunk/Source/WebCore

RenderTheme::paintDecorations should return void
https://bugs.webkit.org/show_bug.cgi?id=219357

Reviewed by Simon Fraser.

RenderTheme::paintDecorations currently returns a boolean value.
However, the returned value is unused. For clarity, the method is
updated to return void. The various "paint*Decorations" methods
called in RenderTheme:paintDecorations are also updated to return void.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintDecorations):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintFileUploadIconDecorations):
(WebCore::RenderTheme::paintCheckboxDecorations):
(WebCore::RenderTheme::paintRadioDecorations):
(WebCore::RenderTheme::paintButtonDecorations):
(WebCore::RenderTheme::paintTextFieldDecorations):
(WebCore::RenderTheme::paintTextAreaDecorations):
(WebCore::RenderTheme::paintMenuListDecorations):
(WebCore::RenderTheme::paintMenuListButtonDecorations):
(WebCore::RenderTheme::paintPushButtonDecorations):
(WebCore::RenderTheme::paintSquareButtonDecorations):
(WebCore::RenderTheme::paintSliderThumbDecorations):
(WebCore::RenderTheme::paintSearchFieldDecorations):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::paintMenuListButtonDecorations):

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

(WebCore::RenderThemeIOS::paintCheckboxDecorations):
(WebCore::RenderThemeIOS::paintRadioDecorations):
(WebCore::RenderThemeIOS::paintTextFieldDecorations):
(WebCore::RenderThemeIOS::paintTextAreaDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintSliderThumbDecorations):
(WebCore::RenderThemeIOS::paintSearchFieldDecorations):
(WebCore::RenderThemeIOS::paintButtonDecorations):
(WebCore::RenderThemeIOS::paintPushButtonDecorations):
(WebCore::RenderThemeIOS::paintFileUploadIconDecorations):

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

(WebCore::RenderThemeMac::paintMenuListButtonDecorations):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::paintMenuListButtonDecorations):

  • rendering/RenderThemeWin.h:
9:40 AM Changeset in webkit [270249] by Antti Koivisto
  • 9 edits in trunk/Source/WebKit

Remove throttling code from NetworkLoad
https://bugs.webkit.org/show_bug.cgi?id=219347

Reviewed by Anders Carlsson.

It is not a good latency simulation and no one is using it anyway.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::Throttle::Throttle): Deleted.
(WebKit::NetworkLoad::throttleDelayCompleted): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::shouldLogCookieInformation const):
(WebKit::NetworkSession::loadThrottleLatency const): Deleted.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

9:39 AM Changeset in webkit [270248] by commit-queue@webkit.org
  • 5 edits
    2 adds
    2 deletes in trunk

getComputedStyle rounds lineHeight to nearest pixel
https://bugs.webkit.org/show_bug.cgi?id=216601

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-11-30
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:

Update test reflecting the fact that serialization of line-height from
getComputedStyle is now represented fractionally (when appropriate).
Prior to this patch, line-height serialization was always an integer value.

Source/WebCore:

When serializing line-height for getComputedStyle, ensure the
value can be represented fractionally (when appropriate). Prior to this
patch, line-height serialization was always an integer value. Per
spec, the used value of line-height can be a <number> value, which
is fractional. Gecko and Chromium allow fractional line-heights to be
returned from getComputedStyle, further confirming this.

https://drafts.csswg.org/css2/#propdef-line-height

Test: fast/css/line-height-get-computed-style.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::lineHeightFromStyle): Cast result to double instead of
int since line-height can be represented fractionally.

LayoutTests:

Add test ensuring serialization of line-height from
getComputedStyle is represented fractionally (when appropriate).
Prior to this patch, line-height serialization was always an integer value.

The line-height-rounding.html test has been removed, as it expected
line-height to serialize as an integer, which seems wrong
considering the used value for line-height can be a <number>
(which is fractional). Gecko and Chromium allow fractional
line-heights to be returned from getComputedStyle, further
confirming this.

https://drafts.csswg.org/css2/#propdef-line-height

  • fast/css/line-height-get-computed-style-expected.txt: Added.
  • fast/css/line-height-get-computed-style.html: Added.
  • fast/css/line-height-rounding-expected.txt: Removed.
  • fast/css/line-height-rounding.html: Removed.
9:09 AM WebKitGTK/2.30.x edited by clopez@igalia.com
(diff)
9:07 AM Changeset in webkit [270247] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitscmpy] webkitscmpy.test.svn_unittest.TestRemoteSvn.test_info timezone dependent
https://bugs.webkit.org/show_bug.cgi?id=219263
<rdar://problem/71806358>

Reviewed by Aakash Jain.

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

(TestRemoteSvn.test_info):

8:39 AM Changeset in webkit [270246] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update RunTest262Tests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219356

Reviewed by Jonathan Bedard.

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

(RunTest262Tests):
(RunTest262Tests.start): Initialized log observer.
(RunTest262Tests.parseOutputLine): Parse each log line as they come.
(RunTest262Tests.countFailures): Updated to return failedTestCount.

8:35 AM Changeset in webkit [270245] by Aditya Keerthi
  • 10 edits in trunk/Source/WebCore

Use real dates and times as placeholders for date/time inputs with editable components
https://bugs.webkit.org/show_bug.cgi?id=219216
<rdar://problem/71636615>

Reviewed by Devin Rousso.

Currently, date/time inputs with editable components have "--" as a
placeholder when the input is empty. This is undesirable for two reasons:

  1. "--" does not fill the width of the component, leading to an unpleasant appearance.
  2. The order of the date/time components is unclear.

To resolve these issues, this patch introduces real dates and times as
placeholders. For dates, the current date is used as a placeholder.
For times, a fixed time (such as "12:30 PM") is used, to avoid being
overly specific. Note that the second and millisecond fields for times
will always have "00" and "000" as a placeholder respectively.

When the placeholder is visible, the text color is changed to dark gray,
matching the placeholder in regular text inputs. Note that date/time
placeholders are not customizable in any way, as it is an unspecified aspect
of the element. Separators are left in the existing text color, to avoid
making the input look disabled.

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditElement::DateTimeEditElement):
(WebCore::DateTimeEditElement::placeholderDate const):

  • html/shadow/DateTimeEditElement.h:

Introduced m_placeholderDate, which is set to the current date.

  • html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::setEmptyValue):
(WebCore::DateTimeFieldElement::setValueAsInteger):
(WebCore::DateTimeFieldElement::visibleValue const):
(WebCore::DateTimeFieldElement::updateVisibleValue):

Removed early return when the previous visible value is equal to the
updated visible value. This can occur when the placeholder value is equal
to the value entered by the user. In these instances, we should still
dispatch input and change events.

  • html/shadow/DateTimeFieldElement.h:

Added base class implementations of setEmptyValue and setValueAsInteger
so that the logic to change the text color when a placeholder is visible
can be shared.

Changed visibleValue to no longer be a pure virtual method, as the
implementations in derived classes were very similar, and can be
abstracted. For this reason, the new placeholderValue pure virtual method
was added.

  • html/shadow/DateTimeFieldElements.cpp:

(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
(WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement):
(WebCore::DateTimeMeridiemFieldElement::DateTimeMeridiemFieldElement):
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
(WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):

Months are 0-indexed, so we add 1 to the value returned by month().

(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
(WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
(WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):

  • html/shadow/DateTimeNumericFieldElement.cpp:

(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::setEmptyValue):
(WebCore::DateTimeNumericFieldElement::setValueAsInteger):
(WebCore::DateTimeNumericFieldElement::placeholderValue const):
(WebCore::DateTimeNumericFieldElement::valueAsInteger const):

  • html/shadow/DateTimeNumericFieldElement.h:
  • html/shadow/DateTimeSymbolicFieldElement.cpp:

(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
(WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
(WebCore::DateTimeSymbolicFieldElement::setValueAsInteger):
(WebCore::DateTimeSymbolicFieldElement::placeholderValue const):
(WebCore::DateTimeSymbolicFieldElement::valueAsInteger const):

  • html/shadow/DateTimeSymbolicFieldElement.h:
7:39 AM Changeset in webkit [270244] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant const ContainerBox& formattingContextRoot from LineBuilder c'tor
https://bugs.webkit.org/show_bug.cgi?id=219339

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::root const):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::root const): Deleted.

7:08 AM Changeset in webkit [270243] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Automatically delete old data from ews buildbot instance
https://bugs.webkit.org/show_bug.cgi?id=214921

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/master.cfg: Configured JanitorConfigurator to delete logs older than one year, and

configured to run every morning.

7:07 AM Changeset in webkit [270242] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Properly garden webrtc crashes

Unreviewed test gardening.

  • platform/gtk-wayland/TestExpectations: Move wayland-specific issue here
  • platform/gtk/TestExpectations: Updated already existing expectations
  • platform/wpe/TestExpectations: Remove undeed pass entries from previous unimplemented-like bugs that are already fixed. These entries were overriding the generic glib entries.
7:05 AM Changeset in webkit [270241] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update RunLLINTCLoopTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219084

Reviewed by Jonathan Bedard.

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

(RunLLINTCLoopTests):
(RunLLINTCLoopTests.start): Initialized log observer.
(RunLLINTCLoopTests.parseOutputLine): Parse each log line as they come.
(RunLLINTCLoopTests.countFailures): Updated to return failedTestCount.

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

[LFC][IFC] Preferred width computation is not constrained by existing floats
https://bugs.webkit.org/show_bug.cgi?id=219338

Reviewed by Antti Koivisto.

Let's create a fake(empty) floating state/context for the line as existing floats should not constrain the min/max content widths.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

6:59 AM Changeset in webkit [270239] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Add missing TableGrid::Row::m_baseline initialization
https://bugs.webkit.org/show_bug.cgi?id=219336

Reviewed by Antti Koivisto.

  • layout/tableformatting/TableGrid.h:
6:11 AM Changeset in webkit [270238] by Andres Gonzalez
  • 7 edits in trunk/Source/WebCore

AXIsolatedTree::m_axObjectCache should not be accessed on the secondary AX thread.
https://bugs.webkit.org/show_bug.cgi?id=219223

Reviewed by Chris Fleizach.

AXIsolatedTree::m_axObjectCache was being set on the main thread and
also accessed on the AX thread in the nodeForID and applyPendingChanges
methods. This problem is fixed with this change by adding the member
variable m_usedOnAXThread that is initialized on the main thread and only
used on the AX thread. This means also a performance optimization since
nodeForID and applyPendingChanges are called very frequently.
In addition, the change to AXIsolatedTree::create fixes a possible race
condition between the time the newly created tree was added to the map
of trees on the main thread, and the time that the tree is ready to be
used on the AX thread. Now the newly created tree is not added to the
trees map until it is fully functional.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreateIsolatedTree const):
(WebCore::AXObjectCache::generateIsolatedTree): Deleted, the creation
and initialization of the isolated tree is now done in
AXIsolatedTree::create.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::pageID const): Getter for the m_pageID member
variable.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject): Now takes a pointer t the
tree instead of a tree ID.
(WebCore::AXIsolatedObject::create): Same as above.
(WebCore::AXIsolatedObject::associatedAXObject const):
(WebCore::AXIsolatedObject::setSelectedChildren): Check for nullity of
the AXObjectCache.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::AXIsolatedTree): Takes an AXObjectCache.
(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::create): Takes an AXObjectCache.
(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::applyPendingChanges):
(WebCore::AXIsolatedTree::createTreeForPageID): Deleted, became
AXIsolatedTree::create.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::axObjectCache const):
(WebCore::AXIsolatedTree::setAXObjectCache): Deleted, can be set only at
construction time.

4:49 AM Changeset in webkit [270237] by svillar@igalia.com
  • 7 edits
    30 adds in trunk/LayoutTests

[css-flex] Import flex-aspect-ratio-img-* tests
https://bugs.webkit.org/show_bug.cgi?id=219344

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt: Updated.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html: Ditto.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-011-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-011.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-012-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-012.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

As part of the work to fix the images with aspect ratio handling when they're flex items, we're importing the latest
additions to the WPT test suite related to that. A few of them work as expected but others require fixes. Note that
one of the tests also updated their expectations and it's now failing now 2 subtests.

2:01 AM Changeset in webkit [270236] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] webrtc/captureCanvas-webrtc-software-h264-baseline.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=218875
<rdar://problem/71349101>

Unreviewed.

  • platform/mac-wk2/TestExpectations:

Remove flaky expectation.

1:29 AM Changeset in webkit [270235] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Media player does not properly inhibit, uninhibit sleep
https://bugs.webkit.org/show_bug.cgi?id=186971

Reviewed by Philippe Normand.

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

(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates): Call the
player to update the playback state as it is done in the regular
player.

Note: See TracTimeline for information about the timeline view.