Timeline



Feb 29, 2020:

9:01 PM Changeset in webkit [257688] by ysuzuki@apple.com
  • 61 edits in trunk

Remove std::lock_guard
https://bugs.webkit.org/show_bug.cgi?id=206451

Reviewed by Anders Carlsson.

Source/bmalloc:

  • bmalloc/Mutex.h:

Source/JavaScriptCore:

  • API/JSVirtualMachine.mm:

(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):

  • API/glib/JSCVirtualMachine.cpp:

(addWrapper):
(removeWrapper):

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::analyzeNode):
(JSC::HeapSnapshotBuilder::analyzeEdge):
(JSC::HeapSnapshotBuilder::analyzePropertyNameEdge):
(JSC::HeapSnapshotBuilder::analyzeVariableNameEdge):
(JSC::HeapSnapshotBuilder::analyzeIndexEdge):
(JSC::HeapSnapshotBuilder::setOpaqueRootReachabilityReasonForCell):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • runtime/JSRunLoopTimer.cpp:

(JSC::JSRunLoopTimer::timerDidFire):

Source/WebCore:

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::reset):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::setFormat):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::setPeriodicWave):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::setPanningModel):

  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::setOversample):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::closeDatabase):
(WebCore::Database::getCachedVersion const):
(WebCore::Database::setCachedVersion):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::addProposedDatabase):
(WebCore::DatabaseManager::removeProposedDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • crypto/CryptoAlgorithmRegistry.cpp:

(WebCore::CryptoAlgorithmRegistry::identifier):
(WebCore::CryptoAlgorithmRegistry::name):
(WebCore::CryptoAlgorithmRegistry::create):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):

  • inspector/agents/WebHeapAgent.cpp:

(WebCore::SendGarbageCollectionEventsTask::addGarbageCollection):
(WebCore::SendGarbageCollectionEventsTask::reset):
(WebCore::SendGarbageCollectionEventsTask::timerFired):

  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):

  • page/scrolling/generic/ScrollingThreadGeneric.cpp:

(WebCore::ScrollingThread::initializeRunLoop):

  • page/scrolling/mac/ScrollingThreadMac.mm:

(WebCore::ScrollingThread::initializeRunLoop):

  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::~ReverbConvolver):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::clear):

  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::~WebAudioSourceProviderAVFObjC):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::setIsDatabaseOpeningForbidden):
(WebCore::SQLiteDatabase::open):

  • platform/sql/SQLiteDatabaseTracker.cpp:

(WebCore::SQLiteDatabaseTracker::setClient):
(WebCore::SQLiteDatabaseTracker::incrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::decrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::hasTransactionInProgress):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::buildBaseTextCodecMaps):
(WebCore::newTextCodec):
(WebCore::atomCanonicalTextEncodingName):

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::traverse):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeThreadMessageReceiver):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::installIncomingSyncMessageCallback):
(IPC::Connection::uninstallIncomingSyncMessageCallback):
(IPC::Connection::hasIncomingSyncMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchMessageToWorkQueueReceiver):
(IPC::Connection::dispatchMessageToThreadReceiver):
(IPC::Connection::dispatchOneIncomingMessage):
(IPC::Connection::dispatchIncomingMessages):

  • Shared/BlockingResponseMap.h:

(BlockingResponseMap::didReceiveResponse):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(prepareDataForPrintingOnSecondaryThread):

Source/WebKitLegacy/mac:

  • DOM/DOMInternal.mm:

(getDOMWrapper):
(addDOMWrapper):
(removeDOMWrapper):

Source/WTF:

Remove use of std::lock_guard. This is deprecated in C++17.

  1. For particularly low-level usage (like, bmalloc, std::mutex), use std::scoped_lock.
  2. For the other purpose, use holdLock.
  • benchmarks/ConditionSpeedTest.cpp:
  • wtf/CryptographicallyRandomNumber.cpp:
  • wtf/HashTable.cpp:

(WTF::HashTableStats::recordCollisionAtCount):
(WTF::HashTableStats::dumpStats):

  • wtf/HashTable.h:

(WTF::KeyTraits>::invalidateIterators):
(WTF::addIterator):
(WTF::removeIterator):

  • wtf/Language.cpp:

(WTF::userPreferredLanguages):

  • wtf/MainThread.cpp:

(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
(WTF::callOnMainAndWait):

  • wtf/StackStats.cpp:

(WTF::StackStats::CheckPoint::CheckPoint):
(WTF::StackStats::CheckPoint::~CheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
(WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):

  • wtf/WordLock.cpp:

(WTF::WordLock::unlockSlow):

  • wtf/cf/LanguageCF.cpp:

(WTF::languagePreferencesDidChange):
(WTF::platformUserPreferredLanguages):

  • wtf/text/StringView.cpp:

(WTF::StringView::invalidate):
(WTF::StringView::adoptUnderlyingString):
(WTF::StringView::setUnderlyingString):

  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::Collator::Collator):
(WTF::Collator::~Collator):

  • wtf/win/LanguageWin.cpp:

(WTF::platformLanguage):

Tools:

Add std::lock_guard lint rule to prevent from using it.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_lock_guard):
(check_style):
(CppChecker):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_lock_guard):

  • TestWebKitAPI/Tests/WTF/Condition.cpp:
  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
  • TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:

(assertHasObjects):
(assertHasOnlyObjects):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AXThread::dispatch):
(WTR::AXThread::dispatchFunctionsFromAXThread):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AXThread::initializeRunLoop):

7:32 PM Changeset in webkit [257687] by pvollan@apple.com
  • 14 edits
    1 add in trunk

[Cocoa] Mapping from MIME type to UTI type should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=208415

Reviewed by Brent Fulgham.

Source/WebCore:

This is currently done in the WebContent process, but since this is using a system service which will be closed,
this mapping should be moved to the UI process. The UI process will create this mapping for a set of mime types,
and send it to the WebContent process.

API test: WebKit.UTIFromMIMEType

  • platform/network/mac/UTIUtilities.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::mapUTIFromMIMEType):
(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
(WebCore::cacheUTIFromMimeType):
(WebCore::UTIFromMIMEType):
(WebCore::mimeTypes):
(WebCore::createUTIFromMIMETypeMap):
(WebCore::setUTIFromMIMETypeMap):

  • testing/Internals.cpp:

(WebCore::Internals::getUTIFromMIMEType):

  • testing/Internals.mm:

(WebCore::Internals::getUTIFromMIMEType):

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

Source/WebKit:

Send the mapping between MIME types and UTI types to the WebContent process as part of the Web
process creation parameters.

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/UTIFromMIMEType.mm: Added.

(TEST):

5:36 PM Changeset in webkit [257686] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed unified build fix; add include macro for LayerHostingContext.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
10:12 AM Changeset in webkit [257685] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] Consolidate precomputeVerticalPositionForAncestors and precomputeVerticalPosition
https://bugs.webkit.org/show_bug.cgi?id=208414
<rdar://problem/59919467>

Reviewed by Antti Koivisto.

BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors takes care of both the box and its ancestors now.
This is also in preparation for making precompute logic a bit simpler.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPosition): Deleted.
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRoot): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
10:05 AM Changeset in webkit [257684] by Simon Fraser
  • 2 edits in trunk/Source/WebKitLegacy/win

Fix the Windows build after r257645.

  • WebView.cpp:

(WebView::setAcceleratedCompositing):

8:24 AM Changeset in webkit [257683] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Floats] FloatingState::top should return topmost logical vertical position
https://bugs.webkit.org/show_bug.cgi?id=208412
<rdar://problem/59918798>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/block-only/block-root-top-should-start-from-float-top.html

When computing the used height for an auto: height formatting root block level container, we have to take both the non-floating and floating
in-flow boxes into account. This patch ensures that in case of multiple floats, we use the topmost float's logical top position.

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::top const):

LayoutTests:

  • fast/layoutformattingcontext/block-only/block-root-top-should-start-from-float-top-expected.html: Added.
  • fast/layoutformattingcontext/block-only/block-root-top-should-start-from-float-top.html: Added.
7:20 AM Changeset in webkit [257682] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Floats] The used available width for float avoider with clear always matches the containing block's constraint
https://bugs.webkit.org/show_bug.cgi?id=208411
<rdar://problem/59918356>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/block-only/float-clear-with-auto-width.html

Float clear pushes the block level box either below the floats, or just one side below but the other side could overlap.
What it means is that the used available width always matches the containing block's constraint.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear):

LayoutTests:

  • fast/layoutformattingcontext/block-only/float-clear-with-auto-width-expected.html: Added.
  • fast/layoutformattingcontext/block-only/float-clear-with-auto-width.html: Added.
2:00 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
12:04 AM Changeset in webkit [257681] by ysuzuki@apple.com
  • 19 edits in trunk/Source

[JSC] BuiltinNames' HashMap should be small
https://bugs.webkit.org/show_bug.cgi?id=208404

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch converts public-to-private-name-map from HashMap<RefPtr<UniquedStringImpl>, SymbolImpl*> to HashSet<String> to save half of memory.
The key is that private names have the same string content to the public names. We can just query with string content to the HashSet of
private names, and we can get private names.

The problem is that we also have a hack inserting string <-> non-private well-known Symbol mappings into this table. These symbols do not have
the same content to the public string. So the above assumption is broken.

To make the above assumption valid, we have a separate small HashMap which holds string <-> non-private well-known Symbol mappings. Since # of
well-known Symbols are only 13, this new HashMap is taking at most 512B for entries, which is much smaller compared to the saved memory by
converting HashMap to HashSet for private names (32KB).

To allow it, we introduce new well-known Symbol identifier syntax to builtin JS, which is "@@iterator" format. If there is two "@", we parse this
identifier as a well-known Symbol.

  • builtins/ArrayConstructor.js:

(from.wrapper.iterator):
(from):
(from.wrapper.iteratorSymbol): Deleted.

  • builtins/ArrayPrototype.js:

(globalPrivate.concatSlowPath):
(concat):

  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames):
(JSC::CharBufferSeacher::hash):
(JSC::CharBufferSeacher::equal):
(JSC::lookUpPrivateNameImpl):
(JSC::lookUpWellKnownSymbolImpl):
(JSC::BuiltinNames::lookUpPrivateName const):
(JSC::BuiltinNames::lookUpWellKnownSymbol const):

  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::lookUpPrivateName const):
(JSC::BuiltinNames::lookUpWellKnownSymbol const):
(JSC::BuiltinNames::checkPublicToPrivateMapConsistency):
(JSC::BuiltinNames::appendExternalName):
(JSC::BuiltinNames::getPublicName const): Deleted.

  • builtins/GlobalOperations.js:

(globalPrivate.speciesConstructor):

  • builtins/IteratorHelpers.js:

(performIteration):

  • builtins/StringPrototype.js:

(match):
(matchAll):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(replaceAll):
(search):
(split):

  • builtins/TypedArrayConstructor.js:

(from.wrapper.iterator):
(from):
(from.wrapper.iteratorSymbol): Deleted.

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArraySpeciesConstructor):
(map):
(filter):

  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_getByIdDirectPrivate):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByIdDirectPrivate):

  • parser/Lexer.cpp:

(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):

  • runtime/CachedTypes.cpp:

(JSC::CachedUniquedStringImplBase::encode):
(JSC::CachedUniquedStringImplBase::decode const):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):
(JSC::CommonIdentifiers::lookUpPrivateName const): Deleted.
(JSC::CommonIdentifiers::getPublicName const): Deleted.

  • runtime/CommonIdentifiers.h:
  • tools/JSDollarVM.cpp:

(JSC::functionGetPrivateProperty):

Source/WTF:

  • wtf/text/AtomStringImpl.cpp:

(WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer): Deleted.

  • wtf/text/StringImpl.h:

(WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer):

Feb 28, 2020:

11:21 PM Changeset in webkit [257680] by Peng Liu
  • 28 edits
    1 add in trunk/Source

[Media in GPU process] Implement the video fullscreen and Picture-in-Picture support
https://bugs.webkit.org/show_bug.cgi?id=208252

Reviewed by Simon Fraser.

Source/WebCore:

Covered by existing tests.

This patch moves the creation of the CALayer for video fullscreen and picture-in-picture from
VideoFullscreenManager to MediaPlayerPrivate classes. With this change, we can support
video fullscreen and picture-in-picture no matter the "Media in GPU process"
feature is enabled or not. The function createVideoFullscreenLayer() is added to
MediaPlayer and MediaPlayerPrivate for that purpose.

There are duplicated code snippets to create a CALayer in MediaPlayerPrivateAVFoundationObjC,
MediaPlayerPrivateMediaSourceAVFObjC, and MediaPlayerPrivateMediaStreamAVFObjC.
That will be fixed in a future refactoring (webkit.org/b/208342).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::createVideoFullscreenLayer):

  • html/HTMLMediaElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::createVideoFullscreenLayer):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::createVideoFullscreenLayer):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::createVideoFullscreenLayer):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoFullscreenLayer):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createVideoFullscreenLayer):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createVideoFullscreenLayer):

Source/WebKit:

The RemoteMediaPlayerProxy in the GPU process creates a LayerHostingContext and
share the context ID with the MediaPlayerPrivateRemote in the Web process,
which in turn creates a remote layer used by the VideoFullscreenManager.

Those functions regarding video fullscreen and picture-in-picture have been
moved to RemoteMediaPlayerProxy.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::updateVideoFullscreenInlineImage): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenFrame): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenGravity): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenMode): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVolume): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setBufferingPolicy): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::videoFullscreenStandbyChanged): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:

[GPU process]
Add two asynchronous IPC messages (EnterFullscreen and ExitFullscreen) in RemoteMediaPlayerProxy
and replace the message SetVideoFullscreenFrame with SetVideoFullscreenFrameFenced.
Create the CALayer for the video fullscreen and picture-in-picture features.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback): Deleted.
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenFrame): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
(WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeFenced):
(WebKit::RemoteMediaPlayerProxy::enterFullscreen):
(WebKit::RemoteMediaPlayerProxy::exitFullscreen):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenFrameFenced):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

[Web process]
Create a hosting layer in the Web process corresponding to the CALayer in the
GPU process for video fullscreen and picture-in-picture.
Synchronize the properties of the layers cross process boundary with MachSendRight.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrameFenced):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: Added.

(WebKit::MediaPlayerPrivateRemote::createVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):

  • WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:

(WebKit::createVideoLayerRemote):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):

Fix unified build failures.

  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
11:03 PM Changeset in webkit [257679] by Fujii Hironori
  • 6 edits in trunk

Unreviewed, rolling out r257565.

It broke WinCairo MiniBrowser

Reverted changeset:

"[CMake] Use WEBKIT_EXECUTABLE in MiniBrowser"
https://bugs.webkit.org/show_bug.cgi?id=206894
https://trac.webkit.org/changeset/257565

9:52 PM Changeset in webkit [257678] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed unified build fix; Add include header for IPC::DataReference.

  • WebProcess/Network/WebResourceLoader.cpp:
7:00 PM Changeset in webkit [257677] by Wenson Hsieh
  • 18 edits in trunk/Source

Add an internal setting to enable or disable canvas rendering in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=208375

Reviewed by Tim Horton.

Source/WebCore:

Adds an internal setting to enable or disable the GPU process when rendering canvases. To do this, we add a
codepath for creating a new ImageBuffer, given enum types that indicate whether to try and enable acceleration,
and also whether to use display lists.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer const):

Use the new ImageBuffer::create method.

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • platform/HostWindow.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

Add a new version of ImageBuffer::create that does not directly take a RenderingMode, but instead takes the
a few pieces of information that the client layer will need to decide what kind of ImageBuffer it should create.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/RenderingMode.h:

Add some new enum types to represent hints provided by WebCore when it asks the client layer for a new
ImageBuffer.

Source/WebKit:

See WebCore ChangeLog for more details.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

Consult the new internal feature when creating a new web process.

  • Shared/WebPreferences.yaml:

Add a new internal setting to enable using the GPU process for rendering canvases.

  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

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

(WebKit::WebPage::shouldUseRemoteRenderingFor):

Add a helper method that WebChromeClient can use to determine whether it should opt into either
RemoteAccelerated or RemoteUnaccelerated.

  • WebProcess/WebPage/WebPage.h:
5:48 PM Changeset in webkit [257676] by Chris Dumez
  • 7 edits
    2 adds in trunk

Garbage collection prevents FontFace.loaded promise from getting resolved
https://bugs.webkit.org/show_bug.cgi?id=208382

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure the FontFace JS wrapper stays alive long enough to resolve the
loaded promise when it is observable by the page's script.

Test: fast/text/font-promises-gc.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::document const):

  • css/CSSFontFace.h:
  • css/FontFace.cpp:

(WebCore::FontFace::FontFace):
(WebCore::FontFace::fontStateChanged):
(WebCore::FontFace::loadForBindings):
(WebCore::FontFace::loadedForBindings):
(WebCore::FontFace::activeDOMObjectName const):
(WebCore::FontFace::hasPendingActivity const):
(WebCore::FontFace::load): Deleted.

  • css/FontFace.h:
  • css/FontFace.idl:

LayoutTests:

Add layout test coverage. Thanks to Alexey Proskuryakov for writing the test.

  • fast/text/font-promises-gc-expected.txt: Added.
  • fast/text/font-promises-gc.html: Added.
5:25 PM Changeset in webkit [257675] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS 13] Crash in NetworkProcessProxy::takeUploadAssertion
https://bugs.webkit.org/show_bug.cgi?id=204796

Reviewed by Alex Christensen.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setWebProcessHasUploads):
If the network process has previously crashed, WebProcessPool::m_networkProcess may be null
when WebProcessPool::setWebProcessHasUploads() is called. As a result, we should call
ensureNetworkProcess() instead of dereferencing m_networkProcess unconditionally.

5:06 PM Changeset in webkit [257674] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] compositing/absolute-inside-out-of-view-fixed.html is flaky timing out and crashing.
https://bugs.webkit.org/show_bug.cgi?id=208401

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:58 PM Changeset in webkit [257673] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.4.3

Tag Safari-609.1.20.4.3.

4:54 PM Changeset in webkit [257672] by Russell Epstein
  • 3 edits in branches/safari-609.1.20.4-branch

Cherry-pick r257595. rdar://problem/59853955

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=208330

Reviewed by Don Olmstead.

Set framework headers directory for AppleWin build.

  • Source/cmake/target/TargetJavaScriptCore.cmake:
  • Source/cmake/target/TargetWTF.cmake:

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

4:54 PM Changeset in webkit [257671] by Russell Epstein
  • 3 edits
    4 adds in branches/safari-609.1.20.4-branch

Apply patch. rdar://problem/59870336

4:50 PM Changeset in webkit [257670] by Alan Coon
  • 2 edits in branches/safari-609-branch

Cherry-pick r257288. rdar://problem/59908834

[Win] Fix AppleWin build.
https://bugs.webkit.org/show_bug.cgi?id=208164

Unreviewed build fix.

Allow a warning which happens when building with older SDKs.

  • Source/cmake/OptionsMSVC.cmake:

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

4:47 PM Changeset in webkit [257669] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208245

Unreviewed test gardenign.

  • platform/ios-wk2/TestExpectations: Remove flaky expectation since the test has been fixed.
4:47 PM Changeset in webkit [257668] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.4-branch/Source

Versioning.

4:32 PM Changeset in webkit [257667] by jer.noble@apple.com
  • 21 edits in trunk/Source/WebKit

[GPUP] Implement Modern EME API in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=208090

Reviewed by Alex Christensen.

IPC::SharedBufferDataReference is made more efficient by using the same encode/decode path as is used in
WebCoreArgumentCoders: the SharedBuffer is copied into shared memory, and only a handle is passed across
the XPC boundary. This requires existing users to handle receiving a IPC::SharedBufferDataHandle on the
remote side of the XPC boundary, but this is trivial, and many call sites require a SharedBuffer on the
remote side in the first place. This code could be improved by allowing the SharedMemory object be adopted
by the SharedBuffer object at creation time, potentially leading to zero-copy decoding, but is not done in
this patch.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::didReceiveSharedBuffer):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • Platform/IPC/HandleMessage.h:
  • Platform/IPC/SharedBufferDataReference.h:

(IPC::SharedBufferDataReference::SharedBufferDataReference):
(IPC::SharedBufferDataReference::buffer):
(IPC::SharedBufferDataReference::buffer const):
(IPC::SharedBufferDataReference::data const):
(IPC::SharedBufferDataReference::size const):
(IPC::SharedBufferDataReference::isEmpty const):
(IPC::SharedBufferDataReference::encode const):
(IPC::SharedBufferDataReference::decode):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<RefPtr<WebCore::SharedBuffer>>::encode):
(IPC::ArgumentCoder<RefPtr<WebCore::SharedBuffer>>::decode):

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

(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveSharedBuffer):
(WebKit::WebResourceLoader::didReceiveData):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::finishedLoadingIcon):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::drawPagesToPDF):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::updateAttachmentAttributes):

  • WebProcess/WebPage/WebPage.h:
4:18 PM Changeset in webkit [257666] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

Unreviewed non-unified soures builds fix.

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::readOrMakeSalt): Add missing namespace to FileSystem::fileExists() call.

4:04 PM Changeset in webkit [257665] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.0.8

Tag Safari-609.1.20.0.8.

4:03 PM Changeset in webkit [257664] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/dom/nodes/Document-characterSet-normalization.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208394

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:00 PM Changeset in webkit [257663] by Russell Epstein
  • 1 copy in tags/Safari-609.1.20.111.7

Tag Safari-609.1.20.111.7.

3:59 PM Changeset in webkit [257662] by sbarati@apple.com
  • 4 edits in trunk/Source

Clean up code with how we choose Gigacage sizes and whether or not to use Wasm fast memory
https://bugs.webkit.org/show_bug.cgi?id=208392

Reviewed by Yusuke Suzuki.

Source/bmalloc:

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

  • runtime/OptionsList.h:
3:39 PM Changeset in webkit [257661] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208396

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:20 PM Changeset in webkit [257660] by jer.noble@apple.com
  • 47 edits
    1 copy in trunk/Source

[GPUP] Implement Modern EME API in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=208090

Reviewed by Eric Carlson.

Source/WebCore:

To enable caching of certain CDM properties, allow them to be fetched rather than queries. As such,
CDMPrivate::supportsInitDataType -> supportedInitDataTypes, supportsRobustness -> supportedRobustnesses.

To enable CDM types to be passed across XPC, add explicit sizes to the enumerations, and add encode and
decode templates to the data types.

To enable async messaging form the GPU process's MediaPlayer, send the MediaPlayer the information it
needs when both legacy- and modern-EME APIs are both enabled, rather than allow the MediaPlayerPrivate
to query the MediaPlayer.

Move most of the algorithimic implementation from CDM into CDMPrivate, allowing it to be run from within
the GPU process. Similmarly, make most of the synchronous methods in CDMInstance instead take a callback
parameter, allowing them to be implemented in a remote process.

  • Headers.cmake:
  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::getSupportedConfiguration):
(WebCore::CDM::supportsInitDataType const):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::update):

  • Modules/encryptedmedia/MediaKeySystemAccess.cpp:

(WebCore::MediaKeySystemAccess::createMediaKeys):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::setServerCertificate):

  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateShouldContinueAfterNeedKey):
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):

  • html/HTMLMediaElement.h:
  • platform/encryptedmedia/CDMEncryptionScheme.h:
  • platform/encryptedmedia/CDMFactory.cpp:

(WebCore::CDMFactory::resetFactories):

  • platform/encryptedmedia/CDMFactory.h:
  • platform/encryptedmedia/CDMInstance.h:
  • platform/encryptedmedia/CDMInstanceSession.h:
  • platform/encryptedmedia/CDMKeyStatus.h:
  • platform/encryptedmedia/CDMKeySystemConfiguration.h:

(WebCore::CDMKeySystemConfiguration::encode const):
(WebCore::CDMKeySystemConfiguration::decode):

  • platform/encryptedmedia/CDMMediaCapability.h:

(WebCore::CDMMediaCapability::encode const):
(WebCore::CDMMediaCapability::decode):

  • platform/encryptedmedia/CDMMessageType.h:
  • platform/encryptedmedia/CDMPrivate.cpp:

(WebCore::CDMPrivate::getSupportedConfiguration):
(WebCore::CDMPrivate::doSupportedConfigurationStep):
(WebCore::CDMPrivate::isPersistentType):
(WebCore::CDMPrivate::getSupportedCapabilitiesForAudioVideoType):
(WebCore::CDMPrivate::getConsentStatus):

  • platform/encryptedmedia/CDMPrivate.h:
  • platform/encryptedmedia/CDMRequirement.h:
  • platform/encryptedmedia/CDMRestrictions.h:

(WebCore::CDMRestrictions::encode const):
(WebCore::CDMRestrictions::decode):

  • platform/encryptedmedia/CDMSessionType.h:
  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMPrivateClearKey::supportedInitDataTypes const):
(WebCore::CDMPrivateClearKey::supportsSessionTypeWithConfiguration const):
(WebCore::CDMPrivateClearKey::supportedRobustnesses const):
(WebCore::CDMInstanceClearKey::initializeWithConfiguration):
(WebCore::CDMInstanceClearKey::setServerCertificate):
(WebCore::CDMInstanceClearKey::setStorageDirectory):
(WebCore::CDMInstanceSessionClearKey::updateLicense):

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setShouldContinueAfterKeyNeeded):
(WebCore::MediaPlayer::keyNeeded):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setShouldContinueAfterKeyNeeded):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::supportedInitDataTypes const):
(WebCore::CDMPrivateFairPlayStreaming::supportsSessionTypeWithConfiguration const):
(WebCore::CDMPrivateFairPlayStreaming::supportedRobustnesses const):
(WebCore::CDMPrivateFairPlayStreaming::supportsInitData const):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::shouldWaitForLoadingOfResource):

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::initializeWithConfiguration):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setServerCertificate):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::sessionIdentifierChanged):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::setSupportedRobustness):
(WebCore::MockCDM::supportedInitDataTypes const):
(WebCore::MockCDM::supportedRobustnesses const):
(WebCore::MockCDM::supportsSessionTypeWithConfiguration const):
(WebCore::MockCDM::supportsInitData const):
(WebCore::MockCDMInstance::initializeWithConfiguration):
(WebCore::MockCDMInstance::setServerCertificate):
(WebCore::MockCDMInstance::setStorageDirectory):
(WebCore::MockCDMInstanceSession::updateLicense):

  • testing/MockCDMFactory.h:

(WebCore::MockCDMFactory::supportedRobustness const):

Source/WebKit:

Adopt changes to MediaPlayerProxy.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded):

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

(WebKit::WebMediaStrategy::registerCDMFactories):

  • WebProcess/GPU/media/WebMediaStrategy.h:

Source/WebKitLegacy/mac:

Adopt changes to PlatformStrategies.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebCoreSupport/WebPlatformStrategies.mm:
2:24 PM Changeset in webkit [257659] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

macCatalyst: 'Open' context menu item doesn't work
https://bugs.webkit.org/show_bug.cgi?id=208388
<rdar://problem/59820273>

Reviewed by Wenson Hsieh.

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

(-[WKContentView cleanupInteraction]):
(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _doubleTapRecognizedForDoubleClick:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _attemptClickAtLocation:modifierFlags:]):
(-[WKContentView _mouseGestureRecognizerChanged:]):
In r178980, a mechanism was introduced to ensure that synthetic clicks are
only dispatched to the page that the user originally touched.

macCatalyst's WKMouseGestureRecognizer unintentionally entirely bypassed
this mechanism, never setting _layerTreeTransactionIdAtLastTouchStart,
because the touch event gesture recognizer is disabled. This was generally
fine because in this case, we don't need to send synthetic clicks,
instead sending proper mouse events.

However, the "Open" context menu item works by sending a synthetic click
at the original interaction location. Since we did not set
_layerTreeTransactionIdAtLastTouchStart, the Web Content process will
ignore the click, and perform no action.

Fix this by also setting _layerTreeTransactionIdAtLastTouchStart
on mouseDown.

1:42 PM Changeset in webkit [257658] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mojave wk2 Debug ] fast/css-custom-paint/delay-repaint.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208390

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:39 PM Changeset in webkit [257657] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore

Clear FontDatabase when low-memory-warning happens
https://bugs.webkit.org/show_bug.cgi?id=208389

Reviewed by Chris Dumez.

FontDatabase can monotonically increase. We should clear it when low-memory-warning happens.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::platformPurgeInactiveFontData):

1:35 PM Changeset in webkit [257656] by commit-queue@webkit.org
  • 8 edits in trunk

[Curl] Add TLS debugging feature to log encryption keys
https://bugs.webkit.org/show_bug.cgi?id=208192

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-02-28
Reviewed by Fujii Hironori.

This patch enables recording encryption keys on curl port.
When you set key log file path to environment variable SSLKEYLOGFILE on curl port, network process writes encryption keys into the path.
The key log file follows the NSS key log format and this feature is as same as Chrome and Firefox have.

See also: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format

Test: No tests for this debugging feature. We have to check manually if the log file is generate.

.:

  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWin.cmake:

Source/WebCore:

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::CurlContext):

  • platform/network/curl/CurlContext.h:

(WebCore::CurlContext::shouldLogTLSKey const):
(WebCore::CurlContext::tlsKeyLogFilePath const):

  • platform/network/curl/CurlSSLVerifier.cpp:

(WebCore::CurlSSLVerifier::CurlSSLVerifier):
(WebCore::CurlSSLVerifier::infoCallback):
(WebCore::CurlSSLVerifier::logTLSKey):

  • platform/network/curl/CurlSSLVerifier.h:
1:23 PM Changeset in webkit [257655] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

MediaResourceLoader leaks resource responses
https://bugs.webkit.org/show_bug.cgi?id=208267

Reviewed by Eric Carlson.

MediaResourceLoader leaks resource responses when browsing in Safari, even though these responses are
only used for testing. AVAssetCustomURLBridgeForNSURLSession holds on to the WebCoreNSURLSession, which
keeps the MediaResourceLoader alive, even if there is no media on the current page. In turn, the
MediaResourceLoader always keeps in memory the last 5 HTTP responses.

To address the issue, we now only record these responses when running the tests.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::recordResponsesForTesting):
(WebCore::MediaResourceLoader::addResponseForTesting):

  • loader/MediaResourceLoader.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

1:07 PM Changeset in webkit [257654] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS fails to retry build in case of kill-old-processes exception
https://bugs.webkit.org/show_bug.cgi?id=208003

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(KillOldProcesses.evaluateCommand):
(KillOldProcesses.getResultSummary):

12:23 PM Changeset in webkit [257653] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] commit-queue should update the ChangeLog with Reviewer name
https://bugs.webkit.org/show_bug.cgi?id=206535

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ApplyPatch.start): Update the patch with the patch reviewer name if available.

12:21 PM Changeset in webkit [257652] by ap@apple.com
  • 7 edits in trunk/LayoutTests

Deflake animations/font-variations tests
https://bugs.webkit.org/show_bug.cgi?id=208383

Reviewed by Ryosuke Niwa.

Use document.fonts.ready to work around https://bugs.webkit.org/show_bug.cgi?id=208382,
and to simplify the tests.

  • animations/font-variations/font-stretch.html:
  • animations/font-variations/font-style.html:
  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • animations/font-variations/font-weight.html:
12:11 PM Changeset in webkit [257651] by mmaxfield@apple.com
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[ iOS wk2 Release ] fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208245
<rdar://problem/59856625>

The test was still actually passing, it was just displaying differently.
Change the test to be more robust.

Unreviewed test gardening.

  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout-expected.html: Removed.
  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout-expected.txt: Added.
  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html:
11:57 AM Changeset in webkit [257650] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS] Remove access to the "com.apple.lsd.open" mach service from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207708
<rdar://problem/56995506>

Reviewed by Per Arne Vollan.

Now that we dynamically create the sandbox extension to the 'com.apple.lsd.open' mach service,
we can remove the global allow rule from the sandbox.

Reviewed by Per Arne Vollan.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
11:55 AM Changeset in webkit [257649] by keith_miller@apple.com
  • 2 edits in trunk

Fix issue in cmake build for checking ccache
https://bugs.webkit.org/show_bug.cgi?id=208377

Reviewed by Carlos Alberto Lopez Perez.

If either of the "readlink" or "which" commands fail when looking for the ccache prefix
the output variables will be empty and an invalid expression will be provided to CMake.
e.g. we will get something like:
if ("0" "EQUAL" "0" "AND" "1" "EQUAL" "0" "AND" "STREQUAL" "/usr/local/bin/ccache")

The fix is to wrap the output variables in the quotes when unboxing them in the if.

  • Source/cmake/WebKitCCache.cmake:
11:43 AM Changeset in webkit [257648] by Keith Rollin
  • 13 edits in trunk/Source

Convert frame address in logging statements to pageID+frameID
https://bugs.webkit.org/show_bug.cgi?id=208325
<rdar://problem/59850768>

Reviewed by Alex Christensen.

Some old logging prints the address of the associated frame object.
Annotating logging statements this way makes it difficult to match up
that logging with other logging that uses pageID+frameID. Update the
logging to consistently use the latter format.

Source/WebCore:

No new tests -- no new or changed functionality.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::setMainDocumentError):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::tryLoadingSubstituteData):
(WebCore::DocumentLoader::disallowDataRequest const):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::loadMainResource):
(WebCore::DocumentLoader::cancelMainResourceLoad):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::pageID const):
(WebCore::FrameLoader::frameID const):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):

  • loader/FrameLoader.h:
  • loader/ResourceLoader.cpp:
  • loader/SubresourceLoader.cpp:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/Frame.cpp:

(WebCore::Frame::pageID const):
(WebCore::Frame::frameID const):

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

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):

11:31 AM Changeset in webkit [257647] by Jonathan Bedard
  • 3 edits
    1 add in trunk/Tools

run-javascriptcore-tests: Make upload format valid
https://bugs.webkit.org/show_bug.cgi?id=208341

Rubber-stamped by Aakash Jain.

  • Scripts/run-javascriptcore-tests:

(uploadResults): Remove. FIXME.

  • Scripts/webkitdirs.pm:

(splitVersionString): Handle case where the subminor version number has a - in it.

  • Scripts/webkitperl/webkitdirs_unittest/splitVersion.pl: Add unit tests.
11:29 AM Changeset in webkit [257646] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] imported/w3c/web-platform-tests/requestidlecallback/callback-timeout-when-busy.html is flakey failing.
https://bugs.webkit.org/show_bug.cgi?id=208384

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:23 AM Changeset in webkit [257645] by Simon Fraser
  • 10 edits in trunk/Source

Stop using -[CALayer setValue:forKey:] to store back pointers to PlatformCALayer*
https://bugs.webkit.org/show_bug.cgi?id=208358

Reviewed by Tim Horton.

We used -[CAlayer setValue:forKey:@"WKPlatformCALayer"] to store associate PlatformCALayer*
with CALayers. However, this has some performance cost, and won't work for a near-future world
where the scrolling thread needs to get at PlatformCALayers.

Replace with a static HashMap<> of CALayer* to PlatformCALayer*. Also rename platformCALayer()
to platformCALayerForLayer() so it's easier to find.

Source/WebCore:

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):

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

(WebCore::layerToPlatformLayerMap):
(WebCore::PlatformCALayer::platformCALayerForLayer):
(WebCore::PlatformCALayerCocoa::create):
(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::~PlatformCALayerCocoa):
(WebCore::PlatformCALayerCocoa::superlayer const):
(WebCore::PlatformCALayer::platformCALayer): Deleted.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayer::platformCALayerForLayer):
(layoutSublayersProc):
(PlatformCALayerWin::superlayer const):
(PlatformCALayer::platformCALayer): Deleted.

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::getSublayers const):
(PlatformCALayerWinInternal::sublayerAtIndex const):

  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer display]):

  • platform/graphics/mac/WebLayer.mm:

(-[WebLayer drawInContext:]):
(-[WebSimpleLayer setNeedsDisplay]):
(-[WebSimpleLayer setNeedsDisplayInRect:]):
(-[WebSimpleLayer display]):
(-[WebSimpleLayer drawInContext:]):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::LayerClient::platformCALayerLayoutSublayersOfLayer):
(FullscreenVideoController::enterFullscreen):

11:18 AM Changeset in webkit [257644] by eric.carlson@apple.com
  • 8 edits in trunk/Source

No port uses USE_NATIVE_FULLSCREEN_VIDEO, remove it
https://bugs.webkit.org/show_bug.cgi?id=208378
<rdar://problem/59892497>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, unused code removed.

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::willEnterFullscreen):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::enterFullscreen): Deleted.
(WebCore::MediaPlayer::exitFullscreen): Deleted.
(WebCore::MediaPlayer::canEnterFullscreen const): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::enterFullscreen): Deleted.
(WebCore::MediaPlayerPrivateInterface::exitFullscreen): Deleted.
(WebCore::MediaPlayerPrivateInterface::canEnterFullscreen const): Deleted.

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setClosedCaptionsVisible):
(WebKit::MediaPlayerPrivateRemote::enterFullscreen): Deleted.
(WebKit::MediaPlayerPrivateRemote::exitFullscreen): Deleted.
(WebKit::MediaPlayerPrivateRemote::canEnterFullscreen const): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
11:12 AM Changeset in webkit [257643] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Unblock read access to aes_0 device
https://bugs.webkit.org/show_bug.cgi?id=208344
<rdar://problem/59746108>

Reviewed by Alexey Proskuryakov.

Logging needs access to /dev/aes_0 to generate random identifiers. We should unblock this service.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
10:49 AM Changeset in webkit [257642] by youenn@apple.com
  • 11 edits in trunk

[MacOS/iOS] Enable audio/video capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=208130

Reviewed by Eric Carlson.

Source/WebKit:

Covered by existing tests.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::cloneVideoSource):
Make sure to select the process of the source to clone it.

Tools:

  • WebKitTestRunner/TestOptions.h:

Use GPU process to capture by default.
We will remove this option once done verifying that every test works smoothly.

LayoutTests:

Disable video capture in GPUProcess as cloning mechanism does not work well with the idea of a single video or audio source in a process.
A follow-up patch should fix this.

  • fast/mediastream/MediaStream-clone.html:
  • fast/mediastream/MediaStreamTrack-clone.html:
  • fast/mediastream/mediastreamtrack-video-clone.html:
  • webrtc/multi-video.html:
10:14 AM Changeset in webkit [257641] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Regression r257612: Windows build broken
https://bugs.webkit.org/show_bug.cgi?id=208372
<rdar://problem/59885001>

Unreviewed Windows build fix.

  • platform/graphics/InbandGenericCue.cpp:

(WebCore::InbandGenericCue::toJSONString const):

9:33 AM Changeset in webkit [257640] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

updateCSSTransitionsForElementAndProperty should clone RenderStyles
https://bugs.webkit.org/show_bug.cgi?id=208356
rdar://59869560

Reviewed by Antti Koivisto.

Make ownership of the local variable clear by cloning the RenderStyles
used in updateCSSTransitionsForElementAndProperty rather than referencing
different versions.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

8:47 AM Changeset in webkit [257639] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Retain cycle between CSSFontSelector -> CSSFontFaceSet -> CSSFontFace -> CSSFontSelector
https://bugs.webkit.org/show_bug.cgi?id=196437
<rdar://problem/46598332>

Reviewed by Alex Christensen.

Break the reference cycle using a WeakPtr. The leak was reproducible by browsing CNN.com
and then navigating to about:blank (those objects would stay around, even after memory
pressure signal).

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadEventOccurred):

  • css/CSSFontFace.h:
7:48 AM Changeset in webkit [257638] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

[SOUP] Unreviewed. Fix unused parameter warning

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getRawCookies const):

7:21 AM Changeset in webkit [257637] by ysuzuki@apple.com
  • 4 edits in trunk/Source/WebCore

Shrink-to-fit Display::LineBox/Display::Run vectors.
https://bugs.webkit.org/show_bug.cgi?id=208343

Reviewed by Antti Koivisto.

From the collected data in PLT5, 95% of Runs / LineBoxes are <= 4, while we are having 10 and 5 inlineCapacity.
We adjust this inlineCapacity to 4 based on this number. It also covers almost all of Speedometer2.0 content (in it, 99.9% is 1).
We also call shrinkToFit to make it the exact size after baking Display::InlineContent. It should be no-op in 95% cases.

  • layout/displaytree/DisplayInlineContent.h:
  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::shrinkDisplayInlineContent):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

6:11 AM Changeset in webkit [257636] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] commit queue should skip building and testing for rollout patches
https://bugs.webkit.org/show_bug.cgi?id=208329

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin._is_patch_obsolete): Set rollout property appropriately.
(CompileWebKit.doStepIf): Skip tests for rollout patches on commit-queue.
(RunWebKit1Tests.doStepIf): Ditto.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestCompileWebKit.test_skip_for_rollout_patches_on_commit_queue): Added unit-test.
(TestRunWebKit1Tests.test_skip_for_rollout_patches_on_commit_queue): Ditto.

5:32 AM Changeset in webkit [257635] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Unreviewed. Fix build warning.

queueSize is of type size_t so it should use the proper format
specifier.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(restartLoaderIfNeeded):
(stopLoaderIfNeeded):

5:01 AM Changeset in webkit [257634] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208371

Unreviewed gardening.

  • platform/gtk/TestExpectations:
3:28 AM Changeset in webkit [257633] by youenn@apple.com
  • 9 edits in trunk/Source

Conversion between MediaSample and RemoteVideoSample should preserve the rotation information
https://bugs.webkit.org/show_bug.cgi?id=208240

Reviewed by Eric Carlson.

Source/WebCore:

Update RemoteVideoSample to have surface getter be const.
Add a new routine to convert a RemoteVideoSample in a MediaSample, with proper rotation and mirrored information.
Covered by manual testing.

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::surface const):

  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::mirrored const):

  • platform/graphics/cv/ImageTransferSessionVT.h:
  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createMediaSample):

Source/WebKit:

Use new routine that preserves rotation.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::videoSampleAvailable):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable):

2:55 AM Changeset in webkit [257632] by Carlos Garcia Campos
  • 144 edits in trunk/LayoutTests

Unreviewed GTK gardening. Rebaseline tests after fixes for new style regressions

  • platform/gtk/TestExpectations:
  • platform/gtk/css3/flexbox/button-expected.png:
  • platform/gtk/css3/flexbox/button-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.png:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.png:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.png:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/editing/selection/4397952-expected.png:
  • platform/gtk/editing/selection/4397952-expected.txt:
  • platform/gtk/editing/selection/5240265-expected.png:
  • platform/gtk/editing/selection/5240265-expected.txt:
  • platform/gtk/editing/selection/selection-button-text-expected.png:
  • platform/gtk/editing/selection/selection-button-text-expected.txt:
  • platform/gtk/fast/block/float/float-avoidance-expected.png:
  • platform/gtk/fast/block/float/float-avoidance-expected.txt:
  • platform/gtk/fast/css/continuationCrash-expected.png:
  • platform/gtk/fast/css/continuationCrash-expected.txt:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.png:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/gtk/fast/css/non-standard-checkbox-size-expected.png:
  • platform/gtk/fast/css/non-standard-checkbox-size-expected.txt:
  • platform/gtk/fast/css/rtl-ordering-expected.png:
  • platform/gtk/fast/css/rtl-ordering-expected.txt:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/gtk/fast/forms/001-expected.png:
  • platform/gtk/fast/forms/001-expected.txt:
  • platform/gtk/fast/forms/basic-buttons-expected.png:
  • platform/gtk/fast/forms/basic-buttons-expected.txt:
  • platform/gtk/fast/forms/basic-selects-expected.png:
  • platform/gtk/fast/forms/basic-selects-expected.txt:
  • platform/gtk/fast/forms/blankbuttons-expected.png:
  • platform/gtk/fast/forms/blankbuttons-expected.txt:
  • platform/gtk/fast/forms/box-shadow-override-expected.png:
  • platform/gtk/fast/forms/box-shadow-override-expected.txt:
  • platform/gtk/fast/forms/button-positioned-expected.png:
  • platform/gtk/fast/forms/button-positioned-expected.txt:
  • platform/gtk/fast/forms/button-sizes-expected.png:
  • platform/gtk/fast/forms/button-sizes-expected.txt:
  • platform/gtk/fast/forms/button-style-color-expected.png:
  • platform/gtk/fast/forms/button-style-color-expected.txt:
  • platform/gtk/fast/forms/button-table-styles-expected.png:
  • platform/gtk/fast/forms/button-table-styles-expected.txt:
  • platform/gtk/fast/forms/button-text-transform-expected.png:
  • platform/gtk/fast/forms/button-text-transform-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/file/file-input-direction-expected.png:
  • platform/gtk/fast/forms/file/file-input-direction-expected.txt:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.png:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.png:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/formmove3-expected.png:
  • platform/gtk/fast/forms/formmove3-expected.txt:
  • platform/gtk/fast/forms/input-appearance-height-expected.png:
  • platform/gtk/fast/forms/input-appearance-height-expected.txt:
  • platform/gtk/fast/forms/input-button-sizes-expected.png:
  • platform/gtk/fast/forms/input-button-sizes-expected.txt:
  • platform/gtk/fast/forms/input-value-expected.png:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.png:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.txt:
  • platform/gtk/fast/html/details-replace-summary-child-expected.png:
  • platform/gtk/fast/html/details-replace-summary-child-expected.txt:
  • platform/gtk/fast/html/details-replace-text-expected.png:
  • platform/gtk/fast/html/details-replace-text-expected.txt:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.png:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-expected.png:
  • platform/gtk/fast/replaced/replaced-breaking-expected.txt:
  • platform/gtk/fast/replaced/width100percent-button-expected.png:
  • platform/gtk/fast/replaced/width100percent-button-expected.txt:
  • platform/gtk/fast/replaced/width100percent-checkbox-expected.png:
  • platform/gtk/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/gtk/fast/replaced/width100percent-radio-expected.png:
  • platform/gtk/fast/replaced/width100percent-radio-expected.txt:
  • platform/gtk/fast/text/international/hindi-spacing-expected.png:
  • platform/gtk/fast/text/international/hindi-spacing-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.png:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/svg/custom/foreign-object-skew-expected.png:
  • platform/gtk/svg/custom/foreign-object-skew-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug92647-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.png:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.png:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
  • platform/gtk/tables/mozilla/other/move_row-expected.png:
  • platform/gtk/tables/mozilla/other/move_row-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
1:57 AM Changeset in webkit [257631] by Carlos Garcia Campos
  • 8 edits in trunk/Source/WebCore

REGRESSION(r257299): [GTK] Test imported/w3c/web-platform-tests/css/css-sizing/button-min-width.html is failing since r257299
https://bugs.webkit.org/show_bug.cgi?id=208296

Reviewed by Adrian Perez de Castro.

We are no longer honoring the style min width/height of buttons.

  • platform/Theme.cpp:

(WebCore::Theme::minimumControlSize const): Add zoomedSize parameter.

  • platform/Theme.h:
  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::minimumControlSize const): Use the style min size unless it's intrinsic or auto.

  • platform/adwaita/ThemeAdwaita.h:
  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::minimumControlSize const): Add zoomedSize parameter.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle): Pass style min size to Theme::minimumControlSize().

1:37 AM Changeset in webkit [257630] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r257299): [GTK] Check and radio buttons don't keep the aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=208302

Reviewed by Adrian Perez de Castro.

When different width and height is used, we should use the lower value and render the button centered.

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):

1:36 AM Changeset in webkit [257629] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r257299): [GTK] Test fast/replaced/table-percent-height.html is failing since r257299
https://bugs.webkit.org/show_bug.cgi?id=208295

Reviewed by Adrian Perez de Castro.

We are now hardcoding the size of check and radio buttons, except when width and height are both specified.

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::controlSize const): Only set width and height of check and radio buttons when they are
intrinsic or auto.

1:33 AM Changeset in webkit [257628] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r257299): [GTK] Test fast/forms/menulist-restrict-line-height.html is failing since r257299
https://bugs.webkit.org/show_bug.cgi?id=208241

Reviewed by Adrian Perez de Castro.

We should not honor line-height for styled combo buttons.

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::adjustMenuListStyle const):
(WebCore::RenderThemeAdwaita::adjustMenuListButtonStyle const):

  • rendering/RenderThemeAdwaita.h:
1:31 AM Changeset in webkit [257627] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r257299): [GTK] box shadow is no longer ignored for search field decorations
https://bugs.webkit.org/show_bug.cgi?id=208239

Reviewed by Adrian Perez de Castro.

Since we no longer use RenderTheme to paint the search field decorations we need to ensure a box shadow isn't
used for them in the CSS.

  • css/themeAdwaita.css:

(input[type="search"]::-webkit-search-results-button,): Add -webkit-box-shadow: none !important;
(input[type="search"]::-webkit-search-cancel-button): Ditto.
(body[dir="rtl"] input[type="search"]::-webkit-search-cancel-button): Ditto.

1:30 AM Changeset in webkit [257626] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r257299): Test fast/css/button-height.html is failing since r257299
https://bugs.webkit.org/show_bug.cgi?id=208237

Reviewed by Adrian Perez de Castro.

The new theming code doesn't use the same border size for button and input[type="button"].

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::controlBorder const): Use the same border for all buttons.

  • platform/adwaita/ThemeAdwaita.h:
1:26 AM Changeset in webkit [257625] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix hover effects broken for GTK port after r257592

Add missing braces to if that now has two lines in the body. This was causing all mouse events to be considered
read only when building with TOUCH_EVENTS enabled.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMouseMoveEvent):

12:50 AM Changeset in webkit [257624] by Carlos Garcia Campos
  • 1 edit
    3 deletes in trunk/LayoutTests

Unreviewed GTK gardening. Remove platform/gtk/fast/forms/number/number-size-spinbutton-nocover.html

This tested the behavior of spin buttons with the old GTK theming code.

  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover-expected.png: Removed.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover-expected.txt: Removed.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover.html: Removed.
12:48 AM Changeset in webkit [257623] by Carlos Garcia Campos
  • 5 edits in trunk

Test imported/blink/fast/forms/datalist/slider-appearance-with-ticks-crash.html fails
https://bugs.webkit.org/show_bug.cgi?id=190613

Reviewed by Wenson Hsieh.

Source/WebCore:

Check the input is a range control before trying to paint slider ticks.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSliderTicks):

LayoutTests:

Remove test expectations.

12:44 AM Changeset in webkit [257622] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r257411): Web Inspector: Can't add a breakpoint by pressing the plus button
https://bugs.webkit.org/show_bug.cgi?id=208359
<rdar://problem/59870712>

Reviewed by Brian Burg.

In r257411 I added event.stop() (which is a shortcut for event.preventDefault() and
event.stopImmediatePropagation()) to mousedown handler. Calling event.stopImmediatePropagation()
prevented other mousedown event handlers from running.

This patch no longer calls event.stopImmediatePropagation().

  • UserInterface/Views/ButtonNavigationItem.js:

(WI.ButtonNavigationItem.prototype._handleMouseDown):

12:33 AM Changeset in webkit [257621] by dbates@webkit.org
  • 3 edits in trunk/Tools

Update my watch list preferences and contributor's entry.

  • Scripts/webkitpy/common/config/contributors.json:
  • Scripts/webkitpy/common/config/watchlist:

Feb 27, 2020:

11:56 PM Changeset in webkit [257620] by Devin Rousso
  • 10 edits in trunk/Source

Web Inspector: allow use of dark mode theme independently from system-wide theme
https://bugs.webkit.org/show_bug.cgi?id=186308
<rdar://problem/40785895>

Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::setForcedAppearance): Added.
Expose a way to call Page::setUseDarkAppearanceOverride from the Web Inspector frontend.

Source/WebInspectorUI:

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
Create a setting for controlling/preserving the theme of the frontend UI.

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI.contentLoaded):
Apply the created setting when Web Inspector is opened or if its value changes.

  • UserInterface/Views/SettingEditor.js:

(WI.SettingEditor.prototype._createEditorElement):
Allow horizontal dividers in <select> setting editors.

  • Localizations/en.lproj/localizedStrings.js:
10:25 PM Changeset in webkit [257619] by don.olmstead@sony.com
  • 21 edits
    4 deletes in trunk

Fix WebCore export macros for declspec
https://bugs.webkit.org/show_bug.cgi?id=208363

Reviewed by Konstantin Tokarev.

Source/WebCore:

Modified the PlatformExportMacros to match the other export macros. Originally
Windows ports were treated differently and they had to set their own export macros.
This isn't ideal because how WebCore is built is really dependent on the CMake
definition of the library type.

  • CMakeLists.txt:
  • WebCorePrefix.h:
  • platform/PlatformExportMacros.h:
  • testing/js/WebCoreTestSupportPrefix.h:

Source/WebKit:

Add compilation definitions for static linking of PAL and WebCore in WebKit.

  • PlatformFTW.cmake:
  • PlatformWin.cmake:
  • config.h:

Source/WebKitLegacy:

Add compilation definitions for static linking of PAL and WebCore in WebKitLegacy.

  • PlatformFTW.cmake:
  • PlatformWin.cmake:

Source/WebKitLegacy/win:

Remove setting of WEBCORE_EXPORT from the header files.

  • WebKitPrefix.h:

Tools:

Remove setting of WEBCORE_EXPORT and WEBCORE_TESTSUPPORT_EXPORT from the header
files. Removed precompiled headers that were empty.

  • DumpRenderTree/DumpRenderTreePrefix.h:
  • DumpRenderTree/win/DefaultPolicyDelegate.cpp: Added a missing config.h.
  • MiniBrowser/win/stdafx.h:
  • TestWebKitAPI/win/TestWebKitAPIPrefix.cpp: Removed.
  • TestWebKitAPI/win/TestWebKitAPIPrefix.h: Removed.
  • WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.cpp: Removed.
  • WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h: Removed.
  • WebKitTestRunner/PlatformFTW.cmake:
  • WebKitTestRunner/PlatformWin.cmake:
  • WebKitTestRunner/WebKitTestRunnerPrefix.h:
10:21 PM Changeset in webkit [257618] by timothy_horton@apple.com
  • 4 edits in trunk

UIProcess crash after using _prepareForMoveToWindow, then deallocating the WKWebView before moving to the window
https://bugs.webkit.org/show_bug.cgi?id=208365

Reviewed by Alex Christensen.

Source/WebKit:

New test: WKWebView.PrepareForMoveToWindowCrashAfterNotMovingToWindow

  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKWindowVisibilityObserver dealloc]):
(-[WKWindowVisibilityObserver setWindowToObserve:]):
(WebKit::WebViewImpl::viewWillMoveToWindow):
Two small changes to make WKWindowVisibilityObserver safer to use, which
fix the aforementioned bug:

  • Instead of exposing startObserving/stopObserving and making clients

be careful about pairing them, and remembering which window to stopObserving,
just add "setWindowToObserve", and keep track (weakly) of the current
NSWindow being observed. This avoids double-adding observers.

  • Always stopObserving when WKWindowVisibilityObserver is deallocated.

In the "normal" case, WKWebView will always be removed from the view
hierarchy before it is deallocated (and thus before the
WKWindowVisibilityObserver is deallocated), because otherwise its superview
holds a reference to it. But in the _prepareForMoveToWindow case, we do
not have this guarantee, and can end up deallocating the WKWebView without
getting a willMoveToWindow:nil. Make sure to clean up the observers in
that case, if the window is still around, otherwise when NSWindow sends
notifications, it will try to message a deallocated WKWebView.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:

(TEST):
Add a test! It was a 100% repro crash before this change.

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

MemoryRelease logging uses a unique_ptr with unclear lifetime
https://bugs.webkit.org/show_bug.cgi?id=208361

Reviewed by Alex Christensen.

The logging here was getting a unique_ptr inside the loop, which
causes newer versions of clang to complain with an error:
object backing the pointer will be destroyed at the end of the full-expression [-Werror,-Wdangling-gsl]

Using a temporary local variable fixes the problem.

  • page/MemoryRelease.cpp:

(WebCore::logMemoryStatisticsAtTimeOfDeath):

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

Hit test with clipPath referencing parent element causes infinite recursion
https://bugs.webkit.org/show_bug.cgi?id=208279

Patch by Doug Kelly <Doug Kelly> on 2020-02-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

Add an early return for SVG hit tests which have a child element referencing a parent clipPath.
This change breaks the cycle, although it unfortunately runs on every hit test, for each node which
is a child of the clipPath element.

Test: svg/hittest/svg-clip-path-child-element.html

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::hitTestClipContent):

LayoutTests:

  • svg/hittest/svg-clip-path-child-element-expected.txt: Added.
  • svg/hittest/svg-clip-path-child-element.html: Added.
7:50 PM Changeset in webkit [257615] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Remove logging for sysctl access to properties used by NSURLSession
https://bugs.webkit.org/show_bug.cgi?id=208346
<rdar://problem/59862967>

Reviewed by Alexey Proskuryakov.

Telemetry and logging indicate that two sysctl calls are needed by [NSURLSession sessionWithConfiguration].
We no longer need to log these well understood uses.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
7:43 PM Changeset in webkit [257614] by Kate Cheney
  • 19 edits
    2 adds in trunk/Tools

TestWebKitAPI and WebKitTestRunner should have bundle identifiers
https://bugs.webkit.org/show_bug.cgi?id=208260
<rdar://problem/59820107>

Reviewed by Tim Horton.

Followed instructions for adding an Info.plist for Single-File Tools
found on https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html

The default WebsiteDataStore file path will change with this test to
reflect the new bundleID so we must change expectations for any api
tests which rely on knowing the path.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBDeleteRecovery.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IDBObjectStoreInfoUpgradeToV2.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageClear.mm:

(TEST):
(defaultWebsiteCacheDirectory):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageNullEntries.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(runWebsiteDataStoreCustomPaths):
(TEST):

  • TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm:

(TestWebKitAPI::resetTestState):
Now that we set a bundleID, we have to reset the cache model between
tests, otherwise it gets stored between tests.

(TestWebKitAPI::TEST):

  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
7:37 PM Changeset in webkit [257613] by rniwa@webkit.org
  • 5 edits in trunk

TextManipulationController should not generate a new item for content in manipulated paragraphs
https://bugs.webkit.org/show_bug.cgi?id=208286

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch makes TextManipulationController to ignore any content change in previously manipulated paragraphs.

Added an early exist to observeParagraphs when the observed content has an element that has already been manipulated
as an ancestor. Note that the only case in which this logic matters is when it's called by scheduleObservartionUpdate,
which calls this function on each paragraph separately, unlike startObservingParagraphs which calls it on
the entire document, we can simply exit early instead of ignoring just the current paragraph.

Renamed TextManipulationController's m_recentlyInsertedElements to m_manipulatedElements and made it persist
forever so that we can track any element that has already been manipulated. Als renamed m_mutatedElements
to m_elementsWithNewRenderer for clarity.

Test: TestWebKitAPI.TextManipulation.InsertingContentIntoAlreadyManipulatedContentDoesNotCreateTextManipulationItem

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::isInManipulatedElement): Added. Has a fast path for when
m_manipulatedElements's capacity is 0, which happens when observeParagraphs is called by startObservingParagraphs.
(WebCore::TextManipulationController::observeParagraphs): Added an early exit when there is a content that has
already been manipulated.
(WebCore::TextManipulationController::didCreateRendererForElement): Added the same check to fail early.
(WebCore::TextManipulationController::scheduleObservartionUpdate):
(WebCore::TextManipulationController::replace): Removed the code to clear m_recentlyInsertedElements.

  • editing/TextManipulationController.h:

Tools:

Added a regression test.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TextManipulation.InsertingContentIntoAlreadyManipulatedContentDoesNotCreateTextManipulationItem):

7:05 PM Changeset in webkit [257612] by eric.carlson@apple.com
  • 23 edits
    3 adds in trunk

Support in-band generic cues when loading media in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=208080
<rdar://problem/59687943>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, existing tests enabled for GPU process.

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

(WebCore::GenericTextTrackCueMap::add):
(WebCore::GenericTextTrackCueMap::findIndexOfPair):
(WebCore::GenericTextTrackCueMap::find):
(WebCore::GenericTextTrackCueMap::remove):
(WebCore::InbandGenericTextTrack::updateCueFromCueData):
(WebCore::InbandGenericTextTrack::addGenericCue):
(WebCore::InbandGenericTextTrack::updateGenericCue):
(WebCore::InbandGenericTextTrack::removeGenericCue):

  • html/track/InbandGenericTextTrack.h:
  • html/track/InbandTextTrack.h:
  • html/track/TextTrackCueGeneric.h:
  • platform/graphics/InbandGenericCue.h: Added.

(WebCore::GenericCueData::decode):
(WebCore::GenericCueData::encode const):
(WebCore::InbandGenericCue::create):
(WebCore::InbandGenericCue::startTime const):
(WebCore::InbandGenericCue::setStartTime):
(WebCore::InbandGenericCue::endTime const):
(WebCore::InbandGenericCue::setEndTime):
(WebCore::InbandGenericCue::id const):
(WebCore::InbandGenericCue::setId):
(WebCore::InbandGenericCue::content const):
(WebCore::InbandGenericCue::setContent):
(WebCore::InbandGenericCue::line const):
(WebCore::InbandGenericCue::setLine):
(WebCore::InbandGenericCue::position const):
(WebCore::InbandGenericCue::setPosition):
(WebCore::InbandGenericCue::size const):
(WebCore::InbandGenericCue::setSize):
(WebCore::InbandGenericCue::align const):
(WebCore::InbandGenericCue::setAlign):
(WebCore::InbandGenericCue::fontName const):
(WebCore::InbandGenericCue::setFontName):
(WebCore::InbandGenericCue::baseFontSize const):
(WebCore::InbandGenericCue::setBaseFontSize):
(WebCore::InbandGenericCue::relativeFontSize const):
(WebCore::InbandGenericCue::setRelativeFontSize):
(WebCore::InbandGenericCue::foregroundColor const):
(WebCore::InbandGenericCue::setForegroundColor):
(WebCore::InbandGenericCue::backgroundColor const):
(WebCore::InbandGenericCue::setBackgroundColor):
(WebCore::InbandGenericCue::highlightColor const):
(WebCore::InbandGenericCue::setHighlightColor):
(WebCore::InbandGenericCue::status):
(WebCore::InbandGenericCue::setStatus):
(WebCore::InbandGenericCue::cueData const):
(WebCore::InbandGenericCue::InbandGenericCue):
(WebCore::InbandGenericCue::toJSONString const):
(WebCore::InbandGenericCue::doesExtendCueData const):
(WTF::LogArgument<WebCore::InbandGenericCue>::toString):

  • platform/graphics/InbandTextTrackPrivateClient.h:

(WebCore::GenericCueData::create): Deleted.
(WebCore::GenericCueData::startTime const): Deleted.
(WebCore::GenericCueData::setStartTime): Deleted.
(WebCore::GenericCueData::endTime const): Deleted.
(WebCore::GenericCueData::setEndTime): Deleted.
(WebCore::GenericCueData::id const): Deleted.
(WebCore::GenericCueData::setId): Deleted.
(WebCore::GenericCueData::content const): Deleted.
(WebCore::GenericCueData::setContent): Deleted.
(WebCore::GenericCueData::line const): Deleted.
(WebCore::GenericCueData::setLine): Deleted.
(WebCore::GenericCueData::position const): Deleted.
(WebCore::GenericCueData::setPosition): Deleted.
(WebCore::GenericCueData::size const): Deleted.
(WebCore::GenericCueData::setSize): Deleted.
(): Deleted.
(WebCore::GenericCueData::align const): Deleted.
(WebCore::GenericCueData::setAlign): Deleted.
(WebCore::GenericCueData::fontName const): Deleted.
(WebCore::GenericCueData::setFontName): Deleted.
(WebCore::GenericCueData::baseFontSize const): Deleted.
(WebCore::GenericCueData::setBaseFontSize): Deleted.
(WebCore::GenericCueData::relativeFontSize const): Deleted.
(WebCore::GenericCueData::setRelativeFontSize): Deleted.
(WebCore::GenericCueData::foregroundColor const): Deleted.
(WebCore::GenericCueData::setForegroundColor): Deleted.
(WebCore::GenericCueData::backgroundColor const): Deleted.
(WebCore::GenericCueData::setBackgroundColor): Deleted.
(WebCore::GenericCueData::highlightColor const): Deleted.
(WebCore::GenericCueData::setHighlightColor): Deleted.
(WebCore::GenericCueData::status): Deleted.
(WebCore::GenericCueData::setStatus): Deleted.
(WebCore::GenericCueData::toJSONString const): Deleted.
(WebCore::GenericCueData::doesExtendCueData const): Deleted.
(WTF::LogArgument<WebCore::GenericCueData>::toString): Deleted.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processCueAttributes):
(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings):
(WebCore::InbandTextTrackPrivateAVF::removeCompletedCues):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

Source/WebKit:

  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::addGenericCue):
(WebKit::RemoteTextTrackProxy::updateGenericCue):
(WebKit::RemoteTextTrackProxy::removeGenericCue):

  • GPUProcess/media/RemoteTextTrackProxy.h:
  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::addGenericCue):
(WebKit::MediaPlayerPrivateRemote::updateGenericCue):
(WebKit::MediaPlayerPrivateRemote::removeGenericCue):

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

(WebKit::TextTrackPrivateRemote::addGenericCue):
(WebKit::TextTrackPrivateRemote::updateGenericCue):
(WebKit::TextTrackPrivateRemote::removeGenericCue):

  • WebProcess/GPU/media/TextTrackPrivateRemote.h:

LayoutTests:

  • gpu-process/TestExpectations:
6:44 PM Changeset in webkit [257611] by pvollan@apple.com
  • 9 edits in trunk

[iOS] Issue mach sandbox extensions to the WebContent process for a set of specific services
https://bugs.webkit.org/show_bug.cgi?id=208146

Reviewed by Brent Fulgham.

Source/WebKit:

We are still seeing some accesses from the WebContent process to a small set of services. Since we do not currently have
backtraces for these accesses, make a speculative patch, where we issue these extension for all apps except Safari.

Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • 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):

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup-mail.html:
6:41 PM Changeset in webkit [257610] by pvollan@apple.com
  • 19 edits in trunk/Source/WebKit

[iOS] The GPU process never runs as a foreground process
https://bugs.webkit.org/show_bug.cgi?id=208250

Reviewed by Chris Dumez.

Currently, the GPU process always runs in the background, and never goes into the foreground mode, which is required for media
playback on iOS. This is addressed by creating a layer in the GPU process, whose context ID is used to create a visibility
propagation view in the UI process. This is done in the same way as it is done for the WebContent process. This makes it
possible for the system to determine the visibility of the GPU process. In addition, create foreground process assertions
when media is being played.

No new tests, covered by existing tests.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/ios/GPUProcessIOS.mm:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::didCreateContextInGPUProcessForVisibilityPropagation):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::openGPUProcessConnection):
(WebKit::GPUProcessProxy::didCreateContextForVisibilityPropagation):
(WebKit::GPUProcessProxy::contextIDForVisibilityPropagation const):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/GPU/GPUProcessProxy.messages.in:
  • UIProcess/PageClient.h:

(WebKit::PageClient::didCreateContextInGPUProcessForVisibilityPropagation):
(WebKit::PageClient::gpuProcessCrashed):

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

(WebKit::WebProcessPool::gpuProcessCrashed):
(WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia):
(WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia):

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

(WebKit::WebProcessProxy::gpuProcessCrashed):
(WebKit::WebProcessProxy::didCreateContextInGPUProcessForVisibilityPropagation):

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

(WebKit::PageClientImpl::didCreateContextInGPUProcessForVisibilityPropagation):
(WebKit::PageClientImpl::gpuProcessCrashed):

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

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView _setupVisibilityPropagationViewForGPUProcess]):
(-[WKContentView _removeVisibilityPropagationViewForGPUProcess]):
(-[WKContentView _gpuProcessCrashed]):
(-[WKContentView _gpuProcessDidCreateContextForVisibilityPropagation]):

6:27 PM Changeset in webkit [257609] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix debug arm64 Wasm tests
https://bugs.webkit.org/show_bug.cgi?id=208362

Reviewed by Yusuke Suzuki.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):

We were assuming that "-1" is a valid imm on arm64, but it's not, we need
to use big imm.

5:46 PM Changeset in webkit [257608] by Ben Nham
  • 2 edits in trunk/LayoutTests

REGRESSION (r257391-257396): [ iOS ] imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html is failing
https://bugs.webkit.org/show_bug.cgi?id=208323

Unreviewed test gardening.

scroll-restoration-order.html has always failed on iOS. Before r257394, we didn't properly
restore the scroll position before the hashchange event. After r257394, we now properly
restore the scroll position, but do it too early (it's restored before popstate, rather than
between popstate and hashchange). If anything, the new state seems less broken than before,
so this just updates the expected results to reflect the current status of our tests.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order-expected.txt:
5:42 PM Changeset in webkit [257607] by Lauro Moura
  • 2 edits
    3 deletes in trunk/LayoutTests

[GTK] Layout test gardening
https://bugs.webkit.org/show_bug.cgi?id=208360

Unreviewed test gardening.

Removed some deprecated baselines after new form styles.

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/disabled-controls-not-focusable-expected.txt: Removed.
  • platform/gtk/fast/forms/input-number-click-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt: Removed.
5:35 PM Changeset in webkit [257606] by commit-queue@webkit.org
  • 13 edits
    3 copies
    5 adds in trunk/Source

Implement ImageBuffer shareable backends
https://bugs.webkit.org/show_bug.cgi?id=207233

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

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/PlatformImageBufferBackend.h: Added.

Define the base ImageBufferBackend for each platform.
ImageBufferShareableBitmapBackend in WebKit needs to have access to basic
ImageBufferBackend functionalities specific to the platform.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Use WTF::makeUnique and make the constructor public.

Source/WebKit:

RemoteImageBufferProxy will create a shareable backend in the GPUProcess.
Then it will give access to this backend to RemoteImageBuffer in the
WebProcess by sending an ImageBufferBackendHandle.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferBackendHandle.h: Added.

This is variant of shareable handles to the ImageBufferBackend data.

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp: Added.

(WebKit::ImageBufferShareableBitmapBackend::create):
The first create method will be called to create the backend of
RemoteImageBufferProxy GPUProcess. The second create method will be called
to create the backend of RemoteImageBuffer in the WebProcess.

(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
(WebKit::ImageBufferShareableBitmapBackend::createImageBufferBackendHandle const):
Creates an ImageBufferBackendHandle which will be sent from the GPUProcess
to the WebProcess.

(WebKit::ImageBufferShareableBitmapBackend::copyNativeImage const):
(WebKit::ImageBufferShareableBitmapBackend::copyImage const):
(WebKit::ImageBufferShareableBitmapBackend::toBGRAData const):
(WebKit::ImageBufferShareableBitmapBackend::getImageData const):
(WebKit::ImageBufferShareableBitmapBackend::putImageData):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h: Added.
  • WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h: Added.

Defines the platform shareable ImageBufferBackend types.

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

(WebKit::ImageBufferShareableIOSurfaceBackend::create):
(WebKit::ImageBufferShareableIOSurfaceBackend::createImageBufferBackendHandle const):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h: Added.

Because ImageBufferBackendHandle has to be defined in WebKit, sharing
the IOSurface backend has to be implemented in WebKit.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/Network/WebSocketChannel.cpp:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:

Unified sources gardening.

5:34 PM Changeset in webkit [257605] by Justin Michaud
  • 3 edits
    4 adds in trunk

Poly proto should work with property delete transitions
https://bugs.webkit.org/show_bug.cgi?id=208261

Reviewed by Saam Barati.

JSTests:

  • stress/delete-property-poly-proto.js: Added.

(A.prototype.set x):
(A):
(B):

Source/JavaScriptCore:

This patch fixes a bug where the combination of inline caching
and poly proto cause us to cache a setter call along a prototype chain that
is no longer the correct setter to call. This is exposed as a result of
https://bugs.webkit.org/show_bug.cgi?id=206430 since DefineOwnProperty used
to transition to uncacheable dictionary.

The case looks like this:
A - setter for x redefines x
|
B
|
C

We set (new C).x

Right now, we first call A's setter, then we try to figure out what the state of things
were before it was called in order to cache it. We just assume that A's setter still exists, and we cache it
without ever checking, In this patch, we ensure that the property exists and the attributes match in order to prevent crashing.

In the code, A = target, C = base.

Get is correct because it collects caching information before any calls.

The bug https://bugs.webkit.org/show_bug.cgi?id=208337 tracks the remaining semantic bugs around this code.

  • jit/Repatch.cpp:

(JSC::tryCachePutByID):

5:32 PM Changeset in webkit [257604] by Alan Coon
  • 3 edits
    4 adds in branches/safari-609.1.20.111-branch

Apply patch. rdar://problem/59870336

5:30 PM Changeset in webkit [257603] by Alan Coon
  • 3 edits
    4 adds in branches/safari-609.1.20.0-branch

Apply patch. rdar://problem/59870344

5:25 PM Changeset in webkit [257602] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.0-branch/Source

Versioning.

5:23 PM Changeset in webkit [257601] by Alan Coon
  • 8 edits in branches/safari-609.1.20.111-branch/Source

Versioning.

5:01 PM Changeset in webkit [257600] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS Debug wk2 ] imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208355

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:13 PM Changeset in webkit [257599] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] LayoutTest/fast/animation/request-animation-frame-time-unit.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=171957

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:06 PM Changeset in webkit [257598] by basuke.suzuki@sony.com
  • 7 edits in trunk/Source

[WinCairo] Fix RemoteInspector reconnect issue
https://bugs.webkit.org/show_bug.cgi?id=208256

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Call target's disconnection sequence asynchronously to avoid deadlock.

  • inspector/remote/RemoteConnectionToTarget.cpp:

(Inspector::RemoteConnectionToTarget::close):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:

(Inspector::RemoteInspectorSocketEndpoint::workerThread):

Source/WTF:

Added wakeupCallback to RunLoop. In case of RunLook::iterate, we need to wake up worker thread
when RunLoop is waking up.

  • wtf/RunLoop.h:
  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::setWakeUpCallback):
(WTF::RunLoop::wakeUp):

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::setWakeUpCallback):
(WTF::RunLoop::wakeUp):

4:05 PM Changeset in webkit [257597] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-javascriptcore-tests: Make upload format valid
https://bugs.webkit.org/show_bug.cgi?id=208341

Reviewed by Aakash Jain.

  • Scripts/run-javascriptcore-tests:

(uploadResults): Print json blob for upload after failure for debugging.

3:59 PM Changeset in webkit [257596] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/return-local-variable.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207700

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations: Correcting test expectations.
3:45 PM Changeset in webkit [257595] by pvollan@apple.com
  • 3 edits in trunk

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=208330

Reviewed by Don Olmstead.

Set framework headers directory for AppleWin build.

  • Source/cmake/target/TargetJavaScriptCore.cmake:
  • Source/cmake/target/TargetWTF.cmake:
3:42 PM Changeset in webkit [257594] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION (r256910?) [ Mac wk1 ] fast/canvas/webgl/canvas-webgl-page-cache.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208345

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:39 PM Changeset in webkit [257593] by Ryan Haddad
  • 9 edits in trunk

Unreviewed, rolling out r257575.

Broke the watchOS build.

Reverted changeset:

"[iOS] Issue mach sandbox extensions to the WebContent process
for a set of specific services"
https://bugs.webkit.org/show_bug.cgi?id=208146
https://trac.webkit.org/changeset/257575

3:27 PM Changeset in webkit [257592] by dbates@webkit.org
  • 37 edits in trunk/Source

Change HitTestRequestType to an OptionSet
https://bugs.webkit.org/show_bug.cgi?id=208334

Reviewed by Wenson Hsieh.

Source/WebCore:

The majority of this change is replacing usage of HitTestRequestType with an OptionSet<HitTestRequest::RequestType>.
Though I was tempted and did in some circumstances modernize code around HitTestRequestType call sites.
I've annotated important changes below.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionForPoint const): Updated code as needed.
Added FIXME comment: the code should be written without a loop and instead use HitTestRequest::AllowVisibleChildFrameContentOnly
to achieve the goal.
(WebCore::AccessibilityRenderObject::accessibilityHitTest const):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementsFromPoint):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::isReplacementObscured): Update code as needed. Use IntRect::center()
convenience function instead of computing the center point manually.

  • html/MediaElementSession.cpp:

(WebCore::isElementMainContentForPurposesOfAutoplay): Update code as needed. Move check for whether
the main frame has a document earlier in the function to avoid unncessary work. In practice, this
check will never fail because the main frame always has a document. Though to be precise the main
frame may not have a document during frame initialization. However, it does not make sense for this
code to ever be called then.

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::updateAutoscrollRenderer):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::maybeCreateContextMenu):

  • page/DragController.cpp:

(WebCore::DragController::canProcessDrag):
(WebCore::DragController::startDrag):

  • page/EventHandler.cpp:

(WebCore::EventHandler::eventMayStartDrag const):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::hitTestResultAtPoint const):
(WebCore::EventHandler::updateCursor):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::isInsideScrollbar const):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):
(WebCore::hitTestResultInFrame):
(WebCore::EventHandler::handleTouchEvent):
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

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

(WebCore::updateFocusCandidateIfNeeded):

  • page/Frame.cpp:

(WebCore::Frame::visiblePositionForPoint const):
(WebCore::Frame::documentAtPoint):

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::cancelPointer): Added FIXME about correctness issue.
The local variable named target will always be nullptr even after calling hitTestResultAtPoint().

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::tryToBeginDragAtPoint):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::renderRectForPoint const):
(WebCore::Frame::betterApproximateNode):
(WebCore::Frame::hitTestResultAtViewportLocation):
(WebCore::Frame::qualifyingNodeAtViewportLocation):

  • rendering/HitTestRequest.h:

(WebCore::HitTestRequest::HitTestRequest):
(WebCore::HitTestRequest::readOnly const):
(WebCore::HitTestRequest::active const):
(WebCore::HitTestRequest::move const):
(WebCore::HitTestRequest::release const):
(WebCore::HitTestRequest::ignoreClipping const):
(WebCore::HitTestRequest::svgClipContent const):
(WebCore::HitTestRequest::touchEvent const):
(WebCore::HitTestRequest::disallowsUserAgentShadowContent const):
(WebCore::HitTestRequest::allowsFrameScrollbars const):
(WebCore::HitTestRequest::allowsChildFrameContent const):
(WebCore::HitTestRequest::allowsVisibleChildFrameContent const):
(WebCore::HitTestRequest::isChildFrameHitTest const):
(WebCore::HitTestRequest::resultIsElementList const):
(WebCore::HitTestRequest::includesAllElementsUnderPoint const):
(WebCore::HitTestRequest::type const):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::hitTestClipContent):

  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect const):

  • testing/Internals.mm:

(WebCore::Internals::rangeForDictionaryLookupAtLocation):

Source/WebKit:

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::hitTest const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::handleContextMenuEvent):
(WebKit::WebPage::characterIndexForPointAsync):
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::rectForElementAtInteractionLocation const):
(WebKit::WebPage::handleStylusSingleTapAtPoint):
(WebKit::rangeForPointInRootViewCoordinates):
(WebKit::WebPage::setFocusedFrameBeforeSelectingTextAtLocation):
(WebKit::selectionPositionInformation):
(WebKit::textInteractionPositionInformation):
(WebKit::WebPage::positionInformation):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::shouldDelayWindowOrderingEvent):
(WebKit::WebPage::acceptsFirstMouse):
(WebKit::WebPage::performImmediateActionHitTestAtLocation):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame elementRectAtPoint:]):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::actionDictionary const):

  • WebView/WebFrame.mm:

(-[WebFrame elementAtPoint:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView elementAtPoint:allowShadowContent:]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController performHitTestAtPoint:]):

Source/WebKitLegacy/win:

  • WebActionPropertyBag.cpp:

(WebActionPropertyBag::Read):

  • WebView.cpp:

(WebView::handleContextMenuEvent):
(WebView::gestureNotify):
(WebView::elementAtPoint):

3:12 PM Changeset in webkit [257591] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208328

Unreviewed gardening.

  • platform/gtk/TestExpectations:
3:04 PM Changeset in webkit [257590] by Ross Kirsling
  • 75 edits
    37 copies
    105 adds
    44 deletes in trunk/JSTests

Update test262 (2020.02.26)
https://bugs.webkit.org/show_bug.cgi?id=208280

Reviewed by Yusuke Suzuki.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/harness/async-gc.js:
  • test262/latest-changes-summary.txt:
  • test262/test/:
  • test262/test262-Revision.txt:
2:59 PM Changeset in webkit [257589] by Andres Gonzalez
  • 10 edits in trunk/Source/WebCore

AXIsolatedObject support for table rows and ARIA tree/grid rows.
https://bugs.webkit.org/show_bug.cgi?id=208335

Reviewed by Chris Fleizach.

Covered by existing tests.

  • Exposes the AccessibilityTableRow and AccessibilityARIAGridRow

interfaces through AXCoreObject.

  • Eliminates the need of downcasting in the platform wrapper code, so

that it now works for both AXObjects and AXIsolatedObjects.

  • Implements the above mentioned interfaces in AXIsolatedObject.
  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::disclosedRows):

  • accessibility/AccessibilityARIAGridRow.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::disclosedRows):
(WebCore::AccessibilityObject::ariaTreeItemDisclosedRows): Became disclosedRows.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityTableRow.h:

(WebCore::AccessibilityTableRow::setRowIndex):
(WebCore::AccessibilityTableRow::rowIndex const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2:55 PM Changeset in webkit [257588] by Alan Coon
  • 1 copy in tags/Safari-610.1.5

Tag Safari-610.1.5.

2:37 PM Changeset in webkit [257587] by don.olmstead@sony.com
  • 11 edits
    1 add in trunk

[CMake] Add WebKit::PAL target
https://bugs.webkit.org/show_bug.cgi?id=198493

Reviewed by Michael Catanzaro.

.:

Define WebKit::PAL target for Apple internal Windows builds.

  • Source/cmake/target/PAL.cmake: Added.

Source/WebCore:

Use WebKit::PAL target.

  • CMakeLists.txt:

Source/WebCore/PAL:

Define WebKit::PAL target.

  • pal/CMakeLists.txt:
  • pal/PlatformFTW.cmake:
  • pal/PlatformWinCairo.cmake:

Source/WebKitLegacy:

Add include of PAL target for Apple internal Windows builds.

  • CMakeLists.txt:

Tools:

Add workaround for Windows where PAL_FRAMEWORK_HEADERS_DIR is not propagating.

  • DumpRenderTree/PlatformWin.cmake:
2:21 PM Changeset in webkit [257586] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] webgpu/whlsl/textures-sample.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208340

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:08 PM Changeset in webkit [257585] by Ben Nham
  • 3 edits in trunk/LayoutTests

Fix flaky enter/exit PIP test
https://bugs.webkit.org/show_bug.cgi?id=208272

Unreviewed test gardening.

This test sometimes fails because it presses the PIP control before the video starts
playing. Fix this by waiting for the playing event before pressing the control.

  • media/modern-media-controls/pip-support/pip-support-click.html:
  • platform/mac-wk2/TestExpectations:
1:53 PM Changeset in webkit [257584] by Ben Nham
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json

Adding myself to contributors.json

Unreviewed

  • Scripts/webkitpy/common/config/contributors.json:
1:50 PM Changeset in webkit [257583] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit

Unreviewed unified source builds fix.
https://bugs.webkit.org/show_bug.cgi?id=207198

Include header files for types referenced in RemoteRenderingBackend.h.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-27

  • GPUProcess/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackend.h:
1:43 PM Changeset in webkit [257582] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208245

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Mark test as flaky.
12:12 PM Changeset in webkit [257581] by Peng Liu
  • 3 edits in trunk/Source/WebCore

MediaResourceLoader objects are leaking on reddit.com
https://bugs.webkit.org/show_bug.cgi?id=208273

Reviewed by Jer Noble.

We retain the WebCoreNSURLSession delegate. There will be a retain cycle
if that delegate retains the session. This patch fixes the retain cycle problem
by referencing the delegate with a weak pointer.

Manually tested.

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession delegate]):

11:49 AM Changeset in webkit [257580] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

REGRESSION: (257072) [ Mac wk2 Release ] fast/harness/uiscriptcontroller/concurrent-ui-side-scripts.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208264
<rdar://problem/59821552>

Reviewed by Simon Fraser.

  • fast/harness/uiscriptcontroller/concurrent-ui-side-scripts-expected.txt:
  • fast/harness/uiscriptcontroller/concurrent-ui-side-scripts.html:

There is no guarantee that two independent async UI scripts finish in particular order. Order the output instead.

11:38 AM Changeset in webkit [257579] by Russell Epstein
  • 1 copy in tags/Safari-609.1.20.0.7

Tag Safari-609.1.20.0.7.

11:30 AM Changeset in webkit [257578] by Simon Fraser
  • 14 edits in trunk/Source

Add ENABLE(SCROLLING_THREAD) and use it to turn off some code we don't need for iOS
https://bugs.webkit.org/show_bug.cgi?id=208282

Reviewed by Tim Horton.
Source/WebCore:

Protect ThreadedScrollingTree and ScrollingCoordinatorMac with ENABLE(SCROLLING_THREAD).

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

Source/WebKit:

Protect scrolling-thread related code in EventDispatcher with ENABLE(SCROLLING_THREAD),
and don't register pages with EventDispatcher unless ENABLE(SCROLLING_THREAD) is true.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

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

(WebKit::WebPage::WebPage):
(WebKit::WebPage::close):

Source/WTF:

Define ENABLE_SCROLLING_THREAD PLATFORM(MAC) and USE(NICOSIA).

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
11:14 AM Changeset in webkit [257577] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Add GPU Process support for accessLog et al.
https://bugs.webkit.org/show_bug.cgi?id=207007

Patch by Tim Monroe <timmon@apple.com> on 2020-02-27
Reviewed by Jon Lee.

No tests included here.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::updateVideoFullscreenInlineImage):
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenFrame):
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenGravity):
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenMode):
(WebKit::RemoteMediaPlayerManagerProxy::setVolume):
(WebKit::RemoteMediaPlayerManagerProxy::setBufferingPolicy):
(WebKit::RemoteMediaPlayerManagerProxy::videoFullscreenStandbyChanged):
(WebKit::RemoteMediaPlayerManagerProxy::accessLog):
(WebKit::RemoteMediaPlayerManagerProxy::errorLog):

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

(WebKit::RemoteMediaPlayerProxy::updateVideoFullscreenInlineImage):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
(WebKit::RemoteMediaPlayerProxy::setBufferingPolicy):
(WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):
(WebKit::RemoteMediaPlayerProxy::accessLog):
(WebKit::RemoteMediaPlayerProxy::errorLog):

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

(WebKit::MediaPlayerPrivateRemote::updateVideoFullscreenInlineImage):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenMode):
(WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):
(WebKit::MediaPlayerPrivateRemote::accessLog const):
(WebKit::MediaPlayerPrivateRemote::errorLog const):
(WebKit::MediaPlayerPrivateRemote::setBufferingPolicy):

11:03 AM Changeset in webkit [257576] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] crypto/subtle/rsa-indexeddb-non-exportable-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207660

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:48 AM Changeset in webkit [257575] by pvollan@apple.com
  • 9 edits in trunk

[iOS] Issue mach sandbox extensions to the WebContent process for a set of specific services
https://bugs.webkit.org/show_bug.cgi?id=208146

Reviewed by Brent Fulgham.

Source/WebKit:

We are still seeing some accesses from the WebContent process to a small set of services. Since we do not currently have
backtraces for these accesses, make a speculative patch, where we issue these extension for all apps except Safari.

Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • 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):

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup-mail.html:
10:18 AM Changeset in webkit [257574] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/UIProcess/API/mac/WKWebViewMac.mm

Unreviewed follow-up build fix, rdar://problem/59793496

10:15 AM Changeset in webkit [257573] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[CSS Backgrounds] Skip WPT tests always crashing in Debug.

Unreviewed gardening. See https://webkit.org/b/206579#c1

10:08 AM Changeset in webkit [257572] by commit-queue@webkit.org
  • 23 edits
    58 adds in trunk

Add referrerpolicy attribute support for images
https://bugs.webkit.org/show_bug.cgi?id=207901

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

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/html/dom/idlharness.https-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub-expected.txt:

Source/WebCore:

This patch adds 'referrerpolicy' attribute support for img elements.
If set, the value is restricted to the ReferrerPolicy enum, and
if valid it is used for the script fetch.
If not set or invalid, the current behavior is kept.

Tests: http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http-http.html

http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http.https.html
http/tests/referrer-policy-img/no-referrer-when-downgrade/same-origin.html
http/tests/referrer-policy-img/no-referrer/cross-origin-http-http.html
http/tests/referrer-policy-img/no-referrer/cross-origin-http.https.html
http/tests/referrer-policy-img/no-referrer/same-origin.html
http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-img/origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-img/origin/cross-origin-http-http.html
http/tests/referrer-policy-img/origin/cross-origin-http.https.html
http/tests/referrer-policy-img/origin/same-origin.html
http/tests/referrer-policy-img/same-origin/cross-origin-http-http.html
http/tests/referrer-policy-img/same-origin/cross-origin-http.https.html
http/tests/referrer-policy-img/same-origin/same-origin.html
http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-img/strict-origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-img/strict-origin/cross-origin-http-http.html
http/tests/referrer-policy-img/strict-origin/cross-origin-http.https.html
http/tests/referrer-policy-img/strict-origin/same-origin.html
http/tests/referrer-policy-img/unsafe-url/cross-origin-http-http.html
http/tests/referrer-policy-img/unsafe-url/cross-origin-http.https.html
http/tests/referrer-policy-img/unsafe-url/same-origin.html

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setReferrerPolicyForBindings):
(WebCore::HTMLImageElement::referrerPolicyForBindings const):
(WebCore::HTMLImageElement::referrerPolicy const):

  • html/HTMLImageElement.h:
  • html/HTMLImageElement.idl:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

LayoutTests:

Add tests for images with various referrerpolicy attribute values.

  • http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/no-referrer-when-downgrade/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/no-referrer-when-downgrade/same-origin.html: Added.
  • http/tests/referrer-policy-img/no-referrer/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/no-referrer/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/no-referrer/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/no-referrer/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/no-referrer/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/no-referrer/same-origin.html: Added.
  • http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-img/origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/origin/same-origin.html: Added.
  • http/tests/referrer-policy-img/same-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/same-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/same-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/same-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/same-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/same-origin/same-origin.html: Added.
  • http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/strict-origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/strict-origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-img/strict-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/strict-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/strict-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/strict-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/strict-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/strict-origin/same-origin.html: Added.
  • http/tests/referrer-policy-img/unsafe-url/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-img/unsafe-url/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-img/unsafe-url/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-img/unsafe-url/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-img/unsafe-url/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-img/unsafe-url/same-origin.html: Added.
  • http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http.html:
  • http/tests/referrer-policy/resources/image.php: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/win/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
10:07 AM Changeset in webkit [257571] by achristensen@apple.com
  • 53 edits
    1 delete in trunk

Add SPI to query WKFrameInfos in a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=208212

Reviewed by Brady Eidson.

Source/WebKit:

This adds WKWebView._allFrames and SPI on WKFrameInfo to look at parent and child frames.
This will help with rdar://problem/59783184 and other similar tasks.
In order to do this, I needed to make API::FrameInfo::create take a WebKit::FrameInfoData,
which I pass from the WebProcess. Where we used to pass only a SecurityOriginData,
we now pass a FrameInfoData which contains a SecurityOriginData and more information.
I needed to deprecate WKFrameCreateFrameInfo which had its last use removed in rdar://problem/59768710
because there was not enough information in its parameters to create a WKFrameInfo with this new data.
I also replaced the test-only SPI WKFrameInfoGetFrameHandleRef with WKFrameInfoCreateFrameHandleRef
so we don't need to keep a strong reference to the handle and other new members in API::FrameInfo.

New functionality covered by API tests and I removed the last tests' use of now-deprecated WKFrameCreateFrameInfo.

  • Shared/FrameInfoData.cpp:

(WebKit::FrameInfoData::encode const):
(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::FrameInfo):
(API::FrameInfo::handle const):
(API::FrameInfo::parentFrameHandle const):
(API::FrameInfo::childFrameHandles const):
(): Deleted.

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

(API::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):
(API::UIClient::runBeforeUnloadConfirmPanel):
(API::UIClient::runOpenPanel):
(API::UIClient::decidePolicyForGeolocationPermissionRequest):
(API::UIClient::runWebAuthenticationPanel):

  • UIProcess/API/C/WKFrame.cpp:

(WKFrameCreateFrameInfo):

  • UIProcess/API/C/WKFrame.h:
  • UIProcess/API/C/WKFrameInfoRef.cpp:

(WKFrameInfoCreateFrameHandleRef):
(WKFrameInfoGetFrameHandleRef): Deleted.

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

(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo securityOrigin]):
(-[WKFrameInfo _handle]):
(-[WKFrameInfo _parentFrameHandle]):
(-[WKFrameInfo _childFrameHandles]):

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

(-[WKWebView _allFrames:]):

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

(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm:

(WebKit::SOAuthorizationCoordinator::tryAuthorize):

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy):

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

(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):
(WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel):
(WebKit::UIDelegate::UIClient::runOpenPanel):
(WebKit::UIDelegate::UIClient::runWebAuthenticationPanel):

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

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::runPanel):

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getAllFrames):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::runOpenPanel):

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

(WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):

  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:

(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
(WebKit::WebChromeClient::runOpenPanel):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::childFrameIDs const):
(WebKit::WebFrame::info const):

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

(WebKit::WebPage::getAllFrames):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/FrameHandle.cpp: Removed.
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::saltForOrigin):

10:04 AM Changeset in webkit [257570] by Russell Epstein
  • 7 edits in branches/safari-609-branch

Unreviewed build fix, rdar://problem/59793496

9:34 AM Changeset in webkit [257569] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup HitTestResult.{h, cpp}
https://bugs.webkit.org/show_bug.cgi?id=208269
<rdar://problem/59824186>

Reviewed by Alex Christensen.

Use modern C++ features to remove duplicate code.

  • rendering/HitTestLocation.cpp:

(WebCore::HitTestLocation::HitTestLocation):

  • rendering/HitTestLocation.h:
  • rendering/HitTestResult.cpp: Remove unnecessary #includes.
  • rendering/HitTestResult.h: Remove unnecessary #includes.

(WebCore::HitTestResult::setIsOverWidget):

8:52 AM Changeset in webkit [257568] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds after r257507.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::computedPositiveAndNegativeMargin const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
(WebCore::Layout::computedPositiveAndNegativeMargin): Deleted.

8:31 AM Changeset in webkit [257567] by Jacob Uphoff
  • 53 edits
    1 copy in trunk

Unreviewed, rolling out r257530.

This commit seems to have broke the build internally for
watchOS

Reverted changeset:

"Add SPI to query WKFrameInfos in a WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=208212
https://trac.webkit.org/changeset/257530

8:19 AM WebKitGTK/2.28.x edited by clopez@igalia.com
(diff)
8:18 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
8:02 AM Changeset in webkit [257566] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

Load async scripts with low priority
https://bugs.webkit.org/show_bug.cgi?id=208298

Reviewed by Anders Carlsson.

They are assumed to be non-critical and don't delay DOMContentLoaded.

This matches other browsers. See https://addyosmani.com/blog/script-priorities/ for Chrome behavior.

  • bindings/js/CachedScriptFetcher.cpp:

(WebCore::CachedScriptFetcher::requestModuleScript const):
(WebCore::CachedScriptFetcher::requestScriptWithCache const)

Pass around the priority.

  • bindings/js/CachedScriptFetcher.h:
  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::create):
(WebCore::LoadableClassicScript::load):

Deprioritize async script load.

  • dom/LoadableClassicScript.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):

Pass around the information that this is an async script.

  • dom/ScriptElementCachedScriptFetcher.cpp:

(WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

Parse async attribute in preload scanner.

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

Deprioritize async script preload.

  • html/parser/HTMLResourcePreloader.h:

(WebCore::PreloadRequest::setScriptIsAsync):

6:36 AM Changeset in webkit [257565] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Use WEBKIT_EXECUTABLE in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=206894

Reviewed by Adrian Perez de Castro.

.:

Add a MiniBrowser derived sources directory.

  • Source/cmake/WebKitFS.cmake:

Tools:

Modify CMake ports to use WEBKIT_EXECUTABLE when creating their respective
MiniBrowsers.

  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/win/CMakeLists.txt:
  • MiniBrowser/wpe/CMakeLists.txt:
6:16 AM Changeset in webkit [257564] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.27.91

WPE WebKit 2.27.91

6:15 AM Changeset in webkit [257563] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.27.91.
6:07 AM Changeset in webkit [257562] by Adrian Perez de Castro
  • 3 edits in trunk

[LFC][Integration] Build and enable for the WPE and GTK ports
https://bugs.webkit.org/show_bug.cgi?id=208289

Reviewed by Carlos Garcia Campos.

Enable LFC for the WPE and GTK ports.

  • Source/cmake/OptionsGTK.cmake: LFC enabled as experimental feature.
  • Source/cmake/OptionsWPE.cmake: Ditto.
1:59 AM Changeset in webkit [257561] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.27.91

WebKitGTK 2.27.91

1:59 AM Changeset in webkit [257560] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.91 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.27.91.
1:14 AM Changeset in webkit [257559] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257536 - Nullptr crash in WebCore::canHaveChildrenForEditing via CompositeEditCommand::insertNode
https://bugs.webkit.org/show_bug.cgi?id=208115
<rdar://problem/56685655>

Patch by Jack Lee <Jack Lee> on 2020-02-26
Reviewed by Ryosuke Niwa.

When inserting a list at an element with a non-list-item child, if the element is uneditable, skip creating list item for the child.

Source/WebCore:

Test: fast/lists/insert-list-uneditable-element-with-non-li-child.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::listifyParagraph):

LayoutTests:

  • fast/lists/insert-list-uneditable-element-with-non-li-child-expected.txt: Added.
  • fast/lists/insert-list-uneditable-element-with-non-li-child.html: Added.
1:14 AM Changeset in webkit [257558] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r257529 - Enhance JSObjectGetProperty() to mitigate against null object pointers.
https://bugs.webkit.org/show_bug.cgi?id=208275
<rdar://problem/59826325>

Reviewed by Robin Morisset.

  • API/JSObjectRef.cpp:

(JSObjectGetProperty):

12:25 AM Changeset in webkit [257557] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: localize the placeholder "Header" and "value" when editing a local override
https://bugs.webkit.org/show_bug.cgi?id=208276
<rdar://problem/59763619>

Reviewed by Brian Burg.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype.show):

Feb 26, 2020:

9:22 PM Changeset in webkit [257556] by commit-queue@webkit.org
  • 7 edits
    9 deletes in trunk/LayoutTests

Web platform tests for Web Share API fail incorrectly
https://bugs.webkit.org/show_bug.cgi?id=208083

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-26
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Fixed expected for updated wpts.

  • web-platform-tests/web-share/share-without-user-gesture.https-expected.txt:
  • web-platform-tests/web-share/canShare-files.https-expected.txt:
  • web-platform-tests/web-share/canShare.https-expected.txt:
  • web-platform-tests/web-share/idlharness.https.window-expected.txt:

LayoutTests:

Removed duplicate tests for corresponding wpts, fixed expected
for new wpts. Modified TestExpectations to now run all web-share
wpts except for those testing secure context behavior, which is not
supported by the current wpt infrastructure.

  • TestExpectations:
  • fast/web-share/canShare-expected.txt: Removed.
  • fast/web-share/canShare-files-expected.txt: Removed.
  • fast/web-share/canShare-files.html: Removed.
  • fast/web-share/canShare.html: Removed.
  • fast/web-share/share-empty-expected.txt: Removed.
  • fast/web-share/share-empty.html: Removed.
  • fast/web-share/share-url-invalid-expected.txt: Removed.
  • fast/web-share/share-without-user-gesture-expected.txt: Removed.
  • fast/web-share/share-without-user-gesture.html: Removed.
9:17 PM Changeset in webkit [257555] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Annotate mediaType with an availability macro.
https://bugs.webkit.org/show_bug.cgi?id=208284

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.h:
8:56 PM Changeset in webkit [257554] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/bmalloc

[bmalloc][PlayStation] Set Scavenger's thread name.
https://bugs.webkit.org/show_bug.cgi?id=208268

Reviewed by Alex Christensen.

We also need to have our thread with proper name.

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::setThreadName):

8:43 PM Changeset in webkit [257553] by achristensen@apple.com
  • 10 edits in trunk

Remove unused WebsiteDataStore::setSourceApplicationBundleIdentifier
https://bugs.webkit.org/show_bug.cgi?id=206456

Reviewed by Brady Eidson.

Source/WebKit:

The replacement on WebsiteDataStoreConfiguration has been adopted.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

8:35 PM Changeset in webkit [257552] by achristensen@apple.com
  • 35 edits
    2 deletes in trunk

_WKUserContentWorld should be a wrapper around WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=208274

Reviewed by Brady Eidson.

Source/WebKit:

Various SPIs were getting confused between the two.
Updated API tests which expected pointer equality, which is no longer true or important.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Sources.txt:
  • UIProcess/API/APIContentWorld.cpp:

(API::ContentWorld::ContentWorld):
(API::ContentWorldBase::ContentWorldBase): Deleted.

  • UIProcess/API/APIContentWorld.h:

(API::ContentWorldBase::identifier const): Deleted.
(API::ContentWorldBase::name const): Deleted.
(API::ContentWorldBase::worldData const): Deleted.
(API::ContentWorldBase::ContentWorldBase): Deleted.

  • UIProcess/API/APIUserContentWorld.cpp: Removed.
  • UIProcess/API/APIUserContentWorld.h: Removed.
  • UIProcess/API/APIUserScript.cpp:

(API::UserScript::UserScript):

  • UIProcess/API/APIUserScript.h:
  • UIProcess/API/APIUserStyleSheet.cpp:

(API::UserStyleSheet::UserStyleSheet):

  • UIProcess/API/APIUserStyleSheet.h:
  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):

  • UIProcess/API/C/WKUserScriptRef.cpp:

(WKUserScriptCreateWithSource):

  • UIProcess/API/Cocoa/WKContentWorld.mm:

(-[WKContentWorld _userContentWorld]):

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController removeScriptMessageHandlerForName:]):
(-[WKUserContentController _removeAllUserScriptsAssociatedWithUserContentWorld:]):
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]):
(-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]):
(-[WKUserContentController _removeScriptMessageHandlerForName:userContentWorld:]):
(-[WKUserContentController _removeAllScriptMessageHandlersAssociatedWithUserContentWorld:]):

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):
(-[WKUserScript _userContentWorld]):

  • UIProcess/API/Cocoa/_WKUserContentWorld.mm:

(-[_WKUserContentWorld _initWithName:]):
(-[_WKUserContentWorld _init]):
(-[_WKUserContentWorld _initWithContentWorld:]):
(+[_WKUserContentWorld worldWithName:]):
(+[_WKUserContentWorld normalWorld]):
(-[_WKUserContentWorld name]):
(-[_WKUserContentWorld _apiObject]):
(-[_WKUserContentWorld dealloc]): Deleted.

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

(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]):

  • UIProcess/UserContent/WebScriptMessageHandler.cpp:

(WebKit::WebScriptMessageHandler::create):
(WebKit::WebScriptMessageHandler::WebScriptMessageHandler):

  • UIProcess/UserContent/WebScriptMessageHandler.h:

(WebKit::WebScriptMessageHandler::world):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addContentWorldUse):
(WebKit::WebUserContentControllerProxy::shouldSendRemoveContentWorldsMessage):
(WebKit::WebUserContentControllerProxy::removeContentWorldUses):
(WebKit::WebUserContentControllerProxy::addUserScript):
(WebKit::WebUserContentControllerProxy::removeUserScript):
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::addUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
(WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
(WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
(WebKit::WebUserContentControllerProxy::addUserContentWorldUse): Deleted.
(WebKit::WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage): Deleted.
(WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): Deleted.

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addContentWorld):
(WebKit::WebUserContentController::addContentWorlds):
(WebKit::WebUserContentController::removeContentWorlds):
(WebKit::WebUserContentController::addUserScripts):
(WebKit::WebUserContentController::removeUserScript):
(WebKit::WebUserContentController::removeAllUserScripts):
(WebKit::WebUserContentController::addUserStyleSheets):
(WebKit::WebUserContentController::removeUserStyleSheet):
(WebKit::WebUserContentController::removeAllUserStyleSheets):
(WebKit::WebUserContentController::addUserScriptMessageHandlers):
(WebKit::WebUserContentController::removeUserScriptMessageHandler):
(WebKit::WebUserContentController::removeAllUserScriptMessageHandlers):
(WebKit::WebUserContentController::addUserContentWorld): Deleted.
(WebKit::WebUserContentController::addUserContentWorlds): Deleted.
(WebKit::WebUserContentController::removeUserContentWorlds): Deleted.

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/UserContent/WebUserContentController.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):
(WebKit::WebPage::runJavaScriptInMainFrameScriptWorld):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

7:51 PM Changeset in webkit [257551] by rniwa@webkit.org
  • 33 edits
    11 adds in trunk/Source

Create AudioDestination in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=208179

Reviewed by Jer Noble.

Source/WebCore:

Add an abstraction around the creation of AudioDestination using newly introduced mediaStrategy.

  • Headers.cmake:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::createDestination): Use MediaStrategy::createAudioDestination

  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaStrategy.h: Added.

(WebCore::MediaStrategy): Added.

  • platform/PlatformStrategies.h:

(WebCore::PlatformStrategies::mediaStrategy): Added.

  • platform/audio/AudioBus.h:
  • platform/audio/AudioDestination.h:

Source/WebKit:

Create AudioDestination in the GPU process instead of the WebContent process for WebAudio API when
the Media-in-GPU-process feature is enabled.

To do this, WebMediaStrategy, a concrete implementation of MediaStrategy, in the WebContent process gets
a boolean flag indicating whether the GPU process should be used for AudioDestination or not. When the flag
is set, we create RemoteAudioDestinationProxy instead of AudioDestination in WebContent process.

Each RemoteAudioDestinationProxy talks to RemoteAudioDestinationManager in the GPU process and creates
a corresponding RemoteAudioDestination which in turn creates WebCore's AudioDestination in the GPU process.

RemoteAudioDestination is itself an AudioIOCallback for AudioDestination it creates, and delegates
its callback to WebContent process' RemoteAudioDestinationProxy as needed.

In this initial patch, we send RemoteAudioDestinationProxy::RenderBuffer IPC call to the WebContent process
for each render call we get from CoreAudio for simplicity using newly introduced RemoteAudioBusData,
which holds a SharedMemory for each channel in the audio bus.

We will eliminate this IPC overhead in a follow up patch using CARingBuffer.

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

(WebKit::GPUConnectionToWebProcess::remoteAudioDestinationManager): Added.
(WebKit::GPUConnectionToWebProcess::didReceiveMessage): Added the code to dispatch messages to
RemoteAudioDestinationManager.
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage): Ditto.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteAudioDestinationManager.cpp: Added.

(WebKit::RemoteAudioDestination): Added. This class is the backing object which creates WebCore's
AudioDestination and actually talks to CoreAudio in GPU process.
(WebKit::RemoteAudioDestination::create): Added.

(WebKit::RemoteAudioDestination::~RemoteAudioDestination): Added.
(WebKit::RemoteAudioDestination::scheduleGracefulShutdownIfNeeded): Delays the deletion of this object
until the audio threads stops running.
(WebKit::RemoteAudioDestination::start): Added.
(WebKit::RemoteAudioDestination::stop): Added.
(WebKit::RemoteAudioDestination::isPlaying): Added.
(WebKit::RemoteAudioDestination::RemoteAudioDestination): Added.
(WebKit::RemoteAudioDestination::render): Sends a sync IPC to the WebContent process'
RemoteAudioDestinationProxy to fill the audio buffer. Note that this function gets called in audio thread.
(WebKit::RemoteAudioDestination::isPlayingDidChange): Added.
(WebKit::RemoteAudioDestinationManager): Added. This class manages all RemoteAudioDestination objects owned
by a single WebContent process.
(WebKit::RemoteAudioDestinationManager::RemoteAudioDestinationManager): Added.
(WebKit::RemoteAudioDestinationManager::~RemoteAudioDestinationManager): Added.
(WebKit::RemoteAudioDestinationManager::createAudioDestination): Added.
(WebKit::RemoteAudioDestinationManager::deleteAudioDestination): Added.
(WebKit::RemoteAudioDestinationManager::startAudioDestination): Added.
(WebKit::RemoteAudioDestinationManager::stopAudioDestination): Added.

  • GPUProcess/media/RemoteAudioDestinationManager.h: Added.

(WebKit::RemoteAudioDestinationManager): Added.
(WebKit::RemoteAudioDestinationManager::didReceiveSyncMessageFromWebProcess): Added.
(WebKit::RemoteAudioDestinationManager::didReceiveMessageFromWebProcess): Added.

  • GPUProcess/media/RemoteAudioDestinationManager.messages.in: Added.
  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createMediaStrategy): Added. Returns nullptr since Networking
process has no business running AudioDestination.

  • NetworkProcess/NetworkProcessPlatformStrategies.h:

(WebKit::NetworkProcessPlatformStrategies):

  • PlatformMac.cmake:
  • Scripts/webkit/messages.py:
  • Shared/RemoteAudioDestinationIdentifier.h: Added.

(WebKit::RemoteAudioDestinationIdentifierType): Added.
(WebKit::RemoteAudioDestinationIdentifier): Added. The identifier for each RemoteAudioDestination
and RemoteAudioDestinationProxy (corresponding objects of each class use the same ID to communicate).

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioBusData.h: Added.

(WebKit::RemoteAudioBusData): Added. Encodes the information about each render call.
(WebKit::RemoteAudioBusData::encode const): Added.
(WebKit::RemoteAudioBusData::decode): Added.

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

(WebKit::RemoteAudioDestinationProxy): Added.
(WebKit::RemoteAudioDestinationProxy::create): Added.
(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy): Added.
(WebKit::RemoteAudioDestinationProxy::~RemoteAudioDestinationProxy): Added.
(WebKit::RemoteAudioDestinationProxy::start): Added.
(WebKit::RemoteAudioDestinationProxy::stop): Added.
(WebKit::RemoteAudioDestinationProxy::renderBuffer): Added. Calls WebCore's AudioIOCallback to fill
the audio buffer given by the GPU process.
(WebKit::RemoteAudioDestinationProxy::didChangeIsPlaying):

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

(WebKit::RemoteAudioDestinationProxy::didReceiveMessageFromGPUProcess): Added.
(WebKit::RemoteAudioDestinationProxy::isPlaying): Added.
(WebKit::RemoteAudioDestinationProxy::sampleRate): Added.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in: Added.
  • WebProcess/GPU/media/TextTrackPrivateRemote.cpp: Fixed the unified builds.
  • WebProcess/GPU/media/TextTrackPrivateRemote.h: Ditto.
  • WebProcess/GPU/media/WebMediaStrategy.cpp: Added.

(WebKit::WebMediaStrategy::createAudioDestination): Added.

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

(WebKit::WebMediaStrategy): Added.
(WebKit::WebMediaStrategy::setUseGPUProcess): Added.

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp: Fixed the unified builds.
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp: Fixed the unified builds.
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createMediaStrategy): Added.

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

(WebKit::WebPage::updatePreferences): Sets WebMediaStrategy's flag to use GPU process.

Source/WebKitLegacy/mac:

Added WebMediaStrategy which is a wrapper around AudioDestination::create.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebMediaStrategy): Added.
(WebPlatformStrategies::createMediaStrategy):

Source/WebKitLegacy/win:

Added WebMediaStrategy which is a wrapper around AudioDestination::create.

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebMediaStrategy): Added.
(WebPlatformStrategies::createMediaStrategy):

  • WebCoreSupport/WebPlatformStrategies.h:
7:18 PM Changeset in webkit [257550] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

[iPadOS] REGRESSION(r247667): Autosizing style changes don't invalidate RenderText's preferred logical widths
https://bugs.webkit.org/show_bug.cgi?id=208084
<rdar://problem/59463898>

Reviewed by Darin Adler.

Source/WebCore:

Just use RenderElement::setStyle(), which handles all the invalidations, instead of RenderElement::setNeedsLayout().

Do a little refactoring so we don't clone RenderStyles unless we need to.

Test: fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html

  • page/Page.cpp:

(WebCore::Page::recomputeTextAutoSizingInAllFrames):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::isIdempotentTextAutosizingCandidate const):

  • rendering/style/RenderStyle.h:
  • rendering/style/TextSizeAdjustment.cpp:

(WebCore::AutosizeStatus::computeStatus):
(WebCore::AutosizeStatus::updateStatus):

  • rendering/style/TextSizeAdjustment.h:

(WebCore::AutosizeStatus::operator== const):
(WebCore::AutosizeStatus::operator!= const):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustmentForTextAutosizing):
(WebCore::Style::Adjuster::adjustForTextAutosizing):

  • style/StyleAdjuster.h:

(WebCore::Style::Adjuster::AdjustmentForTextAutosizing::operator bool const):

LayoutTests:

  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout-expected.html: Added.
  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html: Added.
6:56 PM Changeset in webkit [257549] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION (r257507): [ macOS ] ASSERTION FAILED: blockFormattingState.hasPositiveAndNegativeVerticalMargin(layoutBox)
https://bugs.webkit.org/show_bug.cgi?id=208278
<rdar://problem/59828533>

Fix mismatching call after r257507.

  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const):

6:31 PM Changeset in webkit [257548] by Andres Gonzalez
  • 15 edits in trunk/Source/WebCore

AXIsolatedObject support for table cells.
https://bugs.webkit.org/show_bug.cgi?id=208263

Reviewed by Chris Fleizach.

Covered by existing tests.

  • Exposed the AccessibilityTableCell interface through AXCoreObject.
  • This way there is no need to downcast in client code and the same

platform wrapper code works for AccessibilityObjects and
AXIsolatedObjects.

  • Completed caching of table cell properties in AXIsolatedObject.
  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::rowIndexRange const):
(WebCore::AccessibilityARIAGridCell::axRowSpanWithRowIndex const):
(WebCore::AccessibilityARIAGridCell::columnIndexRange const):

  • accessibility/AccessibilityARIAGridCell.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::cellForColumnAndRow):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::isColumnHeaderCell const):
(WebCore::AccessibilityTableCell::isRowHeaderCell const):
(WebCore::AccessibilityTableCell::isTableCellInSameColGroup):
(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):
(WebCore::AccessibilityTableCell::rowIndexRange const):
(WebCore::AccessibilityTableCell::columnIndexRange const):

  • accessibility/AccessibilityTableCell.h:
  • accessibility/AccessibilityTableRow.h:
  • accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:

(webkitAccessibleTableCellGetColumnSpan):
(webkitAccessibleTableCellGetRowSpan):
(webkitAccessibleTableCellGetPosition):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
(-[WebAccessibilityObjectWrapper accessibilityRowRange]):
(-[WebAccessibilityObjectWrapper accessibilityColumnRange]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::pairAttributeValue const):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

6:12 PM Changeset in webkit [257547] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.111.6

Tag Safari-609.1.20.111.6.

6:03 PM Changeset in webkit [257546] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.4.2

Tag Safari-609.1.20.4.2.

5:57 PM Changeset in webkit [257545] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.3.4

Tag Safari-609.1.20.3.4.

5:55 PM Changeset in webkit [257544] by Alan Coon
  • 8 edits in branches/safari-609.1.20.0-branch/Source

Versioning.

5:53 PM Changeset in webkit [257543] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.2.4

Tag Safari-609.1.20.2.4.

5:51 PM Changeset in webkit [257542] by commit-queue@webkit.org
  • 30 edits
    4 copies
    6 adds in trunk/Source

Implement the remote RenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=207198

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

Source/WebCore:

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer const):
Make HTMLCanvasElement be able to create a remote ImageBuffer.

Source/WebKit:

RemoteRenderingBackend and RemoteRenderingBackendProxy will be responsible
for creating the two parts of the ImageBuffer: RemoteImageBuffer and
RemoteImageBufferProxy. They will also be responsible for sending and
receiving the messages for the remote the ImageBuffers.

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

(WebKit::GPUConnectionToWebProcess::createRenderingBackend):
(WebKit::GPUConnectionToWebProcess::releaseRenderingBackend):
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage): Deleted.
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage): Deleted.

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::messageReceiverMap):
(WebKit::GPUConnectionToWebProcess::webProcessIdentifier const):
GPUConnectionToWebProcess dispatches messages to RemoteRenderingBackendProxy.

  • GPUProcess/GPUConnectionToWebProcess.messages.in:

Adding the 'WantsDispatchMessage' attribute will force the messages.py
to generate code which calls dispatchMessage() and didReceiveSyncMessage()
when messages are received.

  • GPUProcess/graphics: Added.
  • GPUProcess/graphics/RemoteRenderingBackendProxy.cpp: Added.

(WebKit::RemoteRenderingBackendProxy::create):
(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::messageSenderConnection const):
(WebKit::RemoteRenderingBackendProxy::messageSenderDestinationID const):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::releaseImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackendProxy.h: Added.
  • GPUProcess/graphics/RemoteRenderingBackendProxy.messages.in: Added.

RemoteRenderingBackendProxy is responsible for creating the remote
ImageBuffer proxy in the GPUProcess side. It holds it in a HashMap of
std::unique_ptr<ImageBuffer> indexed by the ImageBufferIdentifier.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:
  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

Unified sources gardening.

  • Scripts/webkit/messages.py:

Handle 'WantsDispatchMessage' attribute.

  • Shared/WebCoreArgumentCoders.h:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):
(WebKit::GPUProcessConnection::dispatchSyncMessage):
(WebKit::GPUProcessConnection::didReceiveMessage): Deleted.

  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::messageReceiverMap):

  • WebProcess/GPU/GPUProcessConnection.messages.in:

GPUConnection dispatches messages to RemoteRenderingBackend.

  • WebProcess/GPU/graphics: Added.
  • WebProcess/GPU/graphics/ImageBufferIdentifier.h: Added.
  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp: Added.

(WebKit::RemoteRenderingBackend::create):
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::messageSenderConnection const):
(WebKit::RemoteRenderingBackend::messageSenderDestinationID const):
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::releaseImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackend.h: Added.
  • WebProcess/GPU/graphics/RemoteRenderingBackend.messages.in: Added.
  • WebProcess/GPU/graphics/RenderingBackendIdentifier.h: Added.

RemoteRenderingBackend is responsible for creating the remote ImageBuffer
in the WebProcess side. It holds it in a HashMap of ImageBuffer* indexed
by the ImageBufferIdentifier.

  • WebProcess/GPU/media/TextTrackPrivateRemote.cpp:
  • WebProcess/GPU/media/TextTrackPrivateRemote.h:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderProvider.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp:

Unified sources gardening.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createDisplayRefreshMonitor const):
(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Create the remote ImageBuffer.

5:48 PM Changeset in webkit [257541] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.0.6

Tag Safari-609.1.20.0.6.

5:38 PM Changeset in webkit [257540] by Ryan Haddad
  • 5 edits
    2 deletes in trunk/Tools

Unreviewed, rolling out r257522.

Caused 16 API test failures on the bots

Reverted changeset:

"TestWebKitAPI and WebKitTestRunner should have bundle
identifiers"
https://bugs.webkit.org/show_bug.cgi?id=208260
https://trac.webkit.org/changeset/257522

5:18 PM Changeset in webkit [257539] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Remove WebsiteDataStore::setSourceApplicationSecondaryIdentifier
https://bugs.webkit.org/show_bug.cgi?id=206452

Reviewed by Chris Dumez.

Its replacement on WebsiteDataStoreConfiguration was adopted in rdar://problem/58671704

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier const):

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

Remove WebsiteDataStore setters for allowsCellularAccess, proxyConfiguration, and boundInterfaceIdentifier
https://bugs.webkit.org/show_bug.cgi?id=206390

Reviewed by Chris Dumez.

The WKWebsiteDataStore SPI was deprecated with replacement on _WKWebsiteDataStoreConfiguration,
and the replacements were adopted in rdar://problem/58359766

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]):
(-[WKWebsiteDataStore _boundInterfaceIdentifier]):
(-[WKWebsiteDataStore _setAllowsCellularAccess:]):
(-[WKWebsiteDataStore _allowsCellularAccess]):
(-[WKWebsiteDataStore _setProxyConfiguration:]):
(-[WKWebsiteDataStore _proxyConfiguration]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::paymentCoordinatorBoundInterfaceIdentifier):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::networkingHasBegun):
(WebKit::WebsiteDataStore::setBoundInterfaceIdentifier): Deleted.
(WebKit::WebsiteDataStore::boundInterfaceIdentifier): Deleted.
(WebKit::WebsiteDataStore::setAllowsCellularAccess): Deleted.
(WebKit::WebsiteDataStore::allowsCellularAccess): Deleted.
(WebKit::WebsiteDataStore::setProxyConfiguration): Deleted.
(WebKit::WebsiteDataStore::proxyConfiguration): Deleted.

5:08 PM Changeset in webkit [257537] by Fujii Hironori
  • 7 edits in trunk/Source

Unreviewed unified source builds fix.

Source/WebCore:

layout\FormattingContextGeometry.cpp(564): error C2027: use of undefined type 'WebCore::Layout::ReplacedBox
Modules\websockets\WebSocket.cpp(335): error C2027: use of undefined type 'WebCore::WorkerThread'
layout\integration\LayoutIntegrationBoxTree.cpp(63): error C2039: 'InlineTextBox': is not a member of 'WebCore::Layout'
workers\service\context\ServiceWorkerFetch.cpp(143): error C2027: use of undefined type 'WebCore::ServiceWorkerThread'

  • Modules/websockets/WebSocket.cpp:
  • layout/FormattingContextGeometry.cpp:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:
  • layout/integration/LayoutIntegrationBoxTree.cpp:
  • workers/service/context/ServiceWorkerFetch.cpp:

Source/WebKit:

NetworkProcess\WebStorage\LocalStorageDatabase.cpp(59): error C2653: 'RunLoop': is not a class or namespace name

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
5:01 PM Changeset in webkit [257536] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::canHaveChildrenForEditing via CompositeEditCommand::insertNode
https://bugs.webkit.org/show_bug.cgi?id=208115
<rdar://problem/56685655>

Patch by Jack Lee <Jack Lee> on 2020-02-26
Reviewed by Ryosuke Niwa.

When inserting a list at an element with a non-list-item child, if the element is uneditable, skip creating list item for the child.

Source/WebCore:

Test: fast/lists/insert-list-uneditable-element-with-non-li-child.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::listifyParagraph):

LayoutTests:

  • fast/lists/insert-list-uneditable-element-with-non-li-child-expected.txt: Added.
  • fast/lists/insert-list-uneditable-element-with-non-li-child.html: Added.
4:53 PM Changeset in webkit [257535] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[mac-sierra] LayoutTest media/modern-media-controls/pip-support/pip-support-click.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=165311

Unreviewed test gardening.

I have removed this expectation because the issue appears to be resolved.

  • platform/mac/TestExpectations:
4:47 PM Changeset in webkit [257534] by Jacob Uphoff
  • 9 edits in trunk

Unreviewed, rolling out r257508.

This commit broke the watchos build

Reverted changeset:

"[iOS] Issue mach sandbox extensions to the WebContent process
for a set of specific services"
https://bugs.webkit.org/show_bug.cgi?id=208146
https://trac.webkit.org/changeset/257508

4:42 PM Changeset in webkit [257533] by Alan Coon
  • 4 edits in branches/safari-610.1.5-branch

Cherry-pick r257364. rdar://problem/59826931

REGRESSION (r256882): Can't drag an HTML file into a new (empty) Safari tab
https://bugs.webkit.org/show_bug.cgi?id=208199
<rdar://problem/59746887>

Reviewed by Alex Christensen.

Source/WebKit:

Make sure we launch the initial WKWebView's WebProcess when a drag enters the view, so that the drag & drop
logic still works on empty views.

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

Tools:

Add API test coverage.

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

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

4:42 PM Changeset in webkit [257532] by Alan Coon
  • 25 edits
    1 add in branches/safari-610.1.5-branch

Revert r256784. rdar://problem/59818035

4:30 PM Changeset in webkit [257531] by Alan Coon
  • 1 delete in tags/Safari-609.1.20.4.2

Delete tag.

4:29 PM Changeset in webkit [257530] by achristensen@apple.com
  • 53 edits
    1 delete in trunk

Add SPI to query WKFrameInfos in a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=208212

Reviewed by Brady Eidson.

Source/WebKit:

This adds WKWebView._allFrames and SPI on WKFrameInfo to look at parent and child frames.
This will help with rdar://problem/59783184 and other similar tasks.
In order to do this, I needed to make API::FrameInfo::create take a WebKit::FrameInfoData,
which I pass from the WebProcess. Where we used to pass only a SecurityOriginData,
we now pass a FrameInfoData which contains a SecurityOriginData and more information.
I needed to deprecate WKFrameCreateFrameInfo which had its last use removed in rdar://problem/59768710
because there was not enough information in its parameters to create a WKFrameInfo with this new data.
I also replaced the test-only SPI WKFrameInfoGetFrameHandleRef with WKFrameInfoCreateFrameHandleRef
so we don't need to keep a strong reference to the handle and other new members in API::FrameInfo.

New functionality covered by API tests and I removed the last tests' use of now-deprecated WKFrameCreateFrameInfo.

  • Shared/FrameInfoData.cpp:

(WebKit::FrameInfoData::encode const):
(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::FrameInfo):
(API::FrameInfo::handle const):
(API::FrameInfo::parentFrameHandle const):
(API::FrameInfo::childFrameHandles const):
(): Deleted.

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

(API::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):
(API::UIClient::runBeforeUnloadConfirmPanel):
(API::UIClient::runOpenPanel):
(API::UIClient::decidePolicyForGeolocationPermissionRequest):
(API::UIClient::runWebAuthenticationPanel):

  • UIProcess/API/C/WKFrame.cpp:

(WKFrameCreateFrameInfo):

  • UIProcess/API/C/WKFrame.h:
  • UIProcess/API/C/WKFrameInfoRef.cpp:

(WKFrameInfoCreateFrameHandleRef):
(WKFrameInfoGetFrameHandleRef): Deleted.

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

(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo securityOrigin]):
(-[WKFrameInfo _handle]):
(-[WKFrameInfo _parentFrameHandle]):
(-[WKFrameInfo _childFrameHandles]):

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

(-[WKWebView _allFrames:]):

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

(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm:

(WebKit::SOAuthorizationCoordinator::tryAuthorize):

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy):

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

(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):
(WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel):
(WebKit::UIDelegate::UIClient::runOpenPanel):
(WebKit::UIDelegate::UIClient::runWebAuthenticationPanel):

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

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::runPanel):

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getAllFrames):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::runOpenPanel):

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

(WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):

  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:

(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
(WebKit::WebChromeClient::runOpenPanel):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::childFrameIDs const):
(WebKit::WebFrame::info const):

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

(WebKit::WebPage::getAllFrames):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/FrameHandle.cpp: Removed.
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::saltForOrigin):

4:29 PM Changeset in webkit [257529] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Enhance JSObjectGetProperty() to mitigate against null object pointers.
https://bugs.webkit.org/show_bug.cgi?id=208275
<rdar://problem/59826325>

Reviewed by Robin Morisset.

  • API/JSObjectRef.cpp:

(JSObjectGetProperty):

4:27 PM Changeset in webkit [257528] by Alan Coon
  • 7 edits in branches/safari-609.1.20.4-branch

Fix incomplete patch. rdar://problem/59793495

4:24 PM Changeset in webkit [257527] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.0-branch

Unreviewed build fix, rdar://problem/59773377

4:12 PM Changeset in webkit [257526] by Russell Epstein
  • 7 edits in branches/safari-609.1.20.111-branch

Unreviewed build fix, rdar://problem/59793495

3:59 PM Changeset in webkit [257525] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] media/modern-media-controls/pip-support/pip-support-click.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208272

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:59 PM Changeset in webkit [257524] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make testair pass on arm64
https://bugs.webkit.org/show_bug.cgi?id=208258

Reviewed by Tadeu Zagallo.

testElideMoveThenRealloc and testElideSimpleMove were never tested
on arm64. This patch makes those tests work.

  • testElideMoveThenRealloc was using a BitImm that is invalid on arm64
  • testElideSimpleMove was testing for the wrong disassembly
  • b3/air/testair.cpp:
3:36 PM Changeset in webkit [257523] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[WebGL] Unskip runnable WebGL 2.0.0 conformance suite for mac
https://bugs.webkit.org/show_bug.cgi?id=208078

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:30 PM Changeset in webkit [257522] by Kate Cheney
  • 5 edits
    2 adds in trunk/Tools

TestWebKitAPI and WebKitTestRunner should have bundle identifiers
https://bugs.webkit.org/show_bug.cgi?id=208260
<rdar://problem/59820107>

Reviewed by Tim Horton.

Followed instructions for adding an Info.plist for Single-File Tools
found on https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/Info.plist: Added.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
  • WebKitTestRunner/Info.plist: Added.
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
3:27 PM Changeset in webkit [257521] by don.olmstead@sony.com
  • 20 edits in trunk/Source

Allow setting of stack sizes for threads
https://bugs.webkit.org/show_bug.cgi?id=208223

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Specify ThreadType at the Thread::create callsite.

  • heap/Heap.cpp:

(JSC::Heap::notifyIsSafeToCollect):

Source/WebCore:

Specify ThreadType at the Thread::create callsite.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

  • bindings/js/GCController.cpp:

(WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):

  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::ReverbConvolver):

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::platformLoadResourceSynchronously):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::getRunLoop):

  • platform/network/curl/CurlRequestScheduler.cpp:

(WebCore::CurlRequestScheduler::startThreadIfNeeded):

  • platform/network/curl/CurlStreamScheduler.cpp:

(WebCore::CurlStreamScheduler::startThreadIfNeeded):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::start):

Source/WebKit:

Specify ThreadType at the Thread::create callsite.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::createRunLoop):

Source/WTF:

Introduce ThreadType which is used internally to specify a stack size for a particular
type of thread. Platforms can make their own decisions on what the stack size should be
based on their own observations. Additionally a default stack size can be specified
by defining DEFAULT_THREAD_STACK_SIZE_IN_KB if the default stack for a platform is
insufficient in all cases, or when investigating the stack size for tuning.

Both the pthread and Windows thread implementations are modified to set the stack size
if provided.

  • wtf/Threading.cpp:

(WTF::stackSize):
(WTF::Thread::create):

  • wtf/Threading.h:
  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::establishHandle):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::establishHandle):

2:52 PM Changeset in webkit [257520] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Prevented text selection on logo and header navigation
https://bugs.webkit.org/show_bug.cgi?id=208157

Reviewed by Devin Rousso.

  • wp-content/themes/webkit/style.css:

(.site-logo):
(header nav):

2:44 PM Changeset in webkit [257519] by Kate Cheney
  • 5 edits in trunk

Tests should each use a unique ResourceLoadStatistics file path for its database store
https://bugs.webkit.org/show_bug.cgi?id=208206
<rdar://problem/59690272>

Reviewed by Brady Eidson.

Source/WebKit:

The ResourceLoadStatistics directory was being set to a non-unique
default value before being created at the temporary path generated by
WebKitTestRunner. This was causing crashes and concurrency issues in tests
when multiple database stores at the same path are accessed
simultaneously.

This patch updates WebProcessPool.cpp to treat the
resourceLoadStatisticsDirectory parameter like it does with IndexedDB
to avoid initializing multiple databases at the same file path.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary):
We should use SQLiteFileSystem::deleteDatabaseFile because it takes
care of additional SQLite files automatically.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk):
Checks if the path is empty because we no longer
guarantee that the resourceLoadStatisticsDirectory is set. Also checks
if m_statisticsStore is initialized before trying to grandfather
statistics.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
Checks if a default WebsiteDataStore exists before setting the
parameter to the default value. This way, the parameter is empty if
WebKitTestRunner hasn't yet set the temporary directory and we won't
create a new database.

Tools:

Initialize a default website data store before checking for the ITP
store to ensure the directory exists after the file has been deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

2:41 PM Changeset in webkit [257518] by chris.reid@sony.com
  • 19 edits in trunk

[Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
https://bugs.webkit.org/show_bug.cgi?id=197684
<rdar://problem/59467397>

Reviewed by Yusuke Suzuki.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

Ensure that the CacheStorage directory is actually being created.

  • NetworkProcess/cache/NetworkCacheData.cpp:
  • NetworkProcess/cache/NetworkCacheData.h:
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm:
  • NetworkProcess/cache/NetworkCacheDataSoup.cpp:
  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

Use more FileSystem functionality to share code across platforms.

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

Use Optional<Vector> for m_buffer since we need to differentiate isEmpty and isNull.

Source/WTF:

  • wtf/FileSystem.cpp:
  • wtf/FileSystem.h:

Added FileAccessPermission flag when opening files.
Remove default argument for the listDirectory filter since the defaut
String() filter doesn't match all files on Mac and Windows.

Added FileOpenMode::ReadWrite to be used with ReadWrite MappedFileData.
Added failIfFileExists flag to openFile.

  • wtf/glib/FileSystemGlib.cpp:
  • wtf/posix/FileSystemPOSIX.cpp:

Added (S_IRUSR | S_IWUSR) file open modes.

  • wtf/win/FileSystemWin.cpp:

Implement getVolumeFreeSpace since some of the tests use it when toggling cache.

  • wtf/win/PathWalker.cpp:

Tools:

Add test for FileSystem::createFile

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

LayoutTests:

  • platform/wincairo/TestExpectations:
2:39 PM Changeset in webkit [257517] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/harness/uiscriptcontroller/concurrent-ui-side-scripts.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208264

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:32 PM Changeset in webkit [257516] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208245

Unreviewed test gardening.

Removed the test expectations.

  • platform/ios-wk2/TestExpectations:
1:58 PM Changeset in webkit [257515] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208253

Unreviewed gardening.

  • platform/gtk/TestExpectations:
1:56 PM Changeset in webkit [257514] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.4.2

Tag Safari-609.1.20.4.2.

1:55 PM Changeset in webkit [257513] by Alan Coon
  • 1 edit in branches/safari-609.1.20.4-branch/Source/WebKit/UIProcess/API/mac/WKWebViewMac.mm

Unreviewed build fix. rdar://problem/59793495

1:50 PM Changeset in webkit [257512] by Alan Coon
  • 1 delete in tags/Safari-609.1.20.0.6

Delete tag.

1:49 PM Changeset in webkit [257511] by Alan Coon
  • 1 delete in tags/Safari-609.1.20.4.2

Delete tag.

1:47 PM Changeset in webkit [257510] by Russell Epstein
  • 1 edit in branches/safari-609.1.20.111-branch/Source/WebKit/UIProcess/API/mac/WKWebViewMac.mm

Unreviewed build fix, rdar://problem/59793495

1:39 PM Changeset in webkit [257509] by Justin Fan
  • 14 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

One more pass to stabilize the WebGL bot.

  • platform/ios/TestExpectations: Remove reference to non-existent test.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d-expected.txt:
  • webgl/TestExpectations:
1:38 PM Changeset in webkit [257508] by pvollan@apple.com
  • 9 edits in trunk

[iOS] Issue mach sandbox extensions to the WebContent process for a set of specific services
https://bugs.webkit.org/show_bug.cgi?id=208146

Reviewed by Brent Fulgham.

Source/WebKit:

We are still seeing some accesses from the WebContent process to a small set of services. Since we do not currently have
backtraces for these accesses, make a speculative patch, where we issue these extension for all apps except Safari.

Test: fast/sandbox/ios/sandbox-mach-lookup-mail.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • 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):

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup-mail.html:
1:30 PM Changeset in webkit [257507] by Alan Bujtas
  • 6 edits
    1 add in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Decouple regular and pre-computed margin collapsing logic
https://bugs.webkit.org/show_bug.cgi?id=208247
<rdar://problem/59808951>

Reviewed by Antti Koivisto.

The pre-computed path is so peculiar it deserves a dedicated file.

This is in preparation for fixing a flaw in the pre-computed logic where we end up
accessing a not-yet-computed horizontal constraint. No change in functionality at this point.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore): Deleted.

  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp: Added.

(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore):

  • layout/integration/LayoutIntegrationBoxTree.cpp:
1:21 PM Changeset in webkit [257506] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/LayoutTests

Regression r257289: fast/web-share/share-with-files.html is missing expected results
https://bugs.webkit.org/show_bug.cgi?id=208191

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-26
Reviewed by Tim Horton.

Added expected for new test.

  • fast/web-share/share-with-files-expected.txt: Added.
1:12 PM Changeset in webkit [257505] by Keith Rollin
  • 10 edits in trunk/Source

Add logging to help diagnose redirect issue
https://bugs.webkit.org/show_bug.cgi?id=207916
<rdar://problem/59567875>

Reviewed by Chris Dumez.

We're seeing an issue where communication between the WebContent
process and the Network process seems to come to a stop between
NetworkResourceLoader::continueWillSendRedirectedRequest and
NetworkResourceLoader::continueWillSendRequest. We do see a
WebResourceLoader::willSendRequest log line between those two
NetworkResourceLoader logging lines, but nothing else. Add a bunch of
logging in this area to help determine what's happening.

Source/WebCore:

No new tests -- no new or changed functionality.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::didFinishLoading):
(WebCore::ResourceLoader::didFail):
(WebCore::ResourceLoader::willSendRequestAsync):
(WebCore::ResourceLoader::wasBlocked):
(WebCore::ResourceLoader::cannotShowURL):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::willCancel):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::redirectReceived):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::redirectReceived):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequestAfterRedirection const):

Source/WebKit:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

1:10 PM Changeset in webkit [257504] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: (257410) [ macOS ] inspector/network/client-blocked-load.html is failing
https://bugs.webkit.org/show_bug.cgi?id=208251
<rdar://problem/59812765>

Reviewed by Timothy Hatcher.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode):
The test failed because it expected url to be an empty string ("") instead of null.
Use the given url parameter exactly as provided instead of trying to add a fallback in the
case of a falsy value. Given the prevalence of usage of WI.SourceCode, it's better to
match the existing behavior of before r257410 than change it and risk other subtle bugs.

12:57 PM Changeset in webkit [257503] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Make sure a client cannot cause a whole DOM tree to get leaked by simply holding on to a WKBundleNodeHandle
https://bugs.webkit.org/show_bug.cgi?id=208218

Reviewed by Ryosuke Niwa.

Make sure a client cannot cause a whole DOM tree to get leaked by simply holding on to a WKBundleNodeHandle.
Previously, WKBundleNodeHandle would ref its node, which would keep the whole HTML document alive. To protect
against this, InjectedBundleNodeHandle is now an ActiveDOMObject which nulls out its node RefPtr when the
document is getting ready for destruction (i.e. ActiveDOMObject::stop() is called).

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::InjectedBundleNodeHandle):
(WebKit::InjectedBundleNodeHandle::~InjectedBundleNodeHandle):
(WebKit::InjectedBundleNodeHandle::coreNode):
(WebKit::InjectedBundleNodeHandle::document):
(WebKit::InjectedBundleNodeHandle::elementBounds):
(WebKit::InjectedBundleNodeHandle::renderRect):
(WebKit::InjectedBundleNodeHandle::renderedImage):
(WebKit::InjectedBundleNodeHandle::visibleRange):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementSpellcheckEnabled):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilled const):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilledAndViewable const):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilled):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilledAndViewable):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFillButtonEnabled const):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFillButtonEnabled):
(WebKit::InjectedBundleNodeHandle::htmlInputElementAutoFillButtonType const):
(WebKit::InjectedBundleNodeHandle::htmlInputElementLastAutoFillButtonType const):
(WebKit::InjectedBundleNodeHandle::isAutoFillAvailable const):
(WebKit::InjectedBundleNodeHandle::setAutoFillAvailable):
(WebKit::InjectedBundleNodeHandle::htmlInputElementAutoFillButtonBounds):
(WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::isTextField const):
(WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
(WebKit::InjectedBundleNodeHandle::documentFrame):
(WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::stop):
(WebKit::InjectedBundleNodeHandle::activeDOMObjectName const):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
12:05 PM Changeset in webkit [257502] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Clean up HitTestLocation.h
https://bugs.webkit.org/show_bug.cgi?id=208254
<rdar://problem/59815136>

Reviewed by Jer Noble.

Use modern C++ features to remove duplicate code.

  • rendering/HitTestLocation.cpp:

(WebCore::HitTestLocation::HitTestLocation):

  • rendering/HitTestLocation.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::HitTestResult):

  • rendering/HitTestResult.h: Remove unnecessary #includes. This file only needs

to include RoundedRect.h: RoundedRect.h includes FloatQuad.h and LayoutRect.h
and FloatQuad.h will include FloatRect.h. We do not make use of have declarations
in <wtf/Forward.h> so remove that as well.

11:54 AM Changeset in webkit [257501] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

Update WPT tests for Intersection Observer
https://bugs.webkit.org/show_bug.cgi?id=208053.

Unreviewed test gardening

Skipping tests that do not have an expected file.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:45 AM Changeset in webkit [257500] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/59793496

11:45 AM Changeset in webkit [257499] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/JavaScriptCore/runtime/StructureTransitionTable.h

Apply patch. rdar://problem/59739154

11:42 AM Changeset in webkit [257498] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] commit-queue should verify patch committer and reviewer
https://bugs.webkit.org/show_bug.cgi?id=206532

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ValidateCommiterAndReviewer): Build step to validate patch commiter and reviewer.
(ValidateCommiterAndReviewer._addToLog):
(ValidateCommiterAndReviewer.getResultSummary):
(ValidateCommiterAndReviewer.fail_build):
(ValidateCommiterAndReviewer.load_contributors): Load contributors information.
(ValidateCommiterAndReviewer.is_reviewer):
(ValidateCommiterAndReviewer.is_committer):
(ValidateCommiterAndReviewer.full_name_from_email):
(ValidateCommiterAndReviewer.start):

11:39 AM Changeset in webkit [257497] by Russell Epstein
  • 2 edits in branches/safari-609.1.20.3-branch/Source/WebKit

Cherry-pick r257013. rdar://problem/59789399

Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973

Reviewed by Chris Dumez.

Use RefPtr to store Frame*.

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

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

11:38 AM Changeset in webkit [257496] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.0.6

Tag Safari-609.1.20.0.6.

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

Versioning.

11:34 AM Changeset in webkit [257494] by Alan Coon
  • 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit

Apply patch. rdar://problem/59773377

11:30 AM Changeset in webkit [257493] by Alan Coon
  • 8 edits in branches/safari-609.1.20.0-branch/Source

Versioning.

11:22 AM Changeset in webkit [257492] by Russell Epstein
  • 2 edits in branches/safari-609.1.20.2-branch/Source/WebKit

Cherry-pick r257013. rdar://problem/59789392

Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973

Reviewed by Chris Dumez.

Use RefPtr to store Frame*.

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

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

11:21 AM Changeset in webkit [257491] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.4.2

Tag Safari-609.1.20.4.2.

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

Versioning.

11:19 AM Changeset in webkit [257489] by Alan Coon
  • 2 edits in branches/safari-609.1.20.4-branch/Source/WebKit

Apply patch. rdar://problem/59793495

11:19 AM Changeset in webkit [257488] by Alan Coon
  • 2 edits in branches/safari-609.1.20.4-branch/Source/WebKit

Cherry-pick r257013. rdar://problem/59789394

Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973

Reviewed by Chris Dumez.

Use RefPtr to store Frame*.

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

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

11:19 AM Changeset in webkit [257487] by dbates@webkit.org
  • 9 edits in trunk

[iOS] Send focus update immediately on becoming or resigning first responder
https://bugs.webkit.org/show_bug.cgi?id=208082
<rdar://problem/59688413>

Rubber-stamped by Jer Noble.

Source/WebKit:

Send an activity state change immediately to the web process when the WKWebView becomes first
responder or resigns first responder.

Currently -becomeFirstResponderForWebView and -resignFirstResponderForWebView schedule an activity
state change message to be sent to the web process. This message will never be delivered within the
same event loop iteration. As a result, performing operations that requires the page to be focused
(e.g. selecting a position at a point) in the same event loop iteration as a call to -[WKWebView becomeFirstResponder])
will not work.

While I am in this area of the code simplify callers of activityStateDidChange() by changing its
parameter order such that it takes a dispatch mode before wantsSynchronousReply. The latter is
almost always defaulted to false to schedule an async message to the web process. Additionally,
changed wantsSynchronousReply from a boolean to an enumeration, ActivityStateChangeReplyMode, and
renamed the param to replyMode. The enumerators are self-documenting at the call site unlike the
boolean.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::prepareForMoveToWindow):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::activityStateDidChange):

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

(-[WKApplicationStateTrackingView _applicationWillEnterForeground]):
Update code for new parameter ordering and pass a ActivityStateChangeReplyMode enumerator.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView resignFirstResponderForWebView]):
Pass WebKit::WebPageProxy::ActivityStateChangeDispatchMode::Immediate to activityStateDidChange()
to dispatch the update immediately to the web process.

Tools:

Add a test to ensure that selecting a position at a point after the web view
becomes first responder is allowed. Such an operation is only allowed if the
web view is focused.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(-[TestWKWebView selectPositionAtPoint:]):
(TEST):

  • TestWebKitAPI/ios/UIKitSPI.h: Forward declare SPI.
11:07 AM Changeset in webkit [257486] by Russell Epstein
  • 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Apply patch. rdar://problem/59793495

11:07 AM Changeset in webkit [257485] by Russell Epstein
  • 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Cherry-pick r257013. rdar://problem/59789394

Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973

Reviewed by Chris Dumez.

Use RefPtr to store Frame*.

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

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

11:06 AM Changeset in webkit [257484] by Alan Coon
  • 8 edits in branches/safari-609.1.20.4-branch/Source

Versioning.

11:00 AM Changeset in webkit [257483] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r257471.

Causes crashes on the bots

Reverted changeset:

"Unreviewed, fix debug asserts on the bots after r257389."
https://trac.webkit.org/changeset/257471

10:58 AM Changeset in webkit [257482] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed, rolling out r257389.

Reverted changeset:

"Make sure a client cannot cause a whole DOM tree to get
leaked by simply holding on to a WKBundleNodeHandle"
https://bugs.webkit.org/show_bug.cgi?id=208218
https://trac.webkit.org/changeset/257389

10:45 AM Changeset in webkit [257481] by Jacob Uphoff
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r257373.

This commit introduced one test that is a flaky failure on ios
bots and broke another test

Reverted changeset:

"[iPadOS] REGRESSION(r247667): Autosizing style changes don't
invalidate RenderText's preferred logical widths"
https://bugs.webkit.org/show_bug.cgi?id=208084
https://trac.webkit.org/changeset/257373

10:34 AM Changeset in webkit [257480] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.111-branch/Source

Versioning.

9:53 AM Changeset in webkit [257479] by Jacob Uphoff
  • 9 edits in trunk/Source

Unreviewed, rolling out r257470.

This broke the build for tvOS and watchOS

Reverted changeset:

"Conversion between MediaSample and RemoteVideoSample should
preserve the rotation information"
https://bugs.webkit.org/show_bug.cgi?id=208240
https://trac.webkit.org/changeset/257470

9:15 AM Changeset in webkit [257478] by youenn@apple.com
  • 9 edits in trunk/Source/WebKit

GPUProcess should be made aware of device orientation for correct video capture frame rotation computation
https://bugs.webkit.org/show_bug.cgi?id=208242

Reviewed by Eric Carlson.

Pipe orientation information to GPUProcess whenever a page has a user media capture manager proxy.
This is used by AVVideoCaptureSource to compute the correct video sample rotation value.
Manually tested.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::setOrientationForMediaCapture):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::setMockCaptureDevicesEnabled):
(WebKit::GPUProcess::setOrientationForMediaCapture):

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

(WebKit::GPUProcessProxy::setOrientationForMediaCapture):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:
9:13 AM Changeset in webkit [257477] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, disable new DragAndDropTests.DragAndDropOnEmptyView API test on iOS.

The test was added for macOS and times out on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(TEST):

9:13 AM Changeset in webkit [257476] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208245

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:10 AM Changeset in webkit [257475] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257474 - Unreviewed build fix for non-unified builds with assertions enabled.

  • css/CSSImageSetValue.cpp: Add missing include.
9:04 AM Changeset in webkit [257474] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds with assertions enabled.

  • css/CSSImageSetValue.cpp: Add missing include.
8:16 AM Changeset in webkit [257473] by Andres Gonzalez
  • 10 edits in trunk/Source/WebCore

AXIsolatedObject support for table column objects.
https://bugs.webkit.org/show_bug.cgi?id=208215

Reviewed by Chris Fleizach.

Covered by existing tests.

  • AccessibilityTableColumn interface is now exposed through

AXCoreObject.

  • Separated isTableColumn from isAccessibilityTableColumnInstance.
  • This eliminates to need to downcast in the wrapper code, and hence

makes it possible that the same code works for both AccessibilityObjects
and AXIsolatedObjects.

  • Completed the caching of table column properties in AXIsolatedObject.
  • Some minor code cleanup.
  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren): Removed unnecessary cast.

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

(WebCore::AccessibilityTable::addChildren): Removed unnecessary cast.
(WebCore::AccessibilityTable::columnHeaders):

  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::columnHeader):
(WebCore::AccessibilityTableColumn::headerObject): Renamed columnHeader.

  • accessibility/AccessibilityTableColumn.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::isAccessibilityTableColumnInstance const):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

7:57 AM Changeset in webkit [257472] by youenn@apple.com
  • 12 edits in trunk

Use WebPageProxy preferences for capture instead of WebProcessPool configuration parameters
https://bugs.webkit.org/show_bug.cgi?id=208238

Reviewed by Eric Carlson.

Source/WebKit:

We can use page preferences instead of pool preferences for audio/video capture.
This allows removing code and is more up to date.
Manually tested.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:
  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):
(WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:

(TEST):
Remove use of deleted parameter.

7:56 AM Changeset in webkit [257471] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix debug asserts on the bots after r257389.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::create):

7:29 AM Changeset in webkit [257470] by youenn@apple.com
  • 9 edits in trunk/Source

Conversion between MediaSample and RemoteVideoSample should preserve the rotation information
https://bugs.webkit.org/show_bug.cgi?id=208240

Reviewed by Eric Carlson.

Source/WebCore:

Update RemoteVideoSample to have surface getter be const.
Add a new routine to convert a RemoteVideoSample in a MediaSample, with proper rotation and mirrored information.
Covered by manual testing.

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::surface const):

  • platform/graphics/RemoteVideoSample.h:

(WebCore::RemoteVideoSample::mirrored const):

  • platform/graphics/cv/ImageTransferSessionVT.h:
  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createMediaSample):

Source/WebKit:

Use new routine that preserves rotation.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::videoSampleAvailable):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable):

7:05 AM Changeset in webkit [257469] by Alan Bujtas
  • 3 edits
    2 adds in trunk
[LFC][IFC][Floats] ASSERT(committedInlineItemCount
line.hasIntrusiveFloat()) in LineLayoutContext::close

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

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/float-and-br-inline-content-only.html

Expand the ASSERT to include all the valid cases

  1. Inline content is added to the line
  2. Only float(s) got processed (no inline content)
  3. Neither floats not inline content got processed due to intrusive floats.

(This patch slightly rearranges the body of LineLayoutContext::commitFloats and also fixes an off-by-1 error in LineLayoutContext::close.)

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::commitFloats):

LayoutTests:

  • fast/layoutformattingcontext/float-and-br-inline-content-only-expected.html: Added.
  • fast/layoutformattingcontext/float-and-br-inline-content-only.html: Added.
6:45 AM Changeset in webkit [257468] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Correctly remove webvttenc on WebKitTextCombiner pad release
https://bugs.webkit.org/show_bug.cgi?id=208234

Reviewed by Xabier Rodriguez-Calvar.

The implementation of webkitTextCombinerReleasePad() was wrong in that
it was checking the peer pad of webkittextcombinerpad to check if it
belonged a webvttenc element and remove it... But since this is a
ghostpad, the peer is upstream, not downstream. When the release pad
function is called, upstream is already disconnected, so the branch
was never hit.

To actually remove the webvttenc element we must check the target pad
instead of the peer pad, which corresponds to the element downstream.
Also, we need to set the element state to NULL before removing it,
which the previous code didn't.

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:

(webkitTextCombinerReleasePad):

6:12 AM Changeset in webkit [257467] by Carlos Garcia Campos
  • 3 edits in trunk/LayoutTests

Unreviewed. Update fast/forms/number/number-size.html after r257299

Since r257299 the GTK port specific behavior is no longer needed, so we can remove the widthSpecified function
and use the specified value directly.

  • fast/forms/number/number-size-expected.txt:
  • fast/forms/number/number-size.html:
6:06 AM Changeset in webkit [257466] by Caio Lima
  • 6 edits in trunk

[JSC][MIPS] Adding support to Checkpoints
https://bugs.webkit.org/show_bug.cgi?id=208196

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/memcpy-typed-loop.js:

Source/JavaScriptCore:

This patch is adding changes to properly support OSR to
checkpoints on MIPS. It required fixes on JIT probe and some
adjustment on Offlineasm to correct generate $gp load when executing
checkpoint_osr_exit_from_inlined_call_trampoline.

  • assembler/MacroAssemblerMIPS.cpp:

Probe trampoline needs to allocate 16 bytes for 4 arguments to
properly follow C calling conventions. This space is used by callee
when the JSC is compiled with -O0 flags
(Check "DEFAULT C CALLING CONVENTION (O32)" section on
https://www.mips.com/downloads/mips32-instruction-set-quick-reference-v1-01).

  • llint/LowLevelInterpreter.asm:

As we need to do on ARMv7, 64-bits arguments needs to be passed in
register pairs $a1:$a0 or $a3:$a2 (little-endian mode). Since $a0
contais CallFrame*, we need to pass EncodedJSValue on $a3:$a2
pair.

  • offlineasm/mips.rb:

Following the same reason for return locations on OSR to LLInt, we
need to adjust $gp using $ra instead of $t9 on
checkpoint_osr_exit_from_inlined_call_trampoline, given it is only
reachable through ret operations. For detailed explanation, check
ChangeLog of https://trac.webkit.org/changeset/252713.

5:37 AM Changeset in webkit [257465] by Antti Koivisto
  • 20 edits in trunk/Source

Remove throttling code from RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=208135
<rdar://problem/59765410>

Unreviewed partial revert.

Source/WebCore:

Keep using the "flush" naming in GraphicsLayerClient.

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::notifyFlushRequired):
(WebCore::PageOverlayController::notifyRenderingUpdateRequired): Deleted.

  • page/PageOverlayController.h:
  • page/linux/ResourceUsageOverlayLinux.cpp:
  • page/mac/ServicesOverlayController.h:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):
(WebCore::ServicesOverlayController::Highlight::notifyRenderingUpdateRequired): Deleted.

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::notifyFlushRequired):
(WebCore::GraphicsLayerClient::notifyRenderingUpdateRequired): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::notifyFlushRequired):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyFlushRequired):
(WebCore::RenderLayerBacking::notifyRenderingUpdateRequired): Deleted.

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

(WebCore::RenderLayerCompositor::notifyFlushRequired):
(WebCore::RenderLayerCompositor::notifyRenderingUpdateRequired): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::notifyFlushRequired):
(WebKit::CompositingCoordinator::notifyRenderingUpdateRequired): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::notifyFlushRequired):
(WebView::notifyRenderingUpdateRequired): Deleted.

  • WebView.h:
5:12 AM Changeset in webkit [257464] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257416 - Unreviewed build fix for non-unified builds.

  • bindings/js/JSAnimationTimelineCustom.cpp: Add missing header include.
4:35 AM Changeset in webkit [257463] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/WebCore

[GL][GStreamer] Instantiate GstGLContext when the shared GLContext is created
https://bugs.webkit.org/show_bug.cgi?id=200626

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-02-26
Reviewed by Carlos Garcia Campos.

This patch adds GstGLContext and GstGLDisplay as part of
PlatformDisplay.

Right now one GstGLContext is created per video tag, which is a
wrapper of the GL shared context. Every time this wrapper is
created the GL context has to be current in order to initialize
the wrapper's internal state.

A better approach would be to have a single GstGLContext per GL
context, to instantiate it when the GL context is created and
current. This GstGLContext would be used for all media players.

GstGLContext and GstGLDisplay are instantiated as singletons by
PlatformDisplay. When the media player request for the
GstGLContext a GL context is instantiated, if it wasn't before,
and wraps it. PlatformDisplay adds two getters, one for
GstGLContext object, and other for GstGLDisplay. Both are used to
configure the internal GStreamer GL context in the multimedia
pipeline.

No new tests are needed.

  • platform/GStreamer.cmake:
  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::terminateEGLDisplay):

  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(requestGLContext):
(webKitGLVideoSinkChangeState):
(webKitGLVideoSinkProbePlatform):

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

(createGstGLDisplay):
(PlatformDisplay::tryEnsureGstGLContext):
(PlatformDisplay::gstGLDisplay const):
(PlatformDisplay::gstGLContext const):

3:50 AM Changeset in webkit [257462] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257417 - DocumentTimeline / CSSTransition objects are leaking on CNN.com
https://bugs.webkit.org/show_bug.cgi?id=208069
<rdar://problem/59680143>

Reviewed by Antoine Quint.

Break reference cycle between DocumentTimeline and WebAnimation by using WeakPtr.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeline const):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::setTimelineInternal):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::acceleratedStateDidChange):

  • animation/WebAnimation.h:

(WebCore::WebAnimation::timeline const): Deleted.

2:58 AM Changeset in webkit [257461] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257408 - ASSERTION FAILURE in AppendNodeCommand::AppendNodeCommand when inserting list with read-only user-modify
https://bugs.webkit.org/show_bug.cgi?id=208045
<rdar://problem/39023383>

Patch by Jack Lee <Jack Lee> on 2020-02-25
Reviewed by Ryosuke Niwa.

When inserting a list (InsertListCommand) around enclosed list items, if new list is not editable, skip moving list items in function doApplyForSingleParagraph.

Source/WebCore:

Test: fast/lists/insert-list-user-modify-read-only-enclosed-li.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph):

LayoutTests:

  • fast/lists/insert-list-user-modify-read-only-enclosed-li-expected.txt: Added.
  • fast/lists/insert-list-user-modify-read-only-enclosed-li.html: Added.
2:58 AM Changeset in webkit [257460] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257407 - Nullptr crash in CompositeEditCommand::splitTreeToNode
https://bugs.webkit.org/show_bug.cgi?id=208039
<rdar://problem/52011355>

Patch by Jack Lee <Jack Lee> on 2020-02-25
Reviewed by Ryosuke Niwa.

When inserting a list (InsertListCommand) around orphaned list items, if unordered list is not editable, skip moving list items in function fixOrphanedListChild.

Source/WebCore:

Test: fast/lists/insert-list-user-modify-read-only-orphaned-li.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::doApplyForSingleParagraph):

  • editing/InsertListCommand.h:

LayoutTests:

  • fast/lists/insert-list-user-modify-read-only-orphaned-li-expected.txt: Added.
  • fast/lists/insert-list-user-modify-read-only-orphaned-li.html: Added.
2:58 AM Changeset in webkit [257459] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r257361 - Assertion failed: currentSchema == createV1ObjectStoreInfoSchema(objectStoreInfoTableName)
currentSchema == createV1ObjectStoreInfoSchema(objectStoreInfoTableNameAlternate)

https://bugs.webkit.org/show_bug.cgi?id=208144

Reviewed by Ryosuke Niwa.

Change a release assertion to release error log to gather information about bug. This is also the pattern of
handling error during schema update in SQLiteIDBBackingStore.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):

2:58 AM Changeset in webkit [257458] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r257304 - [WPE] Enable BACKTRACE_SYMBOLS
https://bugs.webkit.org/show_bug.cgi?id=208187

Reviewed by Žan Doberšek.

  • wtf/PlatformHave.h: Enable backtrace_symbols, to be combined

with dladdr() the stacktrace dumps will be improved.

2:58 AM Changeset in webkit [257457] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r257298 - [Linux] StackTrace symbols are not demangled
https://bugs.webkit.org/show_bug.cgi?id=207933

Reviewed by Yusuke Suzuki.

Demangle symbols provided by backtrace_symbols.

  • wtf/StackTrace.cpp:

(WTF::StackTrace::dump const):

2:58 AM Changeset in webkit [257456] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257292 - PS-2019-006: [GTK] WebKit - AXObjectCache - m_deferredFocusedNodeChange - UaF
https://bugs.webkit.org/show_bug.cgi?id=204342

Reviewed by Carlos Garcia Campos.

m_deferredFocusedNodeChange keeps pairs of a old node and a new one
to update a focused node later. When a node is removed in the document,
it is also removed from the pair vector. The problem is only comparing
the new node in each pair with a removed node decides the removal.
In the case where the removed node lives in m_deferredFocusedNodeChange
as an old node, a crash happens while we get a renderer of the removed node
to handle focused elements. To fix this, we find all entries of which old node
is matched to the removed node, and set their first value null.

No new tests since no functionality changed.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):

2:58 AM Changeset in webkit [257455] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257235 - Document / DOMWindow objects get leaked on CNN.com due to CSSTransitions
https://bugs.webkit.org/show_bug.cgi?id=208145

Reviewed by Antoine Quint.

Break reference cycles using WeakPtr so that CSSTransitions can no longer cause whole document / DOM trees to
get leaked.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::DocumentTimeline):

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::setTarget):

  • animation/KeyframeEffect.h:
2:58 AM Changeset in webkit [257454] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r257222 - Protect WebProcessPool from null weak pointers in m_serviceWorkerProcesses map
https://bugs.webkit.org/show_bug.cgi?id=208143
rdar://problem/58285589

Reviewed by Alex Christensen.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateServiceWorkerUserAgent):
(WebKit::WebProcessPool::updateProcessAssertions):
When iterating through the map, make sure it does not have a null entry.

2:58 AM Changeset in webkit [257453] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257207 - RenderLayerBacking::notifyAnimationStarted calls directly into the old animation controller
https://bugs.webkit.org/show_bug.cgi?id=207979

Reviewed by Simon Fraser.

Only call into CSSAnimationController if the "Web Animations for CSS Animations" flag is disabled.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyAnimationStarted):

2:57 AM Changeset in webkit [257452] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257202 - [GStreamer][WPE] Add GstGLMemoryEGL support for the video-plane-display
https://bugs.webkit.org/show_bug.cgi?id=208046

Reviewed by Žan Doberšek.

The glupload element might fill EGL memories in some cases, so for
the video sink we can then directly access the corresponding
EGLImage and export it to DMABuf, instead of using the more
general GLMemory code path.

With this patch we also ensure that both DMABuf FD and stride are valid.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::handoffVideoDmaBuf):

2:57 AM Changeset in webkit [257451] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r257139 - [WPE][GTK] googleapis.com is a public suffix, defeating isGoogle() check in UserAgentQuirks.cpp
https://bugs.webkit.org/show_bug.cgi?id=207984

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-21
Reviewed by Daniel Bates.

Source/WebCore:

Fix the check for googleapis.com. Since it's now a public suffix, we can no longer check the
URL's base domain here. Instead, we can check endsWith().

I considered switching to endsWith() for all the checks in this file, to make our user agent
quirks robust to future changes in the public suffix list, but checking the base domain is
nicer and it seems unnecessary. We can continue to adjust our quirks in the future as
necessary.

The public suffix list:
https://github.com/publicsuffix/list/blob/7922d7c20e246552be418e8f72e577899fd30d99/public_suffix_list.dat#L11922

  • platform/UserAgentQuirks.cpp:

(WebCore::isGoogle):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

2:57 AM Changeset in webkit [257450] by Carlos Garcia Campos
  • 9 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257138 - [Web Animations] Repeated animations on pseudo elements will fail to run after a while
https://bugs.webkit.org/show_bug.cgi?id=207993
Source/WebCore:

<rdar://problem/59428472>

Reviewed by Zalan Bujtas.

We failed to clear PseudoElement* from AnimationTimeline's various HashMaps on destruction,
causing animations to fail to run when those pointer addresses were reused.

Make DeclarativeAnimation::owningElement() be a WeakPtr<>.

Test: animations/many-pseudo-animations.html

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::willDestoryRendererForElement):
(WebCore::AnimationTimeline::elementWasRemoved):

  • animation/AnimationTimeline.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::DeclarativeAnimation):
(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:

(WebCore::DeclarativeAnimation::owningElement const):

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::clearHostElement):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers):

LayoutTests:

Reviewed by Zalan Bujtas.

  • animations/many-pseudo-animations-expected.txt: Added.
  • animations/many-pseudo-animations.html: Added.
2:57 AM Changeset in webkit [257449] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257133 - [GStreamer] TextCombinerGStreamer is failing to compile with Gst1.14
https://bugs.webkit.org/show_bug.cgi?id=208041

Reviewed by Xabier Rodriguez-Calvar.

Replace usage of gst_clear_object and gst_clear_tag_list with previous
*_unref functions. The clear versions were added in 1.16 while Ubuntu
18.04 (current LTS) and Debian stable uses 1.14.

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:

(webkitTextCombinerPadDispose):

2:57 AM Changeset in webkit [257448] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.28

Merge r257132 - Value sanitization for input[type=text] should not truncate a value at a control character
https://bugs.webkit.org/show_bug.cgi?id=207900

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline the tests. Below its a summary of the number of FAIL and PASS lines changed for each test:

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt: FAIL from 7312 to 374 PASS from 17 to 6955
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt: FAIL from 21216 to 477 PASS from 53 to 20792
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul-expected.txt: FAIL from 11155 to 0 PASS from 28 to 11183
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt: FAIL from 3422 to 46 PASS from 9 to 3385
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt: FAIL from 7375 to 374 PASS from 17 to 7018
  • web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: FAIL from 20 to 10 PASS from 22 to 32

Source/WebCore:

Stop truncating value at a control character. The new behavior is compatible with Chrome and Firefox.
Inspired on Chromium patch https://codereview.chromium.org/189843008

Covered by existing tests: affected layout tests are modified to reflect the new behaviour.
This improves WPT pass-rate in around 49K new subtest passes for Japanesse encoding tests.

  • html/TextFieldInputType.cpp:

(WebCore::limitLength):

LayoutTests:

Update layout tests to reflect the new behaviour.

  • fast/forms/input-value-sanitization-expected.txt:
  • fast/forms/input-value-sanitization.html:
  • fast/forms/paste-multiline-text-input.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
2:57 AM Changeset in webkit [257447] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257129 - Nullptr crash in RenderStyle::isFlippedBlocksWritingMode when fragment flow gains a new in-flow descendant
https://bugs.webkit.org/show_bug.cgi?id=207296
<rdar://problem/49687828>

Patch by Jack Lee <Jack Lee> on 2020-02-21
Reviewed by Antti Koivisto.

When a multi-column fragment flow gains a new in-flow descendant, we need to call
multiColumnDescendantInserted so RenderMultiColumnSet would be created for the new
descendant.

Source/WebCore:

Test: fast/multicol/fragflow-gains-new-in-flow-descendant-crash.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):

LayoutTests:

  • TestExpectations:
  • fast/multicol/fragflow-gains-new-in-flow-descendant-crash-expected.txt: Added.
  • fast/multicol/fragflow-gains-new-in-flow-descendant-crash.html: Added.
2:57 AM Changeset in webkit [257446] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28

Merge r257128 - [GTK] Improve user agent quirk for Google Docs and Google Drive
https://bugs.webkit.org/show_bug.cgi?id=206506

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-20
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Stop using our macOS platform quirk for Google Docs and Google Drive. It is not successfully
suppressing the unsupported browser warnings that it was added to avoid. It is also
responsible for complaints from users who do not like seeing macOS-style shortcuts with
the Command key rather than Ctrl.

Replace it with a new Firefox browser quirk. We can avoid the unsupported browser warning in
Google Docs by using this quirk on accounts.youtube.com. There's no need for any other quirk
specific to Google Docs (although removing the macOS platform quirk means we'll instead
begin using the x86_64 Linux quirk that we send to other Google domains). Google Drive will
also use this new quirk.

Also, remove a stale comment instructing developers to test downloading the Hangouts browser
plugin. We no longer support NPAPI, so Google Hangouts is a lost cause until we get WebRTC
working.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::TEST):

2:57 AM Changeset in webkit [257445] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257123 - Fix crash in Page::updateRendering when document has no domWindow
https://bugs.webkit.org/show_bug.cgi?id=207975
<rdar://56999099>

Patch by Sunny He <sunny_he@apple.com> on 2020-02-20
Reviewed by Ryosuke Niwa.

When a subframe is navigated, a new document is created and
the window is transfered asynchronously. It is possible to have
a call to updateRendering in the middle of this process, resulting
in an attempt to update a document with no window. Add a check for
this case and skip such documents.

No test, since this crash relies on sensitive timing that cannot be
consistently replicated in a test case.

  • page/Page.cpp:

(WebCore::Page::updateRendering):

2:57 AM Changeset in webkit [257444] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r257103 - WebIDBServer resume should return early if suspend does not happen
https://bugs.webkit.org/show_bug.cgi?id=208027
<rdar://problem/59617654>

Reviewed by Geoffrey Garen.

We should not try releasing a lock that is not held.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::resume):

2:57 AM Changeset in webkit [257443] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257090 - [GStreamer] Fix race in TextCombinerGStreamer
https://bugs.webkit.org/show_bug.cgi?id=208001

Reviewed by Xabier Rodriguez-Calvar.

TextCombinerGStreamer uses the CAPS event to determine whether adding
a webvttenc between the text track pad and the funnel element used to
be able to display several subtitles at the same time.

The way this was done previously had a race though: all text track
pads were preemptively linked directly to the funnel, only adding the
webvttenc element later in the middle when receiving the CAPS event.

When two or more text tracks were present, it wasn't infrequent that
one track had its CAPS event processed (causing the webvttenc element
to be added) and propagated (fixating the funnel caps) before another
track attempted caps negotiation. Because the pads were connected to
the funnel preemptively, and because without the webvttenc element the
caps of the text pad don't match the funnel's, this causes a caps
mismatch error, stopping playback completely. The CAPS event is
therefore never sent.

To avoid this race, we must avoid linking elements until we get the
CAPS events, when we actually know where we should link them to,
therefore avoiding early caps negotiation errors.

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:

(webkitTextCombinerPadDispose):
(webkitTextCombinerPadEvent):
(webkitTextCombinerRequestNewPad):
(webkitTextCombinerReleasePad):
(webkit_text_combiner_class_init):
(webkitTextCombinerPadFinalize): Deleted.

2:56 AM Changeset in webkit [257442] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28

Merge r257077 - REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:

(TEST):

2:56 AM Changeset in webkit [257441] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28

Merge r257067 - [GTK][WPE] Not set ccache compiler prefix if ccache its already the compiler binary in path.
https://bugs.webkit.org/show_bug.cgi?id=208007

Reviewed by Tim Horton.

Detect if the compiler binary already points to the ccache binary and in that case don't
set the ccache compiler prefix. Also export CCACHE_SLOPPINESS=time_macros if its not
defined to other thing on the environment and add a some logging of related messages.

  • Source/cmake/WebKitCCache.cmake:
2:56 AM Changeset in webkit [257440] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257046 - ASSERTION FAILED: roundedIntPoint(LayoutPoint(rendererMappedResult)) == result in WebCore::RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=151030
<rdar://problem/27711142>

Patch by Jack Lee <Jack Lee> on 2020-02-19
Reviewed by Darin Adler.

Track if m_accumulatedOffset ever becomes saturated, and if so, do not assert on unexpected rendererMappedResult.

Source/WebCore:

Test: fast/layers/geometry-map-saturated-offset-assert.html

  • platform/graphics/LayoutSize.h:

(WebCore::LayoutSize::mightBeSaturated const):

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::mapToContainer const):
(WebCore::RenderGeometryMap::stepInserted):
(WebCore::RenderGeometryMap::stepRemoved):

  • rendering/RenderGeometryMap.h:

LayoutTests:

  • fast/layers/geometry-map-saturated-offset-assert-expected.txt: Added.
  • fast/layers/geometry-map-saturated-offset-assert.html: Added.
2:56 AM Changeset in webkit [257439] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r257042 - Web Automation: Automation.setWindowFrameOfBrowsingContext should accept negative x and y-origin values
https://bugs.webkit.org/show_bug.cgi?id=207974
<rdar://problem/59606705>

Reviewed by Darin Adler.

According to the spec, negative origin values are supported:

https://w3c.github.io/webdriver/#set-window-rect

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext):

2:56 AM Changeset in webkit [257438] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257036 - Fix crash when Node::normalize() triggers mutation event that modifies child order
https://bugs.webkit.org/show_bug.cgi?id=207875
<rdar://58976682>

Patch by Sunny He <sunny_he@apple.com> on 2020-02-19
Reviewed by Ryosuke Niwa.

When Node::normalize() merges two text nodes, it calls appendData
before textNodesMerged. If there is a mutator event registered, it
will fire on the call to appendData, potentially changing the child
order and causing a nullptr crash due to incorrect sibling pointers.
Reverse the order of these calls to ensure order gets correctly
updated.

Source/WebCore:

Test: fast/dom/Node/normalize-mutation-event.html

  • dom/Node.cpp:

(WebCore::Node::normalize):

LayoutTests:

  • fast/dom/Node/normalize-mutation-event-expected.txt: Added.
  • fast/dom/Node/normalize-mutation-event.html: Added.
2:56 AM Changeset in webkit [257437] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r257013 - Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973

Reviewed by Chris Dumez.

Use RefPtr to store Frame*.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):

2:56 AM Changeset in webkit [257436] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256967 - Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>

Reviewed by Alex Christensen.

NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).

To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting):
(WebKit::NetworkProcess::setCacheModel):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::cacheModel const):

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::initialize):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::computeCapacity):
(WebKit::NetworkCache::Cache::open):
(WebKit::NetworkCache::Cache::capacity const):
(WebKit::NetworkCache::Cache::updateCapacity):
(WebKit::NetworkCache::Cache::setCapacity): Deleted.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::setCapacity):

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setCacheModel):

2:56 AM Changeset in webkit [257435] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256932 - Disable the process cache when process-per-tab is disabled in the debug menu
https://bugs.webkit.org/show_bug.cgi?id=207949
<rdar://problem/57094837>

Reviewed by Geoffrey Garen.

Disable the process cache when process-per-tab is disabled in the debug menu. The process cache is a
process-swap-on-navigation optimization and process-swap-on-navigation is already disabled when
process-per-tab is disabled. The process cache is not useful with such configuration and actually
leads to crashes too.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::updateCapacity):

2:56 AM Changeset in webkit [257434] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r256925 - Re-disable top-level data URL navigations
https://bugs.webkit.org/show_bug.cgi?id=207917
<rdar://problem/59568037>

Reviewed by Darin Adler.

Source/WebCore:

Calls to WKPage and WKWebView API used to load data and strings directly should be recognized by
the loading code as being from client API calls. This brings these API behaviors into alignment
with similar API for loading URLs and URLRequests directly. This change also allows us to enforce
stricter handling of Data URLs, and to remove the need to explicitly permit top-level data URL
navigation when client APIs are used.

Tested by TestWebKitAPI Navigation tests.

  • page/Settings.yaml:

Source/WebKit:

In Bug 207719 we allowed top-level navigations to data URLs by default. This
patch updates client loading API calls so that we can go back to a default
block of these loads without breaking WebKit clients.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadDataImpl): Recognize direct data loads started from client API.

  • WebProcess/WebPage/WebPage.h:
2:56 AM Changeset in webkit [257433] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28

Merge r256917 - [GTK][WPE] Set ccache as compiler launcher, add opt-in sccache support
https://bugs.webkit.org/show_bug.cgi?id=207838

Reviewed by Carlos Alberto Lopez Perez.

This change allows for more granular control over the compiler
launcher configuration. The build host should no longer need to
set ccache symbolic links. Additionally optional support for
sccache is added, enabled when the WEBKIT_USE_SCCACHE environment
variable is set to YES.

  • Source/cmake/WebKitCCache.cmake:
2:56 AM Changeset in webkit [257432] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28

Merge r256913 - [WPE] Support 2D axis, smooth-motion events
https://bugs.webkit.org/show_bug.cgi?id=207881

Reviewed by Carlos Garcia Campos.

Source/WebKit:

WPE's WebEventFactory should also handle axis events that are capable
of providing information about axis change in both dimensions. In case
of smooth motion, the delta values should be preserved and not
transformed into line-steps.

Similarly, the ScrollGestureController should also adopt the 2D axis
event type, producing smooth-motion events when dispatching handling
a scroll gesture.

The changes are guarded and only enabled when building against at least
libwpe 1.5.0 since that's when the new API was added.

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

(WebKit::ScrollGestureController::axisEvent):

Tools:

  • wpe/jhbuild.modules: Bump to a newer libwpe commit.
2:56 AM Changeset in webkit [257431] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r256850 - Fix order (in MIPS) under which CS-registers are saved/restored
https://bugs.webkit.org/show_bug.cgi?id=207752

Patch by Paulo Matos <Paulo Matos> on 2020-02-18
Reviewed by Keith Miller.

This has been causing several segfaults on MIPS with JIT enabled
because during an OSR to baseline, the order in which LLInt was
saving the registers was not in sync with the way baseline was
restoring them.

  • llint/LowLevelInterpreter.asm:
2:56 AM Changeset in webkit [257430] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256831 - ASSERT_NOT_REACHED() under WebPageProxy::suspendCurrentPageIfPossible()
https://bugs.webkit.org/show_bug.cgi?id=207868
<rdar://problem/59464606>

Reviewed by John Wilander.

Source/WebCore:

Test: http/tests/navigation/process-swap-on-client-side-redirect-private.html

  • loader/HistoryController.cpp:

(WebCore::HistoryController::updateForSameDocumentNavigation):
Methods in HistoryController avoids updating visited links and calling updateGlobalHistory()
on the FrameLoaderClient when in an ephemeral session. However, updateForSameDocumentNavigation()
was returning early in ephemeral sessions, which was overly aggressive and bypasses things we
really need to do, like updating the current HistoryItem's url.

LayoutTests:

Add layout test that was hitting the assertion before my change.

  • http/tests/navigation/process-swap-on-client-side-redirect-private-expected.txt: Added.
  • http/tests/navigation/process-swap-on-client-side-redirect-private.html: Added.
2:55 AM Changeset in webkit [257429] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256764 - Null Ptr Deref @ WebCore::Node::Treescope
https://bugs.webkit.org/show_bug.cgi?id=207748

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-02-17
Reviewed by Darin Adler.

Source/WebCore:

Added a check for isTextField after updateLayoutIgnorePendingStylesheets as that could cause modification of input element type.

Test: editing/selection/ignore-selection-range-on-input-style-change.html

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

Added a regression test provided by Ryosuke Niwa to verify the fix.

  • editing/selection/ignore-selection-range-on-input-style-change-expected.txt: Added.
  • editing/selection/ignore-selection-range-on-input-style-change.html: Added.
2:55 AM Changeset in webkit [257428] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256738 - IndexedDB: index cursor iteration is slow when there are a lot of index records from different object stores
https://bugs.webkit.org/show_bug.cgi?id=207377
<rdar://problem/59288679>

Reviewed by Brady Eidson.

Make the Index of IndexRecords table include indexID since we always perform search with indexID.
This would let SQLite optimize the index statement in SQLiteCursor with Covering Index and fix the slowness.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::v1IndexRecordsIndexSchema): Deleted.

2:55 AM Changeset in webkit [257427] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28

Merge r256727 - [WPE] Change the QML plugin install path
https://bugs.webkit.org/show_bug.cgi?id=207761

Reviewed by Philippe Normand.

Source/WebKit:

This way there's no need to set QML2_IMPORT_PATH manually.

  • PlatformWPE.cmake:

Tools:

  • Scripts/run-qt-wpe-minibrowser:
  • glib/api_test_runner.py:

(TestRunner._run_test_qt):

2:55 AM Changeset in webkit [257426] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/gtk/po

Merge r256723 - Updated Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=207685

Patch by Yuchen Guo <egyc@live.com> on 2020-02-17
Rubber-stamped by Carlos Garcia Campos.

  • zh_CN.po:
2:55 AM Changeset in webkit [257425] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256719 - Log WebSocket failure in case of network crash
https://bugs.webkit.org/show_bug.cgi?id=207801

Reviewed by Darin Adler.

Covered by http/tests/websocket/tests/hybi/network-process-crash-error.html.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::didReceiveMessageError):
(WebKit::WebSocketChannel::networkProcessCrashed):
Add a console log message in case of error coming from network process.

2:55 AM Changeset in webkit [257424] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r256718 - Remove nonArgGPR1 for ARMv7 and ARM64 (unused)
https://bugs.webkit.org/show_bug.cgi?id=207753

Patch by Paulo Matos <Paulo Matos> on 2020-02-16
Reviewed by Darin Adler.

Cleanup commit - nonArgGPR1 is unused for both ARMv7
and ARM64.

  • jit/GPRInfo.h:
2:55 AM Changeset in webkit [257423] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256705 - Unreviewed build fix for non-unified builds.

No new tests needed.

  • animation/AnimationEventBase.cpp: Add missing include.
  • animation/DeclarativeAnimation.cpp: Ditto.
2:55 AM Changeset in webkit [257422] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256703 - [Geoclue] Avoid usage of provider in callbacks after it has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=207420

GeoclueGeolocationProvider was making non-cancelable g_dbus_proxy_call(s) with
bare |this| pointer.

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-15
Reviewed by Carlos Garcia Campos.

  • UIProcess/geoclue/GeoclueGeolocationProvider.cpp:

(WebKit::GeoclueGeolocationProvider::start):
(WebKit::GeoclueGeolocationProvider::stop):
(WebKit::GeoclueGeolocationProvider::setupManager):
(WebKit::GeoclueGeolocationProvider::createClient):
(WebKit::GeoclueGeolocationProvider::startClient):
(WebKit::GeoclueGeolocationProvider::didFail):

  • UIProcess/geoclue/GeoclueGeolocationProvider.h:
2:55 AM Changeset in webkit [257421] by Carlos Garcia Campos
  • 26 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256659 - new FontFace() should not throw when failing to parse arguments
https://bugs.webkit.org/show_bug.cgi?id=205770

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Myles Maxfield.

Source/WebCore:

Change FontFace constructor to conform to API specification:
https://drafts.csswg.org/css-font-loading/#dom-fontface-fontface.
No longer throws. For parsing failure, now rejects promise, sets
status to error, and sets FontFace members to default string.

Test: http/tests/css/font-face-constructor.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::setErrorState):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::addToFacesLookupTable):
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::fontFace):

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::fontRanges):

  • css/FontFace.cpp:

(WebCore::FontFace::setErrorState):
(WebCore::FontFace::create):
(WebCore::FontFace::family const):
(WebCore::FontFace::style const):
(WebCore::FontFace::weight const):
(WebCore::FontFace::stretch const):
(WebCore::FontFace::unicodeRange const):
(WebCore::FontFace::featureSettings const):
(WebCore::FontFace::display const):
(WebCore::FontFace::fontStateChanged):

  • css/FontFace.h:
  • css/FontFace.idl:

LayoutTests:

Tests that constructor doesn't throw, sets members to corresponding default strings.

  • http/tests/css/font-face-constructor-expected.txt: Added.
  • http/tests/css/font-face-constructor.html: Added.
2:54 AM Changeset in webkit [257420] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256636 - [Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.

After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.

  • page/Frame.cpp:

(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

2:54 AM Changeset in webkit [257419] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r256629 - Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.

Source/WTF:

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::mapHostName):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

2:54 AM Changeset in webkit [257418] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.28

Merge r256627 - [Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark Web Platform Tests progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:

Source/WebCore:

While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.

To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.

If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.

Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.

  • animation/AnimationTimeline.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::unanimatedStyle const):

  • style/StyleTreeResolver.cpp:

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

LayoutTests:

Mark that a couple of tests are no longer flaky.

2:44 AM WebKitGTK/2.28.x edited by Carlos Garcia Campos
(diff)
2:44 AM WebKitGTK/2.28.x edited by Carlos Garcia Campos
(diff)
2:21 AM Changeset in webkit [257417] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

DocumentTimeline / CSSTransition objects are leaking on CNN.com
https://bugs.webkit.org/show_bug.cgi?id=208069
<rdar://problem/59680143>

Reviewed by Antoine Quint.

Break reference cycle between DocumentTimeline and WebAnimation by using WeakPtr.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeline const):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::setTimelineInternal):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::acceleratedStateDidChange):

  • animation/WebAnimation.h:

(WebCore::WebAnimation::timeline const): Deleted.

2:07 AM Changeset in webkit [257416] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds.

  • bindings/js/JSAnimationTimelineCustom.cpp: Add missing header include.
1:16 AM Changeset in webkit [257415] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK version numbers

  • Source/cmake/OptionsGTK.cmake:
12:47 AM Changeset in webkit [257414] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Custom element caching should be aware of different worlds.
https://bugs.webkit.org/show_bug.cgi?id=208228
<rdar://problem/57881013>

Reviewed by Ryosuke Niwa.

Even though a custom element is cached in one world, we should return an unknown
HTMl element in a different world.

Test to be added in https://bugs.webkit.org/show_bug.cgi?id=208229.

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated):

12:38 AM Changeset in webkit [257413] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Call pending m_unregisterJobs completion handlers when WebSWServerConnection goes away
https://bugs.webkit.org/show_bug.cgi?id=208208
<rdar://problem/59747016>

Reviewed by Alex Christensen.

Covered by existing tests in debug.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::~WebSWServerConnection):
Make sure to call pending completion handlers at destruction time.
They will do nothing since their goal is to send back an IPC message
on a dead IPC connection.

Feb 25, 2020:

11:49 PM Changeset in webkit [257412] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix for unified source builds

Modules\websockets\WebSocket.cpp(334): error C2065: 'WorkerGlobalScope': undeclared identifier
Modules\websockets\WebSocket.cpp(334): error C2672: 'downcast': no matching overloaded function found
Modules\websockets\WebSocket.cpp(334): error C2974: 'WTF::downcast': invalid template argument for 'Target', type expected

  • Modules/websockets/WebSocket.cpp: Added #include "WorkerGlobalScope.h".
11:18 PM Changeset in webkit [257411] by Nikita Vasilyev
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: AXI: buttons should be focusable when navigating by pressing Tab
https://bugs.webkit.org/show_bug.cgi?id=208163
<rdar://problem/59745448>

Reviewed by Brian Burg.

Buttons now accessible with Tab navigation. The focused button has the native focus outline.

Clicking on the button does NOT move the focus. For example, when you're focused on the
console prompt, clicking on the icon to hide the right sidebar keeps you focused where
you were — the console prompt. This behavior matches macOS.

Convert WI.NavigationItem with role=button from <div> to <button> elements.
Button elements have implicit tabIndex=0. When focused, pressing Space or Enter
triggers "click" event.

  • UserInterface/Views/ActivateButtonNavigationItem.js:

(WI.ActivateButtonNavigationItem.prototype.set activated):
Add "aria-pressed" and "aria-label" attributes for VoiceOver.

  • UserInterface/Views/ButtonNavigationItem.css:

(.navigation-bar .item.button:not(.image-only):focus,):
(.navigation-bar .item.button.image-only:focus):
(.navigation-bar .item.button:not(.disabled):matches(.activate.activated, .radio.selected) > .glyph):
(.navigation-bar .item.button:not(.disabled):active:matches(.activate.activated, .radio.selected) > .glyph):
Before this patch, focused button looked the same as activated buttons.
For example, the focused (non-active) bullseye icon looked exactly the
same as unfocused active bullseye icon, which was misleading.

  • UserInterface/Views/ButtonNavigationItem.js:

(WI.ButtonNavigationItem):
(WI.ButtonNavigationItem.prototype._mouseClicked):
(WI.ButtonNavigationItem.prototype._handleMouseDown):
Clicking on a button shouldn't move focus. For example, when you're focused on the console prompt,
clicking on the icon to hide the right sidebar should keep you focused where you were - the console prompt.

(WI.ButtonNavigationItem.prototype._handleKeyDown):

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button):
Adjust outline offset to remove the gap between the outline and the border of the button.

(.toolbar .item.button:not(.disabled).activate.activated):
(@media (prefers-color-scheme: dark) body:not(.window-inactive) .toolbar .item.button:not(.disabled).activate.activated > .glyph):

  • UserInterface/Views/ControlToolbarItem.css:

(.toolbar .item.control:focus):
(.toolbar .item.control:focus > .glyph):
Draw the outline around the X (close button) glyph, not the button itself (which is much wider than the glyph).

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar .item):
(.navigation-bar .item:focus):

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar):
"focus" and "blur" events don't bubble. These event handlers didn't capture the event.

(WI.NavigationBar.prototype._mouseDown):
(WI.NavigationBar.prototype._keyDown):

  • UserInterface/Views/NavigationItem.js:

(WI.NavigationItem):

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button:focus):

  • UserInterface/Views/Toolbar.css:

(.toolbar .item):

10:05 PM Changeset in webkit [257410] by Devin Rousso
  • 53 edits
    6 copies
    7 adds in trunk

Web Inspector: safari app extension isolated worlds and injected files use the extension's identifier instead of its name
https://bugs.webkit.org/show_bug.cgi?id=206911
<rdar://problem/58026635>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Browser.json: Added.

Add a Browser agent that can communicate with the inspected page's containing browser. It
lives in the UIProcess alongside the Target agent (meaning there should only be one per
debuggable rather than one per target) and as such is not routed through the Target agent.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:

Source/WebCore:

  • Modules/webauthn/AuthenticationExtensionsClientOutputs.h:

Drive-by: add missing include.

Source/WebInspectorUI:

  • UserInterface/Controllers/BrowserManager.js: Added.

(WI.BrowserManager):
(WI.BrowserManager.prototype.initializeTarget):
(WI.BrowserManager.prototype.enable):
(WI.BrowserManager.prototype.disable):
(WI.BrowserManager.prototype.isExtensionScheme):
(WI.BrowserManager.prototype.extensionNameForId):
(WI.BrowserManager.prototype.extensionNameForURL):

  • UserInterface/Protocol/BrowserObserver.js: Added.

(WI.BrowserObserver.prototype.extensionsEnabled):
(WI.BrowserObserver.prototype.extensionsDisabled):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.get BrowserAgent): Added.

  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Main.html:
  • UserInterface/Test/Test.js:

(WI.loaded):

  • UserInterface/Test.html:

Add an observer and manager for the Browser domain.

  • UserInterface/Protocol/MultiplexingBackendTarget.js:

(WI.MultiplexingBackendTarget):
(WI.MultiplexingBackendTarget.prototype.initialize):

  • UserInterface/Controllers/TargetManager.js:

(WI.TargetManager.prototype.initializeTarget): Added.
The Browser agent lives in the UIProcess alongside the Target agent (meaning there
should only be one per debuggable rather than one per target) and as such is not routed
through the Target agent.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._displayNameForExecutionContext):
Attempt to match the execution context name against any known extension identifier, and
use the extension's display name if one is found.

  • UserInterface/Base/URLUtilities.js:

(WI.displayNameForHost):
Attempt to match the host against any known extension identifier, and use the extension's
display name if one is found.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._addStyleSheet):
(WI.SourcesNavigationSidebarPanel.prototype._addScript):

  • UserInterface/Base/Utilities.js:

(isWebKitExtensionScheme): Deleted.

  • .eslintrc:

Use WI.BrowserManager.prototype.isExtensionScheme instead of the global function.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode):
(WI.SourceCode.prototype.get url): Added.
(WI.SourceCode.prototype.get urlComponents): Added.

  • UserInterface/Models/CSSStyleSheet.js:

(WI.CSSStyleSheet):
(WI.CSSStyleSheet.prototype.get injected):
(WI.CSSStyleSheet.prototype.get url): Deleted.
(WI.CSSStyleSheet.prototype.get urlComponents): Deleted.

  • UserInterface/Models/Resource.js:

(WI.Resource):
(WI.Resource.prototype.get url): Deleted.
(WI.Resource.prototype.get urlComponents): Deleted.

  • UserInterface/Models/Script.js:

(WI.Script):
(WI.Script.prototype.get url): Deleted.
(WI.Script.prototype.get urlComponents): Deleted.
All subclasses of WI.SourceCode have separate get url and get urlComponents functions,
so unify them in the common superclass so that it's guaranteed to exist.

Source/WebKit:

  • UIProcess/Inspector/WebPageInspectorController.h:

(WebKit::WebPageInspectorController::enabledInspectorBrowserAgent const): Added.
(WebKit::WebPageInspectorController::setEnabledInspectorBrowserAgent): Added.

  • UIProcess/Inspector/WebPageInspectorController.cpp:

(WebKit::WebPageInspectorController::WebPageInspectorController):
(WebKit::WebPageInspectorController::connectFrontend):
(WebKit::WebPageInspectorController::webPageAgentContext): Added.
(WebKit::WebPageInspectorController::createLazyAgents): Added.

  • UIProcess/Inspector/WebPageInspectorAgentBase.h: Added.

(WebKit::InspectorAgentBase::InspectorAgentBase):

  • UIProcess/Inspector/Agents/InspectorBrowserAgent.h: Added.
  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp: Added.

(WebKit::InspectorBrowserAgent::InspectorBrowserAgent):
(WebKit::InspectorBrowserAgent::enabled):
(WebKit::InspectorBrowserAgent::didCreateFrontendAndBackend):
(WebKit::InspectorBrowserAgent::willDestroyFrontendAndBackend):
(WebKit::InspectorBrowserAgent::enable):
(WebKit::InspectorBrowserAgent::disable):
(WebKit::InspectorBrowserAgent::extensionsEnabled):
(WebKit::InspectorBrowserAgent::extensionsDisabled):
Add a Browser agent that can communicate with the inspected page's containing browser. It
lives in the UIProcess alongside the Target agent (meaning there should only be one per
debuggable rather than one per target) and as such is not routed through the Target agent.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::inspectorClient): Added.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

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

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _inspectorDelegate]): Added.
(-[WKWebView _setInspectorDelegate:]): Added.
(WebKit::WebPageProxy::setInspectorClient): Added.

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

(WebKit::InspectorDelegate::InspectorDelegate):
(WebKit::InspectorDelegate::createInspectorClient):
(WebKit::InspectorDelegate::delegate):
(WebKit::InspectorDelegate::setDelegate):
(WebKit::InspectorDelegate::InspectorClient):
(WebKit::InspectorDelegate::InspectorClient::didAttachLocalInspector):
(WebKit::InspectorDelegate::InspectorClient::browserDomainEnabled):
(WebKit::InspectorDelegate::InspectorClient::browserDomainDisabled):

  • UIProcess/API/APIInspectorClient.h: Added.

(API::InspectorClient::didAttachLocalInspector):
(API::InspectorClient::browserDomainEnabled):
(API::InspectorClient::browserDomainDisabled):

  • UIProcess/API/Cocoa/_WKInspectorDelegate.h: Added.

Introduce an inspector delegate SPI for communicating information related to Web Inspector.

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

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

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

(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorProxy::browserExtensionsEnabled): Added.
(WebKit::WebInspectorProxy::browserExtensionsDisabled): Added.
Add SPI for when extensions are enabled/disabled so that Web Inspector can update.

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

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didAttachInspector): Deleted.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didAttachInspector): Deleted.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

Move _webView:didAttachInspector: from WKUIDelegatePrivate to _WKInspectorDelegate.

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h:

Drive-by: add missing include.

Source/WTF:

  • wtf/HashSet.h:

(WTF::HashSet::reserveInitialCapacity): Added.

Tools:

  • TestWebKitAPI/Tests/WTF/HashSet.cpp:

(TestWebKitAPI::TEST):
Add test for WTF::HashSet::reserveInitialCapacity.

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):
Actually check the value of WTF::HashMap::capacity.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKInspectorDelegate.mm: Added.

(-[InspectorDelegate _webView:didAttachInspector:])
(-[InspectorDelegate _webView:browserDomainEnabledForInspector:])
(-[InspectorDelegate _webView:browserDomainDisabledForInspector:])
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[InspectorDelegate _webView:didAttachInspector:]): Deleted.
(TestWebKitAPI::TEST): Deleted.

9:51 PM Changeset in webkit [257409] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

Unreviewed tvOS build fix; fix the compiler guards broken by r257189.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:
  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:
9:26 PM Changeset in webkit [257408] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERTION FAILURE in AppendNodeCommand::AppendNodeCommand when inserting list with read-only user-modify
https://bugs.webkit.org/show_bug.cgi?id=208045
<rdar://problem/39023383>

Patch by Jack Lee <Jack Lee> on 2020-02-25
Reviewed by Ryosuke Niwa.

When inserting a list (InsertListCommand) around enclosed list items, if new list is not editable, skip moving list items in function doApplyForSingleParagraph.

Source/WebCore:

Test: fast/lists/insert-list-user-modify-read-only-enclosed-li.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph):

LayoutTests:

  • fast/lists/insert-list-user-modify-read-only-enclosed-li-expected.txt: Added.
  • fast/lists/insert-list-user-modify-read-only-enclosed-li.html: Added.
9:18 PM Changeset in webkit [257407] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Nullptr crash in CompositeEditCommand::splitTreeToNode
https://bugs.webkit.org/show_bug.cgi?id=208039
<rdar://problem/52011355>

Patch by Jack Lee <Jack Lee> on 2020-02-25
Reviewed by Ryosuke Niwa.

When inserting a list (InsertListCommand) around orphaned list items, if unordered list is not editable, skip moving list items in function fixOrphanedListChild.

Source/WebCore:

Test: fast/lists/insert-list-user-modify-read-only-orphaned-li.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::doApplyForSingleParagraph):

  • editing/InsertListCommand.h:

LayoutTests:

  • fast/lists/insert-list-user-modify-read-only-orphaned-li-expected.txt: Added.
  • fast/lists/insert-list-user-modify-read-only-orphaned-li.html: Added.
8:53 PM Changeset in webkit [257406] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Various test-cases from Gecko assert with ASSERTION FAILED: layoutState->renderer() == this.
https://bugs.webkit.org/show_bug.cgi?id=202805

Skip the test that's always crashing as suggested by Alexey.

6:13 PM Changeset in webkit [257405] by Russell Epstein
  • 1 copy in tags/Safari-609.1.20.4.1

Tag Safari-609.1.20.4.1.

6:03 PM Changeset in webkit [257404] by Russell Epstein
  • 1 edit in branches/safari-609.1.20.4-branch/Source/JavaScriptCore/runtime/StructureTransitionTable.h

Unreviewed build fix, rdar://problem/59654262

5:54 PM Changeset in webkit [257403] by Alan Coon
  • 1 edit in branches/safari-609.1.20.111-branch/Source/JavaScriptCore/runtime/StructureTransitionTable.h

Unreviewed build fix, rdar://problem/59654262

5:49 PM Changeset in webkit [257402] by Justin Fan
  • 316 edits
    12 adds in trunk/LayoutTests

[ WebGL ] Update WebGL bot expectations
https://bugs.webkit.org/show_bug.cgi?id=208227

Unreviewed test gardening.

Update DEQP expectations after ANGLE switch, and revise list of skipped tests for WebGL bot.

  • webgl/2.0.0/deqp/functional/gles3/booleanstatequery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/bufferobjectquery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/add-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/div-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/length-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/log-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/max-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/min-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/round-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/step-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/draw/instancing-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/resize_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/resize_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/resize_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/resize_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/floatstatequery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fragdepth-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/integerstatequery-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/lifetime-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/negativestateapi-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/rbostatequery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/readpixel-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/samplerstatequery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy-expected.txt: Added.
  • webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderprecision_float-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shaderstatequery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/stringquery-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/position-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformapi/random-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrayobject-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read-expected.txt:
  • webgl/TestExpectations:
5:40 PM Changeset in webkit [257401] by Devin Rousso
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: move code for debug outlined focus element to the Debug folder so it isn't shipped
https://bugs.webkit.org/show_bug.cgi?id=208217

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI.contentLoaded.setFocusDebugOutline): Deleted.

  • UserInterface/Views/Main.css:

(body.focus-debug *:focus): Deleted.

  • UserInterface/Debug/Bootstrap.js:

(WI.runBootstrapOperations):
(WI.runBootstrapOperations.setFocusDebugOutline): Added.

  • UserInterface/Debug/Bootstrap.css: Added.

(body.focus-debug *:focus):

  • UserInterface/Main.html:
5:39 PM Changeset in webkit [257400] by Megan Gardner
  • 3 edits in trunk/Source/WebKitLegacy/mac

Build Fix
https://bugs.webkit.org/show_bug.cgi?id=208224
<rdar://problem/58879500>

Fix Build.

Reviewed by Tim Horton.

  • WebView/WebFrameView.mm:

(+[WebFrameView _viewTypesAllowImageTypeOmission:]):

  • WebView/WebView.mm:

(+[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]):

5:38 PM Changeset in webkit [257399] by Justin Michaud
  • 118 edits
    4 adds in trunk

Inline Cache delete by id/val
https://bugs.webkit.org/show_bug.cgi?id=207522

JSTests:

Reviewed by Keith Miller and Filip Pizlo.

  • microbenchmarks/delete-property-from-prototype-chain.js:

(delete.C.prototype.z):

  • microbenchmarks/delete-property-inline-cache-polymorphic.js: Added.

(C):
(noInline.C.foo):
(noInline.foo.F):
(noInline.F):

  • microbenchmarks/delete-property-inline-cache.js: Added.

(C):
(noInline.C.D):
(noInline.D.foo):
(noInline.foo.E):
(noInline.E.F):
(noInline.F):

  • microbenchmarks/delete-property-keeps-cacheable-structure.js:
  • stress/delete-property-check-structure-transition.js:

(sd): Deleted.
(testDeleteIsNotUncacheable): Deleted.
(): Deleted.
(testCanFlatten): Deleted.
(testDeleteWithInlineCache.Object.prototype.globalProperty.42.makeFoo): Deleted.
(testDeleteWithInlineCache.noInline.doTest): Deleted.
(testDeleteWithInlineCache): Deleted.

  • stress/delete-property-inline-cache.js: Added.

(assert):
(assert_eq):
(assert_neq):
(assert_throws):
(noInline.assert.noInline.assert_eq.noInline.assert_neq.noInline.assert_throws.testCacheableDeleteById.makeFoo):
(noInline.assert.noInline.assert_eq.noInline.assert_neq.noInline.assert_throws.testCacheableDeleteById):
(noInline.testCacheableDeleteById.testCacheableDeleteByVal.makeFoo2):
(noInline.testCacheableDeleteById.testCacheableDeleteByVal):
(noInline.testCacheableDeleteByVal.testCacheableEmptyDeleteById.makeFoo3):
(noInline.testCacheableDeleteByVal.testCacheableEmptyDeleteById):
(noInline.testCacheableEmptyDeleteById.testCacheableDeleteByIdMiss.makeFoo4):
(noInline.testCacheableEmptyDeleteById.testCacheableDeleteByIdMiss):
(noInline.testCacheableDeleteByIdMiss.testDeleteIndex.makeFoo5):
(noInline.testCacheableDeleteByIdMiss.testDeleteIndex):
(noInline.testDeleteIndex.testPolymorphicDelByVal.makeFoo6):
(noInline.testDeleteIndex.testPolymorphicDelByVal):
(noInline.testPolymorphicDelByVal.testBigintDeleteByVal.makeFoo7):
(noInline.testPolymorphicDelByVal.testBigintDeleteByVal):
(noInline.testBigintDeleteByVal.testSymbolDeleteByVal.makeFoo8):
(noInline.testBigintDeleteByVal.testSymbolDeleteByVal):
(noInline.testSymbolDeleteByVal.testObjDeleteByVal.makeFoo9):
(noInline.testSymbolDeleteByVal.testObjDeleteByVal):
(noInline.testObjDeleteByVal.testStrict.makeFoo10):
(noInline.testObjDeleteByVal.testStrict):
(noInline.testStrict.testOverride.arr.j):
(noInline.testStrict.testOverride):
(noInline.testOverride.testNonObject.deleteIt):
(noInline.testOverride.testNonObject):
(noInline.testNonObject.testNonObjectStrict.deleteIt):
(noInline.testNonObject.testNonObjectStrict):
(noInline.testNonObjectStrict.testExceptionUnwind.mutateThem):
(noInline.testNonObjectStrict.testExceptionUnwind.noInline.deleteIt):
(noInline.testNonObjectStrict.testExceptionUnwind):
(noInline.testExceptionUnwind.testTDZ):
(noInline.testTDZ):

Source/JavaScriptCore:

Reviewed by Keith Miller and Filip Pizlo.

We add inline caching for deleteById/val for baseline only. We also fix a concurrency bug in ICStats used for testing.
We add three new access cases (no inline code is emitted at this time):

  • Delete is a cached delete of an existing property
  • DeleteMiss is a delete of a property that does not exist
  • DeleteNonConfigurable is a delete of a property that exists, but should not be deleted.

There are no conditions required for these caches, since the structure id must change and the prototype does not matter.
This gives the following microbenchmark results:

delete-property-keeps-cacheable-structure (neutral)
delete-property-inline-cache definitely 3.9096x faster
delete-property-inline-cache-polymorphic definitely 1.5239x faster
delete-property-from-prototype-chain (neutral)

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::deleteProperty):
(JSC::JSCallbackObject<Parent>::deletePropertyByIndex):

  • API/JSObjectRef.cpp:

(JSObjectDeletePropertyForKey):
(JSObjectDeleteProperty):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::createTransition):
(JSC::AccessCase::createDelete):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::generateImpl):

  • bytecode/AccessCase.h:

(JSC::AccessCase::structure const):
(JSC::AccessCase::newStructure const):

  • bytecode/PolymorphicAccess.cpp:

(WTF::printInternal):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::deleteProperty):

  • debugger/DebuggerScope.h:
  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addDelById):
(JSC::DFG::JITCompiler::addDelByVal):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById): Deleted.
(JSC::DFG::SpeculativeJIT::compileDeleteByVal): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):

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

(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):

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

(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByValGenerator::finalize):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::finalize):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::slowPathJump const):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::slowPathJump const):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_id):

  • jit/Repatch.cpp:

(JSC::tryCachePutByID):
(JSC::tryCacheDelBy):
(JSC::repatchDelBy):
(JSC::resetPutByID):
(JSC::resetDelBy):

  • jit/Repatch.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CacheableIdentifierInlines.h:

(JSC::CacheableIdentifier::CacheableIdentifier):

  • runtime/ClassInfo.h:
  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::deleteProperty):

  • runtime/ClonedArguments.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/DeletePropertySlot.h: Added.

(JSC::DeletePropertySlot::DeletePropertySlot):
(JSC::DeletePropertySlot::setConfigurableMiss):
(JSC::DeletePropertySlot::setNonconfigurable):
(JSC::DeletePropertySlot::setHit):
(JSC::DeletePropertySlot::isCacheableDelete const):
(JSC::DeletePropertySlot::isDeleteHit const):
(JSC::DeletePropertySlot::isConfigurableDeleteMiss const):
(JSC::DeletePropertySlot::isNonconfigurable const):
(JSC::DeletePropertySlot::cachedOffset const):
(JSC::DeletePropertySlot::disableCaching):
(JSC::DeletePropertySlot::isCacheable const):

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::deleteProperty):

  • runtime/ErrorConstructor.h:
  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::deleteProperty):

  • runtime/ErrorInstance.h:
  • runtime/GenericArguments.h:
  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::put):
(JSC::GenericArguments<Type>::deleteProperty):

  • runtime/GetterSetter.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::deleteProperty):

  • runtime/JSArray.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::deleteProperty):

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

(JSC::JSDataView::deleteProperty):

  • runtime/JSDataView.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::deleteProperty):

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

(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addFunction):

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::deleteProperty):

  • runtime/JSLexicalEnvironment.h:
  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::deleteProperty):

  • runtime/JSModuleEnvironment.h:
  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::deleteProperty):

  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::JSObject::deleteProperty):
(JSC::JSObject::deletePropertyByIndex):
(JSC::validateAndApplyPropertyDescriptor):

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

(JSC::JSProxy::deleteProperty):

  • runtime/JSProxy.h:
  • runtime/JSSymbolTableObject.cpp:

(JSC::JSSymbolTableObject::deleteProperty):

  • runtime/JSSymbolTableObject.h:
  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::deleteProperty):

  • runtime/ProxyObject.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::deleteProperty):

  • runtime/RegExpObject.h:
  • runtime/StrictEvalActivation.cpp:

(JSC::StrictEvalActivation::deleteProperty):

  • runtime/StrictEvalActivation.h:
  • runtime/StringObject.cpp:

(JSC::StringObject::deleteProperty):

  • runtime/StringObject.h:
  • runtime/Structure.cpp:

(JSC::Structure::removePropertyTransition):
(JSC::Structure::removePropertyTransitionFromExistingStructureImpl):
(JSC::Structure::removePropertyTransitionFromExistingStructure):
(JSC::Structure::removePropertyTransitionFromExistingStructureConcurrently):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::dump const):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::hasIndexingHeader const):
(JSC::Structure::mayHaveIndexingHeader const):

  • tools/JSDollarVM.cpp:

(JSC::functionHasOwnLengthProperty):
(JSC::JSDollarVM::finishCreation):

Source/WebCore:

Reviewed by Keith Miller and Filip Pizlo.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::deleteProperty):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::deleteProperty):

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::deleteProperty):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDeleteProperty):
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySettingPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::deleteProperty):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::deleteProperty):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::deleteProperty):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::deleteProperty):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::initializeProperties):
(WebCore::JSTestObjPrototype::finishCreation):

  • bridge/NP_jsobject.cpp:
  • bridge/objc/WebScriptObject.mm:

(-[WebScriptObject removeWebScriptKey:]):

  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::deleteProperty):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::deleteProperty):

  • bridge/runtime_array.h:
  • bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::deleteProperty):

  • bridge/runtime_object.h:

Source/WebKit:

Reviewed by Keith Miller and Filip Pizlo.

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::deleteProperty):

  • WebProcess/Plugins/Netscape/JSNPObject.h:
  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::removeProperty):

Source/WebKitLegacy/mac:

Reviewed by Keith Miller and Filip Pizlo.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::removeProperty):

Source/WTF:

Reviewed by Keith Miller and Filip Pizlo.

  • wtf/Spectrum.h:

(WTF::Spectrum::add):
(WTF::Spectrum::get const):
(WTF::Spectrum::buildList const):
(WTF::Spectrum::clear):
(WTF::Spectrum::removeIf):
(WTF::Spectrum::begin): Deleted.
(WTF::Spectrum::end): Deleted.

5:23 PM Changeset in webkit [257398] by Alan Coon
  • 2 edits in branches/safari-610.1.5-branch/Source/WebKit

Cherry-pick r257264. rdar://problem/59778922

[iOS] Use one telemetry decoration for each sandbox rule
https://bugs.webkit.org/show_bug.cgi?id=207897

Reviewed by Brent Fulgham.

Currently, we are using the decorations '(with telemetry)' and '(with telemetry-backtrace)' for some sandbox rules
in the WebContent process' sandbox. Only one of the two decorations should be used.

No new tests, no behavior change.

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

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

5:23 PM Changeset in webkit [257397] by Alan Coon
  • 2 edits in branches/safari-610.1.5-branch/Source/WebKit

Cherry-pick r257254. rdar://problem/59787318

Temporarily disable in-process cookie cache as it seems to be causing hangs on iOS
https://bugs.webkit.org/show_bug.cgi?id=208152
<rdar://problem/59706587>

Reviewed by Alex Christensen.

  • Shared/WebPreferences.yaml:

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

5:18 PM Changeset in webkit [257396] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: VoiceOver should read "Console prompt" when focusing on it
https://bugs.webkit.org/show_bug.cgi?id=208028
<rdar://problem/59641238>

Reviewed by Brian Burg.

Before this change, VoiceOver read "edit text blank" when focusing on the console prompt.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/ConsolePrompt.js:

(WI.ConsolePrompt):

5:13 PM Changeset in webkit [257395] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.0.5

Tag Safari-609.1.20.0.5.

4:57 PM Changeset in webkit [257394] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Remove render update throttling
https://bugs.webkit.org/show_bug.cgi?id=208168

Patch by Ben Nham <Ben Nham> on 2020-02-25
Reviewed by Zalan Bujtas.

Currently, we disable render updates after the first paint for 500 ms while the page is
actively loading. However, oftentimes our first paint heuristic selects a first paint that
isn't particularly interesting (mostly background colors) and this paint throttler just
makes the user look at a nearly empty page for 500 ms. Antti and Simon both think we should
remove the throttler to fix this so this patch does that.

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::shouldScheduleLayout):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::insertDictatedText):

  • page/ChromeClient.h:

(WebCore::ChromeClient::layerTreeStateIsFrozen const):
(WebCore::ChromeClient::renderingUpdateThrottlingIsActive const): Deleted.
(WebCore::ChromeClient::adjustRenderingUpdateThrottling): Deleted.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::internalKeyEvent):
(WebCore::EventHandler::handleTextInputEvent):

  • page/FrameView.cpp:

(WebCore::FrameView::loadProgressingStatusChanged):
(WebCore::FrameView::setWasScrolledByUser):
(WebCore::determineLayerFlushThrottleState): Deleted.
(WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction): Deleted.
(WebCore::FrameView::updateLayerFlushThrottling): Deleted.

  • page/FrameView.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::adjustRenderingUpdateThrottling): Deleted.
(WebKit::WebChromeClient::renderingUpdateThrottlingIsActive const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:

(WebKit::DrawingAreaCoordinatedGraphics::scheduleInitialDeferredPaint): Deleted.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::layerTreeStateIsFrozen const):
(WebKit::DrawingArea::renderingUpdateThrottlingIsActive const): Deleted.
(WebKit::DrawingArea::adjustRenderingUpdateThrottling): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::scheduleInitialDeferredPaint): Deleted.
(WebKit::RemoteLayerTreeDrawingArea::adjustRenderingUpdateThrottling): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
(WebKit::TiledCoreAnimationDrawingArea::scheduleInitialDeferredPaint): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::adjustRenderingUpdateThrottling): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::renderingUpdateThrottlingIsActive const): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::startRenderThrottlingTimer): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::renderThrottlingTimerFired): Deleted.

4:44 PM Changeset in webkit [257393] by Alan Coon
  • 2 edits in branches/safari-609.1.20.4-branch

Cherry-pick r257288. rdar://problem/59417124

[Win] Fix AppleWin build.
https://bugs.webkit.org/show_bug.cgi?id=208164

Unreviewed build fix.

Allow a warning which happens when building with older SDKs.

  • Source/cmake/OptionsMSVC.cmake:

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

4:41 PM Changeset in webkit [257392] by Alan Coon
  • 8 edits in branches/safari-609.1.20.4-branch/Source

Versioning.

4:32 PM Changeset in webkit [257391] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for macOS.

  • platform/mac/TestExpectations: Change the expectation for the

fast/text-autosizing/ios/idempotentmode directory to 'Skip' since the
tests rely on a feature that isn't implemented on macOS.

4:20 PM Changeset in webkit [257390] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

PDFPlugin: 'Open in Preview' and 'Save' don't work for blobs
https://bugs.webkit.org/show_bug.cgi?id=208221
<rdar://problem/22676176>

Reviewed by Alex Christensen.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::convertPostScriptDataIfNeeded):
(WebKit::PDFPlugin::setSuggestedFilename):
(WebKit::PDFPlugin::streamDidReceiveResponse):
(WebKit::PDFPlugin::manualStreamDidReceiveResponse):
Ensure that PDFPlugin's suggestedFilename always has a .pdf extension.
The UI process already requires this, and enforces it, causing operations
that use the suggestedFilename to fail if it does not have a .pdf extension.
However, in the case of a blob-loaded PDF, we get just the name "Unknown".
Slap the extension on there, and all is well!

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

Make sure a client cannot cause a whole DOM tree to get leaked by simply holding on to a WKBundleNodeHandle
https://bugs.webkit.org/show_bug.cgi?id=208218

Reviewed by Ryosuke Niwa.

Make sure a client cannot cause a whole DOM tree to get leaked by simply holding on to a WKBundleNodeHandle.
Previously, WKBundleNodeHandle would ref its node, which would keep the whole HTML document alive. To protect
against this, InjectedBundleNodeHandle is now an ActiveDOMObject which nulls out its node RefPtr when the
document is getting ready for destruction (i.e. ActiveDOMObject::stop() is called).

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::InjectedBundleNodeHandle):
(WebKit::InjectedBundleNodeHandle::~InjectedBundleNodeHandle):
(WebKit::InjectedBundleNodeHandle::coreNode):
(WebKit::InjectedBundleNodeHandle::document):
(WebKit::InjectedBundleNodeHandle::elementBounds):
(WebKit::InjectedBundleNodeHandle::renderRect):
(WebKit::InjectedBundleNodeHandle::renderedImage):
(WebKit::InjectedBundleNodeHandle::visibleRange):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementSpellcheckEnabled):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilled const):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilledAndViewable const):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilled):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilledAndViewable):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFillButtonEnabled const):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFillButtonEnabled):
(WebKit::InjectedBundleNodeHandle::htmlInputElementAutoFillButtonType const):
(WebKit::InjectedBundleNodeHandle::htmlInputElementLastAutoFillButtonType const):
(WebKit::InjectedBundleNodeHandle::isAutoFillAvailable const):
(WebKit::InjectedBundleNodeHandle::setAutoFillAvailable):
(WebKit::InjectedBundleNodeHandle::htmlInputElementAutoFillButtonBounds):
(WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::isTextField const):
(WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
(WebKit::InjectedBundleNodeHandle::documentFrame):
(WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::stop):
(WebKit::InjectedBundleNodeHandle::activeDOMObjectName const):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
4:18 PM Changeset in webkit [257388] by Alan Coon
  • 1 copy in branches/safari-609.1.20.4-branch

New branch.

4:10 PM Changeset in webkit [257387] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208222

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:57 PM Changeset in webkit [257386] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Allow GPU Process to capture microphone in the background
https://bugs.webkit.org/show_bug.cgi?id=208193

Reviewed by Eric Carlson.

Manually tested.

  • GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-iOS.plist:

Add audio background mode and can inherit key, as done for WebProcess.

  • Scripts/process-entitlements.sh:

Add entitlement to start audio capture in a background process.

3:39 PM Changeset in webkit [257385] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Pass UIProcess PID to GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208197

Reviewed by Eric Carlson.

Parent PID is needed for PID forwarding done in MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary.
Send it from UIProcess to GPUProcess and initialize it at creation time of GPUProcess singleton.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::singleton):

3:32 PM Changeset in webkit [257384] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-control.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208220

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:26 PM Changeset in webkit [257383] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Change DTMF and mDNS candidates feature flags from experimental to internal
https://bugs.webkit.org/show_bug.cgi?id=208131

Reviewed by Eric Carlson.

  • Shared/WebPreferences.yaml:
3:21 PM Changeset in webkit [257382] by Justin Fan
  • 7 edits in trunk/LayoutTests

[WebGL] More 2.0.0 conformance suite gardening after ANGLE rollout
https://bugs.webkit.org/show_bug.cgi?id=208211

Unreviewed test gardening.

Mark one more unsupported test as flaky, and add in Intel graphics-specific results for
5 tests that were failing consistently across all bots.

  • TestExpectations:
  • webgl/2.0.0/conformance/buffers/buffer-uninitialized-expected.txt:
  • webgl/2.0.0/conformance/extensions/angle-instanced-arrays-expected.txt:
  • webgl/2.0.0/conformance/rendering/clipping-wide-points-expected.txt:
  • webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit-expected.txt:
3:17 PM Changeset in webkit [257381] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.111.5

Tag Safari-609.1.20.111.5.

3:12 PM Changeset in webkit [257380] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: VoiceOver: TreeOutline does not correctly indicate selected item
https://bugs.webkit.org/show_bug.cgi?id=207968

Reviewed by Brian Burg.

Previously, the entire TreeOutline's DOM element had focus. With this patch,
selected item DOM element has focus instead. When clicking on the treeElement,
set tabIndex to 0 and focus on it.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom): Fix indentation.

(.tree-outline.dom:not(.non-selectable):focus-within li.selected .selection-area):
(.tree-outline.dom:not(.non-selectable) li.hovered:not(.selected) .selection-area):
(.tree-outline.dom:focus-within li.inspected-node.selected > span::after):
(.tree-outline.dom li):
Remove outline - selection is already indicated by the background.

(.tree-outline.dom:focus-within li.selected .pseudo-class-indicator):
(.tree-outline.dom:focus-within li.selected):
(.tree-outline.dom:focus-within li.selected *):
(.tree-outline.dom:focus-within li.parent.selected::before):
(.tree-outline.dom:focus-within li.parent.expanded.selected::before):

  • UserInterface/Views/DOMTreeOutline.js:
  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype._attach):
(WI.TreeElement.prototype.collapse):
(WI.TreeElement.prototype.expand):
(WI.TreeElement.prototype.select):
(WI.TreeElement.prototype.deselect):
(WI.TreeElement.prototype.focus):
(WI.TreeElement.prototype.unfocus):

  • UserInterface/Views/TreeOutline.css:

(.tree-outline .item.selected:focus .disclosure-button):
(.tree-outline .item.selected.expanded:focus .disclosure-button):
(.tree-outline .item.selected:focus):
(.tree-outline .item.selected:focus .subtitle):
(.tree-outline:not(.large) .item.selected:focus .status .indeterminate-progress-spinner):

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype._treeKeyDown):
(WI.TreeOutline.prototype._handleMouseDown):

3:12 PM Changeset in webkit [257379] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] compositing/video/video-clip-change-src.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208219

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:06 PM Changeset in webkit [257378] by Matt Lewis
  • 2 edits in trunk/Tools

Add checkout_root to stubrepository.py
https://bugs.webkit.org/show_bug.cgi?id=208213

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/scm/stub_repository.py:

(StubRepository.init):

We are creating our own class variable for checkout_root rather than calling the parent SCM variable
because when initially we left out the parent constructor due to trying to override the fact that we don't actually have a SCM.

2:29 PM Changeset in webkit [257377] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Removing expectations from a resolved bug
https://bugs.webkit.org/show_bug.cgi?id=207154

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
2:27 PM Changeset in webkit [257376] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

REGRESSION: (r257268) [ iPadOS wk2 ] fast/scrolling/ios/change-scrollability-on-content-resize-nested.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=208216

Unreviewed test gardening.

Rebaselined the test for iPad, removed the failure expectation.

  • platform/ipad/TestExpectations:
  • platform/ipad/fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
2:11 PM Changeset in webkit [257375] by dbates@webkit.org
  • 2 edits in trunk/Tools

TestWebKitAPI.PasteMixedContent.CopyAndPasteWithCustomPasteboardDataOnly should wait until copy operation completes
https://bugs.webkit.org/show_bug.cgi?id=208214

Reviewed by Wenson Hsieh.

Wait until the copy operation completes before loading the second web view and testing paste
to ensure that something was actually copied to the clipboard.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:

(TestWebKitAPI::TEST): Substitute -_synchronouslyExecuteEditCommand for -_executeEditCommand
so that we wait until the command completes.

1:59 PM Changeset in webkit [257374] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iPadOS wk2 ] fast/scrolling/ios/change-scrollability-on-content-resize-nested.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=208216

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
1:51 PM Changeset in webkit [257373] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

[iPadOS] REGRESSION(r247667): Autosizing style changes don't invalidate RenderText's preferred logical widths
https://bugs.webkit.org/show_bug.cgi?id=208084
<rdar://problem/59463898>

Reviewed by Darin Adler.

Source/WebCore:

Just use RenderElement::setStyle(), which handles all the invalidations, instead of RenderElement::setNeedsLayout().

Do a little refactoring so we don't clone RenderStyles unless we need to.

Test: fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html

  • page/Page.cpp:

(WebCore::Page::recomputeTextAutoSizingInAllFrames):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustmentForTextAutosizing):
(WebCore::Style::Adjuster::adjustForTextAutosizing):

  • style/StyleAdjuster.h:

(WebCore::Style::Adjuster::AdjustmentForTextAutosizing::operator bool const):

LayoutTests:

  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout-expected.html: Added.
  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html: Added.
1:45 PM Changeset in webkit [257372] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Do not create a formatting context for empty subtree in TableFormattingContext::computePreferredWidthForColumns
https://bugs.webkit.org/show_bug.cgi?id=208205
<rdar://problem/59766702>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-table-with-empty-td.html

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

LayoutTests:

  • fast/layoutformattingcontext/simple-table-with-empty-td-expected.html: Added.
  • fast/layoutformattingcontext/simple-table-with-empty-td.html: Added.
1:40 PM Changeset in webkit [257371] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a build fix after r257269

  • Platform/spi/Cocoa/LocalAuthenticationSPI.h:
1:24 PM Changeset in webkit [257370] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Removing expectations for a resolved bug
https://bugs.webkit.org/show_bug.cgi?id=206673

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
12:14 PM Changeset in webkit [257369] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION: (r257289) [ macOS ] fast/dom/navigator-detached-no-crash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=208202

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-25
Reviewed by Megan Gardner.

Fixed expected for new function introduced to navigator. Test makes sure accessing each
member of navigator doesn't crash, added check for new function in expected.

  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
11:35 AM Changeset in webkit [257368] by don.olmstead@sony.com
  • 3 edits in trunk/Source/WebCore

[WinCairo] Fix build after revisions 257357 and 257354
https://bugs.webkit.org/show_bug.cgi?id=208210

Unreviewed build fix.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::notifyChange):

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::setCookie):

11:33 AM Changeset in webkit [257367] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

[iOS] Allow GPUProcess to set the AudioSession Category
https://bugs.webkit.org/show_bug.cgi?id=208194

Reviewed by Eric Carlson.

Disable setting the audio session category in WebProcess when media is playing in GPUProcess.
Always enable GPUProcess to set the audio session category.
With https://bugs.webkit.org/show_bug.cgi?id=208193 and activating playing audio in GPUProcess,
this allows running simple playing audio captured locally web pages.
Manually tested.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):

11:26 AM Changeset in webkit [257366] by Jacob Uphoff
  • 4 edits in trunk/LayoutTests/fast/events/touch/ios

Rebaselining tests that started failing
https://bugs.webkit.org/show_bug.cgi?id=208085

Unreviewed test gardening

  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt:
  • fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt:
11:16 AM Changeset in webkit [257365] by youenn@apple.com
  • 7 edits in trunk/Source/WebKit

WebProcessPool does not need a map of service worker processes keyed by domain+session
https://bugs.webkit.org/show_bug.cgi?id=208141

Reviewed by Alex Christensen.

It is not needed for the WebProcessPool to query the service worker process map in case of creation of a service worker process
since Network Process has all the information needed to decide whether to create a new process or not.

Network process is now telling UIProcess to terminate a service worker process based on its identifier instead of its domain+session.
This allows replacing the WebProcessPool service worker process map with an HashSet, which is both safer and more efficient to use.

No observable change.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::syncTerminateWorker):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::terminateUnresponsiveServiceWorkerProcesses):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::networkProcessCrashed):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::removeFromServiceWorkerProcesses):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateServiceWorkerUserAgent):
(WebKit::WebProcessPool::terminateServiceWorkers):
(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::isServiceWorkerPageID const):
(WebKit::WebProcessPool::setUseSeparateServiceWorkerProcess):
(WebKit::WebProcessPool::hasServiceWorkerForegroundActivityForTesting const):
(WebKit::WebProcessPool::hasServiceWorkerBackgroundActivityForTesting const):
(WebKit::WebProcessPool::terminateServiceWorkerProcess): Deleted.

  • UIProcess/WebProcessPool.h:
11:08 AM Changeset in webkit [257364] by Chris Dumez
  • 4 edits in trunk

REGRESSION (r256882): Can't drag an HTML file into a new (empty) Safari tab
https://bugs.webkit.org/show_bug.cgi?id=208199
<rdar://problem/59746887>

Reviewed by Alex Christensen.

Source/WebKit:

Make sure we launch the initial WKWebView's WebProcess when a drag enters the view, so that the drag & drop
logic still works on empty views.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dragEntered):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(TEST):

10:49 AM Changeset in webkit [257363] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Make HostWindow be the creator of the remote ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=207134

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-25
Reviewed by Darin Adler.

Source/WebCore:

ImageBuffer is responsible of creating all the in-process ImageBuffers.
HostWindow will be responsible of creating the remote ImageBuffers.

HostWindow adds the virtual function createImageBuffer(). Chrome forward
this to the virtual function createImageBuffer() on the ChromeClient.

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • platform/HostWindow.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/RenderingMode.h:

Source/WebKit:

WebChromeClient adds stubs for creating the remote ImageBuffers.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
10:37 AM Changeset in webkit [257362] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

spinRunLoop should take a non-zero integer as parameter
https://bugs.webkit.org/show_bug.cgi?id=208148
<rdar://problem/59766682>

Unreviewed iOS build fix.

  • TestWebKitAPI/cocoa/UtilitiesCocoa.mm:

(TestWebKitAPI::Util::spinRunLoop):

9:37 AM Changeset in webkit [257361] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore
Assertion failed: currentSchema == createV1ObjectStoreInfoSchema(objectStoreInfoTableName)
currentSchema == createV1ObjectStoreInfoSchema(objectStoreInfoTableNameAlternate)

https://bugs.webkit.org/show_bug.cgi?id=208144

Reviewed by Ryosuke Niwa.

Change a release assertion to release error log to gather information about bug. This is also the pattern of
handling error during schema update in SQLiteIDBBackingStore.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):

9:30 AM Changeset in webkit [257360] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][OutOfFlow] Out-of-flow positioned line breaks can generate display boxes
https://bugs.webkit.org/show_bug.cgi?id=208198
<rdar://problem/59764787>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/out-of-flow-positioned-line-breaks.html

This assert should take the positioning into account when checking againts line breaks.
(In practice those display boxes are empty and they don't really contribute to rendering but
they are still valid content.)

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::displayBox):

LayoutTests:

  • fast/layoutformattingcontext/out-of-flow-positioned-line-breaks-expected.html: Added.
  • fast/layoutformattingcontext/out-of-flow-positioned-line-breaks.html: Added.
9:19 AM Changeset in webkit [257359] by sihui_liu@apple.com
  • 4 edits in trunk/Tools

spinRunLoop should take a non-zero integer as parameter
https://bugs.webkit.org/show_bug.cgi?id=208148

Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/cocoa/UtilitiesCocoa.mm:

(TestWebKitAPI::Util::spinRunLoop):

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

Add additions to NetworkDataTaskCocoa
https://bugs.webkit.org/show_bug.cgi?id=208155
<rdar://problem/59445723>

Reviewed by Darin Adler.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

8:36 AM Changeset in webkit [257357] by Antti Koivisto
  • 25 edits in trunk/Source

Remove throttling code from RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=208135

Reviewed by Zalan Bujtas.

Source/WebCore:

It is only used on WK1, adds lots of complexity and is not very effective or correct.

Also do some "layer flush" -> "rendering update" renaming.

  • page/FrameView.cpp:

(WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
(WebCore::FrameView::updateLayerFlushThrottling):
(WebCore::FrameView::setViewExposedRect):
(WebCore::FrameView::scheduleLayerFlushAllowingThrottling): Deleted.

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

(WebCore::PageOverlayController::notifyRenderingUpdateRequired):
(WebCore::PageOverlayController::notifyFlushRequired): Deleted.

  • page/PageOverlayController.h:
  • page/mac/ServicesOverlayController.h:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::notifyRenderingUpdateRequired):
(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired): Deleted.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::canThrottleLayerFlush const): Deleted.

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::notifyRenderingUpdateRequired):
(WebCore::GraphicsLayerClient::notifyFlushRequired): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/ios/LegacyTileCache.h:
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::scheduleRenderingUpdateForPendingRepaint):
(WebCore::LegacyTileCache::setNeedsDisplayInRect):
(WebCore::LegacyTileCache::updateTilingMode):
(WebCore::LegacyTileCache::scheduleLayerFlushForPendingRepaint): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyRenderingUpdateRequired):
(WebCore::RenderLayerBacking::notifyFlushRequired): Deleted.

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

(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::notifyRenderingUpdateRequired):
(WebCore::RenderLayerCompositor::scheduleRenderingUpdate):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didChangeVisibleRect):
(WebCore::RenderLayerCompositor::flushLayersSoon):
(WebCore::RenderLayerCompositor::frameViewDidScroll):
(WebCore::RenderLayerCompositor::ensureRootLayer):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::notifyFlushRequired): Deleted.
(WebCore::RenderLayerCompositor::scheduleLayerFlush): Deleted.
(WebCore::RenderLayerCompositor::setLayerFlushThrottlingEnabled): Deleted.
(WebCore::RenderLayerCompositor::disableLayerFlushThrottlingTemporarilyForInteraction): Deleted.
(WebCore::RenderLayerCompositor::isThrottlingLayerFlushes const): Deleted.
(WebCore::RenderLayerCompositor::startLayerFlushTimerIfNeeded): Deleted.
(WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded): Deleted.
(WebCore::RenderLayerCompositor::layerFlushTimerFired): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _scheduleRenderingUpdateForPendingTileCacheRepaint]):
(-[WebView _scheduleLayerFlushForPendingTileCacheRepaint]): Deleted.

8:28 AM Changeset in webkit [257356] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

IsolatedObject support for ProgressIndicator and Meter.
https://bugs.webkit.org/show_bug.cgi?id=208175

Reviewed by Chris Fleizach.

  • Eliminated the need to downcast to an AccessibilityProgressIndicator

by including gaugeRegionValueDescription in the valueDescription
method.

  • Separated isAccessibilityProgressIndicatorInstance from

isProgressIndicator, so that the latter now works for both
AccessibilityObjects and AXIsolatedObjects.

  • Completed implementation of isMeter in AXIsolatedObject.
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityProgressIndicator.cpp:

(WebCore::AccessibilityProgressIndicator::valueDescription const):

  • accessibility/AccessibilityProgressIndicator.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData): Sets the isMeter property.
(WebCore::AXIsolatedObject::isAccessibilityProgressIndicatorInstance const):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper valueDescriptionForMeter]): Deleted, no needed any longer.

8:26 AM Changeset in webkit [257355] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Invalidate layout states on style mutation
https://bugs.webkit.org/show_bug.cgi?id=208195
<rdar://problem/59764089>

Reviewed by Antti Koivisto.

Let's just do a blanket invalidation for now (since we don't have the invalidation figured out yet).

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::invalidateLayoutState):

  • page/FrameViewLayoutContext.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle):

8:16 AM Changeset in webkit [257354] by Chris Dumez
  • 12 edits
    2 adds in trunk

Regression(CookieCache) Hang and very high CPU usage on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=208166
<rdar://problem/59739735>

Reviewed by Alex Christensen.

Source/WebCore:

The Cookie class which the cookie cache implementation relies on for IPC of cookie had a bug
in its implementation to convert the Cookie into a NSHTTPCookie. In particular, if the expiry
was in the past, it would drop it and the cookie would end up with no expiration date. We would
end up with a cookie that lives for duration of the session, instead of a cookie with an
expiration in the past (which is how sites delete cookies).

Test: http/tests/cookies/document-cookie-set-expired-cookie.html

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::Cookie::operator NSHTTPCookie * _Nullable const):

Source/WebKit:

Re-enable the in-process cookie cache now that the bug on nytimes.com has been fixed.

  • Shared/WebPreferences.yaml:

LayoutTests:

Add layout test coverage.

  • http/tests/cookies/document-cookie-set-expired-cookie-expected.txt: Added.
  • http/tests/cookies/document-cookie-set-expired-cookie.html: Added.
8:04 AM Changeset in webkit [257353] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256623 - Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840

Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.

Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.

Source/WebCore:

Test: webanimations/animation-null-effect.html

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeToNextTick const):

LayoutTests:

  • webanimations/animation-null-effect-expected.txt: Added.
  • webanimations/animation-null-effect.html: Added.
8:04 AM Changeset in webkit [257352] by Carlos Garcia Campos
  • 27 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256621 - IndexedDB: prefetch cursor records on client side
https://bugs.webkit.org/show_bug.cgi?id=207602
<rdar://problem/58483927>

Reviewed by Brady Eidson.

Cache cursor records on client side and use those records for iterate operations.

This makes cursor continue/advance tests in PerformanceTests/IndexedDB/basics ~3x faster.

  • Headers.cmake:
  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult): Record the ID of TransactionOperation that updates cached record.
(WebCore::IDBCursor::iterateWithPrefetchedRecords): IDBCursor uses cached records for iterate opertaions if
there is no write operation between last cached records update and current iteration operation.
(WebCore::IDBCursor::clearPrefetchedRecords):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::prefetchedRecords const):
(WebCore::IDBGetResult::encode const):
(WebCore::IDBGetResult::decode):

  • Modules/indexeddb/IDBRequest.cpp: Record corresponding TransactionOperation ID in request.

(WebCore::IDBRequest::didOpenOrIterateCursor):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::pendingCursor const):
(WebCore::IDBRequest::setTransactionOperationID):

  • Modules/indexeddb/IDBTransaction.cpp: If a cursor iterate request can be handled with cached records,

IDBClient does not need to send request to IDBServer and wait for response. But requests before that iterate
request may need to wait server to answer, and spec requires to handle requests in order. Therefore, we now keep
all the results in m_transactionOperationResultMap and handle them according to the ordering in
m_transactionOperationsInProgressQueue.
(WebCore::IDBTransaction::abortInProgressOperations):
(WebCore::IDBTransaction::removeRequest): Because result of a cursor request can be answered sooner, it is
possible that in finishedDispatchEventForRequest, m_currentlyCompletingRequest (which is a cursor request) is
set to nullptr, and then it is set back to the same cursor request in handleOperationsCompletedOnServer right
after. This happens in dispatchEvent of the cursor request, where request would remove itself from request list
of transaction at the end.
In this case, when request list becomes empty, transaction may commit automatically. But transaction should not
because that request is still valid as m_currentlyCompletingRequest and should not be removed from list.
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::handleOperationsCompletedOnServer): All requests were sent to IDBServer and the
response/result ordering would naturally be the same as request order. Now that results can be created in both
IDBClient and IDBServer, we no longer handle requests using m_completedOnServerQueue.
(WebCore::IDBTransaction::createObjectStore): Mark as write operation to track last write operation.
(WebCore::IDBTransaction::renameObjectStore): Ditto.
(WebCore::IDBTransaction::createIndex): Ditto.
(WebCore::IDBTransaction::renameIndex): Ditto.
(WebCore::IDBTransaction::requestDeleteRecord): Ditto.
(WebCore::IDBTransaction::requestClearObjectStore): Ditto.
(WebCore::IDBTransaction::requestPutOrAdd): Ditto.
(WebCore::IDBTransaction::deleteObjectStore): Ditto.
(WebCore::IDBTransaction::deleteIndex): Ditto.
(WebCore::IDBTransaction::iterateCursorOnServer): Only use cached records if the request does not specify target
key. If cursor is iterated successfully with cache, send a message to IDBServer to notify about the progress.
Otherwise, fall back to depend on IDBServer to answer the request.
(WebCore::IDBTransaction::generateOperationID): TransactionOperation ID is unique in a transaction.

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::iterateCursor): Don't track result of TransactionOperation in
IDBConnectionProxy if TransactionOperation does not need a reply from IDBServer.

  • Modules/indexeddb/client/TransactionOperation.cpp:

(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/client/TransactionOperation.h: Add ID to TransactionOperation.

(WebCore::IDBClient::TransactionOperation::operationID const):
(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/server/IDBBackingStore.h: remove prefetchCursor as it is not used now.
  • Modules/indexeddb/server/MemoryIDBBackingStore.h: Ditto. Also this patch only deals with prefetching in

persistent store.

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor): Only prefetch at when request needs to be answered.
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData): Provide an option to include prefetched records in result.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged): Reset count to prefetch when there is a
change. This is used with increaseCountToPrefetch to make prefetch adaptive.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetchOneRecord):
(WebCore::IDBServer::SQLiteIDBCursor::increaseCountToPrefetch):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch): Count to prefetch is decided by SQLiteCursor now.
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
(WebCore::IDBServer::SQLiteIDBCursor::currentValue const):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor): Move call to prefetch cursor to SQLiteIDBBackingStore.
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):

  • Modules/indexeddb/shared/IDBCursorRecord.h: Stop using pointer for IDBValue for easier encoding and decoding.

(WebCore::IDBCursorRecord::size const):
(WebCore::IDBCursorRecord::isolatedCopy const):

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp:

(WebCore::IDBIterateCursorData::isolatedCopy const):

  • Modules/indexeddb/shared/IDBIterateCursorData.h: Add an option to let IDBServer know whether it should answer

the cursor request.
(WebCore::IDBIterateCursorData::encode const):
(WebCore::IDBIterateCursorData::decode):

  • WebCore.xcodeproj/project.pbxproj:
8:03 AM Changeset in webkit [257351] by Carlos Garcia Campos
  • 18 edits in releases/WebKitGTK/webkit-2.28

Merge r256619 - [Web Animations] Ensure CSS Transition and CSS Animation events are queued, sorted and dispatched by their timeline
https://bugs.webkit.org/show_bug.cgi?id=207364
<rdar://problem/59370413>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

There are some progressions but also some "regressions". The progressions are real, showing the delivery of all animation events at the correct
time. However, the regressions are misleading. The fact that the "style change" tests would work was due to a design issue in the test which would
only wait one frame to detect whether a CSS Transition was started after a change made through the Web Animations API. These would work because
events were queued in the next frame, but delivered later due to the dedicated per-animation queue used, which meant the test was fooled into
thinking the CSS Transition did not start, as expected. Changing those test to use more than one frame to test for the lack of a CSS Transition
would have shown the FAIL results.

However, in order to not regress our WPT score, the issue of "style change" events will be addressed in a follow-up patch.

  • web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-expected.txt:

Source/WebCore:

Until now, AnimationPlaybackEvent events, which are new events introduced by the Web Animations spec, were enqueued in a shared queue on the DocumentTimeline
and dispatched during the "update animations and send events" procedure. However, AnimationEvent and TransitionEvent events, dispatched by CSS Animations
and CSS Transitions, were dispatched via a dedicated per-animation queue, which meant typically that those events were dispathed one runloop after the
AnimationPlaybackEvent events.

We now remove the dedicated per-animation queue and enqueue all events in the shared DocumentTimeline queue for dispatch during the "update animations and send
events" procedure. To do this correctly, we need to do a couple of other things that ensure we don't regress tests.

First, we update the DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState() to account for whether there are pending animation events,
guaranteeing that an animation update is scheduled should there be any.

Second, when animation events are enqueued in DocumentTimeline::enqueueAnimationEvent() we schedule an animation update if needed, since we know we now
have pending events that will need to be delivered in an upcoming update. We also maintain a flag between the start of the "update animations and send events"
procedure and the moment when the pending animation events queue is cleared prior to dispatching events so that events enqueued in the meantime do not
prematurely schedule animation resolution. The need for a new animation resolution will be checked at the end of the procedure.

Finally, declarative animations used to have a special suclass of WebAnimation::needsTick() that would check whether they had any pending events, ensuring
they would not be removed prematurely. We now reset a flag to false as WebAnimation::tick() is called (as part of the "update animations and send events"
procedure) and set it to true in case an animation is enqueued. This flag is then used in needsTick() to guarantee the animation is not removed before
the DocumentTimeline has had a chance to dispatch the enqueued event.

Note also that, for clarity, the DocumentTimeline::unscheduleAnimationResolution() was renamed to DocumentTimeline::clearTickScheduleTimer() since it wouldn't
actually cancel a previous animation resolution schedule.

  • animation/CSSTransition.h: Fix a newly found build error due to the missing wtf/MonotonicTime.h header.
  • animation/DeclarativeAnimation.cpp: Remove all code related to the dedicated per-animation queue and instead call the new WebAnimation::enqueueAnimationEvent()

method to enqueue events on the DocumentTimeline.
(WebCore::DeclarativeAnimation::DeclarativeAnimation):
(WebCore::DeclarativeAnimation::tick):
(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::detachFromDocument): Ensure the pending events queue is cleared when the timeline is detached from a document, ensuring that there no
longer events that would cause a ref-cycle (DocumentTimeline -> AnimationPlaybackEvent -> WebAnimation -> DocumentTimeline).
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::clearTickScheduleTimer):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateCurrentTime):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::enqueueAnimationEvent):

  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::needsTick const):
(WebCore::WebAnimation::tick):

  • animation/WebAnimation.h:

LayoutTests:

Fix a couple of tests that made some incorrect assumptions.

  • TestExpectations: imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is no longer flaky.
  • compositing/backing/animate-into-view.html: Because the "animationstart" event is now dispatched during the "update animations and send events" procedure, which happens

during page rendering _before_ rAF callbacks are serviced, we must remove the rAF callback used prior to adding the "animationstart" event listener or else we would never
get it and the test would time out.

  • webanimations/css-transition-in-flight-reversal-accelerated.html: We must wait for the initial transition to start and then two frames before reversing the transition,

to be certain that the animation did start. Indeed, the "transitionstart" event will be fired right before the next rAF callback is called, as the animation starts in that
very same frame, and so progress will be 0 and the transition wouldn't be reversable until the next frame when the animation has progress > 0.

8:03 AM Changeset in webkit [257350] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256612 - [WPE] WPEQtView.h includes the uninstalled WPEQtViewBackend.h
https://bugs.webkit.org/show_bug.cgi?id=207765

Reviewed by Philippe Normand.

Do a forward declaration instead of including the header.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:
  • UIProcess/API/wpe/qt/WPEQtView.h:
8:03 AM Changeset in webkit [257349] by Carlos Garcia Campos
  • 17 edits
    2 copies in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256610 - [Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629

Reviewed by Simon Fraser.

Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.

In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.

Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.

No new test since this should not introduce any behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEventBase.cpp: Added.

(WebCore::AnimationEventBase::AnimationEventBase):

  • animation/AnimationEventBase.h: Added.

(WebCore::AnimationEventBase::create):
(WebCore::AnimationEventBase::isAnimationPlaybackEvent const):
(WebCore::AnimationEventBase::isAnimationEvent const):
(WebCore::AnimationEventBase::isTransitionEvent const):
(WebCore::AnimationEventBase::timelineTime const):
(WebCore::AnimationEventBase::animation const):

  • animation/AnimationPlaybackEvent.cpp:

(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):
(WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):

  • animation/AnimationPlaybackEvent.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::createEvent):

  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::createEvent):

  • animation/CSSTransition.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

  • dom/AnimationEvent.h:
  • dom/TransitionEvent.cpp:

(WebCore::TransitionEvent::TransitionEvent):

  • dom/TransitionEvent.h:
  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):

8:03 AM Changeset in webkit [257348] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256578 - Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722

Reviewed by Chris Dumez.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleJobInServer):
In case of bad scope, fail the job early on.

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleJobInServer):
Remove the RELEASE_ASSERT from now since we defend in Network process.
We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.

8:03 AM Changeset in webkit [257347] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r256571 - REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>

Reviewed by Chris Dumez.

The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.

Source/WebCore:

Tested by existing test cases.

  • page/Settings.yaml:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

8:03 AM Changeset in webkit [257346] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256569 - Add missing call to completionHandler
https://bugs.webkit.org/show_bug.cgi?id=207720
<rdar://problem/59436915>

Reviewed by Chris Dumez.

Bug 179641 (r225702) updated
SubresourceLoader::willSendRequestInternal with a return call without
first calling the completionHandler. Address this by adding the call
to the completionHandler.

No new tests -- it's not possible to control execution into the
affected code path.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

8:03 AM Changeset in webkit [257345] by Carlos Garcia Campos
  • 18 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r256563 - Unreviewed, rolling out r254557.
https://bugs.webkit.org/show_bug.cgi?id=207725

The assert is correct, but unfortunately it will alwasy fail
since there is an existing bug in
HTMLTextFormControlElement::indexForPosition(). See bug

Reverted changeset:

"Enable the offset assertion in
HTMLTextFormControlElement::indexForPosition"
https://bugs.webkit.org/show_bug.cgi?id=205706
https://trac.webkit.org/changeset/254557

8:03 AM Changeset in webkit [257344] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.28

Merge r256541 - [ESNext][BigInt] We don't support BigInt literal as PropertyName
https://bugs.webkit.org/show_bug.cgi?id=206888

Reviewed by Ross Kirsling.

JSTests:

  • stress/big-int-as-property-name.js: Added.

Source/JavaScriptCore:

According to spec (https://tc39.es/ecma262/#prod-PropertyName),
BigInt literals are valid property names. Given that, we should not
throw a SyntaxError when using BigInt literals on destructuring
pattern, method declaration, object literals, etc.
This patch is adding BigInt literal as a valid syntax to PropertyName.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):

  • parser/ParserArena.cpp:

(JSC::IdentifierArena::makeBigIntDecimalIdentifier):

  • parser/ParserArena.h:
8:02 AM Changeset in webkit [257343] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256514 - Non-unified build fixes mid February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207693

Unreviewed build fix.

No new tests needed.

  • html/parser/HTMLPreloadScanner.cpp: Add missing include.
  • platform/wpe/ScrollbarThemeWPE.cpp: Ditto.
  • rendering/InlineTextBox.cpp: Ditto.
8:02 AM Changeset in webkit [257342] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256513 - REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.

Test: fast/scrolling/programmatic-scroll-to-zero-zero.html

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::setRequestedScrollData):

LayoutTests:

Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.

  • fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
  • fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
  • platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
8:02 AM Changeset in webkit [257341] by Carlos Garcia Campos
  • 54 edits
    4 deletes in releases/WebKitGTK/webkit-2.28

Merge r256512 - Unreviewed, rolling out r255158, 255405 and r255486

Caused test flakiness and PLT regression.

Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2020-02-13

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateThrottlingState):
(WebCore::DocumentTimeline::animationInterval const):

  • animation/DocumentTimeline.h:
  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::throttlingReasonToString):
(WebCore::throttlingReasonsToString):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::isThrottled const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Deleted.
(WebCore::ScriptedAnimationController::isThrottledRelativeToPage const): Deleted.
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):

  • page/Page.cpp:

(WebCore::m_deviceOrientationUpdateProvider):
(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):
(WebCore::updateScriptedAnimationsThrottlingReason):
(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::renderingUpdateThrottlingEnabled const): Deleted.
(WebCore::Page::renderingUpdateThrottlingEnabledChanged): Deleted.
(WebCore::Page::isRenderingUpdateThrottled const): Deleted.
(WebCore::Page::preferredRenderingUpdateInterval const): Deleted.

  • page/Page.h:

(WebCore::Page::isLowPowerModeEnabled const): Deleted.
(WebCore::Page::canUpdateThrottlingReason const): Deleted.

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::adjustFramesPerSecond): Deleted.
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Deleted.

  • page/RenderingUpdateScheduler.h:
  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged): Deleted.

  • page/SettingsBase.h:
  • platform/graphics/AnimationFrameRate.h: Removed.
  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::registerClient):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
(WebCore::DisplayRefreshMonitorManager::monitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.h:

(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager):

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRenderingUpdateThrottlingEnabled): Deleted.
(WKPreferencesGetRenderingUpdateThrottlingEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond): Deleted.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences renderingUpdateThrottlingEnabled]): Deleted.
(-[WebPreferences setRenderingUpdateThrottlingEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::renderingUpdateThrottlingEnabled): Deleted.
(WebPreferences::setRenderingUpdateThrottlingEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttle-subframe.html:
  • fast/animation/request-animation-frame-throttling-detached-iframe.html:
  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Removed.
  • fast/animation/request-animation-frame-throttling-outside-viewport.html: Removed.
  • fast/animation/resources/frame-with-animation-2.html: Removed.
  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
  • platform/mac-wk2/TestExpectations:
8:02 AM Changeset in webkit [257340] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r256498 - [JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
https://bugs.webkit.org/show_bug.cgi?id=207673

Reviewed by Mark Lam.

Source/JavaScriptCore:

While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
to avoid this padding.

This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITCodeMap.h:

(JSC::JITCodeMap::JITCodeMap):
(JSC::JITCodeMap::find const):
(JSC::JITCodeMap::operator bool const):
(JSC::JITCodeMap::codeLocations const):
(JSC::JITCodeMap::indexes const):
(JSC::JITCodeMapBuilder::append):
(JSC::JITCodeMapBuilder::finalize):
(JSC::JITCodeMap::Entry::Entry): Deleted.
(JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted.
(JSC::JITCodeMap::Entry::codeLocation): Deleted.
(JSC::JITCodeMap::append): Deleted.
(JSC::JITCodeMap::finish): Deleted.

Source/WTF:

  • wtf/MallocPtr.h:
8:02 AM Changeset in webkit [257339] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256494 - CSSValuePool's constant CSS values should not be allocated dynamically (and same for Vectors)
https://bugs.webkit.org/show_bug.cgi?id=207666

Reviewed by Mark Lam.

r252785 changes contents (CSSValues and Vectors) of CSSValuePool from static ones to
dynamically allocated ones. This was done since we would like to use static CSSValues
even in the other threads (workers etc.) for OffscreenCanvas feature.

But this causes memory regression in Membuster since we allocates many CSSValues and
large Vectors, and they are kept persistently.

This patch removes dynamic allocation part of r252785 to recover memory regression.
The key of this patch is introducing Static CSSValue feature. When incrementing / decrementing
m_refCount of CSSValue, we add / subtract by 0x2. And we put 0x1 as a static-flag. So, even if
this CSSValue is used by multiple threads, we never see that CSSValue gets 0 m_refCount if
it is marked as static (having 0x1). This is the same design to our static StringImpl.

No behavior change.

  • css/CSSInheritedValue.h:
  • css/CSSInitialValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSPrimitiveValue.h:
  • css/CSSRevertValue.h:
  • css/CSSUnsetValue.h:
  • css/CSSValue.cpp:
  • css/CSSValue.h:

(WebCore::CSSValue::ref const):
(WebCore::CSSValue::hasOneRef const):
(WebCore::CSSValue::refCount const):
(WebCore::CSSValue::hasAtLeastOneRef const):
(WebCore::CSSValue::deref):
(WebCore::CSSValue::makeStatic):

  • css/CSSValuePool.cpp:

(WebCore::StaticCSSValuePool::StaticCSSValuePool):
(WebCore::StaticCSSValuePool::init):
(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::singleton):
(WebCore::CSSValuePool::createIdentifierValue):
(WebCore::CSSValuePool::createColorValue):
(WebCore::CSSValuePool::createValue):

  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createInheritedValue):
(WebCore::CSSValuePool::createImplicitInitialValue):
(WebCore::CSSValuePool::createExplicitInitialValue):
(WebCore::CSSValuePool::createUnsetValue):
(WebCore::CSSValuePool::createRevertValue):

8:02 AM Changeset in webkit [257338] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source/ThirdParty/ANGLE

Merge r256491 - Multiple GCC 10 build failures in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207365

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.

  • changes.diff: Updated.
  • include/platform/Platform.h: Add missing #include to get size_t.
  • src/common/PackedEnums.h: Remove problematic const_casts.
8:02 AM Changeset in webkit [257337] by Carlos Garcia Campos
  • 16 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r256482 - Shrink CachedResource
https://bugs.webkit.org/show_bug.cgi?id=207618

Reviewed by Mark Lam.

Source/WebCore:

This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
For each enum class, we define bitsOfXXX value, which indicates # of bits to represent it. And using
this value for bit-field's width.

No behavior change.

  • loader/FetchOptions.h:

(WebCore::FetchOptions::encode const):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::CachedImage):
(WebCore::CachedImage::shouldDeferUpdateImageData const):
(WebCore::CachedImage::didUpdateImageData):

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
(WebCore::CachedResource::finish):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::setStatus):

  • page/csp/ContentSecurityPolicyResponseHeaders.h:

(WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue):
(WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue):
(WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::clearNonTimingData):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):

  • platform/network/ResourceLoadPriority.h:
  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::ResourceRequestBase):

  • platform/network/ResourceResponseBase.h:
  • platform/network/StoredCredentialsPolicy.h:

Source/WTF:

  • wtf/Markable.h:

(WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.

  • wtf/ObjectIdentifier.h:

(WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
(WTF::ObjectIdentifier::MarkableTraits::emptyValue):
(WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.

8:01 AM Changeset in webkit [257336] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256470 - ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657

Reviewed by Chris Dumez.

shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

8:01 AM Changeset in webkit [257335] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r256468 - [JSC] Compact StructureTransitionTable
https://bugs.webkit.org/show_bug.cgi?id=207616

Reviewed by Mark Lam.

Some of StructureTransitionTable are shown as very large HashMap and we can compact it by encoding key.
We leverage 48bit pointers and 8byte alignment of UniquedStringImpl* to encode other parameters into it.

  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):

  • runtime/Structure.h:
  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::Hash::Key::Key):
(JSC::StructureTransitionTable::Hash::Key::isHashTableDeletedValue const):
(JSC::StructureTransitionTable::Hash::Key::impl const):
(JSC::StructureTransitionTable::Hash::Key::isAddition const):
(JSC::StructureTransitionTable::Hash::Key::attributes const):
(JSC::StructureTransitionTable::Hash::Key::operator==):
(JSC::StructureTransitionTable::Hash::Key::operator!=):
(JSC::StructureTransitionTable::Hash::hash):
(JSC::StructureTransitionTable::Hash::equal):

8:01 AM Changeset in webkit [257334] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r256467 - [JSC] Make RegExpCache small
https://bugs.webkit.org/show_bug.cgi?id=207619

Reviewed by Mark Lam.

We can compact RegExpKey by using PackedRefPtr, so that we can shrink memory consumption of RegExpCache.

  • runtime/RegExpKey.h:
8:01 AM Changeset in webkit [257333] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256447 - RELEASE_ASSERT() under WebSWClientConnection::didResolveRegistrationPromise()
https://bugs.webkit.org/show_bug.cgi?id=207637
<rdar://problem/59093490>

Reviewed by Youenn Fablet.

We were capturing data by reference in the notifyIfExitEarly ScopeExit lambda and then capturing it
in the task posted to the event loop, which was unsafe.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

8:01 AM Changeset in webkit [257332] by Carlos Garcia Campos
  • 2 edits
    24 deletes in releases/WebKitGTK/webkit-2.28/Source/ThirdParty/ANGLE

Merge r256443 - ANGLE has unused bison and glmark2 code
https://bugs.webkit.org/show_bug.cgi?id=207597
rdar://59361460

Reviewed by Maciej Stachowiak.

Remove some unused files.

  • changes.diff:
  • src/tests/perf_tests/glmark2Benchmark.cpp: Removed.
  • third_party/glmark2/BUILD.gn: Removed.
  • third_party/glmark2/README.angle: Removed.
  • tools/flex-bison/README.md: Removed.
  • tools/flex-bison/linux/bison.sha1: Removed.
  • tools/flex-bison/linux/flex.sha1: Removed.
  • tools/flex-bison/third_party/.gitattributes: Removed.
  • tools/flex-bison/third_party/m4sugar/LICENSE: Removed.
  • tools/flex-bison/third_party/m4sugar/README.chromium: Removed.
  • tools/flex-bison/third_party/m4sugar/foreach.m4: Removed.
  • tools/flex-bison/third_party/m4sugar/m4sugar.m4: Removed.
  • tools/flex-bison/third_party/skeletons/LICENSE: Removed.
  • tools/flex-bison/third_party/skeletons/README.chromium: Removed.
  • tools/flex-bison/third_party/skeletons/bison.m4: Removed.
  • tools/flex-bison/third_party/skeletons/c-like.m4: Removed.
  • tools/flex-bison/third_party/skeletons/c.m4: Removed.
  • tools/flex-bison/third_party/skeletons/yacc.c: Removed.
  • tools/flex-bison/update_flex_bison_binaries.py: Removed.
  • tools/flex-bison/windows/bison.exe.sha1: Removed.
  • tools/flex-bison/windows/flex.exe.sha1: Removed.
  • tools/flex-bison/windows/m4.exe.sha1: Removed.
  • tools/flex-bison/windows/msys-2.0.dll.sha1: Removed.
  • tools/flex-bison/windows/msys-iconv-2.dll.sha1: Removed.
  • tools/flex-bison/windows/msys-intl-8.dll.sha1: Removed.
8:01 AM Changeset in webkit [257331] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r256432 - WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537

Reviewed by Chris Dumez.

Source/WebKit:

Covered by added API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):
Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
8:01 AM Changeset in webkit [257330] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebDriver

Merge r256430 - WebDriver: return invalidSessionID exception if the WebProcess doesn't respond (crashes)
https://bugs.webkit.org/show_bug.cgi?id=207565

Reviewed by Adrian Perez de Castro.

Report InvalidSessionID if the session connection its not connected.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::findSessionOrCompleteWithError):

8:01 AM Changeset in webkit [257329] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256427 - Fix crash due to uninitialized currentStyle in CSSTransition
https://bugs.webkit.org/show_bug.cgi?id=205959
<rdar://57073673>

Patch by Sunny He <sunny_he@apple.com> on 2020-02-12
Reviewed by Antoine Quint.

Source/WebCore:

Test: legacy-animation-engine/transitions/svg-bad-scale-crash.html

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::create):
(WebCore::CSSTransition::CSSTransition):

  • animation/CSSTransition.h:

LayoutTests:

Fix crash due to uninitialized currentStyle in CSSTransition

  • legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
  • legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.
8:01 AM Changeset in webkit [257328] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256423 - Compress ImmutableStyleProperties by using PackedPtr
https://bugs.webkit.org/show_bug.cgi?id=207604

Reviewed by Mark Lam.

ImmutableStyleProperties is kept so long and consumes enough memory.
We already attempted to compact it by storing CSSProperty's members separately.
But we can compact further by using PackedPtr. This patch makes,

  1. Use PackedPtr for CSSValue* in ImmutableStyleProperties so that we can cut some bytes
  2. Reorder CSSValue* and StylePropertyMetadata arrays since StylePropertyMetadata requires alignment while PackedPtr<CSSValue> is not.

No behavior change.

  • css/StyleProperties.cpp:

(WebCore::sizeForImmutableStylePropertiesWithPropertyCount):
(WebCore::ImmutableStyleProperties::ImmutableStyleProperties):
(WebCore::ImmutableStyleProperties::~ImmutableStyleProperties):
(WebCore::ImmutableStyleProperties::findCustomPropertyIndex const):

  • css/StyleProperties.h:

(WebCore::ImmutableStyleProperties::valueArray const):
(WebCore::ImmutableStyleProperties::metadataArray const):
(WebCore::ImmutableStyleProperties::propertyAt const):

8:01 AM Changeset in webkit [257327] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r256414 - IndexedDB: iteration of cursors skip records if deleted
https://bugs.webkit.org/show_bug.cgi?id=207437

Reviewed by Brady Eidson.

Source/WebCore:

When changes are made to records, cursors will dump cached records and set new key range for iteration.
The new range did not include key of current cursor record, which is wrong because two index records can have
the same key but different values.
r237590 tried fixing this issue by caching all the following records which have the same key as current record.
That is not quite right as there could be changes on the cached records, and the cached records were not
updated.

To correctly fix the issue, set the new key range to include key of current cursor record and exclude values
visited before. To not regress preformance, we complete this by making an extra statment and changing
IndexRecordsIndex index of table IndexRecords to cover value column.

Added test case in: storage/indexeddb/cursor-update-while-iterating.html
Index upgrade covered by existing API test: IndexedDB.IDBObjectStoreInfoUpgradeToV2

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::buildPreIndexStatement):
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
(WebCore::IDBServer::SQLiteIDBCursor::fetch):
(WebCore::IDBServer::SQLiteIDBCursor::fetchNextRecord):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:

(WebCore::IDBServer::SQLiteIDBCursor::isDirectionNext const):

LayoutTests:

  • storage/indexeddb/cursor-update-while-iterating-expected.txt:
  • storage/indexeddb/resources/cursor-update-while-iterating.js:

(populateObjectStore):
(onOpenSuccess.request.onsuccess):
(onOpenSuccess):
(prepareDatabase): Deleted.

8:01 AM Changeset in webkit [257326] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256396 - Unreviewed, revert r255662 as it seems to cause blank views in SVC.
https://bugs.webkit.org/show_bug.cgi?id=207144
<rdar://problem/59334011>

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
8:00 AM Changeset in webkit [257325] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r256395 - Bug 207424: Crash in WebCore::ParsedContentType::parseContentType when parsing invalid MIME type
<https://webkit.org/b/207424>
<rdar://problem/59250384>

Patch by Rob Buis <rbuis@igalia.com> and David Kilzer <ddkilzer@apple.com> on 2020-02-11
Reviewed by Rob Buis.

Source/WebCore:

Return StringView directly rather than wrapping
it in Optional, since StringView's can be null tested.

Tests: TestWebKitAPI.ParsedContentType

  • platform/network/ParsedContentType.cpp:

(WebCore::parseToken):
(WebCore::parseQuotedString):
(WebCore::ParsedContentType::parseContentType): Don't set type
parameter if parameterName is null string. Remove unneeded
parameterName variable; use keyRange.toString() instead.

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST): Add more tests.

8:00 AM Changeset in webkit [257324] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/LayoutTests

Merge r256537 - REGRESSION: (256381) [ macOS ] http/tests/workers/service/serviceworkerclients-claim.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207653
<rdar://problem/59396225>

Reviewed by Chris Dumez.

console log message output was flaky.
Make sure to end the fetch and post a message so that the console log message will appear in the expected.txt reliably.

  • http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
  • http/tests/workers/service/serviceworkerclients-claim.https.html:
8:00 AM Changeset in webkit [257323] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r256381 - Parent service worker controller should be used for child iframe as per https://w3c.github.io/ServiceWorker/#control-and-use-window-client
https://bugs.webkit.org/show_bug.cgi?id=207506

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/local-url-inherit-controller.https-expected.txt:

Source/WebCore:

Instead of checking document URL protocol, implement the rules as per spec, in particular:

  • If http/https, do not reuse controller
  • If iframe has a unique origin, do not reuse controller
  • If iframe does not have same origin as parent, do not reuse controller.

Covered by rebased test.

  • loader/DocumentLoader.cpp:

(WebCore::isInheritingControllerFromParent):
(WebCore::DocumentLoader::commitData):
(WebCore::isLocalURL): Deleted.

LayoutTests:

  • http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:

Rebased test since now the frame is doing a fetch that is no longer intercepted by the service worker,
and is thus failing due to CORS.

  • http/tests/workers/service/serviceworkerclients-claim.https.html:
8:00 AM Changeset in webkit [257322] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebInspectorUI

Merge r256374 - Web Inspector RTL: Elements closing tag is reversed
https://bugs.webkit.org/show_bug.cgi?id=207214

Reviewed by Timothy Hatcher.

Wrap text nodes in unicode-bidi: isolate-override. From MDN:

isolate-override:

This keyword applies the isolation behavior of the isolate
keyword to the surrounding content and the override behavior
of the bidi-override keyword to the inner content.

  • UserInterface/Views/DOMTreeOutline.css:

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

8:00 AM Changeset in webkit [257321] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256301 - Unreviewed. Fix WPE build after r256298

It started to fail in r256298 because of unified builds, but the issue was introduced in r256013.

  • platform/network/soup/ResourceRequestSoup.cpp: Add missing header include.
8:00 AM Changeset in webkit [257320] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256228 - [iOS] REGRESSION (r255592): The simulated mouse event dispatch quirk should not be on by default
https://bugs.webkit.org/show_bug.cgi?id=207513
<rdar://problem/59326119>

Reviewed by Tim Horton.

Turn shouldDispatchSimulatedMouseEvents back off by default (r255592 enabled it by default on all web pages).

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

8:00 AM Changeset in webkit [257319] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256223 - [WebCore] Shrink Vectors passed to SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=207503

Reviewed by Yusuke Suzuki.

Once SharedBuffer::DataSegment is created, the content won't change in its life cycle. Shrink the passed vector
before assigning to member variable to save space.

With the quick research, when displaying Apple's website, 1~3% RSS usage reduction on PlayStation port.

No new tests because there's no behavior change.

  • platform/SharedBuffer.h:
8:00 AM Changeset in webkit [257318] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.28

Merge r256207 - Don't update selection when calling setSelectionRange on a disconnected input element
https://bugs.webkit.org/show_bug.cgi?id=207357

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test that progressed a little. The test now passes offset checks but still fails direction check.

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:

Source/WebCore:

Don't update FrameSelection when the text form control element is disconnected from document.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

Rebaselined the test that has progressed with this change.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
8:00 AM Changeset in webkit [257317] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r256203 - Unreviewed, speculative build fix on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183

  • wtf/HashTable.h:

(WTF::HashTableCapacityForSize::capacityForSize):

8:00 AM Changeset in webkit [257316] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.28

Merge r256202 - Placate exception check validator in GenericArguments<Type>::put().
https://bugs.webkit.org/show_bug.cgi?id=207485
<rdar://problem/59302535>

Reviewed by Robin Morisset.

JSTests:

  • stress/placate-exception-check-validator-in-GenericArguments-put.js: Added.

Source/JavaScriptCore:

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::put):

8:00 AM Changeset in webkit [257315] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28

Merge r256200 - [CMake] Prepend -Wno-noexcept-type only to global CXX flags
https://bugs.webkit.org/show_bug.cgi?id=207468

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-10
Reviewed by Adrian Perez de Castro.

-Wno-noexcept-type is a C++-specific flag that should not be passed to the C compiler. This
causes a warning spam in GCC 10.

  • Source/cmake/WebKitCompilerFlags.cmake:
8:00 AM Changeset in webkit [257314] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.28

Merge r256198 - Missing exception check in GenericArguments<Type>::deletePropertyByIndex().
https://bugs.webkit.org/show_bug.cgi?id=207483
<rdar://problem/59302616>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/missing-exception-check-in-GenericArguments-deletePropertyByIndex.js: Added.

Source/JavaScriptCore:

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::deletePropertyByIndex):

7:59 AM Changeset in webkit [257313] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r256194 - Unreviewed, fix build failure on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183

  • wtf/HashTable.h:

(WTF::HashTableCapacityForSize::capacityForSize):

7:59 AM Changeset in webkit [257312] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r256192 - Unreachable code hit in WebCore::Shape::createShape
https://bugs.webkit.org/show_bug.cgi?id=207399

Reviewed by Darin Adler.

Source/WebCore:

CSS parser should not consume the 'shape-outside' property with type 'path'
since it has not been implemented yet. This will prevent an assertion in
the debug build and null dref in the release build.

Test: css3/shapes/shape-outside-path-no-crash.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBasicShape):
(WebCore::consumeShapeOutside):

LayoutTests:

  • css3/shapes/shape-outside-path-no-crash-expected.txt: Added.
  • css3/shapes/shape-outside-path-no-crash.html: Added.
7:59 AM Changeset in webkit [257311] by Carlos Garcia Campos
  • 29 edits
    4 copies
    6 adds in releases/WebKitGTK/webkit-2.28

Merge r256191 - Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136

Source/WebCore:

Reviewed by Brent Fulgham.

Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.

Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.

On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.

For all other ports, this restriction is enabled by default.

Tests: fast/url/relative2.html

fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html

  • dom/Document.cpp:

(WebCore::Document::processBaseElement): Condition updating the parsed
base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise,
do what we do now. If the scheme is disallowed then log a message to the console to
explain this to web developers.

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL
to updatePredictedBaseURL(). This depends on whether the setting is enabled or not.
(WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to
whether to apply restrictions. If restrictions are not to be applied do what we do now.
Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.

  • html/parser/HTMLPreloadScanner.h:
  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.

  • page/SecurityPolicy.h:
  • page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.

Source/WebKit:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKWebView.mm:

(shouldRestrictBaseURLSchemes): Added.
(-[WKWebView _setupPageConfiguration:]): Update settings.

  • UIProcess/Cocoa/VersionChecks.h:

Source/WebKitLegacy/mac:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm:

(shouldRestrictBaseURLSchemes): Added.
(-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.

Source/WTF:

Reviewed by Brent Fulgham.

Add some more macro definitions.

  • wtf/spi/darwin/dyldSPI.h:

LayoutTests:

RReviewed by Brent Fulgham.

Add some tests. Update others to toggle the setting to apply or unapply the new behavior.

The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.

  • fast/url/relative-expected.txt:
  • fast/url/relative.html:
  • fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
  • fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
  • fast/url/resources/utilities.js:

(setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching.
Otherwise, file URLs could be machine-specific.
(canonicalizedPathname): Added.
(segments): Modified to optionally call canonicalizedPathname.
(canonicalize): Ditto.

  • fast/url/segments-from-data-url-expected.txt:
  • fast/url/segments-from-data-url.html:
  • fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
  • fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
  • fetch/fetch-url-serialization-expected.txt:
  • http/tests/plugins/navigation-during-load-embed.html:
  • http/tests/plugins/navigation-during-load.html:
  • http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
  • http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
  • http/tests/security/denied-base-url-data-url-expected.txt: Added.
  • http/tests/security/denied-base-url-data-url.html: Added.
  • http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
  • http/tests/security/denied-base-url-javascript-url.html: Added.
7:59 AM Changeset in webkit [257310] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r256187 - Crash under WebProcessProxy::shouldSendPendingMessage()
https://bugs.webkit.org/show_bug.cgi?id=207464
<rdar://problem/59293825>

Reviewed by Alex Christensen.

I suspect the WebProcessProxy object is getting destroyed as we are iterating over the
pending messages in AuxiliaryProcessProxy::didFinishLaunching(), thus crashing when
calling WebProcessProxy::shouldSendPendingMessage() inside the loop. As a speculative
fix, protect |this| at the beginning of WebProcessProxy::didFinishLaunching().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

7:59 AM Changeset in webkit [257309] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.28

Merge r256214 - WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=207493
rdar://problem/59020443

Reviewed by Zalan Bujtas.
Source/WebCore:

There were three issues that contributed to massive backing store allocation on
<https://www.sony.com/electronics/lenses/t/camera-lenses>.

The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
bounds with the transitioning bounds, causing the computation of large extent rects.

The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
animation for an extra frame, causing a rendering update where
RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
backing store attached.

This patch is the final fix; when animations start and end, we need to ensure that
RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
the same frame that adds the animation.

Test: compositing/backing/transition-extent.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::animationFinished):

LayoutTests:

Test with an out-of-view transitioning element which should not get backing store.

  • compositing/backing/transition-extent-expected.txt: Added.
  • compositing/backing/transition-extent.html: Added.
  • platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
7:59 AM Changeset in webkit [257308] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r256181 - There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=207361
<rdar://problem/59280370>

Reviewed by Simon Fraser.

Source/WebCore:

Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
an active transform animation.

To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.

Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.

  • animation/AnimationEffect.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::animationDidTick):
(WebCore::KeyframeEffect::animationDidPlay):

  • animation/KeyframeEffect.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::play):
(WebCore::WebAnimation::tick):

LayoutTests:

Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.

  • webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
7:59 AM Changeset in webkit [257307] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/LayoutTests

Merge r256177 - [Web Animations] Fix animations/stop-animation-on-suspend.html
https://bugs.webkit.org/show_bug.cgi?id=184580
<rdar://problem/39406014>

Reviewed by Simon Fraser.

The expectations of this test were incorrect. The test animates a transform from 0 to 400px across 400ms with a linear timing function. The test suspends
animations from 100ms to 300ms with timers, and polls animations at 200ms and 400ms. At 200ms, it expects a value of 100px, which is correct since the animation
is suspended and so the value at 100ms (when it was suspended) is expected.

However, the test expected the value at 400ms to be 200px, which leads me to think this test assumes that animations, when resumed, account for the time suspended
and subtracts it from the page time. This is incorrect: when animations resume, they resume at the current time, no matter how long they were suspended. So the expected
value should be 400px.

  • animations/stop-animation-on-suspend-expected.txt:
  • animations/stop-animation-on-suspend.html:
7:59 AM Changeset in webkit [257306] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256173 - Make FormDataElement::lengthInBytes() safe to call on a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=207419
<rdar://problem/54386521>

Reviewed by Youenn Fablet.

Make FormDataElement::lengthInBytes() safe to call on a non-main thread by using the
ThreadableBlobRegistry. DOMCache code in workers may call this on worker threads for
example.

  • platform/network/FormData.cpp:

(WebCore::FormDataElement::lengthInBytes const):

6:33 AM Changeset in webkit [257305] by Carlos Garcia Campos
  • 449 edits
    3 adds in trunk/LayoutTests

Unreviewed GTK gardening. Rebaseline tests after r257299 and r257300.

  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt:
  • platform/gtk/compositing/overflow/theme-affects-visual-overflow-expected.png:
  • platform/gtk/compositing/overflow/theme-affects-visual-overflow-expected.txt:
  • platform/gtk/compositing/video/video-background-color-expected.png: Added.
  • platform/gtk/compositing/video/video-background-color-expected.txt: Added.
  • platform/gtk/css1/box_properties/acid_test-expected.png:
  • platform/gtk/css1/box_properties/acid_test-expected.txt:
  • platform/gtk/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/gtk/css2.1/t09-c5526c-display-00-e-expected.png:
  • platform/gtk/css2.1/t09-c5526c-display-00-e-expected.txt:
  • platform/gtk/css3/flexbox/button-expected.png:
  • platform/gtk/css3/flexbox/button-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-161-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-161-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-19b-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-19b-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-23-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-23-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-24-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-24-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-25-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-25-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-68-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-68-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-69-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-69-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-70-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-70-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-161-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-161-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-19b-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-19b-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-23-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-23-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-24-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-24-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-25-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-25-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-68-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-68-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-69-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-69-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-70-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-70-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-161-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-161-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-19b-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-19b-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-23-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-23-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-24-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-24-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-25-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-25-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-68-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-68-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-69-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-69-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-70-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-70-expected.txt:
  • platform/gtk/editing/pasteboard/4641033-expected.png:
  • platform/gtk/editing/pasteboard/4641033-expected.txt:
  • platform/gtk/editing/pasteboard/4944770-1-expected.png:
  • platform/gtk/editing/pasteboard/4944770-1-expected.txt:
  • platform/gtk/editing/pasteboard/4944770-2-expected.png:
  • platform/gtk/editing/pasteboard/4944770-2-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.png:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.png:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.png:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/editing/selection/4397952-expected.png:
  • platform/gtk/editing/selection/4397952-expected.txt:
  • platform/gtk/editing/selection/5240265-expected.png:
  • platform/gtk/editing/selection/5240265-expected.txt:
  • platform/gtk/editing/selection/caret-before-select-expected.png:
  • platform/gtk/editing/selection/caret-before-select-expected.txt:
  • platform/gtk/editing/selection/replaced-boundaries-3-expected.png:
  • platform/gtk/editing/selection/replaced-boundaries-3-expected.txt:
  • platform/gtk/editing/selection/select-box-expected.png:
  • platform/gtk/editing/selection/select-box-expected.txt:
  • platform/gtk/editing/selection/select-element-paragraph-boundary-expected.png:
  • platform/gtk/editing/selection/select-element-paragraph-boundary-expected.txt:
  • platform/gtk/editing/selection/selection-button-text-expected.png:
  • platform/gtk/editing/selection/selection-button-text-expected.txt:
  • platform/gtk/fast/block/basic/011-expected.png:
  • platform/gtk/fast/block/basic/011-expected.txt:
  • platform/gtk/fast/block/float/float-avoidance-expected.png:
  • platform/gtk/fast/block/float/float-avoidance-expected.txt:
  • platform/gtk/fast/block/margin-collapse/103-expected.png:
  • platform/gtk/fast/block/margin-collapse/103-expected.txt:
  • platform/gtk/fast/block/positioning/inline-block-relposition-expected.png:
  • platform/gtk/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/gtk/fast/box-sizing/percentage-height-expected.png:
  • platform/gtk/fast/box-sizing/percentage-height-expected.txt:
  • platform/gtk/fast/css/continuationCrash-expected.png:
  • platform/gtk/fast/css/continuationCrash-expected.txt:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.png:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.png:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/gtk/fast/css/non-standard-checkbox-size-expected.png:
  • platform/gtk/fast/css/non-standard-checkbox-size-expected.txt:
  • platform/gtk/fast/css/rtl-ordering-expected.png:
  • platform/gtk/fast/css/rtl-ordering-expected.txt:
  • platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.png:
  • platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.txt:
  • platform/gtk/fast/css/text-overflow-input-expected.png:
  • platform/gtk/fast/css/text-overflow-input-expected.txt:
  • platform/gtk/fast/css/text-transform-select-expected.png:
  • platform/gtk/fast/css/text-transform-select-expected.txt:
  • platform/gtk/fast/dom/HTMLInputElement/input-slider-update-expected.png:
  • platform/gtk/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/native-progress-bar-expected.png:
  • platform/gtk/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.png:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.png:
  • platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/gtk/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/gtk/fast/forms/001-expected.png:
  • platform/gtk/fast/forms/001-expected.txt:
  • platform/gtk/fast/forms/003-expected.png:
  • platform/gtk/fast/forms/003-expected.txt:
  • platform/gtk/fast/forms/004-expected.png:
  • platform/gtk/fast/forms/004-expected.txt:
  • platform/gtk/fast/forms/basic-buttons-expected.png:
  • platform/gtk/fast/forms/basic-buttons-expected.txt:
  • platform/gtk/fast/forms/basic-inputs-expected.png:
  • platform/gtk/fast/forms/basic-inputs-expected.txt:
  • platform/gtk/fast/forms/basic-selects-expected.png:
  • platform/gtk/fast/forms/basic-selects-expected.txt:
  • platform/gtk/fast/forms/basic-textareas-expected.png:
  • platform/gtk/fast/forms/basic-textareas-expected.txt:
  • platform/gtk/fast/forms/basic-textareas-quirks-expected.png:
  • platform/gtk/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/gtk/fast/forms/blankbuttons-expected.png:
  • platform/gtk/fast/forms/blankbuttons-expected.txt:
  • platform/gtk/fast/forms/button-align-expected.png:
  • platform/gtk/fast/forms/button-align-expected.txt:
  • platform/gtk/fast/forms/button-cannot-be-nested-expected.png:
  • platform/gtk/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/gtk/fast/forms/button-default-title-expected.png:
  • platform/gtk/fast/forms/button-default-title-expected.txt:
  • platform/gtk/fast/forms/button-generated-content-expected.png:
  • platform/gtk/fast/forms/button-generated-content-expected.txt:
  • platform/gtk/fast/forms/button-inner-block-reuse-expected.png:
  • platform/gtk/fast/forms/button-inner-block-reuse-expected.txt:
  • platform/gtk/fast/forms/button-positioned-expected.png:
  • platform/gtk/fast/forms/button-positioned-expected.txt:
  • platform/gtk/fast/forms/button-sizes-expected.png:
  • platform/gtk/fast/forms/button-sizes-expected.txt:
  • platform/gtk/fast/forms/button-style-color-expected.png:
  • platform/gtk/fast/forms/button-style-color-expected.txt:
  • platform/gtk/fast/forms/button-table-styles-expected.png:
  • platform/gtk/fast/forms/button-table-styles-expected.txt:
  • platform/gtk/fast/forms/button-text-transform-expected.png:
  • platform/gtk/fast/forms/button-text-transform-expected.txt:
  • platform/gtk/fast/forms/button-white-space-expected.png:
  • platform/gtk/fast/forms/button-white-space-expected.txt:
  • platform/gtk/fast/forms/control-clip-expected.png:
  • platform/gtk/fast/forms/control-clip-expected.txt:
  • platform/gtk/fast/forms/control-clip-overflow-expected.png:
  • platform/gtk/fast/forms/control-clip-overflow-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.png:
  • platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-textinput-appearance-expected.png:
  • platform/gtk/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.png:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
  • platform/gtk/fast/forms/file/file-input-direction-expected.png:
  • platform/gtk/fast/forms/file/file-input-direction-expected.txt:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.png:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.png:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/formmove-expected.png:
  • platform/gtk/fast/forms/formmove-expected.txt:
  • platform/gtk/fast/forms/formmove2-expected.png:
  • platform/gtk/fast/forms/formmove2-expected.txt:
  • platform/gtk/fast/forms/formmove3-expected.png:
  • platform/gtk/fast/forms/formmove3-expected.txt:
  • platform/gtk/fast/forms/indeterminate-expected.png:
  • platform/gtk/fast/forms/indeterminate-expected.txt:
  • platform/gtk/fast/forms/input-appearance-disabled-expected.png:
  • platform/gtk/fast/forms/input-appearance-disabled-expected.txt:
  • platform/gtk/fast/forms/input-appearance-height-expected.png:
  • platform/gtk/fast/forms/input-appearance-height-expected.txt:
  • platform/gtk/fast/forms/input-button-sizes-expected.png:
  • platform/gtk/fast/forms/input-button-sizes-expected.txt:
  • platform/gtk/fast/forms/input-disabled-color-expected.png:
  • platform/gtk/fast/forms/input-disabled-color-expected.txt:
  • platform/gtk/fast/forms/input-first-letter-expected.png:
  • platform/gtk/fast/forms/input-first-letter-expected.txt:
  • platform/gtk/fast/forms/input-value-expected.png:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/forms/large-toggle-elements-expected.png:
  • platform/gtk/fast/forms/large-toggle-elements-expected.txt:
  • platform/gtk/fast/forms/menulist-deselect-update-expected.png:
  • platform/gtk/fast/forms/menulist-deselect-update-expected.txt:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.png:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.txt:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.png:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.txt:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.png:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.txt:
  • platform/gtk/fast/forms/menulist-style-color-expected.png:
  • platform/gtk/fast/forms/menulist-style-color-expected.txt:
  • platform/gtk/fast/forms/menulist-width-change-expected.png:
  • platform/gtk/fast/forms/menulist-width-change-expected.txt:
  • platform/gtk/fast/forms/number/number-spinbutton-change-and-input-events-expected.txt:
  • platform/gtk/fast/forms/number/number-spinbutton-click-in-iframe-expected.txt:
  • platform/gtk/fast/forms/number/number-spinbutton-gets-disabled-or-readonly-expected.txt:
  • platform/gtk/fast/forms/option-script-expected.png:
  • platform/gtk/fast/forms/option-script-expected.txt:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.png:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.txt:
  • platform/gtk/fast/forms/option-text-clip-expected.png:
  • platform/gtk/fast/forms/option-text-clip-expected.txt:
  • platform/gtk/fast/forms/placeholder-position-expected.png:
  • platform/gtk/fast/forms/placeholder-position-expected.txt:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.png:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/forms/range/input-appearance-range-expected.png:
  • platform/gtk/fast/forms/range/input-appearance-range-expected.txt:
  • platform/gtk/fast/forms/range/slider-padding-expected.png:
  • platform/gtk/fast/forms/range/slider-padding-expected.txt:
  • platform/gtk/fast/forms/range/slider-thumb-shared-style-expected.png:
  • platform/gtk/fast/forms/range/slider-thumb-shared-style-expected.txt:
  • platform/gtk/fast/forms/range/slider-transformed-expected.txt:
  • platform/gtk/fast/forms/range/thumbslider-no-parent-slider-expected.png:
  • platform/gtk/fast/forms/range/thumbslider-no-parent-slider-expected.txt:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.png:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/gtk/fast/forms/search-display-none-cancel-button-expected.png:
  • platform/gtk/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/gtk/fast/forms/search-input-rtl-expected.png:
  • platform/gtk/fast/forms/search-input-rtl-expected.txt:
  • platform/gtk/fast/forms/search-rtl-expected.png:
  • platform/gtk/fast/forms/search-rtl-expected.txt:
  • platform/gtk/fast/forms/search-styled-expected.png:
  • platform/gtk/fast/forms/search-styled-expected.txt:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.png:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/gtk/fast/forms/searchfield-heights-expected.png:
  • platform/gtk/fast/forms/searchfield-heights-expected.txt:
  • platform/gtk/fast/forms/select-align-expected.png:
  • platform/gtk/fast/forms/select-align-expected.txt:
  • platform/gtk/fast/forms/select-background-none-expected.png:
  • platform/gtk/fast/forms/select-background-none-expected.txt:
  • platform/gtk/fast/forms/select-baseline-expected.png:
  • platform/gtk/fast/forms/select-baseline-expected.txt:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.png:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.png:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.txt:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.png:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
  • platform/gtk/fast/forms/select-element-focus-ring-expected.png:
  • platform/gtk/fast/forms/select-element-focus-ring-expected.txt:
  • platform/gtk/fast/forms/select-initial-position-expected.png:
  • platform/gtk/fast/forms/select-initial-position-expected.txt:
  • platform/gtk/fast/forms/select-non-native-rendering-direction-expected.png:
  • platform/gtk/fast/forms/select-non-native-rendering-direction-expected.txt:
  • platform/gtk/fast/forms/select-selected-expected.png:
  • platform/gtk/fast/forms/select-selected-expected.txt:
  • platform/gtk/fast/forms/select-style-expected.png:
  • platform/gtk/fast/forms/select-style-expected.txt:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.png:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.png:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/forms/select/optgroup-rendering-expected.png:
  • platform/gtk/fast/forms/select/optgroup-rendering-expected.txt:
  • platform/gtk/fast/forms/selectlist-minsize-expected.png:
  • platform/gtk/fast/forms/selectlist-minsize-expected.txt:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.png:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.txt:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.png:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.txt:
  • platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.png:
  • platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/html/details-replace-summary-child-expected.png:
  • platform/gtk/fast/html/details-replace-summary-child-expected.txt:
  • platform/gtk/fast/html/details-replace-text-expected.png:
  • platform/gtk/fast/html/details-replace-text-expected.txt:
  • platform/gtk/fast/html/keygen-expected.png:
  • platform/gtk/fast/html/keygen-expected.txt:
  • platform/gtk/fast/inline/positionedLifetime-expected.png:
  • platform/gtk/fast/inline/positionedLifetime-expected.txt:
  • platform/gtk/fast/invalid/014-expected.png:
  • platform/gtk/fast/invalid/014-expected.txt:
  • platform/gtk/fast/layers/video-layer-expected.png:
  • platform/gtk/fast/layers/video-layer-expected.txt:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.png:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.txt:
  • platform/gtk/fast/parser/bad-xml-slash-expected.png:
  • platform/gtk/fast/parser/bad-xml-slash-expected.txt:
  • platform/gtk/fast/parser/document-write-option-expected.png:
  • platform/gtk/fast/parser/document-write-option-expected.txt:
  • platform/gtk/fast/repaint/search-field-cancel-expected.png:
  • platform/gtk/fast/repaint/search-field-cancel-expected.txt:
  • platform/gtk/fast/repaint/slider-thumb-drag-release-expected.png:
  • platform/gtk/fast/repaint/slider-thumb-drag-release-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-expected.png:
  • platform/gtk/fast/replaced/replaced-breaking-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-mixture-expected.png:
  • platform/gtk/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/gtk/fast/replaced/three-selects-break-expected.png:
  • platform/gtk/fast/replaced/three-selects-break-expected.txt:
  • platform/gtk/fast/replaced/width100percent-button-expected.png:
  • platform/gtk/fast/replaced/width100percent-button-expected.txt:
  • platform/gtk/fast/replaced/width100percent-checkbox-expected.png:
  • platform/gtk/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/gtk/fast/replaced/width100percent-menulist-expected.png:
  • platform/gtk/fast/replaced/width100percent-menulist-expected.txt:
  • platform/gtk/fast/replaced/width100percent-radio-expected.png:
  • platform/gtk/fast/replaced/width100percent-radio-expected.txt:
  • platform/gtk/fast/replaced/width100percent-searchfield-expected.png:
  • platform/gtk/fast/replaced/width100percent-searchfield-expected.txt:
  • platform/gtk/fast/table/append-cells2-expected.png:
  • platform/gtk/fast/table/append-cells2-expected.txt:
  • platform/gtk/fast/table/remove-td-display-none-expected.png:
  • platform/gtk/fast/table/remove-td-display-none-expected.txt:
  • platform/gtk/fast/text/international/bidi-menulist-expected.png:
  • platform/gtk/fast/text/international/bidi-menulist-expected.txt:
  • platform/gtk/fast/text/international/hindi-spacing-expected.png:
  • platform/gtk/fast/text/international/hindi-spacing-expected.txt:
  • platform/gtk/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png:
  • platform/gtk/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/gtk/fast/text/monospace-width-cache-expected.png:
  • platform/gtk/fast/text/monospace-width-cache-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.png:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/fast/text/whitespace/normal-after-nowrap-breaking-expected.png:
  • platform/gtk/fast/text/whitespace/normal-after-nowrap-breaking-expected.txt:
  • platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.png:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/gtk/media/audio-controls-rendering-expected.png:
  • platform/gtk/media/audio-controls-rendering-expected.txt:
  • platform/gtk/media/controls-after-reload-expected.png:
  • platform/gtk/media/controls-after-reload-expected.txt:
  • platform/gtk/media/controls-strict-expected.png:
  • platform/gtk/media/controls-strict-expected.txt:
  • platform/gtk/media/media-controls-clone-expected.png:
  • platform/gtk/media/media-controls-clone-expected.txt:
  • platform/gtk/media/video-controls-rendering-expected.png:
  • platform/gtk/media/video-controls-rendering-expected.txt:
  • platform/gtk/media/video-display-toggle-expected.png:
  • platform/gtk/media/video-display-toggle-expected.txt:
  • platform/gtk/media/video-empty-source-expected.png:
  • platform/gtk/media/video-empty-source-expected.txt:
  • platform/gtk/media/video-no-audio-expected.png:
  • platform/gtk/media/video-no-audio-expected.txt:
  • platform/gtk/media/video-playing-and-pause-expected.png:
  • platform/gtk/media/video-playing-and-pause-expected.txt:
  • platform/gtk/media/video-zoom-controls-expected.png:
  • platform/gtk/media/video-zoom-controls-expected.txt:
  • platform/gtk/svg/custom/foreign-object-skew-expected.png:
  • platform/gtk/svg/custom/foreign-object-skew-expected.txt:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.png:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug29326-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug29326-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug44505-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug68912-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug92647-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.png:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/gtk/tables/mozilla/core/margins-expected.png:
  • platform/gtk/tables/mozilla/core/margins-expected.txt:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.png:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
  • platform/gtk/tables/mozilla/other/move_row-expected.png:
  • platform/gtk/tables/mozilla/other/move_row-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/core/captions1-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/core/captions1-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/core/captions2-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/core/captions2-expected.txt:
  • platform/gtk/transforms/2d/zoom-menulist-expected.png:
  • platform/gtk/transforms/2d/zoom-menulist-expected.txt:
6:14 AM Changeset in webkit [257304] by Philippe Normand
  • 2 edits in trunk/Source/WTF

[WPE] Enable BACKTRACE_SYMBOLS
https://bugs.webkit.org/show_bug.cgi?id=208187

Reviewed by Žan Doberšek.

  • wtf/PlatformHave.h: Enable backtrace_symbols, to be combined

with dladdr() the stacktrace dumps will be improved.

3:57 AM Changeset in webkit [257303] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208183

Unreviewed gardening.

  • platform/gtk/TestExpectations:
3:53 AM Changeset in webkit [257302] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208184

Unreviewed gardening.

  • platform/wpe/TestExpectations:
2:37 AM Changeset in webkit [257301] by sbarati@apple.com
  • 4 edits in trunk/Source

Update stale comment about PackedAlignedPtr
https://bugs.webkit.org/show_bug.cgi?id=208176

Reviewed by Yusuke Suzuki.

The comment was stale since cells aren't guaranteed anymore to be
aligned on 16 byte boundaries because of the GCs precise allocations.

Source/bmalloc:

  • bmalloc/Packed.h:

Source/WTF:

  • wtf/Packed.h:
2:03 AM Changeset in webkit [257300] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Add support for rendering slider ticks
https://bugs.webkit.org/show_bug.cgi?id=208132

Reviewed by Adrian Perez de Castro.

.:

Add a test case for sliders with ticks.

  • ManualTests/gtk/theme.html:

Source/WebCore:

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::sliderTickSize const):
(WebCore::RenderThemeAdwaita::sliderTickOffsetFromTrackCenter const):

1:55 AM Changeset in webkit [257299] by Carlos Garcia Campos
  • 15 edits
    1 copy
    6 moves
    2 adds
    8 deletes in trunk

[GTK] Stop using gtk foreign drawing API to style form controls
https://bugs.webkit.org/show_bug.cgi?id=208129

Reviewed by Adrian Perez de Castro.

.:

Add a test case for datalist element.

  • ManualTests/gtk/theme.html:

Source/WebCore:

It causes layout issues in some websites, it doesn't really work with all GTK themes and it won't be possible
with GTK4 because foreign drawing APIs have been removed. Instead, we can use the new custom style used by WPE
port, which is based on adwaita, but simplified to avoid the huge minimum control sizes, the usage of gradients
and transparencies, etc. We can still use the GTK API to get the selection colors, to keep some consistency with
the actual GTK theme, but that won't be possible with GTK4 either. This also means we won't be rendering
directly to the cairo context anymore (which was required by GTK foreign drawing), so we can use things like
threaded rendering in the GTK port now. This patch renames ScrollbarThemeWPE, RenderThemeWPE and ThemeWPE as
ScrollbarThemeAdwaita, RenderThemeAdwaita and ThemeAdwaita and adds ThemeGtk. GTK media controls CSS and
JavaScript files have been removed in favor of using the adwaita ones.

  • Modules/mediacontrols/mediaControlsGtk.js: Removed.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • css/mediaControlsGtk.css: Removed.
  • platform/adwaita/ScrollbarThemeAdwaita.cpp: Renamed from Source/WebCore/platform/wpe/ScrollbarThemeWPE.cpp.

(WebCore::ScrollbarThemeAdwaita::usesOverlayScrollbars const):
(WebCore::ScrollbarThemeAdwaita::scrollbarThickness):
(WebCore::ScrollbarThemeAdwaita::minimumThumbLength):
(WebCore::ScrollbarThemeAdwaita::hasButtons):
(WebCore::ScrollbarThemeAdwaita::hasThumb):
(WebCore::ScrollbarThemeAdwaita::backButtonRect):
(WebCore::ScrollbarThemeAdwaita::forwardButtonRect):
(WebCore::ScrollbarThemeAdwaita::trackRect):
(WebCore::ScrollbarThemeAdwaita::paint):
(WebCore::ScrollbarThemeAdwaita::handleMousePressEvent):
(WebCore::ScrollbarTheme::nativeTheme):

  • platform/adwaita/ScrollbarThemeAdwaita.h: Copied from Source/WebCore/platform/wpe/ScrollbarThemeWPE.h.
  • platform/adwaita/ThemeAdwaita.cpp: Renamed from Source/WebCore/platform/wpe/ThemeWPE.cpp.

(WebCore::Theme::singleton):
(WebCore::ThemeAdwaita::activeSelectionForegroundColor const):
(WebCore::ThemeAdwaita::activeSelectionBackgroundColor const):
(WebCore::ThemeAdwaita::inactiveSelectionForegroundColor const):
(WebCore::ThemeAdwaita::inactiveSelectionBackgroundColor const):
(WebCore::ThemeAdwaita::focusColor):
(WebCore::ThemeAdwaita::paintFocus):
(WebCore::ThemeAdwaita::paintArrow):
(WebCore::ThemeAdwaita::controlSize const):
(WebCore::ThemeAdwaita::paint):
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):
(WebCore::ThemeAdwaita::paintButton):
(WebCore::ThemeAdwaita::paintSpinButton):

  • platform/adwaita/ThemeAdwaita.h: Renamed from Source/WebCore/platform/wpe/ThemeWPE.h.

(WebCore::ThemeAdwaita::platformColorsDidChange):

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawFocusRing):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawFocusRing):

  • platform/gtk/RenderThemeGadget.cpp: Removed.
  • platform/gtk/RenderThemeGadget.h: Removed.
  • platform/gtk/RenderThemeWidget.cpp: Removed.
  • platform/gtk/RenderThemeWidget.h: Removed.
  • platform/gtk/ScrollbarThemeGtk.cpp: Removed.
  • platform/gtk/ScrollbarThemeGtk.h: Removed.
  • platform/gtk/ThemeGtk.cpp: Added.

(WebCore::Theme::singleton):
(WebCore::ThemeGtk::ensurePlatformColors const):
(WebCore::ThemeGtk::platformColorsDidChange):
(WebCore::ThemeGtk::activeSelectionForegroundColor const):
(WebCore::ThemeGtk::activeSelectionBackgroundColor const):
(WebCore::ThemeGtk::inactiveSelectionForegroundColor const):
(WebCore::ThemeGtk::inactiveSelectionBackgroundColor const):

  • platform/gtk/ThemeGtk.h: Renamed from Source/WebCore/platform/wpe/ScrollbarThemeWPE.h.
  • rendering/RenderThemeAdwaita.cpp: Renamed from Source/WebCore/platform/wpe/RenderThemeWPE.cpp.

(WebCore::RenderTheme::singleton):
(WebCore::RenderThemeAdwaita::supportsFocusRing const):
(WebCore::RenderThemeAdwaita::shouldHaveCapsLockIndicator const):
(WebCore::RenderThemeAdwaita::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformActiveSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformActiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformFocusRingColor const):
(WebCore::RenderThemeAdwaita::platformColorsDidChange):
(WebCore::RenderThemeAdwaita::extraDefaultStyleSheet):
(WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet):
(WebCore::RenderThemeAdwaita::mediaControlsScript):
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::paintTextArea):
(WebCore::RenderThemeAdwaita::paintSearchField):
(WebCore::RenderThemeAdwaita::popupInternalPaddingBox const):
(WebCore::RenderThemeAdwaita::paintMenuList):
(WebCore::RenderThemeAdwaita::paintMenuListButtonDecorations):
(WebCore::RenderThemeAdwaita::animationRepeatIntervalForProgressBar const):
(WebCore::RenderThemeAdwaita::animationDurationForProgressBar const):
(WebCore::RenderThemeAdwaita::progressBarRectForBounds const):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::adjustSliderThumbSize const):
(WebCore::RenderThemeAdwaita::paintSliderThumb):
(WebCore::RenderThemeAdwaita::paintMediaSliderTrack):
(WebCore::RenderThemeAdwaita::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeAdwaita::sliderTickSize const):
(WebCore::RenderThemeAdwaita::sliderTickOffsetFromTrackCenter const):
(WebCore::RenderThemeAdwaita::adjustListButtonStyle const):

  • rendering/RenderThemeAdwaita.h: Renamed from Source/WebCore/platform/wpe/RenderThemeWPE.h.
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::updateCachedSystemFontDescription const):
(WebCore::RenderThemeGtk::caretBlinkInterval const):

  • rendering/RenderThemeGtk.h:

Source/WebKit:

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::themeDidChange): Notify RenderTheme about the theme change to clear the colors cache.

Source/WTF:

Enable USE_NEW_THEME for the GTK port.

  • wtf/PlatformUse.h:
1:19 AM Changeset in webkit [257298] by Philippe Normand
  • 2 edits in trunk/Source/WTF

[Linux] StackTrace symbols are not demangled
https://bugs.webkit.org/show_bug.cgi?id=207933

Reviewed by Yusuke Suzuki.

Demangle symbols provided by backtrace_symbols.

  • wtf/StackTrace.cpp:

(WTF::StackTrace::dump const):

Note: See TracTimeline for information about the timeline view.