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

Timeline



May 21, 2021:

11:39 PM Changeset in webkit [277914] by Chris Dumez
  • 6 edits in trunk/Source

Remove WTF::holdLock() / WTF::holdLockIf()
https://bugs.webkit.org/show_bug.cgi?id=226135

Reviewed by Darin Adler.

Remove WTF::holdLock() / WTF::holdLockIf() because they are not compatible with
Clang Thread Safety Analysis. All call sites have been converted to use the Locker
constructor directly.

Source/JavaScriptCore:

  • heap/LockDuringMarking.h:

(JSC::lockDuringMarking):

Source/WebCore:

  • dom/Node.cpp:

(WebCore::Node::eventTargetDataConcurrently):

Source/WTF:

  • wtf/Locker.h:
10:49 PM Changeset in webkit [277913] by Chris Dumez
  • 120 edits in trunk

Replace LockHolder with Locker in local variables
https://bugs.webkit.org/show_bug.cgi?id=226133

Reviewed by Darin Adler.

Replace LockHolder with Locker in local variables. It is shorter and it allows switching the lock
type more easily since the compiler with deduce the lock type T for Locker<T>.

Source/JavaScriptCore:

  • API/JSCallbackObject.h:

(JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
(JSC::JSCallbackObjectData::JSPrivatePropertyMap::deletePrivateProperty):
(JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren):

  • API/JSValue.mm:

(handerForStructTag):

  • API/tests/testapi.cpp:

(testCAPIViaCpp):

  • assembler/testmasm.cpp:

(JSC::run):

  • b3/air/testair.cpp:
  • b3/testb3_1.cpp:

(run):

  • bytecode/DirectEvalCodeCache.cpp:

(JSC::DirectEvalCodeCache::setSlow):
(JSC::DirectEvalCodeCache::clear):
(JSC::DirectEvalCodeCache::visitAggregateImpl):

  • bytecode/SuperSampler.cpp:

(JSC::initializeSuperSampler):
(JSC::resetSuperSamplerState):
(JSC::printSuperSamplerState):
(JSC::enableSuperSampler):
(JSC::disableSuperSampler):

  • dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::invalidate):
(JSC::DFG::CommonData::~CommonData):
(JSC::DFG::CommonData::installVMTrapBreakpoints):
(JSC::DFG::codeBlockForVMTrapPC):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::~Worklist):
(JSC::DFG::Worklist::finishCreation):
(JSC::DFG::Worklist::isActiveForVM const):
(JSC::DFG::Worklist::enqueue):
(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::removeNonCompilingPlansForVM):
(JSC::DFG::Worklist::queueLength):
(JSC::DFG::Worklist::dump const):
(JSC::DFG::Worklist::setNumberOfThreads):

  • dfg/DFGWorklistInlines.h:

(JSC::DFG::Worklist::iterateCodeBlocksForGC):

  • disassembler/Disassembler.cpp:
  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::addBlock):

  • heap/CodeBlockSetInlines.h:

(JSC::CodeBlockSet::iterateCurrentlyExecuting):

  • heap/ConservativeRoots.cpp:

(JSC::ConservativeRoots::add):

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::collectAsync):
(JSC::Heap::runBeginPhase):
(JSC::Heap::waitForCollector):
(JSC::Heap::requestCollection):
(JSC::Heap::notifyIsSafeToCollect):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::didReachTermination):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):
(Inspector::InspectorScriptProfilerAgent::trackingComplete):
(Inspector::InspectorScriptProfilerAgent::stopSamplingWhenDisconnecting):

  • inspector/remote/RemoteConnectionToTarget.cpp:

(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::targetClosed):

  • inspector/remote/RemoteInspector.cpp:

(Inspector::RemoteInspector::registerTarget):
(Inspector::RemoteInspector::unregisterTarget):
(Inspector::RemoteInspector::updateTarget):
(Inspector::RemoteInspector::updateClientCapabilities):
(Inspector::RemoteInspector::setClient):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::setupCompleted):
(Inspector::RemoteInspector::stop):

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteTargetHandleRunSourceGlobal):
(Inspector::RemoteTargetQueueTaskOnGlobalQueue):
(Inspector::RemoteTargetHandleRunSourceWithInfo):
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::targetClosed):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
(Inspector::RemoteConnectionToTarget::queueTaskOnPrivateRunLoop):

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::setParentProcessInformation):
(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedProxyApplicationSetupMessage):

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::close):
(Inspector::RemoteInspectorXPCConnection::closeFromMessage):
(Inspector::RemoteInspectorXPCConnection::deserializeMessage):
(Inspector::RemoteInspectorXPCConnection::handleEvent):

  • inspector/remote/glib/RemoteInspectorGlib.cpp:

(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::setupConnection):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::receivedGetTargetListMessage):
(Inspector::RemoteInspector::receivedDataMessage):
(Inspector::RemoteInspector::receivedCloseMessage):
(Inspector::RemoteInspector::setup):

  • inspector/remote/socket/RemoteInspectorConnectionClient.cpp:

(Inspector::RemoteInspectorConnectionClient::didReceive):

  • inspector/remote/socket/RemoteInspectorSocket.cpp:

(Inspector::RemoteInspector::didClose):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::setup):
(Inspector::RemoteInspector::setupInspectorClient):
(Inspector::RemoteInspector::frontendDidClose):
(Inspector::RemoteInspector::sendMessageToBackend):
(Inspector::RemoteInspector::startAutomationSession):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:

(Inspector::RemoteInspectorSocketEndpoint::listenInet):
(Inspector::RemoteInspectorSocketEndpoint::isListening):
(Inspector::RemoteInspectorSocketEndpoint::workerThread):
(Inspector::RemoteInspectorSocketEndpoint::createClient):
(Inspector::RemoteInspectorSocketEndpoint::disconnect):
(Inspector::RemoteInspectorSocketEndpoint::invalidateClient):
(Inspector::RemoteInspectorSocketEndpoint::invalidateListener):
(Inspector::RemoteInspectorSocketEndpoint::getPort const):
(Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::sendIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::send):
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::addToCommittedByteCount):
(JSC::CLoopStack::committedByteCount):

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

  • jit/ICStats.cpp:

(JSC::ICStats::ICStats):
(JSC::ICStats::~ICStats):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiStub):
(JSC::JITThunks::existingCTIStub):
(JSC::JITThunks::ctiSlowPathFunctionStub):

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::Plan::compileInThread):
(JSC::JITWorklist::Plan::isFinishedCompiling):
(JSC::JITWorklist::JITWorklist):
(JSC::JITWorklist::completeAllForVM):
(JSC::JITWorklist::poll):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::finalizePlans):

  • parser/SourceProvider.cpp:

(JSC::SourceProvider::getID):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):
(JSC::Profiler::Database::addCompilation):
(JSC::Profiler::Database::logEvent):
(JSC::Profiler::Database::addDatabaseToAtExit):
(JSC::Profiler::Database::removeDatabaseFromAtExit):
(JSC::Profiler::Database::removeFirstAtExitDatabase):

  • profiler/ProfilerUID.cpp:

(JSC::Profiler::UID::create):

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::scheduleWorkSoon):
(JSC::DeferredWorkTimer::didResumeScriptExecutionOwner):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::timerLoop):
(JSC::SamplingProfiler::shutdown):
(JSC::SamplingProfiler::start):
(JSC::SamplingProfiler::noticeCurrentThreadAsJSCExecutionThread):
(JSC::SamplingProfiler::noticeJSLockAcquisition):
(JSC::SamplingProfiler::noticeVMEntry):
(JSC::SamplingProfiler::registerForReportAtExit):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::startTimer):
(JSC::Watchdog::willDestroyVM):

  • tools/VMInspector.cpp:

(JSC::VMInspector::isValidExecutableMemory):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::work):

  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::ThreadCountHolder::ThreadCountHolder):
(JSC::Wasm::EntryPlan::ThreadCountHolder::~ThreadCountHolder):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::addCompletionTask):
(JSC::Wasm::Plan::waitForCompletion):
(JSC::Wasm::Plan::tryRemoveContextAndCancelIfLast):

  • wasm/WasmSignature.cpp:

(JSC::Wasm::SignatureInformation::signatureFor):
(JSC::Wasm::SignatureInformation::tryCleanup):

  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::enqueue):
(JSC::Wasm::Worklist::completePlanSynchronously):
(JSC::Wasm::Worklist::stopAllPlansForContext):
(JSC::Wasm::Worklist::Worklist):
(JSC::Wasm::Worklist::~Worklist):

Source/WebCore:

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::runLoop):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performClose):
(WebCore::Database::inProgressTransactionCompleted):
(WebCore::Database::hasPendingTransaction):
(WebCore::Database::runTransaction):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::recordDatabaseOpen):
(WebCore::DatabaseThread::recordDatabaseClosed):
(WebCore::DatabaseThread::hasPendingDatabaseActivity const):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::maximumSize):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNames):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::openDatabases):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::quota):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):

  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::unwrap):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::enqueueStatement):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
(WebCore::SQLTransaction::getNextStatement):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::doCleanup):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateNodeProperty):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::focusedNode):
(WebCore::AXIsolatedTree::rootNode):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • page/scrolling/mac/ScrollingTreeMac.mm:

(ScrollingTreeMac::scrollingNodeForPoint):
(ScrollingTreeMac::eventListenerRegionTypesForPoint const):

  • platform/AbortableTaskQueue.h:
  • platform/audio/cocoa/CARingBuffer.cpp:

(WebCore::CARingBufferStorageVector::flush):
(WebCore::CARingBufferStorageVector::setCurrentFrameBounds):

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

(WebCore::AVFWrapper::addToMap):
(WebCore::AVFWrapper::removeFromMap const):
(WebCore::AVFWrapper::periodicTimeObserverCallback):
(WebCore::AVFWrapper::processNotification):
(WebCore::AVFWrapper::loadPlayableCompletionCallback):
(WebCore::AVFWrapper::loadMetadataCompletionCallback):
(WebCore::AVFWrapper::seekCompletedCallback):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::legibleOutputCallback):
(WebCore::AVFWrapper::processShouldWaitForLoadingOfResource):
(WebCore::AVFWrapper::resourceLoaderShouldWaitForLoadingOfRequestedResource):

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

(-[WebCoreSharedBufferResourceLoaderDelegate setExpectedContentSize:]):
(-[WebCoreSharedBufferResourceLoaderDelegate updateData:complete:]):
(-[WebCoreSharedBufferResourceLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreSharedBufferResourceLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
(WebCore::ImageDecoderAVFObjC::setTrack):
(WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::createFrameImageAtIndex):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::handleSample):
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):

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

(WebCore::MediaPlayerPrivateGStreamer::parseInitDataFromProtectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleProtectionEvent):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(VideoRenderRequestScheduler::start):
(VideoRenderRequestScheduler::stop):
(VideoRenderRequestScheduler::drain):
(VideoRenderRequestScheduler::requestRender):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformInPlace):
(sinkEventHandler):
(webKitMediaCommonEncryptionDecryptIsFlushing):
(setContext):

  • platform/graphics/nicosia/NicosiaBuffer.cpp:

(Nicosia::Buffer::beginPainting):
(Nicosia::Buffer::completePainting):
(Nicosia::Buffer::waitUntilPaintingComplete):

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::PlatformLayer::setSceneIntegration):
(Nicosia::PlatformLayer::createUpdateScope):
(Nicosia::CompositionLayer::updateState):
(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::commitState):
(Nicosia::CompositionLayer::accessPending):
(Nicosia::CompositionLayer::accessCommitted):

  • platform/graphics/nicosia/NicosiaScene.h:

(Nicosia::Scene::accessState):

  • platform/graphics/nicosia/NicosiaSceneIntegration.cpp:

(Nicosia::SceneIntegration::setClient):
(Nicosia::SceneIntegration::invalidate):
(Nicosia::SceneIntegration::requestUpdate):

  • platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp:

(Nicosia::BackingStoreTextureMapperImpl::flushUpdate):
(Nicosia::BackingStoreTextureMapperImpl::takeUpdate):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:

(Nicosia::ContentLayerTextureMapperImpl::~ContentLayerTextureMapperImpl):
(Nicosia::ContentLayerTextureMapperImpl::invalidateClient):
(Nicosia::ContentLayerTextureMapperImpl::flushUpdate):
(Nicosia::ContentLayerTextureMapperImpl::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp:

(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):
(Nicosia::ImageBackingTextureMapperImpl::takeUpdate):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::load):
(WebCore::MediaPlayerPrivateMediaFoundation::naturalSize const):
(WebCore::MediaPlayerPrivateMediaFoundation::addListener):
(WebCore::MediaPlayerPrivateMediaFoundation::removeListener):
(WebCore::MediaPlayerPrivateMediaFoundation::notifyDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::setNaturalSize):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::Invoke):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::onMediaPlayerDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockStart):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockStop):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockPause):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockRestart):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockSetRate):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::ProcessMessage):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetCurrentMediaType):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::InitServicePointers):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::ReleaseServicePointers):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetVideoPosition):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetVideoPosition):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::RepaintVideo):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::getSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::returnSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::areSamplesPending):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::initialize):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::clear):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopScheduler):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::scheduleSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::processSamplesInQueue):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::processSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::schedulerThreadProcPrivate):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setDestinationRect):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createVideoSamples):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::checkDeviceState):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createD3DDevice):

  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::frameIsCompleteAtIndex const):
(WebCore::ScalableImageDecoder::frameHasAlphaAtIndex const):
(WebCore::ScalableImageDecoder::frameBytesAtIndex const):
(WebCore::ScalableImageDecoder::frameDurationAtIndex const):
(WebCore::ScalableImageDecoder::createFrameImageAtIndex):

  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::setTilesOpaque):
(WebCore::LegacyTileCache::doLayoutTiles):
(WebCore::LegacyTileCache::setCurrentScale):
(WebCore::LegacyTileCache::commitScaleChange):
(WebCore::LegacyTileCache::layoutTilesNow):
(WebCore::LegacyTileCache::layoutTilesNowForRect):
(WebCore::LegacyTileCache::removeAllNonVisibleTiles):
(WebCore::LegacyTileCache::removeAllTiles):
(WebCore::LegacyTileCache::removeForegroundTiles):
(WebCore::LegacyTileCache::setContentReplacementImage):
(WebCore::LegacyTileCache::contentReplacementImage const):
(WebCore::LegacyTileCache::tileCreationTimerFired):
(WebCore::LegacyTileCache::setNeedsDisplayInRect):
(WebCore::LegacyTileCache::updateTilingMode):
(WebCore::LegacyTileCache::setTilingMode):
(WebCore::LegacyTileCache::doPendingRepaints):
(WebCore::LegacyTileCache::flushSavedDisplayRects):
(WebCore::LegacyTileCache::prepareToDraw):

  • platform/ios/LegacyTileLayerPool.mm:

(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::takeLayerWithSize):
(WebCore::LegacyTileLayerPool::setCapacity):
(WebCore::LegacyTileLayerPool::prune):
(WebCore::LegacyTileLayerPool::drain):

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow setExposedScrollViewRect:]):
(-[WAKWindow exposedScrollViewRect]):

  • platform/ios/wak/WebCoreThread.mm:

(RunWebThread):
(StartWebThread):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::openNextStream):
(WebCore::formFinalize):
(WebCore::formClose):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setRequestPaused):
(WebCore::CurlRequest::setCallbackPaused):
(WebCore::CurlRequest::pausedStatusChanged):
(WebCore::CurlRequest::enableDownloadToFile):
(WebCore::CurlRequest::getDownloadedFilePath):
(WebCore::CurlRequest::writeDataToDownloadFileIfEnabled):
(WebCore::CurlRequest::closeDownloadFile):
(WebCore::CurlRequest::cleanupDownloadFile):

  • platform/network/curl/CurlSSLHandle.cpp:

(WebCore::CurlSSLHandle::allowAnyHTTPSCertificatesForHost):
(WebCore::CurlSSLHandle::canIgnoreAnyHTTPSCertificatesForHost const):
(WebCore::CurlSSLHandle::setClientCertificateInfo):
(WebCore::CurlSSLHandle::getSSLClientCertificate const):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
(WebCore::SQLiteDatabase::interrupt):
(WebCore::SQLiteDatabase::setAuthorizer):
(WebCore::constructAndPrepareStatement):

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::step):

Source/WebKit:

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::m_closeCallback):
(WebKit::WebIDBServer::getOrigins):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::renameOrigin):
(WebKit::WebIDBServer::openDatabase):
(WebKit::WebIDBServer::deleteDatabase):
(WebKit::WebIDBServer::abortTransaction):
(WebKit::WebIDBServer::commitTransaction):
(WebKit::WebIDBServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBServer::createObjectStore):
(WebKit::WebIDBServer::deleteObjectStore):
(WebKit::WebIDBServer::renameObjectStore):
(WebKit::WebIDBServer::clearObjectStore):
(WebKit::WebIDBServer::createIndex):
(WebKit::WebIDBServer::deleteIndex):
(WebKit::WebIDBServer::renameIndex):
(WebKit::WebIDBServer::putOrAdd):
(WebKit::WebIDBServer::getRecord):
(WebKit::WebIDBServer::getAllRecords):
(WebKit::WebIDBServer::getCount):
(WebKit::WebIDBServer::deleteRecord):
(WebKit::WebIDBServer::openCursor):
(WebKit::WebIDBServer::iterateCursor):
(WebKit::WebIDBServer::establishTransaction):
(WebKit::WebIDBServer::databaseConnectionPendingClose):
(WebKit::WebIDBServer::databaseConnectionClosed):
(WebKit::WebIDBServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBServer::didFireVersionChangeEvent):
(WebKit::WebIDBServer::openDBRequestCancelled):
(WebKit::WebIDBServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::close):

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::writeSizeFile):
(WebKit::CacheStorage::Engine::readSizeFile):
(WebKit::CacheStorage::Engine::clearAllCachesFromDisk):
(WebKit::CacheStorage::Engine::deleteNonEmptyDirectoryOnBackgroundThread):

  • NetworkProcess/glib/DNSCache.cpp:

(WebKit::DNSCache::lookup):
(WebKit::DNSCache::update):
(WebKit::DNSCache::removeExpiredResponsesFired):
(WebKit::DNSCache::clear):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::suspend):
(WebKit::CompositingRunLoop::resume):
(WebKit::CompositingRunLoop::scheduleUpdate):
(WebKit::CompositingRunLoop::stopUpdates):
(WebKit::CompositingRunLoop::updateTimerFired):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::setScaleFactor):
(WebKit::ThreadedCompositor::setScrollPosition):
(WebKit::ThreadedCompositor::setViewportSize):
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::sceneUpdateFinished):
(WebKit::ThreadedCompositor::updateSceneState):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::clearLoadedIconsTimerFired):
(WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded):
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::iconURLForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
(WebKit::IconDatabase::clear):

Source/WebKitLegacy:

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::deleteDatabase):
(InProcessIDBServer::openDatabase):
(InProcessIDBServer::abortTransaction):
(InProcessIDBServer::commitTransaction):
(InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(InProcessIDBServer::createObjectStore):
(InProcessIDBServer::deleteObjectStore):
(InProcessIDBServer::renameObjectStore):
(InProcessIDBServer::clearObjectStore):
(InProcessIDBServer::createIndex):
(InProcessIDBServer::deleteIndex):
(InProcessIDBServer::renameIndex):
(InProcessIDBServer::putOrAdd):
(InProcessIDBServer::getRecord):
(InProcessIDBServer::getAllRecords):
(InProcessIDBServer::getCount):
(InProcessIDBServer::deleteRecord):
(InProcessIDBServer::openCursor):
(InProcessIDBServer::iterateCursor):
(InProcessIDBServer::establishTransaction):
(InProcessIDBServer::databaseConnectionPendingClose):
(InProcessIDBServer::databaseConnectionClosed):
(InProcessIDBServer::abortOpenAndUpgradeNeeded):
(InProcessIDBServer::didFireVersionChangeEvent):
(InProcessIDBServer::openDBRequestCancelled):
(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::closeAndDeleteDatabasesModifiedSince):

  • Storage/StorageAreaSync.cpp:

(WebKit::StorageAreaSync::syncTimerFired):
(WebKit::StorageAreaSync::performSync):

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::finishedImportingOriginIdentifiers):
(WebKit::StorageTracker::syncImportOriginIdentifiers):
(WebKit::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebKit::StorageTracker::setOriginDetails):
(WebKit::StorageTracker::syncSetOriginDetails):
(WebKit::StorageTracker::origins):
(WebKit::StorageTracker::deleteAllOrigins):
(WebKit::StorageTracker::syncDeleteAllOrigins):
(WebKit::StorageTracker::deleteOrigin):
(WebKit::StorageTracker::syncDeleteOrigin):
(WebKit::StorageTracker::canDeleteOrigin):
(WebKit::StorageTracker::cancelDeletingOrigin):
(WebKit::StorageTracker::diskUsageForOrigin):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _synchronizeCustomFixedPositionLayoutRect]):
(-[WebView _setCustomFixedPositionLayoutRectInWebThread:synchronize:]):
(-[WebView _setCustomFixedPositionLayoutRect:]):
(-[WebView _fetchCustomFixedPositionLayoutRect:]):

Source/WebKitLegacy/win:

  • Plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::registerPlugin):
(WebCore::PluginMainThreadScheduler::unregisterPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):

Source/WTF:

  • benchmarks/LockSpeedTest.cpp:
  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThread::~AutomaticThread):
(WTF::AutomaticThread::join):
(WTF::AutomaticThread::start):

  • wtf/AutomaticThread.h:
  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocatorHandle::shrink):
(WTF::MetaAllocator::addFreshFreeSpace):
(WTF::MetaAllocator::debugFreeSpaceSize):

  • wtf/ParallelHelperPool.cpp:

(WTF::ParallelHelperClient::ParallelHelperClient):
(WTF::ParallelHelperClient::~ParallelHelperClient):
(WTF::ParallelHelperClient::setTask):
(WTF::ParallelHelperClient::finish):
(WTF::ParallelHelperClient::doSomeHelping):
(WTF::ParallelHelperClient::runTask):
(WTF::ParallelHelperPool::~ParallelHelperPool):
(WTF::ParallelHelperPool::ensureThreads):
(WTF::ParallelHelperPool::doSomeHelping):

  • wtf/Seconds.cpp:

(WTF::sleep):

  • wtf/TimeWithDynamicClockType.cpp:

(WTF::sleep):

  • wtf/WorkerPool.cpp:

(WTF::WorkerPool::WorkerPool):
(WTF::WorkerPool::~WorkerPool):
(WTF::WorkerPool::postTask):

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::suspend):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):

  • wtf/win/DbgHelperWin.cpp:

(WTF::DbgHelper::SymFromAddress):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::suspend):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):

Tools:

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/AbortableTaskQueue.cpp:

(TestWebKitAPI::DeterministicScheduler::ThreadContext::waitMyTurn):
(TestWebKitAPI::DeterministicScheduler::ThreadContext::yieldToThread):

10:23 PM Changeset in webkit [277912] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening some GTK and WPE failures

Unreviewed test gardening.

9:34 PM Changeset in webkit [277911] by Chris Dumez
  • 20 edits in trunk

Stop using holdLock() in WebKit/WebKitLegacy/Tools as it is not compatible with Clang thread safety analysis
https://bugs.webkit.org/show_bug.cgi?id=226127

Reviewed by Alex Christensen.

Source/WebKit:

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::close):
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::releaseDecoder):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::allowsExitUnderMemoryPressure const):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::enqueueMatchingMessages):
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:

(WebKit::ThreadedDisplayRefreshMonitor::requestRefreshCallback):
(WebKit::ThreadedDisplayRefreshMonitor::requiresDisplayRefreshCallback):
(WebKit::ThreadedDisplayRefreshMonitor::invalidate):
(WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback):

  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:

(WebKit::MediaSampleCursor::copy):
(WebKit::MediaSampleCursor::getSampleMap const):

  • UIProcess/mac/WKPrintingView.mm:

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

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFixedPositionContent.mm:

(-[WebFixedPositionContent scrollOrZoomChanged:]):
(-[WebFixedPositionContent overflowScrollPositionForLayer:changedTo:]):
(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):
(-[WebFixedPositionContent hasFixedOrStickyPositionLayers]):

Source/WebKitLegacy/win:

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:

(WKQCA::CAD3DRenderer::swapChain):
(WKQCA::CAD3DRenderer::renderAndPresent):
(WKQCA::CAD3DRenderer::renderToImage):

  • WebKitQuartzCoreAdditions/CAView.cpp:

(WKQCA::CAView::releaseAllD3DResources):
(WKQCA::CAView::CAView):
(WKQCA::CAView::~CAView):
(WKQCA::CAView::setLayer):
(WKQCA::CAView::update):
(WKQCA::CAView::drawToWindow):
(WKQCA::CAView::drawToImage):
(WKQCA::CAView::drawIntoDC):
(WKQCA::CAView::setShouldInvertColors):
(WKQCA::CAView::scheduleNextDraw):
(WKQCA::CAView::displayLinkReachedCAMediaTime):
(WKQCA::CAView::contextDidChange):
(WKQCA::CAView::updateSoon):
(WKQCA::CAView::updateViewsNow):
(WKQCA::CAView::d3dDevice9):

  • WebLocalizableStrings.cpp:

(findCachedString):
(cacheString):

Tools:

  • DumpRenderTree/JavaScriptThreading.cpp:

(runJavaScriptThread):
(startJavaScriptThreads):
(stopJavaScriptThreads):

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

(check_lock_guard):

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

(WebKitStyleTest.test_lock_guard):

  • TestWebKitAPI/Tests/WTF/Condition.cpp:
  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:

(TestWebKitAPI::testThreadGroup):
(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

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

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AXThread::initializeRunLoop):

9:24 PM Changeset in webkit [277910] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Fix locking issue for AudioDestinationCocoa::m_isPlaying
https://bugs.webkit.org/show_bug.cgi?id=226129

Reviewed by Jer Noble.

Fix locking issue for AudioDestinationCocoa::m_isPlaying. The AudioDestinationCocoa::isPlaying()
getter fails to lock. isPlaying() may get called from the main thread and the audio rendering
thread. Since we cannot grab a lock on the rendering thread, use std::atomic<bool> type for
m_isPlaying.

  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::setIsPlaying):
(WebCore::AudioDestinationCocoa::renderOnRenderingTheadIfPlaying):

  • platform/audio/cocoa/AudioDestinationCocoa.h:
8:13 PM Changeset in webkit [277909] by Chris Dumez
  • 92 edits in trunk/Source/JavaScriptCore

Stop using holdLock() in JSC as it is not compatible with Clang thread safety analysis
https://bugs.webkit.org/show_bug.cgi?id=226116

Reviewed by Mark Lam.

Stop using holdLock() in JSC as it is not compatible with Clang thread safety analysis
(WTF::CheckedLock). Use the Locker constructor instead.

I'll eventually get rid of the holdLock() definition once I have managed to get rid of
all its usages.

  • API/JSVirtualMachine.mm:

(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
(-[JSVirtualMachine addExternalRememberedObject:]):
(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):

  • API/glib/JSCVirtualMachine.cpp:

(addWrapper):
(removeWrapper):

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • assembler/PerfLog.cpp:

(JSC::PerfLog::PerfLog):
(JSC::PerfLog::log):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::visitAggregateImpl):
(JSC::StructureStubInfo::visitWeakReferences):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::considerCaching):
(JSC::StructureStubInfo::clearBufferedStructures):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedCodeBlock::visitChildrenImpl):

  • bytecode/UnlinkedCodeBlockGenerator.cpp:

(JSC::UnlinkedCodeBlockGenerator::finalize):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::~BlockDirectory):
(JSC::BlockDirectory::removeBlock):
(JSC::BlockDirectory::stopAllocatingForGood):
(JSC::BlockDirectory::parallelNotEmptyBlockSource):

  • heap/CodeBlockSet.cpp:

(JSC::CodeBlockSet::add):
(JSC::CodeBlockSet::remove):

  • heap/CodeBlockSetInlines.h:

(JSC::CodeBlockSet::iterate):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::allocatorForSlow):

  • heap/Heap.cpp:

(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::runNotRunningPhase):
(JSC::Heap::runEndPhase):
(JSC::Heap::finishRelinquishingConn):
(JSC::visitSamplingProfiler):
(JSC::Heap::setBonusVisitorTask):
(JSC::Heap::runTaskInParallel):

  • heap/HeapSnapshotBuilder.cpp:

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

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory):
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory):

  • heap/IsoCellSet.cpp:

(JSC::IsoCellSet::parallelNotEmptyMarkedBlockSource):
(JSC::IsoCellSet::addSlow):
(JSC::IsoCellSet::didRemoveBlock):
(JSC::IsoCellSet::sweepToFreeList):

  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::forEachMarkedCellInParallel):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::forVM):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::LocalAllocator):
(JSC::LocalAllocator::~LocalAllocator):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks):
(JSC::MachineThreads::gatherConservativeRoots):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::stopAllocating):
(JSC::MarkedBlock::Handle::resumeAllocating):
(JSC::MarkedBlock::aboutToMarkSlow):
(JSC::MarkedBlock::Handle::didConsumeFreeList):
(JSC::MarkedBlock::noteMarkedSlow):
(JSC::MarkedBlock::Handle::dumpState):

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::isLive):

  • heap/MarkingConstraint.cpp:

(JSC::MarkingConstraint::doParallelWork):

  • heap/MarkingConstraintSolver.cpp:

(JSC::MarkingConstraintSolver::addParallelTask):
(JSC::MarkingConstraintSolver::runExecutionThread):

  • heap/ParallelSourceAdapter.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::updateMutatorIsStopped):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::performIncrementOfDraining):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::drainInParallelPassively):
(JSC::SlotVisitor::waitForTermination):
(JSC::SlotVisitor::donateAll):
(JSC::SlotVisitor::didRace):

  • heap/Subspace.cpp:

(JSC::Subspace::parallelDirectorySource):

  • heap/SubspaceInlines.h:

(JSC::Subspace::forEachMarkedCellInParallel):

  • inspector/JSInjectedScriptHost.cpp:
  • jit/ExecutableAllocator.cpp:
  • jsc.cpp:

(Worker::Worker):
(Worker::~Worker):
(Worker::dequeue):
(Workers::broadcast):
(Workers::report):
(Workers::tryGetReport):
(Workers::getReport):
(JSC_DEFINE_HOST_FUNCTION):

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::doWork):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finishCreation):

  • runtime/EvalExecutable.cpp:

(JSC::EvalExecutable::visitChildrenImpl):

  • runtime/FileBasedFuzzerAgentBase.cpp:

(JSC::FileBasedFuzzerAgentBase::getPrediction):

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::visitChildrenImpl):

  • runtime/JSArray.cpp:

(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::unshiftCountWithArrayStorage):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::detach):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):

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

(JSC::JSFinalizationRegistry::visitChildrenImpl):
(JSC::JSFinalizationRegistry::finalizeUnconditionally):
(JSC::JSFinalizationRegistry::takeDeadHoldingsValue):
(JSC::JSFinalizationRegistry::registerTarget):
(JSC::JSFinalizationRegistry::unregister):

  • runtime/JSGenericTypedArrayViewInlines.h:

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

  • runtime/JSGlobalObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):
(JSC::JSModuleNamespaceObject::visitChildrenImpl):

  • runtime/JSObject.cpp:

(JSC::JSObject::visitButterflyImpl):

  • runtime/JSRunLoopTimer.cpp:

(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::unregisterVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::timeUntilFire):
(JSC::JSRunLoopTimer::timerDidFire):
(JSC::JSRunLoopTimer::setTimeUntilFire):
(JSC::JSRunLoopTimer::cancelTimer):
(JSC::JSRunLoopTimer::addTimerSetNotification):
(JSC::JSRunLoopTimer::removeTimerSetNotification):

  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::findVariableIndex):
(JSC::JSSegmentedVariableObject::addVariables):
(JSC::JSSegmentedVariableObject::visitChildrenImpl):

  • runtime/ModuleProgramExecutable.cpp:

(JSC::ModuleProgramExecutable::visitChildrenImpl):

  • runtime/NarrowingNumberPredictionFuzzerAgent.cpp:

(JSC::NarrowingNumberPredictionFuzzerAgent::getPrediction):

  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::visitChildrenImpl):

  • runtime/RandomizingFuzzerAgent.cpp:

(JSC::RandomizingFuzzerAgent::getPrediction):

  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
(JSC::RegExp::deleteCode):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):
(JSC::SamplingProfiler::stackTracesAsJSON):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::createTemplateObject):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::add):
(JSC::SparseArrayValueMap::remove):
(JSC::SparseArrayValueMap::getConcurrently):
(JSC::SparseArrayValueMap::visitChildrenImpl):

  • runtime/Structure.cpp:

(JSC::Structure::changePrototypeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::nonPropertyTransitionSlow):
(JSC::Structure::setBrandTransition):

  • runtime/StructureCache.cpp:

(JSC::StructureCache::createEmptyStructure):
(JSC::StructureCache::emptyObjectStructureConcurrently):

  • runtime/VM.cpp:

(JSC::waitForVMDestruction):
(JSC::VM::~VM):
(JSC::VM::gatherScratchBufferRoots):
(JSC::VM::scratchBufferForSize):
(JSC::VM::clearScratchBuffers):
(JSC::VM::addLoopHintExecutionCounter):
(JSC::VM::getLoopHintExecutionCounter):
(JSC::VM::removeLoopHintExecutionCounter):

  • runtime/VMTraps.cpp:

(JSC::VMTraps::tryInstallTrapBreakpoints):
(JSC::VMTraps::invalidateCodeBlocksOnStack):
(JSC::VMTraps::willDestroyVM):
(JSC::VMTraps::fireTrap):
(JSC::VMTraps::handleTraps):
(JSC::VMTraps::takeTopPriorityTrap):

  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<BucketType>::visitOutputConstraints):

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::finishCreation):

  • runtime/WeakMapImplInlines.h:

(JSC::WeakMapImpl<WeakMapBucket>::rehash):

  • runtime/WideningNumberPredictionFuzzerAgent.cpp:

(JSC::WideningNumberPredictionFuzzerAgent::getPrediction):

  • tools/CompilerTimingScope.cpp:
  • tools/FunctionOverrides.cpp:

(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::FunctionOverrides::initializeOverrideFor):

  • tools/Integrity.cpp:

(JSC::Integrity::Random::reloadAndCheckShouldAuditSlow):

  • tools/VMInspector.cpp:

(JSC::VMInspector::add):
(JSC::VMInspector::remove):
(JSC::VMInspector::codeBlockForMachinePC):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):

  • wasm/WasmCalleeRegistry.h:

(JSC::Wasm::CalleeRegistry::registerCallee):
(JSC::Wasm::CalleeRegistry::unregisterCallee):

  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::CodeBlock):
(JSC::Wasm::CodeBlock::waitUntilFinished):
(JSC::Wasm::CodeBlock::compileAsync):

  • wasm/WasmContext.cpp:

(JSC::Wasm::Context::scratchBufferForSize):

  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::parseAndValidateModule):
(JSC::Wasm::EntryPlan::prepare):
(JSC::Wasm::EntryPlan::compileFunctions):

  • wasm/WasmEntryPlan.h:

(JSC::Wasm::EntryPlan::tryReserveCapacity):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::setFunctionWrapper):

  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::compileFunction):
(JSC::Wasm::LLIntPlan::completeInStreaming):
(JSC::Wasm::LLIntPlan::didCompileFunctionInStreaming):
(JSC::Wasm::LLIntPlan::didFailInStreaming):

  • wasm/WasmMachineThreads.cpp:

(JSC::Wasm::resetInstructionCacheOnAllThreads):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::growShared):

  • wasm/WasmModule.cpp:

(JSC::Wasm::Module::getOrCreateCodeBlock):

  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::triggerOMGReplacementCompile):
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmSignatureInlines.h:

(JSC::Wasm::SignatureInformation::get):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::WASM_SLOW_PATH_DECL):

  • wasm/WasmStreamingCompiler.cpp:

(JSC::Wasm::StreamingCompiler::didCompileFunction):
(JSC::Wasm::StreamingCompiler::finalize):
(JSC::Wasm::StreamingCompiler::fail):
(JSC::Wasm::StreamingCompiler::cancel):

  • wasm/WasmStreamingPlan.cpp:

(JSC::Wasm::StreamingPlan::work):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::grow):
(JSC::Wasm::Table::visitAggregateImpl):

  • wasm/WasmThunks.cpp:

(JSC::Wasm::Thunks::stub):
(JSC::Wasm::Thunks::existingStub):

  • wasm/WasmWorklist.cpp:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::visitChildrenImpl):

8:04 PM Changeset in webkit [277908] by Chris Dumez
  • 63 edits in trunk/Source/WebCore

Stop using holdLock() in WebCore as it is not compatible with Clang thread safety analysis
https://bugs.webkit.org/show_bug.cgi?id=226119

Reviewed by Sam Weinig.

Stop using holdLock() in WebCore as it is not compatible with Clang thread safety analysis
(WTF::CheckedLock). Use the Locker constructor directly instead.

This is a step towards getting rid of holdLock() entirely.

  • Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:

(WebCore::SpeechRecognitionCaptureSourceImpl::audioSamplesAvailable):

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::memoryCost const):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startPlaying):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::~AudioWorkletNode):
(WebCore::AudioWorkletNode::initializeAudioParameters):
(WebCore::AudioWorkletNode::setProcessor):

  • Modules/webaudio/ConvolverNode.cpp:

(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):
(WebCore::PannerNode::setPosition):
(WebCore::PannerNode::setOrientation):
(WebCore::PannerNode::setDistanceModel):
(WebCore::PannerNode::setRefDistance):
(WebCore::PannerNode::setMaxDistance):
(WebCore::PannerNode::setRolloffFactor):
(WebCore::PannerNode::setConeOuterGain):
(WebCore::PannerNode::setConeOuterAngle):
(WebCore::PannerNode::setConeInnerAngle):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::uninitialize):
(WebCore::ScriptProcessorNode::process):

  • Modules/webaudio/WaveShaperProcessor.cpp:

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

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performOpenAndVerify):

  • Modules/webdatabase/DatabaseManager.cpp:

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

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseTracker::notifyDatabasesChanged):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::visitChildrenImpl):

  • bindings/js/JSPaintWorkletGlobalScopeCustom.cpp:

(WebCore::JSPaintWorkletGlobalScope::visitAdditionalChildren):

  • css/CSSPaintImageValue.cpp:

(WebCore::CSSPaintImageValue::image):

  • css/DOMCSSPaintWorklet.cpp:

(WebCore::PaintWorklet::addModule):

  • dom/EventListenerMap.cpp:

(WebCore::EventListenerMap::clear):
(WebCore::EventListenerMap::replace):
(WebCore::EventListenerMap::add):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::visitJSEventListeners):

  • dom/Node.cpp:

(WebCore::Node::ensureEventTargetData):
(WebCore::Node::clearEventTargetData):

  • html/CanvasBase.cpp:

(WebCore::CanvasBase::memoryCost const):
(WebCore::CanvasBase::externalMemoryCost const):
(WebCore::CanvasBase::setImageBuffer const):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::invalidateNamedElementCache const):

  • html/HTMLCollection.h:

(WebCore::HTMLCollection::memoryCost const):
(WebCore::HTMLCollection::setNamedItemCache const):

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::pushBufferToPlaceholder):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):

  • html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::deleteVertexArrayOES):
(WebCore::OESVertexArrayObject::bindVertexArrayOES):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::bindFramebuffer):
(WebCore::WebGL2RenderingContext::deleteFramebuffer):
(WebCore::WebGL2RenderingContext::vertexAttribIPointer):
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::deleteSampler):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::deleteSync):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::deleteVertexArray):
(WebCore::WebGL2RenderingContext::bindVertexArray):
(WebCore::WebGL2RenderingContext::addMembersToOpaqueRoots):

  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::detachAndRemoveAllObjects):

  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::initializeAttachments):
(WebCore::WebGLFramebuffer::setAttachmentInternal):

  • html/canvas/WebGLObject.cpp:

(WebCore::WebGLObject::runDestructor):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindRenderbuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::deleteBuffer):
(WebCore::WebGLRenderingContextBase::deleteFramebuffer):
(WebCore::WebGLRenderingContextBase::deleteProgram):
(WebCore::WebGLRenderingContextBase::deleteRenderbuffer):
(WebCore::WebGLRenderingContextBase::deleteShader):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::useProgram):
(WebCore::WebGLRenderingContextBase::vertexAttribPointer):
(WebCore::WebGLRenderingContextBase::detachAndRemoveAllObjects):
(WebCore::WebGLRenderingContextBase::addMembersToOpaqueRoots):

  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::~ReverbConvolver):

  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::start):
(WebCore::AudioDestinationCocoa::stop):
(WebCore::AudioDestinationCocoa::setIsPlaying):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::handleSample):
(WebCore::AudioSourceProviderGStreamer::clearAdapters):

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webkitWebAudioSourceSetDispatchToRenderThreadFunction):

  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::requestRefreshCallback):
(WebCore::DisplayRefreshMonitor::displayLinkFired):
(WebCore::DisplayRefreshMonitor::displayDidRefresh):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::cachedFontPlatformData):
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):
(WebCore::FontCache::inactiveFontCount):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::destroyMixIfNeeded):
(WebCore::AudioSourceProviderAVFObjC::createMixIfNeeded):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::hasFirstVideoSampleReachedSink const):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):
(WebCore::MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcConstructed):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcCreate):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(isCDMProxyAvailable):
(attachCDMProxy):

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

(WebCore::MediaSourceTrackGStreamer::isReadyForMoreSamples):
(WebCore::MediaSourceTrackGStreamer::notifyWhenReadyForMoreSamples):
(WebCore::MediaSourceTrackGStreamer::enqueueObject):
(WebCore::MediaSourceTrackGStreamer::clearQueue):

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

(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcLoop):
(webKitMediaSrcStreamFlush):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

  • platform/ios/wak/WebCoreThread.mm:

(HandleDelegateSource):
(WebThreadAdoptAndRelease):
(WebCoreObjCDeallocOnWebThreadImpl):
(WebCoreObjCDeallocWithWebThreadLockImpl):
(HandleWebThreadReleaseSource):

  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mac/PublicSuffixMac.mm:

(WebCore::topPrivatelyControlledDomain):

  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::videoSampleAvailable):
(WebCore::MediaRecorderPrivateMock::audioSamplesAvailable):
(WebCore::MediaRecorderPrivateMock::fetchData):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::appendData):
(WebCore::MediaRecorderPrivateWriter::takeData):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::addAudioSampleObserver):
(WebCore::RealtimeMediaSource::removeAudioSampleObserver):
(WebCore::RealtimeMediaSource::addVideoSampleObserver):
(WebCore::RealtimeMediaSource::removeVideoSampleObserver):
(WebCore::RealtimeMediaSource::videoSampleAvailable):
(WebCore::RealtimeMediaSource::audioSamplesAvailable):

  • platform/mediastream/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::~RealtimeOutgoingAudioSource):
(WebCore::RealtimeOutgoingAudioSource::AddSink):
(WebCore::RealtimeOutgoingAudioSource::RemoveSink):
(WebCore::RealtimeOutgoingAudioSource::sendAudioFrames):

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::~RealtimeOutgoingVideoSource):
(WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink):
(WebCore::RealtimeOutgoingVideoSource::RemoveSink):
(WebCore::RealtimeOutgoingVideoSource::sendFrame):

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::addClient):
(WebCore::BaseAudioSharedUnit::removeClient):
(WebCore::BaseAudioSharedUnit::forEachClient const):
(WebCore::BaseAudioSharedUnit::clearClients):
(WebCore::BaseAudioSharedUnit::audioSamplesAvailable):

  • platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:

(WebCore::WebAudioSourceProviderCocoa::prepare):

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::isCancelled):
(WebCore::CurlRequest::isCompletedOrCancelled):
(WebCore::CurlRequest::didCompleteTransfer):

  • platform/network/curl/CurlRequestScheduler.cpp:

(WebCore::CurlRequestScheduler::callOnWorkerThread):
(WebCore::CurlRequestScheduler::startThreadIfNeeded):
(WebCore::CurlRequestScheduler::stopThreadIfNoMoreJobRunning):
(WebCore::CurlRequestScheduler::stopThread):
(WebCore::CurlRequestScheduler::executeTasks):
(WebCore::CurlRequestScheduler::workerThread):
(WebCore::CurlRequestScheduler::startTransfer):
(WebCore::CurlRequestScheduler::finalizeTransfer):

  • platform/network/curl/CurlStreamScheduler.cpp:

(WebCore::CurlStreamScheduler::callOnWorkerThread):
(WebCore::CurlStreamScheduler::startThreadIfNeeded):
(WebCore::CurlStreamScheduler::stopThreadIfNoMoreJobRunning):
(WebCore::CurlStreamScheduler::executeTasks):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyProperty):

  • workers/WorkerOrWorkletThread.cpp:

(WebCore::WorkerOrWorkletThread::workerOrWorkletThread):
(WebCore::WorkerOrWorkletThread::start):

  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

  • worklets/PaintWorkletGlobalScope.h:
7:49 PM Changeset in webkit [277907] by Brent Fulgham
  • 9 edits in trunk/Source/WebKit

[Cocoa] Expand sandbox with missing sysctl-read handles for core CPU and cache features
https://bugs.webkit.org/show_bug.cgi?id=226126
<rdar://problem/78218756>

Reviewed by Per Arne Vollan.

Update our sandbox profiles to permit read access to a set of CPU and cache features that have been requested by
our sandbox and system framework teams. These have been judged to be safe to expose to our processes, and will
allow frameworks to make optimal use of the system WebKit is running on.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
7:23 PM Changeset in webkit [277906] by weinig@apple.com
  • 14 edits in trunk/Source/WebKit

Make CGColorSpaceRef argument coding match other CF objects and use CGColorSpaceCreateWithPropertyList for fallback
https://bugs.webkit.org/show_bug.cgi?id=226112

Reviewed by Darin Adler.

This is a precursor to some color space type unification. This change:

  • Modernizes CF arugment coders to use ArgumentCoder specialization. It also means we now support encoding CF types both as plain types and RetainPtr<> types, with decoding being kept only supporing RetainPtr<>s, as decoding into non-smart pointer is not very useful.
  • Move CGColorSpaceRef coding to ArgumentCodersCF and use CGColorSpaceCopyPropertyList and CGColorSpaceCreateWithPropertyList as the fallback coding (if there is no name), matching what other libraries on macOS and iOS do.
  • Switch ColorSpaceData to be a struct wrapping an Optional<RetainPtr<CGColorSpaceRef>> and use the new shared coding. This will be replaced entirely in subsequent changes so I didn't want to change this too much now.
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::encodeDataInternal):
(IPC::decodeDataInternal):
(IPC::encodeDateInternal):
(IPC::decodeDateInternal):
(IPC::encodeNumberInternal):
(IPC::decodeNumberInternal):
(IPC::encodeSecureCodingInternal):
(IPC::decodeSecureCodingInternal):
(IPC::encodeStringInternal):
(IPC::decodeStringInternal):
(IPC::encodeURLInternal):
(IPC::decodeURLInternal):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<Ref<Font>>::encodePlatformData):
(IPC::ArgumentCoder<Ref<Font>>::decodePlatformData):

  • Shared/FontInfo.cpp:

(WebKit::FontInfo::encode const):
(WebKit::FontInfo::decode):

  • Shared/Plugins/PluginProcessCreationParameters.cpp:

(WebKit::PluginProcessCreationParameters::encode const):
(WebKit::PluginProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::typeFromCFTypeRef):
(IPC::ArgumentCoder<CFTypeRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFTypeRef>>::decode):
(IPC::ArgumentCoder<CFArrayRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFArrayRef>>::decode):
(IPC::ArgumentCoder<CFBooleanRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFBooleanRef>>::decode):
(IPC::ArgumentCoder<CFDataRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFDataRef>>::decode):
(IPC::ArgumentCoder<CFDateRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFDateRef>>::decode):
(IPC::ArgumentCoder<CFDictionaryRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFDictionaryRef>>::decode):
(IPC::ArgumentCoder<CFNumberRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFNumberRef>>::decode):
(IPC::ArgumentCoder<CFStringRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFStringRef>>::decode):
(IPC::ArgumentCoder<CFURLRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFURLRef>>::decode):
(IPC::ArgumentCoder<CGColorSpaceRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CGColorSpaceRef>>::decode):
(IPC::ArgumentCoder<SecCertificateRef>::encode):
(IPC::ArgumentCoder<RetainPtr<SecCertificateRef>>::decode):
(IPC::ArgumentCoder<SecKeychainItemRef>::encode):
(IPC::ArgumentCoder<RetainPtr<SecKeychainItemRef>>::decode):
(IPC::ArgumentCoder<SecAccessControlRef>::encode):
(IPC::ArgumentCoder<RetainPtr<SecAccessControlRef>>::decode):
(IPC::ArgumentCoder<SecTrustRef>::encode):
(IPC::ArgumentCoder<RetainPtr<SecTrustRef>>::decode):
(IPC::encode): Deleted.
(IPC::decode): Deleted.

  • Shared/cf/ArgumentCodersCF.h:

(IPC::CFRetainPtrArgumentCoder::encode):

  • Shared/mac/ColorSpaceData.mm:

(WebKit::ColorSpaceData::encode const):
(WebKit::ColorSpaceData::decode):
(): Deleted.

  • Shared/mac/SecItemRequestData.cpp:

(WebKit::SecItemRequestData::encode const):
(WebKit::SecItemRequestData::decode):

  • Shared/mac/SecItemResponseData.cpp:

(WebKit::SecItemResponseData::encode const):
(WebKit::SecItemResponseData::decode):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::CertificateInfo>::encode):
(IPC::ArgumentCoder<WebCore::CertificateInfo>::decode):
(IPC::encodeNSError):
(IPC::decodeNSError):
(IPC::ArgumentCoder<WebCore::ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<WebCore::ContentFilterUnblockHandler>::decode):

7:07 PM Changeset in webkit [277905] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

All Netflix playback fails after r277740
https://bugs.webkit.org/show_bug.cgi?id=226120
<rdar://problem/78333782>

Reviewed by Eric Carlson.

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
Add missing !.

6:53 PM Changeset in webkit [277904] by Chris Dumez
  • 23 edits in trunk/Source

Use CheckedCondition in more places
https://bugs.webkit.org/show_bug.cgi?id=226113

Reviewed by Darin Adler.

Use CheckedCondition in more places to benefit from Clang Thread Safety
Analysis.

Source/WebCore:

  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTaskSynchronizer::waitForTaskCompletion):
(WebCore::DatabaseTaskSynchronizer::taskCompleted):

  • Modules/webdatabase/DatabaseTask.h:

(WebCore::DatabaseTaskSynchronizer::WTF_GUARDED_BY_LOCK):

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcRenderAndPushFrames):
(webKitWebAudioSrcRenderIteration):
(webKitWebAudioSrcChangeState):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::setHasEOS):
(WebCore::ImageDecoderGStreamer::notifySample):
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::pushEncodedData):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/graphics/gstreamer/MainThreadNotifier.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::repaint):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::cancelRepaint):
(WebCore::MediaPlayerPrivateGStreamer::pushNextHolePunchBuffer):
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):
(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceAttached):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::WTF_GUARDED_BY_LOCK):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):

  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::~TextureMapperPlatformLayerProxy):
(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxy::invalidate):
(WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired):
(WebCore::TextureMapperPlatformLayerProxy::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture):
(WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread):
(WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:

(WebCore::TextureMapperPlatformLayerProxy::WTF_RETURNS_LOCK):
(WebCore::TextureMapperPlatformLayerProxy::WTF_GUARDED_BY_LOCK):

Source/WTF:

  • wtf/RunLoop.h:
  • wtf/SynchronizedFixedQueue.h:
  • wtf/WTFSemaphore.h:
  • wtf/WorkQueue.cpp:

(WTF::WorkQueue::concurrentApply):

  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::populateTasks):
(WTF::RunLoop::runImpl):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUpWithLock):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::schedule):
(WTF::RunLoop::scheduleAndWakeUpWithLock):
(WTF::RunLoop::TimerBase::~TimerBase):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive const):
(WTF::RunLoop::TimerBase::secondsUntilFire const):

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::TimerBase::timerFired):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive const):
(WTF::RunLoop::TimerBase::secondsUntilFire const):

6:33 PM Changeset in webkit [277903] by Wenson Hsieh
  • 12 edits
    2 adds in trunk/Source

[macOS] Adopt QLItem in WKImageExtractionPreviewController
https://bugs.webkit.org/show_bug.cgi?id=226114
rdar://76657718

Reviewed by Tim Horton.

Source/WebCore/PAL:

Add a PAL softlinking header for QuickLookUI on macOS.

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/mac/QuickLookUISoftLink.h: Added.
  • pal/mac/QuickLookUISoftLink.mm: Added.
  • pal/spi/mac/QuickLookMacSPI.h:

Add staging declarations for some new QuickLook SPI; these method declarations should be moved into the non-
internal-SDK section in the (near) future, once it is safe to do so.

Source/WebKit:

Adopt QLItem in WKImageExtractionPreviewController, and use it in place of WKImageExtractionPreviewItem.
This allows us to vend image previews based solely on image data, rather than a file on disk.

  • UIProcess/mac/WKImageExtractionPreviewController.h:
  • UIProcess/mac/WKImageExtractionPreviewController.mm:

(-[WKImageExtractionPreviewController initWithPage:imageData:title:imageURL:]):
(-[WKImageExtractionPreviewController provideDataForItem:]):
(-[WKImageExtractionPreviewController previewPanel:previewItemAtIndex:]):
(-[WKImageExtractionPreviewItem initWithFileURL:title:imageURL:pageURL:]): Deleted.
(-[WKImageExtractionPreviewItem dealloc]): Deleted.
(-[WKImageExtractionPreviewItem previewItemURL]): Deleted.
(-[WKImageExtractionPreviewItem previewItemTitle]): Deleted.
(-[WKImageExtractionPreviewItem previewOptions]): Deleted.
(-[WKImageExtractionPreviewController initWithPage:fileURL:title:imageURL:]): Deleted.

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController willDestroyView:]):

Adopt the new QuickLookUI softlinking header in PAL.

Source/WebKitLegacy/mac:

Adopt the new QuickLookUI softlinking header in PAL.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController webViewClosed]):

Source/WTF:

Introduce SOFT_LINK_FRAMEWORK_IN_UMBRELLA_FOR_SOURCE_WITH_EXPORT, so that we can soft link frameworks that are
embedded inside other umbrella frameworks in PAL.

  • wtf/cocoa/SoftLinking.h:
5:46 PM Changeset in webkit [277902] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove the unnecessary use of CompileOpStrictEqType.
https://bugs.webkit.org/show_bug.cgi?id=226121

Reviewed by Saam Barati and Robin Morisset.

We're already emitting template code. Might as well make the relevant condition
checks a build time check on the opcode type the template is specializing on
instead of a runtime check on a passed in CompileOpStrictEqType.

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

(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):

5:13 PM Changeset in webkit [277901] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

Fix a bug that incorrect timestamp is reported for Git repositories.
https://bugs.webkit.org/show_bug.cgi?id=225987

Reviewed by Ryosuke Niwa.

'datetime.fromtimestamp' will use the current timezone.
However, '/api/report-commits' will interprete it as a timestamp string from UTC.
In order to keep the consistency, we should always use 'datetime.utcfromtimestamp'.

  • tools/sync-commits.py: Use 'datetime.utcfromtimestamp' instead of 'datetime.fromtimestamp'.

(GitRepository._revision_from_tokens):

5:11 PM Changeset in webkit [277900] by Chris Dumez
  • 23 edits in trunk/Source/WTF

Stop using holdLock() in WTF as it is not compatible with Clang thread safety analysis
https://bugs.webkit.org/show_bug.cgi?id=226117

Reviewed by Darin Adler.

Stop using holdLock() in WTF as it is not compatible with Clang thread safety analysis
(WTF::CheckedLock) and use the Locker constructor instead.

This is a step towards getting rid of holdLock() completely.

  • benchmarks/ConditionSpeedTest.cpp:
  • wtf/ConcurrentPtrHashSet.cpp:

(WTF::ConcurrentPtrHashSet::deleteOldTables):
(WTF::ConcurrentPtrHashSet::clear):
(WTF::ConcurrentPtrHashSet::containsImplSlow const):
(WTF::ConcurrentPtrHashSet::sizeSlow const):
(WTF::ConcurrentPtrHashSet::resizeIfNecessary):

  • wtf/CountingLock.h:
  • wtf/HashTable.cpp:

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

  • wtf/HashTable.h:

(WTF::invalidateIterators):
(WTF::addIterator):
(WTF::removeIterator):

  • wtf/LockedPrintStream.cpp:

(WTF::LockedPrintStream::vprintf):
(WTF::LockedPrintStream::flush):

  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocatorHandle::~MetaAllocatorHandle):

  • wtf/MetaAllocator.h:

(WTF::MetaAllocator::allocate):
(WTF::MetaAllocator::currentStatistics):

  • wtf/ReadWriteLock.h:
  • wtf/StackShotProfiler.h:

(WTF::StackShotProfiler::profile):
(WTF::StackShotProfiler::run):

  • wtf/StackStats.cpp:

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

  • wtf/ThreadGroup.cpp:

(WTF::ThreadGroup::~ThreadGroup):
(WTF::ThreadGroup::add):

  • wtf/ThreadMessage.cpp:

(WTF::sendMessageScoped):

  • wtf/Threading.cpp:

(WTF::Thread::didExit):
(WTF::Thread::addToThreadGroup):
(WTF::Thread::removeFromThreadGroup):
(WTF::Thread::numberOfThreadGroups):

  • wtf/TimingScope.cpp:
  • wtf/WTFConfig.cpp:

(WTF::Config::permanentlyFreeze):

  • wtf/WTFSemaphore.h:
  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::changePriority):
(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::signal):
(WTF::Thread::establishPlatformSpecificHandle):

  • wtf/threads/BinarySemaphore.cpp:

(WTF::BinarySemaphore::signal):
(WTF::BinarySemaphore::waitUntil):

  • wtf/threads/Signals.cpp:

(WTF::SignalHandlers::add):
(WTF::registerThreadForMachExceptionHandling):
(WTF::activateSignalHandlersFor):

  • wtf/win/LanguageWin.cpp:

(WTF::platformLanguage):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::changePriority):
(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::establishPlatformSpecificHandle):

5:07 PM Changeset in webkit [277899] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.0-branch/Source

Versioning.

WebKit-7612.1.15.0.5

4:36 PM Changeset in webkit [277898] by msaboff@apple.com
  • 13 edits in trunk/Source/bmalloc

[bmalloc] Rollout r276266 because WebKit processes are spending much more time in madvise
https://bugs.webkit.org/show_bug.cgi?id=226122

Unreviewed rollout.

Rolling out r276266 to do some automated testing. At the same time, we'll work on changing the madvise() decommitting to be more precise.

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeToHighWatermark):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):

  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h:

(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::scavengeToHighWatermark):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:

(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):

  • bmalloc/LargeMap.cpp:

(bmalloc::LargeMap::add):

  • bmalloc/LargeRange.h:

(bmalloc::LargeRange::LargeRange):
(bmalloc::merge):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::timeSinceLastPartialScavenge):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::partialScavenge):
(bmalloc::Scavenger::threadRunLoop):

  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:
4:09 PM Changeset in webkit [277897] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.0.4

Tag Safari-612.1.15.0.4.

4:04 PM Changeset in webkit [277896] by Diego Pino Garcia
  • 4 edits in trunk

Set CanvasImageSmoothing.imageSmoothingQuality value to 'low' as default
https://bugs.webkit.org/show_bug.cgi?id=225952

Reviewed by Sam Weinig.

Source/WebCore:

Covered by existing tests:

  • inspector/canvas/recording-2d-frameCount.html
  • inspector/canvas/recording-2d-full.html
  • inspector/canvas/recording-2d-memoryLimit.html
  • inspector/canvas/recording-2d-saves.html
  • inspector/canvas/recording-html-2d.html
  • html/canvas/CanvasRenderingContext2DBase.cpp:

LayoutTests:

Defined by spec:
https://html.spec.whatwg.org/multipage/canvas.html#canvasimagesmoothing

  • platform/gtk/TestExpectations:
3:46 PM Changeset in webkit [277895] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.15.1.8

Tag Safari-612.1.15.1.8.

3:33 PM Changeset in webkit [277894] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[Cocoa] Expand IOKit method filters to cover items encountered during testing
https://bugs.webkit.org/show_bug.cgi?id=226106
<rdar://problem/78327511>

Reviewed by Per Arne Vollan.

Allow additional IOKit methods based on testing results and the method values we hit during normal operations.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
3:17 PM Changeset in webkit [277893] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Adopt CheckedLock in ScrollingTree and fix threading bug
https://bugs.webkit.org/show_bug.cgi?id=226109

Reviewed by Darin Adler.

Adopt CheckedLock in ScrollingTree and fix threading bug found by Clang Thread Safety
Analysis. In particular, ThreadedScrollingTree::willStartRenderingUpdate() was failing
to grab the lock before updating m_state. m_state definitely get modified from several
threads so synchronization is important.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::traverseScrollingTree):
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::applyLayerPositions):
(WebCore::ScrollingTree::applyLayerPositionsInternal):
(WebCore::ScrollingTree::scrollBySimulatingWheelEventForTesting):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::WTF_RETURNS_LOCK):
(WebCore::ScrollingTree::WTF_REQUIRES_LOCK):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):
(WebCore::ThreadedScrollingTree::wheelEventWasProcessedByMainThread):
(WebCore::ThreadedScrollingTree::willSendEventToMainThread):
(WebCore::ThreadedScrollingTree::waitForEventToBeProcessedByMainThread):
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::willStartRenderingUpdate):
(WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
(WebCore::ThreadedScrollingTree::didCompleteRenderingUpdate):
(WebCore::ThreadedScrollingTree::scheduleDelayedRenderingUpdateDetectionTimer):
(WebCore::ThreadedScrollingTree::delayedRenderingUpdateDetectionTimerFired):
(WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):

  • page/scrolling/ThreadedScrollingTree.h:

(WebCore::ThreadedScrollingTree::WTF_RETURNS_LOCK):
(WebCore::ThreadedScrollingTree::WTF_GUARDED_BY_LOCK):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::createTimer):

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

Adopt CheckedLock in RemoteImageBufferProxy
https://bugs.webkit.org/show_bug.cgi?id=226098

Reviewed by Tim Horton.

Adopt CheckedLock in RemoteImageBufferProxy to benefit from Clang Thread Safety Analysis.
I had to use WTF_IGNORES_THREAD_SAFETY_ANALYSIS on one of the getter where we weren't
locking. My understanding is that the code is currently safe without the lock in this
case and I added a comment and assertions to clarify that.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::waitForDidFlushOnSecondaryThread):

2:39 PM Changeset in webkit [277891] by Ruben Turcios
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.8

2:29 PM Changeset in webkit [277890] by Chris Dumez
  • 3 edits in trunk/Source/WebKitLegacy

Adopt CheckedLock in StorageAreaSync
https://bugs.webkit.org/show_bug.cgi?id=226099

Reviewed by Sam Weinig.

Adopt CheckedLock in StorageAreaSync to benefit from Clang Thread Safety Analysis.

  • Storage/StorageAreaSync.cpp:

(WebKit::StorageAreaSync::markImported):
(WebKit::StorageAreaSync::blockUntilImportComplete):

  • Storage/StorageAreaSync.h:
2:28 PM Changeset in webkit [277889] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Adopt CheckedLock in AudioMediaStreamTrackRendererUnit
https://bugs.webkit.org/show_bug.cgi?id=226095

Reviewed by Eric Carlson.

Adopt CheckedLock in AudioMediaStreamTrackRendererUnit to benefit from Clang Thread Safety
Analysis. Also rename variables for clarity and fixes a bug where we failed to grab the
lock before checking m_shouldUpdateRenderSources on the render thread (even though the
variable gets updated on the main thread).

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:

(WebCore::AudioMediaStreamTrackRendererUnit::addSource):
(WebCore::AudioMediaStreamTrackRendererUnit::removeSource):
(WebCore::AudioMediaStreamTrackRendererUnit::updateRenderSourcesIfNecessary):
(WebCore::AudioMediaStreamTrackRendererUnit::render):

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:

(WebCore::AudioMediaStreamTrackRendererUnit::WTF_GUARDED_BY_LOCK):
(): Deleted.

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

Adopt CheckedLock in NetworkCache::Storage::TraverseOperation
https://bugs.webkit.org/show_bug.cgi?id=226101

Reviewed by Darin Adler.

Adopt CheckedLock in NetworkCache::Storage::TraverseOperation to benefit from Clang
Thread Safety Analysis.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::TraverseOperation::WTF_GUARDED_BY_LOCK):
(WebKit::NetworkCache::Storage::traverse):

2:15 PM Changeset in webkit [277887] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Adopt CheckedLock / CheckedCondition in CDMProxy
https://bugs.webkit.org/show_bug.cgi?id=226103

Reviewed by Darin Adler.

Adopt CheckedLock / CheckedCondition in CDMProxy to benefit from Clang Thread Safety
Analysis.

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::CDMProxy::updateKeyStore):
(WebCore::CDMProxy::keyHandle const):
(WebCore::CDMProxy::tryWaitForKeyHandle const):
(WebCore::CDMProxy::keyAvailable const):

  • platform/encryptedmedia/CDMProxy.h:
2:12 PM Changeset in webkit [277886] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Video player enters a bad state after trying to enter picture-in-picture on YouTube.com videos
https://bugs.webkit.org/show_bug.cgi?id=226042

Reviewed by Daniel Bates.

The quirk shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFull was
always true. This patch fixes that.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):

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

Adopt CheckedLock in MediaFormatReader and fix threading bug
https://bugs.webkit.org/show_bug.cgi?id=226100

Reviewed by Darin Adler.

Adopt CheckedLock in MediaFormatReader and fix threading bug found by Clang Thread Safety
Analysis. In particular, parseByteSource() was failing to grab the lock before updating
m_parseTracksStatus in one of its branches.

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::parseByteSource):
(WebKit::MediaFormatReader::didParseTracks):
(WebKit::MediaFormatReader::didProvideMediaData):
(WebKit::MediaFormatReader::finishParsing):
(WebKit::MediaFormatReader::copyProperty):
(WebKit::MediaFormatReader::copyTrackArray):

  • Shared/mac/MediaFormatReader/MediaFormatReader.h:
1:58 PM Changeset in webkit [277884] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

Run layout tests in stress mode for 10 iterations on regular EWS layout-test queues
https://bugs.webkit.org/show_bug.cgi?id=226097

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/factories.py:
  • CISupport/ews-build/factories_unittest.py:
  • CISupport/ews-build/steps.py:

(AnalyzePatch.getResultSummary):
(FindModifiedLayoutTests.init):
(FindModifiedLayoutTests.start):
(RunWebKitTestsInStressMode):
(RunWebKitTestsInStressMode.init):
(RunWebKitTestsInStressMode.setLayoutTestCommand):
(RunWebKitTestsInStressMode.doStepIf):

  • CISupport/ews-build/steps_unittest.py:
1:48 PM Changeset in webkit [277883] by Russell Epstein
  • 1 copy in tags/Safari-611.3.5

Tag Safari-611.3.5.

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

Introducing JITThunks::preinitializeCTIThunks().
https://bugs.webkit.org/show_bug.cgi?id=226105

Reviewed by Geoffrey Garen.

We're basically renaming JITThunks::preinitializeExtraCTIThunks() to
JITThunks::preinitializeCTIThunks() and making it not conditional on
#if ENABLE(EXTRA_CTI_THUNKS). Some thunks need to be initialized independent of
#if ENABLE(EXTRA_CTI_THUNKS).

  • jit/JITThunks.cpp:

(JSC::JITThunks::preinitializeCTIThunks):
(JSC::JITThunks::preinitializeExtraCTIThunks): Deleted.

  • jit/JITThunks.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

1:20 PM Changeset in webkit [277881] by Chris Dumez
  • 5 edits in trunk/Source

[Cocoa] Unable to upload files that are stored in the cloud (without a local copy)
https://bugs.webkit.org/show_bug.cgi?id=226090
<rdar://77775887>

Reviewed by Darin Adler.

Source/WebKit:

Allow the network process to load / read dataless files stored in the cloud by allowing
the process to materialize such files. I initially only allowed the AsyncFileStream
thread to materialize the dataless files and this was enough to make the file upload
use cases work. However, I noticed that drag and dropping such file in the Safari URL
bar would fail loading, which I think is bad user experience. As a result, I have
decided to allow the materializing at network process level.

I have verified manually that I can now upload such dataless files via either file
picker or drag and drop (used https://blueimp.github.io/jQuery-File-Upload/). I have
also verified that drag and dropping such a file in the Safari URL bar successfuly
loads that file.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

Source/WTF:

Add FileSystem API to allow/disallow the materializing of dataless files stored
in the cloud, at process or thread level.

  • wtf/FileSystem.h:
  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::toIOPolicyScope):
(WTF::FileSystemImpl::setAllowsMaterializingDatalessFiles):
(WTF::FileSystemImpl::allowsMaterializingDatalessFiles):

1:19 PM Changeset in webkit [277880] by Chris Dumez
  • 52 edits in trunk/Source

Replace more static Locks with CheckedLocks in WTF / WebCore
https://bugs.webkit.org/show_bug.cgi?id=226040

Reviewed by Darin Adler.

Replace more static Locks with CheckedLocks so that we can benefit from Clang Thread Safety Analysis.

Source/WebCore:

  • Modules/indexeddb/server/IDBSerializationContext.cpp:

(WebCore::IDBServer::IDBSerializationContext::getOrCreateForCurrentThread):
(WebCore::IDBServer::IDBSerializationContext::~IDBSerializationContext):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::RTCDataChannel::detach):
(WebCore::RTCDataChannel::removeFromDataChannelLocalMapIfNeeded):
(WebCore::RTCDataChannel::handlerFromIdentifier):

  • Modules/webdatabase/Database.cpp:

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

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::instancesLock):
(WebCore::WebGPUDevice::~WebGPUDevice):

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUPipeline.cpp:

(WebCore::WebGPUPipeline::instancesLock):
(WebCore::WebGPUPipeline::WebGPUPipeline):
(WebCore::WebGPUPipeline::~WebGPUPipeline):

  • Modules/webgpu/WebGPUPipeline.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::~WebSocket):
(WebCore::WebSocket::allActiveWebSocketsLock):

  • Modules/websockets/WebSocket.h:
  • bridge/objc/WebScriptObject.mm:

(WebCore::getJSWrapper):
(WebCore::addJSWrapper):
(WebCore::removeJSWrapper):
(WebCore::removeJSWrapperIfRetainCountOne):

  • crypto/CryptoAlgorithmRegistry.cpp:

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

  • crypto/CryptoAlgorithmRegistry.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::deref const):
(WebCore::MessagePort::isExistingMessagePortLocallyReachable):
(WebCore::MessagePort::notifyMessageAvailable):
(WebCore::MessagePort::MessagePort):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::contextIdentifier const):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::postTaskTo):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::instancesLock):
(WebCore::CanvasRenderingContext::CanvasRenderingContext):
(WebCore::CanvasRenderingContext::~CanvasRenderingContext):

  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::instancesLock):
(WebCore::WebGLProgram::WebGLProgram):
(WebCore::WebGLProgram::~WebGLProgram):

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

(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::canvasElement const):
(WebCore:: const):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::enable):

  • inspector/agents/InspectorNetworkAgent.cpp:

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

  • inspector/agents/InspectorNetworkAgent.h:
  • inspector/agents/page/PageNetworkAgent.cpp:
  • inspector/agents/page/PageNetworkAgent.h:
  • inspector/agents/worker/WorkerNetworkAgent.cpp:
  • inspector/agents/worker/WorkerNetworkAgent.h:
  • page/SecurityPolicy.cpp:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::SecurityPolicy::isAccessAllowed):
(WebCore::SecurityPolicy::addOriginAccessAllowlistEntry):
(WebCore::SecurityPolicy::removeOriginAccessAllowlistEntry):
(WebCore::SecurityPolicy::resetOriginAccessAllowlists):
(WebCore::SecurityPolicy::allowAccessTo):

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::ResourceUsageThread::platformCollectCPUData):

  • page/linux/ResourceUsageThreadLinux.cpp:

(WebCore::ResourceUsageThread::platformCollectCPUData):

  • platform/GenericTaskQueue.cpp:

(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):

  • platform/GenericTaskQueue.h:
  • platform/LegacySchemeRegistry.cpp:

(WebCore::allBuiltinSchemes):
(WebCore::WTF_REQUIRES_LOCK):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsLocal):
(WebCore::LegacySchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsHandledBySchemeHandler):
(WebCore::LegacySchemeRegistry::schemeIsHandledBySchemeHandler):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsNoAccess):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsNoAccess):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsDisplayIsolated):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsSecure):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsSecure):
(WebCore::LegacySchemeRegistry::canDisplayOnlyIfCanRequest):
(WebCore::LegacySchemeRegistry::registerAsCanDisplayOnlyIfCanRequest):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy):
(WebCore::LegacySchemeRegistry::removeURLSchemeRegisteredAsBypassingContentSecurityPolicy):
(WebCore::LegacySchemeRegistry::schemeShouldBypassContentSecurityPolicy):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsCachePartitioned):
(WebCore::LegacySchemeRegistry::shouldPartitionCacheForURLScheme):

  • platform/audio/mac/FFTFrameMac.cpp:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::FFTFrame::fftSetupForSize):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::installedMediaEngines):
(WebCore::MediaPlayer::resetMediaEngines):

  • platform/ios/QuickLook.mm:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::removeQLPreviewConverterForURL):
(WebCore::addQLPreviewConverterWithFileForURL):

  • platform/ios/WebSQLiteDatabaseTrackerClient.mm:

(WTF_REQUIRES_LOCK):
(+[WebDatabaseTransactionBackgroundTaskController startBackgroundTask]):
(+[WebDatabaseTransactionBackgroundTaskController endBackgroundTask]):

  • platform/network/mac/UTIUtilities.mm:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::UTIFromMIMEType):

  • platform/sql/SQLiteDatabase.cpp:

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

  • platform/sql/SQLiteDatabaseTracker.cpp:

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

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::newTextCodec):
(WebCore::atomCanonicalTextEncodingName):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
(WebCore::WorkerGlobalScope::releaseMemoryInWorkers):

  • workers/WorkerOrWorkletThread.cpp:

(WebCore::WorkerOrWorkletThread::workerOrWorkletThreadsLock):
(WebCore::WorkerOrWorkletThread::WorkerOrWorkletThread):
(WebCore::WorkerOrWorkletThread::~WorkerOrWorkletThread):
(WebCore::WorkerOrWorkletThread::releaseFastMallocFreeMemoryInAllThreads):

  • workers/WorkerOrWorkletThread.h:

Source/WTF:

  • wtf/Threading.cpp:

(WTF::Thread::allThreadsLock):
(WTF::Thread::create):
(WTF::Thread::didExit):

  • wtf/Threading.h:
  • wtf/URL.cpp:

(WTF::WTF_REQUIRES_LOCK):
(WTF::registerDefaultPortForProtocolForTesting):
(WTF::clearDefaultPortForProtocolMapForTesting):
(WTF::defaultPortForProtocol):

  • wtf/cf/LanguageCF.cpp:

(WTF::WTF_REQUIRES_LOCK):
(WTF::platformLanguageDidChange):
(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):

1:19 PM Changeset in webkit [277879] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[Cocoa] GPU Process should recognize that pathForProcessContainer() might fail and handle it gracefully
https://bugs.webkit.org/show_bug.cgi?id=226086
<rdar://problem/78288016>

Reviewed by Tim Horton.

The GPU Process implementation of gpuProcessCachesDirectory does not recognize that WebKit often runs without
a container (e.g., as part of a daemon process). In such cases, the GPU process will attempt to create a
cache directory someplace outside of its sandbox and fail, preventing caching from happening.

We need to use the same logic we use in the WebContent process to address this use case.

To avoid making this mistake again, let's consolidate the logic in one method, and use it in the multiple places
that have this same code.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::cacheDirectoryInContainerOrHomeDirectory): Added.
(WebKit::WebProcessPool::cookieStorageDirectory): Use the new 'cacheDirectoryInContainerOrHomeDirectory' method.
(WebKit::WebProcessPool::networkingCachesDirectory): Ditto.
(WebKit::WebProcessPool::webContentCachesDirectory): Ditto.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::gpuProcessCachesDirectory): Ditto.

  • UIProcess/WebProcessPool.h:
1:17 PM Changeset in webkit [277878] by Fujii Hironori
  • 6 edits in trunk/Source/WebCore

ASSERTION FAILED: m_imageBufferResult->colorSpace() == m_resultColorSpace in FilterEffect::copyPremultipliedResult
https://bugs.webkit.org/show_bug.cgi?id=225907

Reviewed by Said Abou-Hallawa.

FilterEffect::copyPremultipliedResult has the assertion ensuring
m_imageBufferResult->colorSpace() matches m_resultColorSpace.
However, it happened to fail in !USE(CG) ports.

FilterEffect::transformResultColorSpace does nothing if USE(CG),
but it calls ImageBuffer::transformColorSpace otherwise.

ImageBuffer::colorSpace() and ImageBufferBackend::colorSpace()
returned the old color space after ImageBuffer::transformColorSpace.
They should return the new color space.

After fixing the above problem, an assertion in
WebCore::convertImagePixels was going to fail. It asserts no color
space conversion happens.

FEColorMatrix, FEDropShadow and
ImageBufferBackend::convertToLuminanceMask were explicitly
specifying DestinationColorSpace::SRGB to getPixelBuffer. They
shouldn't convert the color space.

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::convertToLuminanceMask):

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformColorSpace):

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

1:12 PM Changeset in webkit [277877] by Chris Dumez
  • 7 edits in trunk/Source

Replace more static Locks with CheckedLocks in WebKit / WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=226093

Reviewed by Darin Adler.

Replace more static Locks with CheckedLocks so that we can benefit from Clang Thread Safety Analysis.

Source/WebKit:

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::suspend):
(WebKit::WebResourceLoadStatisticsStore::resume):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • Platform/IPC/Connection.cpp:

(IPC::WTF_REQUIRES_LOCK):
(IPC::addAsyncReplyHandler):
(IPC::clearAsyncReplyHandlers):
(IPC::CompletionHandler<void):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::streamWithIdentifier):
(WebKit::WebSocketStream::networkProcessCrashed):
(WebKit::WebSocketStream::WebSocketStream):
(WebKit::WebSocketStream::~WebSocketStream):

Source/WebKitLegacy/mac:

  • DOM/DOMInternal.mm:

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

12:47 PM Changeset in webkit [277876] by eric.carlson@apple.com
  • 10 edits
    2 adds in trunk

[Cocoa] Update AudioSession buffer size handling
https://bugs.webkit.org/show_bug.cgi?id=225927
rdar://76920375

Reviewed by Jer Noble.

Source/WebCore:

Previously we only set the audio session buffer size when there was an active
MediaSession. This meant that when no audio was being played or captured, the buffer
size would be left at whatever size was appropriate for the last MediaSession
stopped. This was especially bad when the last MediaSession played WebAudio
or captured audio because those require a smaller buffer size than the default,
and was made even worse when using the GPU process because it may live for much
longer than the last web process that played audio. Fix this by using the low power
buffer size when playing audio or when there is no MediaSession at all.

Add AudioBufferSize API test.

  • Modules/webaudio/AudioContext.h:

Make mediaType() return None if the context is suspended or stopped so the media
session manager won't set the buffer size for WebAudio.

  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState): Always use "low power"
buffer size when there is no WebAudio or audio capture.
(WebCore::MediaSessionManagerCocoa::addSession): Cache supported hardware buffer sizes.
(WebCore::MediaSessionManagerCocoa::audioOutputDeviceChanged): Update cached buffer
sizes.

  • testing/Internals.cpp:

(WebCore::Internals::currentAudioBufferSize const): Expose current audio session buffer
size for testing.

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/audio-buffer-size.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm: Added.

(TestWebKitAPI::waitForBufferSizeChange):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(TEST_F):

12:24 PM Changeset in webkit [277875] by Chris Dumez
  • 11 edits in trunk/Source

Use CheckedLock more in cases where we try-lock
https://bugs.webkit.org/show_bug.cgi?id=226056

Reviewed by Alex Christensen.

Use CheckedLock more in cases where we try-lock to benefit from Clang
Thread Safety Analysis.

Source/WebCore:

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::setValueAtTime):
(WebCore::AudioParamTimeline::linearRampToValueAtTime):
(WebCore::AudioParamTimeline::exponentialRampToValueAtTime):
(WebCore::AudioParamTimeline::setTargetAtTime):
(WebCore::AudioParamTimeline::setValueCurveAtTime):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::cancelAndHoldAtTime):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForFrameRange):
(WebCore::AudioParamTimeline::hasValues const):

  • Modules/webaudio/AudioParamTimeline.h:
  • platform/audio/AudioDestination.h:

(WebCore::AudioDestination::WTF_GUARDED_BY_LOCK):
(WebCore::AudioDestination::AudioDestination):
(WebCore::AudioDestination::clearCallback):
(WebCore::AudioDestination::callRenderCallback):

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:

(WebCore::AudioMediaStreamTrackRendererUnit::addSource):
(WebCore::AudioMediaStreamTrackRendererUnit::removeSource):
(WebCore::AudioMediaStreamTrackRendererUnit::render):

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:

Source/WebKit:

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::releaseDecoder):
(WebKit::LibWebRTCCodecs::registerDecodeFrameCallback):
(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::releaseEncoder):
(WebKit::LibWebRTCCodecs::registerEncodeFrameCallback):
(WebKit::LibWebRTCCodecs::completedEncoding):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:

(WebKit::LibWebRTCCodecs::Decoder::WTF_GUARDED_BY_LOCK):
(WebKit::LibWebRTCCodecs::Encoder::WTF_GUARDED_BY_LOCK):

Source/WTF:

  • wtf/Logger.cpp:
  • wtf/Logger.h:

(WTF::Logger::addObserver):
(WTF::Logger::removeObserver):
(WTF::Logger::log):
(WTF::Logger::logVerbose):
(WTF::Logger::WTF_RETURNS_LOCK):

12:04 PM Changeset in webkit [277874] by pvollan@apple.com
  • 5 edits in trunk/Source

Accessibility caption styles does not always reflect the selection
https://bugs.webkit.org/show_bug.cgi?id=226084
<rdar://75426845>

Reviewed by Chris Fleizach.

Source/WebCore:

Export a soft linked constant.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cf/MediaAccessibilitySoftLink.cpp:

Source/WebKit:

This is caused by a race between pushing the caption preference value to the WebContent process and receiving the notification in that process.
This patch addresses this by reposting the notification after having set the preference value in the WebContent process.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::captionProfilePreferenceKey):
(WebKit::dispatchSimulatedNotificationsForPreferenceChange):

11:54 AM Changeset in webkit [277873] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] REGRESSION(Sandbox): Font smoothing within Safari doesn't seem to respect AppleFontSmoothing
https://bugs.webkit.org/show_bug.cgi?id=226066
<rdar://problem/72795817>

Reviewed by Per Arne Vollan.

We accidentally blocked access to the relevant defaults database.

It turns out this is untestable. I can't use the actual functionality without actually setting the preference
for the whole user (and all their apps). And, I can't use sandbox_check() to make sure the file is readable
because it's in the user's home directory, so the path to check will be different for every user.

  • WebProcess/com.apple.WebProcess.sb.in:
11:24 AM Changeset in webkit [277872] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[iOS] Plumb element bounds when presenting QLPreviewController for image extraction
https://bugs.webkit.org/show_bug.cgi?id=226085
rdar://76020349

Reviewed by Tim Horton.

Include the previewed element's bounding rect when presenting QuickLook for image extraction. See the bug for
more details.

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

(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):

11:11 AM Changeset in webkit [277871] by Jonathan Bedard
  • 1 edit
    83 deletes in trunk/LayoutTests

[LayoutTests] Delete unused LayoutTests/svg resources
https://bugs.webkit.org/show_bug.cgi?id=226057
<rdar://problem/78284735>

Reviewed by Alexey Proskuryakov.

  • svg/W3C-SVG-1.1/resources/SVG-1.1-monolithic-fixed.dtd: Removed.
  • svg/W3C-SVG-1.1/resources/SVGImageTest.svg: Removed.
  • svg/W3C-SVG-1.1/resources/animation-extRef-image1.svg: Removed.
  • svg/W3C-SVG-1.1/resources/animation-extRef-image2.svg: Removed.
  • svg/W3C-SVG-1.1/resources/animation-extRef-image3.svg: Removed.
  • svg/W3C-SVG-1.1/resources/bullet-small.png: Removed.
  • svg/W3C-SVG-1.1/resources/bullet-white.png: Removed.
  • svg/W3C-SVG-1.1/resources/bullet.png: Removed.
  • svg/W3C-SVG-1.1/resources/bumpMap.png: Removed.
  • svg/W3C-SVG-1.1/resources/coords-units-01-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/coords-units-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/diagarrow.png: Removed.
  • svg/W3C-SVG-1.1/resources/fillChangeColor.ICM: Removed.
  • svg/W3C-SVG-1.1/resources/filters-composite-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/gam030b.png: Removed.
  • svg/W3C-SVG-1.1/resources/gam045b.png: Removed.
  • svg/W3C-SVG-1.1/resources/gam056b.png: Removed.
  • svg/W3C-SVG-1.1/resources/gam100b.png: Removed.
  • svg/W3C-SVG-1.1/resources/gam200b.png: Removed.
  • svg/W3C-SVG-1.1/resources/greentopbutton.jpg: Removed.
  • svg/W3C-SVG-1.1/resources/image1.png: Removed.
  • svg/W3C-SVG-1.1/resources/image1_b.png: Removed.
  • svg/W3C-SVG-1.1/resources/image2_b.jpg: Removed.
  • svg/W3C-SVG-1.1/resources/image2_b.png: Removed.
  • svg/W3C-SVG-1.1/resources/leftarrow.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-01-f-1st.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-01-f-2nd.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-01-f-3rd.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-01-f-4th.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-01-f-start.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-03-f-1st.png: Removed.
  • svg/W3C-SVG-1.1/resources/linking-uri-03-f-start.png: Removed.
  • svg/W3C-SVG-1.1/resources/makealpha.svg: Removed.
  • svg/W3C-SVG-1.1/resources/myimage.jpg: Removed.
  • svg/W3C-SVG-1.1/resources/nav_bullet.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_down.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_downleft.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_downright.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_frame.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_left.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_noframe.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_right.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_svg.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_up.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_upleft.png: Removed.
  • svg/W3C-SVG-1.1/resources/nav_upright.png: Removed.
  • svg/W3C-SVG-1.1/resources/old-name-2-new-name1.html: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-01-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-02-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-02-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-03-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-04-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/paths-data-04-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/plant.jpg: Removed.
  • svg/W3C-SVG-1.1/resources/rects_b.svg: Removed.
  • svg/W3C-SVG-1.1/resources/rightarrow.png: Removed.
  • svg/W3C-SVG-1.1/resources/shapes-ellipse-01-b.svg: Removed.
  • svg/W3C-SVG-1.1/resources/shapes-ellipse-01-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/shapes-ellipse-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/shapes-rect-01-b.svg: Removed.
  • svg/W3C-SVG-1.1/resources/shapes-rect-01-f.png: Removed.
  • svg/W3C-SVG-1.1/resources/shapes-rect-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/struct-frag-01-B.svg: Removed.
  • svg/W3C-SVG-1.1/resources/struct-image-02.png: Removed.
  • svg/W3C-SVG-1.1/resources/svgRef4.css: Removed.
  • svg/W3C-SVG-1.1/resources/svgRef4.svg: Removed.
  • svg/W3C-SVG-1.1/resources/text-align-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/text-align-03-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/text-tref-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/text-ws-01-f.svg: Removed.
  • svg/W3C-SVG-1.1/resources/toc-sv.svg: Removed.
  • svg/W3C-SVG-1.1/resources/toc-svcmp.svg: Removed.
  • svg/W3C-SVG-1.1/resources/uparrow.png: Removed.
  • svg/as-image/resources/circle-nosize.svg: Removed.
  • svg/custom/resources/object-sizing-height-50p.svg: Removed.
  • svg/custom/resources/object-sizing-width-50p-height-50p.svg: Removed.
  • svg/custom/resources/object-sizing-width-50p-height-75p.svg: Removed.
  • svg/custom/resources/object-sizing-width-50p.svg: Removed.
  • svg/custom/resources/object-sizing-width-75p-height-50p.svg: Removed.
  • svg/dom/SVGScriptElement/resources/script-load2.js: Removed.
  • svg/dom/SVGScriptElement/resources/script-load3.js: Removed.
  • svg/dom/SVGScriptElement/resources/script-load4.js: Removed.
10:48 AM Changeset in webkit [277870] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.1.6

Tag Safari-611.2.7.1.6.

10:44 AM Changeset in webkit [277869] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.1-branch/Source

Versioning.

WebKit-7611.2.7.1.6

10:16 AM Changeset in webkit [277868] by commit-queue@webkit.org
  • 4 edits in trunk

grid track size should reject unitless length
https://bugs.webkit.org/show_bug.cgi?id=189137

Patch by Rob Buis <rbuis@igalia.com> on 2021-05-21
Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/quirks/unitless-length/excluded-properties-001-expected.txt:

Source/WebCore:

Reject unitless length's for grid track sizes in quirks mode.

Behavior matches Chrome and Firefox.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeGridBreadth):

10:07 AM Changeset in webkit [277867] by jer.noble@apple.com
  • 3 edits
    4 adds in trunk

[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis' appended to a SampleBuffer are not played
https://bugs.webkit.org/show_bug.cgi?id=226069
<rdar://78004793>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac-bigsur/media/media-source/media-vorbis-partial.html

When parsing samples from a WebM file, the samples emitted by the parser can be very short in
duration, which is ineffecient both in storage costs in our SampleMap, as well as in decoding
CPU costs, as each sample must be fed into the decoder separately. So the parser will group
together these small samples into a larger "meta sample" with a duration no shorter than 2s.

However, at the end of a file, no more sample data will be appended, up to 2s of audio data
will not be emitted from the parser.

At the end of an append, always flush audio track data to ensure that all parsed samples are
emitted, regardless of their collective duration.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::appendData):

LayoutTests:

  • platform/mac-bigsur/media/media-source/content/test-vorbis-manifest.json: Added.
  • platform/mac-bigsur/media/media-source/content/test-vorbis.webm: Added.
  • platform/mac-bigsur/media/media-source/media-vorbis-partial-expected.txt: Added.
  • platform/mac-bigsur/media/media-source/media-vorbis-partial.html: Added.
10:03 AM Changeset in webkit [277866] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.0-branch/Source/WebKit

Cherry-pick r277791. rdar://problem/78313265

[iOS] Add missing method in sandbox IOKit filter
https://bugs.webkit.org/show_bug.cgi?id=225975
<rdar://78212330>

Reviewed by Brent Fulgham.

Add missing method in IOSurfaceRootUserClient filter on iOS.

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

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

9:41 AM Changeset in webkit [277865] by Kate Cheney
  • 8 edits
    8 adds in trunk

FrameLoader::loadURL, FrameLoader::loadPostRequest not attributing requests as app bound
https://bugs.webkit.org/show_bug.cgi?id=225923
<rdar://problem/78160933>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/in-app-browser-privacy/app-bound-attribution-load-url.html

http/tests/in-app-browser-privacy/app-bound-attribution-ping-load.html
http/tests/in-app-browser-privacy/app-bound-attribution-post-request.html

Update FrameLoader::addExtraFieldsToRequest to add the app-bound
value to a request, like for loadURL, loadPostRequest, or ping loads.
Change the name to reflect this use case, which updates the request
but does not add any extra header fields.

Other cases are already covered in WebLoaderStrategy::loadResource.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
The main navigation uses the old document loader, so we don't want to
set the app-bound value based on that. The request should have the
correct value already from the UIProcess.
(WebCore::FrameLoader::updateRequestAndAddExtraFields):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
We can remove setting the app bound value here now that we set the value in
addExtraFieldsToRequest.
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addExtraFieldsToRequest): Deleted.

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

(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

LayoutTests:

  • http/tests/in-app-browser-privacy/app-bound-attribution-load-url-expected.txt: Added.
  • http/tests/in-app-browser-privacy/app-bound-attribution-load-url.html: Added.
  • http/tests/in-app-browser-privacy/app-bound-attribution-ping-load-expected.txt: Added.
  • http/tests/in-app-browser-privacy/app-bound-attribution-ping-load.html: Added.
  • http/tests/in-app-browser-privacy/app-bound-attribution-post-request-expected.txt: Added.
  • http/tests/in-app-browser-privacy/app-bound-attribution-post-request.html: Added.
  • http/tests/in-app-browser-privacy/resources/post.py: Added.
  • http/tests/navigation/resources/check-ping-app-bound-data.py: Added.
  • platform/ios-wk2/TestExpectations:

These tests rely on internal additions, so I will skip it here and
unskip in the future.

9:39 AM Changeset in webkit [277864] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add some logging for the 'FetchEvent is destroyed' case
https://bugs.webkit.org/show_bug.cgi?id=226071

Reviewed by Kate Cheney.

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::~FetchEvent):

9:26 AM Changeset in webkit [277863] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.0-branch/Source

Versioning.

WebKit-7612.1.15.0.4

8:55 AM Changeset in webkit [277862] by imanol
  • 7 edits in trunk

Fix use after move bug in WebXRSession
https://bugs.webkit.org/show_bug.cgi?id=226074

Reviewed by Sergio Villar Senin.

Source/WebCore:

This patch fixes FrameData usage after move in WebXRSession, a regression from bug 226074.
It also removes an unneeded FrameData copy into WebXRFrame.

Tested by WebXR WPT.

  • Modules/webxr/WebXRFrame.cpp: Use frameData from session instead of holding an extra copy

(WebCore::WebXRFrame::populatePose):
(WebCore::WebXRFrame::getViewerPose):

  • Modules/webxr/WebXRFrame.h: Remove setFrameData and m_data.

(WebCore::WebXRFrame::setTime):

  • Modules/webxr/WebXRSession.cpp: Fix usage after move.

(WebCore::WebXRSession::onFrame):

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::FrameData::copy const): Add missing members in the copy function.

LayoutTests:

Update WebXR test expectations.

  • platform/wpe/TestExpectations:
7:54 AM Changeset in webkit [277861] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Function paintRenderingResultsToCanvas expects a reference, not a
pointer. Fixed the compile error.
https://bugs.webkit.org/show_bug.cgi?id=226073

Patch by Eleni Maria Stea <hikiko> on 2021-05-21
Reviewed by Adrian Perez de Castro.

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

7:50 AM Changeset in webkit [277860] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fixed unreached end of function compiler warning in DataURLDecoder.
https://bugs.webkit.org/show_bug.cgi?id=226079

Patch by Eleni Maria Stea <hikiko> on 2021-05-21
Reviewed by Adrian Perez de Castro.

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::decodeBase64):

7:21 AM Changeset in webkit [277859] by Jonathan Bedard
  • 1 edit
    251 deletes in trunk/LayoutTests

[LayoutTests] Delete unused imported/blink resources
https://bugs.webkit.org/show_bug.cgi?id=226047
<rdar://problem/78280660>

Reviewed by Dewei Zhu.

  • imported/blink/compositing/iframes/resources/subframe-with-fixed-position-element.html: Removed.
  • imported/blink/compositing/layer-creation/resources: Removed.
  • imported/blink/compositing/overflow/resources: Removed.
  • imported/blink/css3/blending/resources: Removed.
  • imported/blink/editing/execCommand/resources: Removed.
  • imported/blink/editing/selection/resources: Removed.
  • imported/blink/fast/canvas/resources: Removed.
  • imported/blink/fast/css/resources/ahem.html: Removed.
  • imported/blink/fast/css/resources/circle-small.svg: Removed.
  • imported/blink/fast/css/resources/font-face-local-file-frame.html: Removed.
  • imported/blink/fast/css/resources/media-query-with-cached-sheet-next.html: Removed.
  • imported/blink/fast/css/resources/resize-corner-tracking-touch-iframe.html: Removed.
  • imported/blink/fast/dom/HTMLDialogElement/resources: Removed.
  • imported/blink/fast/dom/HTMLImageElement/resources: Removed.
  • imported/blink/fast/dom/Range/resources: Removed.
  • imported/blink/fast/dom/Window/resources: Removed.
  • imported/blink/fast/dom/custom/resources: Removed.
  • imported/blink/fast/dom/shadow/resources: Removed.
  • imported/blink/fast/events/resources: Removed.
  • imported/blink/fast/events/touch/gesture/resources: Removed.
  • imported/blink/fast/events/touch/resources: Removed.
  • imported/blink/fast/forms/date-multiple-fields/resources: Removed.
  • imported/blink/fast/forms/datetimelocal-multiple-fields/resources: Removed.
  • imported/blink/fast/forms/month-multiple-fields/resources: Removed.
  • imported/blink/fast/forms/resources/popup-no-crash.html: Removed.
  • imported/blink/fast/forms/time-multiple-fields/resources: Removed.
  • imported/blink/fast/forms/week-multiple-fields/resources: Removed.
  • imported/blink/fast/frames/resources/detach-frame-nested-subframe.html: Removed.
  • imported/blink/fast/frames/resources/frame-set-location-badstring.html: Removed.
  • imported/blink/fast/html/imports/resources/async-child.html: Removed.
  • imported/blink/fast/html/imports/resources/async-root-child-1.html: Removed.
  • imported/blink/fast/html/imports/resources/async-root-child-2.html: Removed.
  • imported/blink/fast/html/imports/resources/async-root.html: Removed.
  • imported/blink/fast/html/imports/resources/child-frame-with-import.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-1.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-2.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-3.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-4.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-5.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-6.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-7.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-8.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-parent-12.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-parent-34.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello-parent-56.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-hello.html: Removed.
  • imported/blink/fast/html/imports/resources/custom-element-style.html: Removed.
  • imported/blink/fast/html/imports/resources/cycle-two-parents-2-b.html: Removed.
  • imported/blink/fast/html/imports/resources/cycle-two-parents-3-a.html: Removed.
  • imported/blink/fast/html/imports/resources/do-document-write.html: Removed.
  • imported/blink/fast/html/imports/resources/events-inline.html: Removed.
  • imported/blink/fast/html/imports/resources/hello-css.html: Removed.
  • imported/blink/fast/html/imports/resources/hello-legacy.html: Removed.
  • imported/blink/fast/html/imports/resources/hello-nodtd.html: Removed.
  • imported/blink/fast/html/imports/resources/import-custom-element-onload-child.html: Removed.
  • imported/blink/fast/html/imports/resources/import-custom-element-onload-grandchild.html: Removed.
  • imported/blink/fast/html/imports/resources/import-events-target.html: Removed.
  • imported/blink/fast/html/imports/resources/import-link-with-media-query.html: Removed.
  • imported/blink/fast/html/imports/resources/meta-encoding.html: Removed.
  • imported/blink/fast/html/imports/resources/nest-dup-2-parent.html: Removed.
  • imported/blink/fast/html/imports/resources/nest-dup-2.html: Removed.
  • imported/blink/fast/html/imports/resources/nest-dup-child.html: Removed.
  • imported/blink/fast/html/imports/resources/nest-dup-grand-parent.html: Removed.
  • imported/blink/fast/html/imports/resources/nest-dup-parent.html: Removed.
  • imported/blink/fast/html/imports/resources/nest-dup.html: Removed.
  • imported/blink/fast/html/imports/resources/no-encoding.html: Removed.
  • imported/blink/fast/html/imports/resources/nr1-i0.html: Removed.
  • imported/blink/fast/html/imports/resources/nr1-i1.html: Removed.
  • imported/blink/fast/html/imports/resources/nr1-i2.html: Removed.
  • imported/blink/fast/html/imports/resources/nr1-i3.html: Removed.
  • imported/blink/fast/html/imports/resources/nr1-i4.html: Removed.
  • imported/blink/fast/html/imports/resources/nr1-i5.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i0.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i1.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i2.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i3.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i4.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i5.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i6.html: Removed.
  • imported/blink/fast/html/imports/resources/nr2-i7.html: Removed.
  • imported/blink/fast/html/imports/resources/nr3-i6.html: Removed.
  • imported/blink/fast/html/imports/resources/nr3-i7.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i0.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i1.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i2.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i3.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i4.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i5.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i6.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i7.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i8.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-i9.html: Removed.
  • imported/blink/fast/html/imports/resources/nr4-ia.html: Removed.
  • imported/blink/fast/html/imports/resources/nr5-i9.html: Removed.
  • imported/blink/fast/html/imports/resources/nr5-ia.html: Removed.
  • imported/blink/fast/html/imports/resources/onload-root.html: Removed.
  • imported/blink/fast/html/imports/resources/script-document-write.html: Removed.
  • imported/blink/fast/html/imports/resources/script-leaf.html: Removed.
  • imported/blink/fast/html/imports/resources/script-prototype-test.html: Removed.
  • imported/blink/fast/html/imports/resources/setting-greet-var.html: Removed.
  • imported/blink/fast/html/imports/resources/shared-crash-child.html: Removed.
  • imported/blink/fast/html/imports/resources/shared-crash-dup.html: Removed.
  • imported/blink/fast/html/imports/resources/shared-crash-grandchild.html: Removed.
  • imported/blink/fast/html/imports/resources/shared-crash-root.html: Removed.
  • imported/blink/fast/html/imports/resources/style-basic-child-dynamic.html: Removed.
  • imported/blink/fast/html/imports/resources/style-basic-child.html: Removed.
  • imported/blink/fast/html/imports/resources/style-basic-grandchild.html: Removed.
  • imported/blink/fast/html/imports/resources/style-blue.html: Removed.
  • imported/blink/fast/html/imports/resources/style-link-block-child.html: Removed.
  • imported/blink/fast/html/imports/resources/style-link-child.html: Removed.
  • imported/blink/fast/html/imports/resources/style-link-grandchild.html: Removed.
  • imported/blink/fast/html/imports/resources/style-red-parent.html: Removed.
  • imported/blink/fast/html/imports/resources/style-red.html: Removed.
  • imported/blink/fast/html/imports/resources/style-target-blue.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-dynamic-following.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-dynamic-leading.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-import-green.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-import-red.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-link.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-shared.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-style.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-subimport-green.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-subimport-red.html: Removed.
  • imported/blink/fast/html/imports/resources/style-tree-order-hide-subimport.html: Removed.
  • imported/blink/fast/html/resources: Removed.
  • imported/blink/fast/images/resources: Removed.
  • imported/blink/fast/loader/resources/javascript-detached-frame-iframe.html: Removed.
  • imported/blink/fast/multicol/resources: Removed.
  • imported/blink/fast/parser/resources: Removed.
  • imported/blink/fast/repaint/resources: Removed.
  • imported/blink/fast/workers/resources: Removed.
  • imported/blink/fast/xsl/resources: Removed.
  • imported/blink/fullscreen/resources: Removed.
  • imported/blink/http/tests/css/resources/cors-ahem.php: Removed.
  • imported/blink/http/tests/css/resources/delayedCircle.php: Removed.
  • imported/blink/http/tests/css/resources/performance-info-with-cached-sheet-next.html: Removed.
  • imported/blink/http/tests/css/resources/referrer-check.php: Removed.
  • imported/blink/http/tests/history/resources/frameset-dest.html: Removed.
  • imported/blink/http/tests/history/resources/push-state-in-grandchild-child.html: Removed.
  • imported/blink/http/tests/history/resources/push-state-in-grandchild-grandchild.html: Removed.
  • imported/blink/http/tests/misc/resources/form-post-success.html: Removed.
  • imported/blink/http/tests/misc/resources/frame-with-form-action-using-replace-child.html: Removed.
  • imported/blink/http/tests/misc/resources/generatedimage.php: Removed.
  • imported/blink/http/tests/misc/resources/iframe-accept-ch.php: Removed.
  • imported/blink/http/tests/misc/resources/image-checks-for-dpr.php: Removed.
  • imported/blink/http/tests/misc/resources/image-checks-for-viewport-width.php: Removed.
  • imported/blink/http/tests/misc/resources/image-checks-for-width.php: Removed.
  • imported/blink/http/tests/misc/resources/image-slow-out-of-viewport.pl: Removed.
  • imported/blink/http/tests/misc/resources/nearly-empty-content-disposition.php: Removed.
  • imported/blink/http/tests/misc/resources/reentrant-beforeunload-helper.html: Removed.
  • imported/blink/http/tests/misc/resources/slow-frame-with-image.php: Removed.
  • imported/blink/http/tests/misc/resources/webtiming-cross-origin-and-back-redirect3.php: Removed.
  • imported/blink/http/tests/plugins/resources: Removed.
  • imported/blink/http/tests/resources/accept-ch.php: Removed.
  • imported/blink/http/tests/resources/dpr.php: Removed.
  • imported/blink/http/tests/resources/iframe-no-accept-ch.php: Removed.
  • imported/blink/http/tests/resources/no-last-modified.php: Removed.
  • imported/blink/http/tests/resources/slow-image-dimensions.php: Removed.
  • imported/blink/http/tests/resources/testharness-helpers.js: Removed.
  • imported/blink/http/tests/resources/testharness.css: Removed.
  • imported/blink/http/tests/resources/tripmine.php: Removed.
  • imported/blink/http/tests/security/contentSecurityPolicy/resources: Removed.
  • imported/blink/http/tests/security/mixedContent/resources: Removed.
  • imported/blink/http/tests/security/mixedContent/websocket/resources: Removed.
  • imported/blink/http/tests/security/resources/conditional-cors.php: Removed.
  • imported/blink/http/tests/security/resources/cors-font.php: Removed.
  • imported/blink/http/tests/security/resources/cors-hello.php: Removed.
  • imported/blink/http/tests/security/resources/cors-redir.php: Removed.
  • imported/blink/http/tests/security/resources/cors-redirect.php: Removed.
  • imported/blink/http/tests/security/resources/cors-style.php: Removed.
  • imported/blink/http/tests/security/resources/cross-origin-iframe-for-shared-worker.html: Removed.
  • imported/blink/http/tests/security/resources/doc-with-iframe.html: Removed.
  • imported/blink/http/tests/security/resources/echo-referrer-header.php: Removed.
  • imported/blink/http/tests/security/resources/green-background-allow-credentials-import.php: Removed.
  • imported/blink/http/tests/security/resources/green-background-allow-credentials.php: Removed.
  • imported/blink/http/tests/security/resources/green-background-allow-star-import.php: Removed.
  • imported/blink/http/tests/security/resources/green-background-allow-star.php: Removed.
  • imported/blink/http/tests/security/resources/green-if-cors-anonymous.php: Removed.
  • imported/blink/http/tests/security/resources/green-if-cors-credentialed.php: Removed.
  • imported/blink/http/tests/security/resources/iframe-crossorigin-script.html: Removed.
  • imported/blink/http/tests/security/resources/iframe-for-naked-global-object.html: Removed.
  • imported/blink/http/tests/security/resources/iframe-for-storage-blocking-changed-shared-worker.html: Removed.
  • imported/blink/http/tests/security/resources/image-wrapper-with-no-image.svg: Removed.
  • imported/blink/http/tests/security/resources/img-basic-auth.php: Removed.
  • imported/blink/http/tests/security/resources/post-origin-to-opener.html: Removed.
  • imported/blink/http/tests/security/resources/postmessage-document-origin.html: Removed.
  • imported/blink/http/tests/security/resources/redir.php: Removed.
  • imported/blink/http/tests/security/resources/referrer-attr-anchor-noreferrer-target.html: Removed.
  • imported/blink/http/tests/security/resources/referrer-attr-anchor-target.html: Removed.
  • imported/blink/http/tests/security/resources/referrer-on-client-redirect.html: Removed.
  • imported/blink/http/tests/security/resources/referrer-policy-conflicting-policies.html: Removed.
  • imported/blink/http/tests/security/resources/referrer-policy-script.php: Removed.
  • imported/blink/http/tests/security/resources/referrer-policy-start-crossorigin.html: Removed.
  • imported/blink/http/tests/security/resources/script-allow-credentials.php: Removed.
  • imported/blink/http/tests/security/resources/script-allow-star.php: Removed.
  • imported/blink/http/tests/security/resources/webaudio: Removed.
  • imported/blink/http/tests/security/resources/xorigincss7.html: Removed.
  • imported/blink/http/tests/svg/resources/delayCachedLoadScript.php: Removed.
  • imported/blink/http/tests/webfont/resources: Removed.
  • imported/blink/http/tests/websocket/resources: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/access-control-basic-post-success-no-content-type.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/access-control-preflight-request-header-sorted.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/access-control-preflight-request-headers-origin.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/access-control-preflight-request-invalid-status.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/access-control-preflight-request-must-not-contain-cookie.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow-origin-null-iframe.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/echo-random.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/echo-request-origin.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/frame-with-insecure-xhr.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/invalid-utf8-json.pl: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/json-response-overflow.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/multiple-send.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/navigation-abort-detaches-frame-subframe.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/noscript-check.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/post-echo.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/redirect-cors-origin-null.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/redirect-loop.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/request-encoding4-doc.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/xmlhttprequest-in-unload-sync.html: Removed.
  • imported/blink/http/tests/xmlhttprequest/resources/xmlhttprequest-no-content-type-with-text.php: Removed.
  • imported/blink/http/tests/xmlhttprequest/workers/resources: Removed.
  • imported/blink/imported/web-platform-tests/screen-orientation/resources: Removed.
  • imported/blink/imported/web-platform-tests/shadow-dom/resources: Removed.
  • imported/blink/imported/web-platform-tests/webstorage/resources: Removed.
  • imported/blink/plugins/resources/empty2.html: Removed.
  • imported/blink/resources: Removed.
  • imported/blink/scrollbars/resources: Removed.
  • imported/blink/svg/animations/resources/animate-fill-freeze-with-repeatDur.svg: Removed.
  • imported/blink/svg/animations/resources/animate-no-matching-end-value.svg: Removed.
  • imported/blink/svg/animations/resources/animateMotion-fill-freeze.svg: Removed.
  • imported/blink/svg/animations/resources/animateMotion-fill-remove.svg: Removed.
  • imported/blink/svg/animations/resources/animateMotion-multiple.svg: Removed.
  • imported/blink/svg/animations/resources/animation-policy.svg: Removed.
  • imported/blink/svg/animations/resources/cyclic-syncbase.svg: Removed.
  • imported/blink/svg/animations/resources/discard-on-discard.svg: Removed.
  • imported/blink/svg/animations/resources/repeatn-remove-add-animation.svg: Removed.
  • imported/blink/svg/animations/resources/viewspec-checkaspectparams.svg: Removed.
  • imported/blink/svg/as-background-image/resources: Removed.
  • imported/blink/svg/as-image/resources/actually-xhtml-with-media.svg: Removed.
  • imported/blink/svg/as-image/resources/animated-rect-color.svg: Removed.
  • imported/blink/svg/as-image/resources/animated-visited-link.svg: Removed.
  • imported/blink/svg/as-image/resources/circle-200px-none.svg: Removed.
  • imported/blink/svg/as-image/resources/css-animation.svg: Removed.
  • imported/blink/svg/as-image/resources/default-font-settings.svg: Removed.
  • imported/blink/svg/as-image/resources/image-with-data-uri.svg: Removed.
  • imported/blink/svg/as-image/resources/image-with-svg-data-uri.svg: Removed.
  • imported/blink/svg/as-image/resources/svg-with-image-with-link.svg: Removed.
  • imported/blink/svg/custom/resources/draw-image-crash.svg: Removed.
  • imported/blink/svg/dom/resources/import-other-svg.svg: Removed.
  • imported/blink/svg/dom/resources/svg-with-animate-use.svg: Removed.
  • imported/blink/svg/dom/resources/svg-with-animate.svg: Removed.
7:17 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
6:52 AM Changeset in webkit [277858] by Adrian Perez de Castro
  • 50 edits in trunk/Source

Non-unified build fixes, late-ish May 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=225990

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • jit/CCallHelpers.cpp: Add missing LinkBuffer.h header.

Source/WebCore:

No new tests needed.

  • Modules/indexeddb/server/MemoryObjectStore.cpp: Add missing pal/SessioID.h header.
  • Modules/webaudio/OfflineAudioContext.cpp: Add missing OfflineAudioCompletionEvent.h header.
  • Modules/webaudio/OfflineAudioContext.h: Add missing wtf/UniqueRef.h header.
  • Modules/websockets/WebSocketDeflateFramer.h: Add missing WebSocketExtensionProcessor.h

header, remove wtf/text/WTFString.h as it is already included by the former.

  • bindings/js/JSDOMConvertEnumeration.h: Add missing JSDOMGlobalObject.h header.
  • contentextensions/DFANode.cpp: Add missing wtf/HashMap.h header.
  • html/HTMLFrameElement.cpp: Add missing HTMLParserIdioms.h header.
  • html/HTMLHRElement.cpp: Ditto.
  • html/HTMLIFrameElement.cpp: Ditto.
  • html/HTMLLIElement.cpp: Ditto.
  • html/HTMLMetaElement.cpp: Add missing HTMLParserIdioms.h, Frame.h, and FrameView.h headers.
  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::parseAttribute): Add missing HTMLNames:: namespace prefix in
usage of HTMLNames::forAttr.
(WebCore::HTMLOutputElement::htmlFor): Ditto.

  • html/OffscreenCanvas.cpp: Add missing RuntimeEnabledFeatures.h header.
  • layout/formattingContexts/FormattingGeometry.cpp: Add missing FormattingQuirks.h header.
  • layout/formattingContexts/FormattingQuirks.cpp: Add missing FormattingGeometry.h header.
  • layout/formattingContexts/block/BlockFormattingGeometry.cpp: Add missing

BlockFormattingContext.h, BlockFormattingQuirks.h, and BlockMarginCollapse.h headers;
remove unneeded BlockFormattingState.h and FormattingContext.h headers.

  • layout/formattingContexts/block/BlockFormattingGeometry.h: Add missing forward

declaration for BlockFormattingContext.

  • layout/formattingContexts/block/BlockFormattingQuirks.cpp: Add missing

BlockFormattingContext.h and BlockMarginCollapse.h headers, remove unneeded
BlockFormattingState.h header.

  • layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp: Add missing

BlockFormattingContext.h and BlockFormattingQuirks.h headers, remove unneeded
BlockFormattingState.h header.

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

Add missing BlockMarginCollapse.h header.

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:

Add missing TableWrapperBlockFormattingContext.h header.

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.h:

Add missing forward declaration for TableWrapperBlockFormattingContext.

  • layout/formattingContexts/flex/FlexFormattingGeometry.cpp: Add missing

FlexFormattingContext.h header, remove unneeded FlexFormattingState.h and
FormattingContext.h headers.

  • layout/formattingContexts/flex/FlexFormattingGeometry.h: Add missing forward declaration

for FlexFormattingContext.

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp: Add missing

InlineFormattingContext.h header, remove unneeded InlineLineBox.h header.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h: Add missing InlineLineBox.h

and InlineLineBuilder.h headers, add missing forward declaration for
InlineFormattingContext.

  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp: Add missing

InlineFormattingContext.h header.

  • layout/formattingContexts/inline/InlineFormattingQuirks.h: Add missing InlineLineBox.h

header, add missing forward declaration for InlineFormattingContext.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp: Add missing

InlineFormattingQuirks.h header.

  • layout/formattingContexts/table/TableFormattingGeometry.cpp: Add missing

TableFormattingContext.h header, remove unneeded TableFormattingState.h header.

  • layout/formattingContexts/table/TableFormattingGeometry.h: Add missing TableGrid.h

header, add missing forward declaration for TableFormattingContext.

  • layout/formattingContexts/table/TableFormattingQuirks.cpp: Add missing

TableFormattingContext.h header.

  • layout/formattingContexts/table/TableFormattingQuirks.h: Add missing forward declaration

for TableFormattingContext.

  • layout/formattingContexts/table/TableLayout.cpp: Add missing TableFormattingGeometry.h

header.

  • page/FrameViewLayoutContext.cpp: Add missing StyleScope.h header.
  • page/ImageOverlayController.h: Add missing LayoutRect.h header.
  • page/PageConfiguration.h: Add missing wtf/HashSet.h header.
  • platform/network/soup/SoupNetworkSession.cpp: Add missing wtf/text/StringHash.h header.
  • style/StyleScopeRuleSets.cpp: Add missing StyleScope.h header.
  • style/Styleable.cpp: Ditto.
  • svg/SVGDocumentExtensions.cpp: Add missing SVGUseElement.h header.
  • svg/SVGDocumentExtensions.h: Add missing wtf/WeakHashSet.h header, add missing

forward declaration for SVGUseElement.

  • workers/WorkerGlobalScope.cpp: Add missing FontCustomPlatformData.h header.

Source/WebKit:

  • NetworkProcess/PreconnectTask.h: Add missing forward declaration for NetworkSession.
  • NetworkProcess/WebStorage/LocalStorageDatabase.h: Add missing wtf/HashMap.h header,

remove unneeded wtf/RefCounted.h header.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode): Add missing WebCore:: namespace prefix to
usage of WebCore::MediaProducer::MutedStateFlags.

6:42 AM Changeset in webkit [277857] by Lauro Moura
  • 4 edits in trunk

[GLIB] fast/canvas/canvas-conic-gradient-angle.html is failing since added in r277547
https://bugs.webkit.org/show_bug.cgi?id=225916

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Covered by existing tests.

In some cases, like negative or large enough "from" angles, the angleStart
variable would fall outside of the 0-360 range, making the center offset
adjust to always fall in the last quadrant instead of the correct one.

This commit normalizes the starting angle to fall between 0-360 when
calculating the quadrant. While it makes the positive "from" angle test
cases to pass, there are still some issues with negative "from", drawing
slightly offset/slanted section borders, likely due to precision issues.

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::normalizeAngle): Added helper.
(WebCore::addConicSector): Check quadrant with a normalized (0-360) angle.

LayoutTests:

  • platform/glib/TestExpectations: Unskip and mark as passing to override root dir.
6:11 AM Changeset in webkit [277856] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][TFC][Quirks] Use box-sizing: border-box when computing cell height
https://bugs.webkit.org/show_bug.cgi?id=226063

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-quirk-td-height-with-padding.html

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutCell):

  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::cellBoxContentHeight const):
(WebCore::Layout::TableFormattingGeometry::cellHeigh const): Deleted.

  • layout/formattingContexts/table/TableFormattingGeometry.h:

LayoutTests:

  • fast/layoutformattingcontext/table-simple-quirk-td-height-with-padding-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-quirk-td-height-with-padding.html: Added.
5:23 AM Changeset in webkit [277855] by Chris Lord
  • 2 edits in trunk/Source/WebCore

[GTK] REGRESSION: Broken scrolling on element.io with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=222265

Reviewed by Carlos Garcia Campos.

Fix transform order for layer clipping in TextureMapperLayer.

No new tests.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren):

4:48 AM Changeset in webkit [277854] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Detect invalid InlinePathData in FillInlinePath
https://bugs.webkit.org/show_bug.cgi?id=225693

Patch by Rob Buis <rbuis@igalia.com> on 2021-05-21
Reviewed by Ryosuke Niwa.

Detect invalid InlinePathData in FillInlinePath.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::InlinePathDataStorage::InlinePathDataStorage):
(WebCore::DisplayList::InlinePathDataStorage::isValid const):
(WebCore::DisplayList::FillInlinePath::FillInlinePath):
(WebCore::DisplayList::FillInlinePath::path const): Deleted.

3:16 AM Changeset in webkit [277853] by Sam Sneddon
  • 65 edits in trunk

Fix Python 3.6+ DeprecationWarnings about unknown escapes
https://bugs.webkit.org/show_bug.cgi?id=226018

Reviewed by Jonathan Bedard.

Fix Python 3.6+ DeprecationWarnings about unknown escapes

PerformanceTests:

  • JetStream2/RAMification.py:
  • JetStream2/RexBench/FlightPlanner/convert-nfdc.py:
  • RexBench/FlightPlanner/convert-nfdc.py:

Source/JavaScriptCore:

  • wasm/generateWasmB3IRGeneratorInlinesHeader.py:

Source/WebCore:

No new tests.

  • Modules/webgpu/WHLSL/WHLSLBuildStandardLibraryFunctionMap.py:

Tools:

  • CISupport/build-webkit-org/loadConfig.py:

(getTagsForBuilder):

  • CISupport/build-webkit-org/steps.py:

(RunGLibAPITests.commandComplete):
(RunWebDriverTests.commandComplete):

  • CISupport/ews-app/ews/common/bugzilla.py:

(BugzillaBeautifulSoup._parse_attachment_ids_request_query):

  • CISupport/ews-app/ews/common/buildbot.py:

(Buildbot._get_display_name_from_builder_name):

  • CISupport/ews-build/loadConfig.py:

(getTagsForBuilder):

  • CISupport/ews-build/steps.py:

(CleanUpGitIndexLock.start):
(FindModifiedLayoutTests):
(BuildLogLineObserver.init):
(PushCommitToWebKitRepo):

  • CISupport/ews-build/steps_unittest.py:
  • Scripts/ic-stats.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:

(Svn):

  • Scripts/webkitpy/common/checkout/changelog.py:

(parse_bug_id_from_changelog):
(ChangeLogEntry):
(update_with_unreviewed_message):
(set_reviewer):

  • Scripts/webkitpy/common/checkout/diff_parser.py:

(git_diff_to_svn_diff):

  • Scripts/webkitpy/common/checkout/diff_test_data.py:
  • Scripts/webkitpy/common/checkout/scm/commitmessage.py:

(_first_non_empty_line_after_index):
(CommitMessage.description):

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.commit_success_regexp):
(Git.timestamp_of_revision):
(Git.git_commit_from_svn_revision):

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.strip_r_from_svn_revision):

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN.commit_success_regexp):
(SVN.revisions_changing_file):

  • Scripts/webkitpy/common/checksvnconfigfile.py:

(check):

  • Scripts/webkitpy/common/config/contributionareas.py:

(ContributionAreas._split_camelcase):

  • Scripts/webkitpy/common/config/urls.py:
  • Scripts/webkitpy/common/find_files_unittest.py:

(TestWinNormalize.assert_filesystem_normalizes):

  • Scripts/webkitpy/common/net/bugzilla/bug.py:

(Bug.commit_revision):

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(BugzillaQueries._parse_attachment_ids_request_query):
(Bugzilla._parse_bug_id_from_attachment_page):
(Bugzilla._parse_attachment_id_from_add_patch_to_bug_response):
(Bugzilla._check_create_bug_response):

  • Scripts/webkitpy/common/net/buildbot/buildbot.py:

(BuildBot._parse_current_build_cell):

  • Scripts/webkitpy/common/net/credentials.py:

(Credentials._parse_security_tool_output):

  • Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:

(ParsedJSONResultsTest):

  • Scripts/webkitpy/common/system/crashlogs.py:

(CrashLogs.get_timestamp_from_log):

  • Scripts/webkitpy/common/system/crashlogs_unittest.py:
  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo.available_sdks):

  • Scripts/webkitpy/common/system/user.py:

(User._wait_on_list_response):

  • Scripts/webkitpy/common/watchlist/watchlistparser.py:

(WatchListParser._rule_definitions_as_set):

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

(TestExpectationParser):
(TestExpectationParser._parse_modifiers):
(TestExpectationParser._tokenize_line):

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

  • Scripts/webkitpy/port/base.py:

(Port._natural_sort_key):

  • Scripts/webkitpy/port/driver.py:

(DriverOutput):
(Driver._check_for_driver_timeout):
(Driver._check_for_driver_crash_or_unresponsiveness):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer._read):

  • Scripts/webkitpy/port/win.py:

(WinPort.write_registry_value):

  • Scripts/webkitpy/pytest.ini:
  • Scripts/webkitpy/style/checker.py:

(CheckerDispatcher._should_skip_file_path):

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

(ChangeLogChecker.check_entry):

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

(CMakeChecker._process_line):
(CMakeChecker._check_no_space_cmds):
(CMakeChecker._check_one_space_cmds):
(CMakeChecker._check_non_lowercase_cmd):
(CMakeChecker._check_list_order):

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

(FileInfo.repository_name):
(check_for_non_standard_constructs):
(check_spacing):
(check_language):

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

(map_functions_to_dict):
(strip_trailing_blank_lines_and_comments):

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

(MessagesInChecker.check_WTF_prefix):

  • Scripts/webkitpy/style/patchreader.py:

(PatchReader.check):

  • Scripts/webkitpy/test/runner.py:
  • Scripts/webkitpy/test/runner_unittest.py:

(FakeLoader.init):

  • Scripts/webkitpy/tool/commands/analyzechangelog.py:

(AnalyzeChangeLog._enumerate_changelogs):

  • Scripts/webkitpy/tool/commands/queries.py:

(PrintBaselines.init):
(FindResolvedBugs.execute):

  • Scripts/webkitpy/tool/commands/upload.py:

(MarkBugFixed._determine_bug_id_and_svn_revision):

  • Scripts/webkitpy/tool/steps/promptforbugortitle.py:

(PromptForBugOrTitle.run):

  • Scripts/webkitpy/w3c/test_converter.py:

(_W3CTestConverter.init):
(_W3CTestConverter.read_webkit_prefixed_css_property_list):
(_W3CTestConverter.legacy_read_webkit_prefixed_css_property_list):

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.support_files):

  • lldb/lldb_dump_class_layout.py:

(LLDBDebuggerInstance._get_first_file_architecture):

Websites/browserbench.org:

  • JetStream2.0/RexBench/FlightPlanner/convert-nfdc.py:
2:53 AM Changeset in webkit [277852] by youenn@apple.com
  • 18 edits
    7 adds in trunk/Source

Implement a remote Internal Unit in GPUProcess for audio MediaStreamTrack rendering
https://bugs.webkit.org/show_bug.cgi?id=225603
Source/WebCore:

<rdar://problem/78114391>

Reviewed by Eric Carlson.

Fixed the case where we were calling start even though a source was already being played.
This is more consistent since we are doing those checks for stop.
Reduce the code where we lock sources to the minimum.

In case we want to lock the sources copy in audio thread and we fail, continue rendering audio instead of dropping everything.
Add some main thread assertions in AudioMediaStreamTrackRendererUnit methods.

Manually tested.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:

(WebCore::AudioMediaStreamTrackRendererUnit::addSource):
(WebCore::AudioMediaStreamTrackRendererUnit::removeSource):
(WebCore::AudioMediaStreamTrackRendererUnit::render):

Source/WebKit:

Reviewed by Eric Carlson.

Implement an InternalUnit by creating a ring buffer that gets written on WebProcess and read on GPUProcess by an audio unit.
In the previous implementation, each audio track was sent to GPUProcess that was doing the mixing.
Sending was done by sending IPC message for each audio sample, which was also processing inefficient.

We are now creating an Audio Unit in GPUProcess and similarly to WebAudio asking WebProcess to render audio in a buffer that will be actually rendered by the audio unit.
The mixing happens in WebProcess so only one buffer is shared between GPUProcess and WebProcess, and no IPC message is sent for each chunk.

The potential downside is that the mixing is done with fixed chunk size instead of chunk size requested by the audio unit.
This might trigger some latency or some overhead if the fixed chunk size is too far from what the audio unit is asking.

In case of GPUProcess crash, we keep the same format description but we delay recreation of the unit if the unit is stopped.

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

(WebKit::GPUConnectionToWebProcess::audioMediaStreamTrackRendererInternalUnitManager):
(WebKit::GPUConnectionToWebProcess::dispatchMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:

(WebKit::RemoteAudioMediaStreamTrackRenderer::start):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp: Added.

(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::RemoteAudioMediaStreamTrackRendererInternalUnitManager):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::~RemoteAudioMediaStreamTrackRendererInternalUnitManager):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::createUnit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::deleteUnit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::startUnit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::stopUnit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::setAudioOutputDevice):
(WebKit::renderCallback):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::Unit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::~Unit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::stop):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::setAudioOutputDevice):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h: Added.
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.messages.in: Added.
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

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

(WebKit::AudioMediaStreamTrackRenderer::start):

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h:
  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitIdentifier.h: Added.
  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp: Added.

(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::add):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::remove):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::createRemoteInternalUnit):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::gpuProcessConnectionClosed):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::Proxy):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::~Proxy):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::createRemoteUnit):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::initialize):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::start):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::storageChanged):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::stop):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::setAudioOutputDevice):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::retrieveFormatDescription):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::stopThread):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::startThread):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::restartIfNeeded):

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.h: Added.
  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.messages.in: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::audioMediaStreamTrackRendererInternalUnitManager):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::setupCaptureProcesses):

2:31 AM Changeset in webkit [277851] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value on MIPS
https://bugs.webkit.org/show_bug.cgi?id=226011

Unreviewed gardening.

Appears to no longer be flaky.

  • stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js:

May 20, 2021:

11:35 PM Changeset in webkit [277850] by sbarati@apple.com
  • 12 edits
    1 add in trunk

[ Catalina Release JSC] A large number of JSC test appear to be flaky failing
https://bugs.webkit.org/show_bug.cgi?id=225998
<rdar://problem/78235001>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dont-link-virtual-calls-on-compiler-thread.js: Added.

Source/JavaScriptCore:

This patch is fixing some fallout from moving JIT::link() to a background
thread:

  1. We can't shrink the CodeBlock's constant pool on a background thread

since we read from it without grabbing a lock on the main thread (when
reading things off the stack in slow path calls).

  1. We can't create GCAwareJITStubRoutines on the compilation thread, since

creating a GCAwareJITStubRoutines adds to a global hash table inside Heap. This
means that we have to do that step of emitting virtual calls for eval when
we're finalizing code on the main thread.

This patch also makes it so that a baseline JIT compilation thread is
correctly marked as such.

  • heap/JITStubRoutineSet.cpp:

(JSC::JITStubRoutineSet::add):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitUnlinkedVirtualCall):
(JSC::AssemblyHelpers::emitVirtualCall):

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

(JSC::JIT::link):
(JSC::JIT::finalizeOnMainThread):

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

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITWorklist.cpp:
9:14 PM Changeset in webkit [277849] by commit-queue@webkit.org
  • 4 edits in trunk

WKRemoteObjectRegistry _invokeMethod needs to check for nil completionHandlers
https://bugs.webkit.org/show_bug.cgi?id=225941

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-20
Reviewed by Ryosuke Niwa.

Source/WebKit:

_invokeMethod's argument-checking loop needs to be run
even if replyInfo is nil, as otherwise we can perform an invocation
if a method signature specifies a completion handler even though
none is provided.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]):

Tools:

Add an IPC test with a nil (really malformed) completion handler
that makes sure the invocation is not performed.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(-[IPCTestingAPIDelegate sayHello:completionHandler:]):
(-[IPCTestingAPIDelegate sayHelloWasCalled]):
(TEST):

8:15 PM Changeset in webkit [277848] by Kyle Piddington
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] Handle NAN constant folding correctly
https://bugs.webkit.org/show_bug.cgi?id=226052

NAN values (0.0f/0.0f) were being handled incorrectly. MSL was being emitted as lowercase 'nanf', instead of NAN
Check for an unlikely NAN case, and emit correct MSL

Reviewed by Dean Jackson.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitSingleConstant):

7:43 PM Changeset in webkit [277847] by Chris Dumez
  • 16 edits in trunk/Source/WTF

Use CheckedLock more in WTF
https://bugs.webkit.org/show_bug.cgi?id=226045

Reviewed by Darin Adler.

Use CheckedLock more in WTF to benefit from Clang Thread Safety Analysis.

  • wtf/CrossThreadQueue.h:

(WTF::CrossThreadQueue<DataType>::append):
(WTF::CrossThreadQueue<DataType>::waitForMessage):
(WTF::CrossThreadQueue<DataType>::tryGetMessage):
(WTF::CrossThreadQueue<DataType>::kill):
(WTF::CrossThreadQueue<DataType>::isKilled const):
(WTF::CrossThreadQueue<DataType>::isEmpty const):

  • wtf/CrossThreadTaskHandler.cpp:

(WTF::CrossThreadTaskHandler::postTaskReply):
(WTF::CrossThreadTaskHandler::handleTaskRepliesOnMainThread):

  • wtf/CrossThreadTaskHandler.h:

(WTF::CrossThreadTaskHandler::WTF_GUARDED_BY_LOCK):

  • wtf/CryptographicallyRandomNumber.cpp:
  • wtf/FastMalloc.cpp:

(WTF::MallocCallTracker::recordMalloc):
(WTF::MallocCallTracker::recordRealloc):
(WTF::MallocCallTracker::recordFree):
(WTF::MallocCallTracker::dumpStats):

  • wtf/MessageQueue.h:

(WTF::MessageQueue<DataType>::append):
(WTF::MessageQueue<DataType>::appendAndKill):
(WTF::MessageQueue<DataType>::appendAndCheckEmpty):
(WTF::MessageQueue<DataType>::prepend):
(WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
(WTF::MessageQueue<DataType>::tryGetMessage):
(WTF::MessageQueue<DataType>::takeAllMessages):
(WTF::MessageQueue<DataType>::tryGetMessageIgnoringKilled):
(WTF::MessageQueue<DataType>::removeIf):
(WTF::MessageQueue<DataType>::isEmpty):
(WTF::MessageQueue<DataType>::kill):
(WTF::MessageQueue<DataType>::killed const):

  • wtf/OSLogPrintStream.cpp:

(WTF::OSLogPrintStream::vprintf):

  • wtf/OSLogPrintStream.h:
  • wtf/ParallelJobsGeneric.h:

(WTF::ParallelEnvironment::ThreadPrivate::WTF_GUARDED_BY_LOCK):

  • wtf/ParallelVectorIterator.h:

(WTF::ParallelVectorIterator::iterate):
(WTF::ParallelVectorIterator::WTF_GUARDED_BY_LOCK):

  • wtf/ReadWriteLock.cpp:

(WTF::ReadWriteLock::readLock):
(WTF::ReadWriteLock::readUnlock):
(WTF::ReadWriteLock::writeLock):
(WTF::ReadWriteLock::writeUnlock):

  • wtf/ReadWriteLock.h:

(WTF::ReadWriteLock::WTF_GUARDED_BY_LOCK):

7:37 PM Changeset in webkit [277846] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[iOS][FCR] <select> options are unnecessarily truncated
https://bugs.webkit.org/show_bug.cgi?id=226048
<rdar://problem/76008154>

Reviewed by Tim Horton.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker createMenu]):

UIMenu's currently limit action titles to two lines. Use SPI to remove
the limit and avoid unnecessary truncation.

7:21 PM Changeset in webkit [277845] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix locking in PlatformCALayer
https://bugs.webkit.org/show_bug.cgi?id=226062

Reviewed by Tim Horton.

Fix locking issue in PlatformCALayer found by Clang Thread Safety Analysis.
We were locking before querying layerToPlatformLayerMap(), but failing to
do so when adding or removing from layerToPlatformLayerMap().

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

(WebCore::WTF_REQUIRES_LOCK):
(WebCore::PlatformCALayer::platformCALayerForLayer):
(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::~PlatformCALayerCocoa):
(WebCore::layerToPlatformLayerMap): Deleted.

6:56 PM Changeset in webkit [277844] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Add missing lock in AXIsolatedTree::treeForID()
https://bugs.webkit.org/show_bug.cgi?id=226060
<rdar://problem/78287227>

Reviewed by Alex Christensen.

Add missing lock in AXIsolatedTree::treeForID(). This was found via Clang Thread Safety
Analysis. This was the only call site that was failing to grab the s_cacheLock before
calling treeIDCache().

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::treeForID):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::treeForPageID):

  • accessibility/isolatedtree/AXIsolatedTree.h:
6:28 PM Changeset in webkit [277843] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Add missing locks in Language.cpp
https://bugs.webkit.org/show_bug.cgi?id=226059

Reviewed by Alex Christensen.

Add missing locks in Language.cpp. This was found via Clang Thread Safety Analysis.
Some of the overrideUserPreferredLanguages() call sites were failing to grab the
lock first.

Also use NeverDestroyed in preferredLanguagesOverride() instead of LazyNeverDestroyed
with std::call_once. All call sites are already grabbing a lock so there is no need
for extra synchronization.

  • wtf/Language.cpp:

(WTF::WTF_REQUIRES_LOCK):
(WTF::userPreferredLanguagesOverride):
(WTF::overrideUserPreferredLanguages):
(WTF::userPreferredLanguages):
(WTF::preferredLanguagesOverride): Deleted.

5:40 PM Changeset in webkit [277842] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.7

Tag Safari-612.1.15.1.7.

5:38 PM Changeset in webkit [277841] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.7

5:24 PM Changeset in webkit [277840] by Chris Lord
  • 6 edits in trunk

[WPE] Spatial navigation tests fail with async overflow scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=225922

Reviewed by Simon Fraser.

Source/WebCore:

Add absoluteClippedOverflowRectForSpatialNavigation for when the
clipped overflow rect not taking into account composited scrolling is
necessary.

No new tests, covered by existing tests.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isOffScreen const):

  • page/SpatialNavigation.cpp:

(WebCore::hasOffscreenRect):

  • rendering/RenderObject.h:

(WebCore::RenderObject::absoluteClippedOverflowRectForSpatialNavigation const):
(WebCore::RenderObject::visibleRectContextForSpatialNavigation):

LayoutTests:

Some spatial navigation tests now pass on WPE.

  • platform/wpe/TestExpectations:
5:15 PM Changeset in webkit [277839] by achristensen@apple.com
  • 5 edits in trunk

Unreviewed, reverting r277606.
rdar://78283324

Source/WebKit:

Need to wait for more projects to migrate to new API.

Reverted changeset:

"[Cocoa] Remove prototype loadSimulatedRequest methods"
https://bugs.webkit.org/show_bug.cgi?id=223658
https://commits.webkit.org/r277606

Tools:

Need to wait for more projects to migrate

Reverted changeset:

"[Cocoa] Remove prototype loadSimulatedRequest methods"
https://bugs.webkit.org/show_bug.cgi?id=223658
https://commits.webkit.org/r277606

5:14 PM Changeset in webkit [277838] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Make polymorphic calls play nice with Data Call ICs
https://bugs.webkit.org/show_bug.cgi?id=225793

Reviewed by Robin Morisset.

This patch makes it so that Polymorphic stubs don't repatch when using
Data Call ICs. We add a branch to the Data IC fast path to see if we're
polymorphic. If we are, then we either call or tail call the polymorphic
stub, depending on the CallLinkInfo's call type. This patch also changes
the polymorphic stub to handle being called instead of jumped to, since that
will now happen for Data ICs of non tail calls.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::setMonomorphicCallee):
(JSC::CallLinkInfo::callee):
(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::CallLinkInfo::revertCallToStub):
(JSC::CallLinkInfo::setStub):
(JSC::CallLinkInfo::emitFirstInstructionForDataIC): Deleted.

  • bytecode/CallLinkInfo.h:
  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

4:39 PM Changeset in webkit [277837] by Kate Cheney
  • 27 edits in trunk

Mark ServiceWorkerThreadProxy with a default app-bound value
https://bugs.webkit.org/show_bug.cgi?id=223201
<rdar://problem/77664416>

Reviewed by Youenn Fablet.

Source/WebCore:

Service worker loads have their own document loader, so they don't
always get properly marked as app-bound based on the main frame
navigation. Prior fixes handled some fetch events, synthetic
responses, and soft updates. But we need to set a default value when
we install the service worker.

We had to pick a best-effort heuristic to do this. If any client for
the worker is app-bound, then all loads with that worker will be
marked app-bound.

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::lastNavigationWasAppBound):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/WorkerRunLoop.h:

To test this, I added a new API to ServiceWorkerInternals to get the
worker's app bound value.

  • workers/service/ServiceWorkerClientData.cpp:

(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::from):

  • workers/service/ServiceWorkerClientData.h:

(WebCore::ServiceWorkerClientData::encode const):
(WebCore::ServiceWorkerClientData::decode):
Store the main navigation app-bound value when we register a client.

  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::lastNavigationWasAppBound):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::updateWorker):
(WebCore::SWServer::clientIsAppBoundForRegistrableDomain):
Best-effort heuristic to mark a load as app bound if any client for
that origin was registered as app-bound.

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::controlClient):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::updateAppBoundValue):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • Scripts/webkit/messages.py:

(headers_for_type):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updateAppBoundValue):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Tools:

Test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[SWAppBoundRequestMessageHandler userContentController:didReceiveScriptMessage:]):

4:31 PM Changeset in webkit [277836] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[macOS] imported/w3c/web-platform-tests/IndexedDB/blob-valid-before-commit.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226050

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:06 PM Changeset in webkit [277835] by eric.carlson@apple.com
  • 7 edits in trunk/Source/WebKit

Allow GPU process log channels to be configured
https://bugs.webkit.org/show_bug.cgi?id=226036
<rdar://problem/78271211>

Reviewed by Jer Noble.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::configureLoggingChannel): Configure WebCore and
WebKit logging channels because classes used in the GPU process use both.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::configureLoggingChannel): Send configureLoggingChannel
message to the GPU process.

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::configureLoggingChannel): Send configureLoggingChannel to the
GPU process connection, if there is one.

4:03 PM Changeset in webkit [277834] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Cocoa] Adopt "com.apple.QuartzCore.webkit-limited-types" entitlement
https://bugs.webkit.org/show_bug.cgi?id=226044
<rdar://problem/60549120>

Reviewed by Per Arne Vollan.

WebKit should adopt the "com.apple.QuartzCore.webkit-limited-types" entitlement as a further hardening measure to help
QuartzCore limit the features accessible from the WebContent and GPU Process. WebKit only needs a subset of the
features of QuartzCore, and this entitlement allows the framework to block certain code paths.

Tested by existing rendering test cases.

  • Scripts/process-entitlements.sh:
4:01 PM Changeset in webkit [277833] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Fix inverted ASSERT in sampleColor.

Rubber-stamped by Tim Horton.

  • page/PageColorSampler.cpp:

(WebCore::sampleColor):

3:33 PM Changeset in webkit [277832] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.6

Tag Safari-612.1.15.1.6.

3:30 PM Changeset in webkit [277831] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.15.0.3

Tag Safari-612.1.15.0.3.

3:25 PM Changeset in webkit [277830] by Alexey Shvayka
  • 121 edits
    9 adds
    3 deletes in trunk

[WebIDL] Remove [ImplicitThis] and [CustomProxyToJSObject] extended attributes
https://bugs.webkit.org/show_bug.cgi?id=223758

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.js: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.worker-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.worker.html: Added.
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-registerprocessor-called-on-globalthis.https-expected.txt: Added.
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-registerprocessor-called-on-globalthis.https.html: Added.
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/dummy-processor-globalthis.js: Added.

Source/WebCore:

This change introduces castThisValue<JSClass>, taking a step towards unification of |this|
value casting between IDLAttribute and IDLOperation. The helper uses compile-time inheritance
check to provide implicit |this| value for DOM global objects [1], replacing [ImplicitThis]
extended attribute, which was removed from the spec [2] a while ago.

IDLAttribute can't perform toThis() with ECMAMode::strict(), like IDLOperation now does,
because CustomValue getters are called with |this| value of JSGlobalObject type, which gets
tainted by JSScope::toThis(). #225397 will remove the need for toThis(), finally making |this|
value casting consistent between attributes and operations.

Also, this patch fixes Object.create(window).location to throw as per spec [1] by removing
prototype chain traversal from toJSDOMWindow(), which aligns WebKit with Blink and Gecko.

As DOM global objects are wrapped in proxies and require special casting, toJSDOMWindow() and
friends are merged into toJSDOMGlobalObject<JSClass>, which is aware of inheritance / JSProxy.
It replaces [CustomProxyToJSObject] extended attribute, which could be missed when adding new
DOM global objects, fixing worklets' global functions not to throw when called on globalThis.

This change reduces WebCore --release binary size by 0.2% (147 KB).

[1] https://heycam.github.io/webidl/#dfn-attribute-getter (step 1.1.2.3)
[2] https://github.com/heycam/webidl/pull/155

Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.js

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-registerprocessor-called-on-globalthis.https.html
fast/css-custom-paint/registerPaintBindings.html
http/tests/security/listener/*.html

  • Headers.cmake:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::set):
(WebCore::IDLAttribute::setPassingPropertyName):
(WebCore::IDLAttribute::get):
(WebCore::IDLAttribute::getPassingPropertyName):

  • bindings/js/JSDOMCastThisValue.h: Added.

(WebCore::castThisValue):

  • bindings/js/JSDOMCastedThisErrorBehavior.h: Removed.
  • bindings/js/JSDOMGlobalObject.h:

(WebCore::toJSDOMGlobalObject):

  • bindings/js/JSDOMOperation.h:

(WebCore::IDLOperation::cast):

  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowBase.h:

(WebCore::toJSDOMWindow):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::IDLOperation<JSDOMWindow>::cast): Deleted.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::cachedDocumentWrapper):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::jsEventTargetCast):

  • bindings/js/JSEventTargetCustom.h:

(WebCore::IDLOperation<JSEventTarget>::call):

  • bindings/js/JSRemoteDOMWindowBase.cpp:

(WebCore::toJSRemoteDOMWindow): Deleted.

  • bindings/js/JSRemoteDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::toJSDedicatedWorkerGlobalScope): Deleted.
(WebCore::toJSWorkerGlobalScope): Deleted.
(WebCore::toJSServiceWorkerGlobalScope): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:

(WebCore::toJSWorkletGlobalScope): Deleted.

  • bindings/js/JSWorkletGlobalScopeBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldGenerateToJSDeclaration):
(IsAcceleratedDOMAttribute):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/*: Updated.
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::canAccessInspectedScriptState const):

  • page/DOMWindow.idl:
  • page/RemoteDOMWindow.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/WorkerGlobalScope.idl:
  • workers/service/ServiceWorkerGlobalScope.idl:
  • worklets/PaintWorkletGlobalScope.idl:
  • worklets/WorkletGlobalScope.idl:

Source/WebKit:

Use inherits<T> instead of toJSDOMWindow() if the value is never a JSProxy.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::reportException):

Source/WebKitLegacy/mac:

Use inherits<T> instead of toJSDOMWindow() if the value is never a JSProxy.

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):

Source/WebKitLegacy/win:

Use inherits<T> instead of toJSDOMWindow() if the value is never a JSProxy.

  • WebView.cpp:

(WebView::reportException):

LayoutTests:

  • fast/css-custom-paint/registerPaintBindings.html:
  • http/tests/security/listener/*:

This is a progression: Blink and Gecko don't call event listeners belonging to destroyed frames.

  • js/property-of-window-as-prototype-expected.txt: Removed.
  • js/property-of-window-as-prototype.html: Removed.
3:14 PM Changeset in webkit [277829] by Alexey Shvayka
  • 10 edits
    2 adds in trunk

Align internal methods of WindowProperties object with the spec
https://bugs.webkit.org/show_bug.cgi?id=222918

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window.js:
  • web-platform-tests/WebIDL/ecmascript-binding/window-named-properties-object-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/window-named-properties-object.html: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  • web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html:

Source/WebCore:

This patch:

  1. Implements PreventExtensions, DefineOwnProperty, and Delete methods that always fail [1], ensuring Set with altered receiver is passed through, indexed properties are rejected as well, and an exception is thrown if neccessary.

Adding a put() override would a) slow down global var creation and b) require factoring out most of
JSObject::putInlineSlow(). Instead, we prevent extensions on a structure while defining isExtensible()
override to cover that up.

  1. Corrects property attributes reported by GetOwnProperty methods of cross-origin WindowProxy [2] and WindowProperties, bringing these objects in compliance with invariants of internal methods [3].
  1. Removes comments on cross-browser differences and priority order from GetOwnProperty because it correctly implements the now detailed spec [4]. Browsing contexts precedence is covered by wpt/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html test.
  1. Asserts that WindowProperties Prototype is an object, as guaranteed by its SetPrototypeOf.

This change fully implements the current spec, aligning WebKit with Blink and Gecko.

[1] https://heycam.github.io/webidl/#named-properties-object-defineownproperty
[2] https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-getownproperty (step 6.2)
[3] https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods
[4] https://html.spec.whatwg.org/multipage/window-object.html#dom-window-nameditem (step 2)

Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/window-named-properties-object.html

imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

  • bindings/js/JSDOMWindowProperties.cpp:

(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::finishCreation):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::deleteProperty):
(WebCore::JSDOMWindowProperties::deletePropertyByIndex):
(WebCore::JSDOMWindowProperties::preventExtensions):
(WebCore::JSDOMWindowProperties::isExtensible):
(WebCore::JSDOMWindowProperties::defineOwnProperty):

  • bindings/js/JSDOMWindowProperties.h:
3:10 PM Changeset in webkit [277828] by Adrian Perez de Castro
  • 4 edits
    1 delete in trunk

[Flatpak SDK] Remove PHP packages
https://bugs.webkit.org/show_bug.cgi?id=226037

Reviewed by Philippe Normand.

Remove the PHP package from the SDK now that the layout tests do not use PHP.

Tools/buildstream:

  • elements/test-infra.bst: Remove php.bst from the element list.
  • elements/test-infra/php.bst: Removed.

LayoutTests:

  • http/conf/flatpak-httpd.conf: Remove usage of mod_php7.
2:53 PM Changeset in webkit [277827] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

REGRESSION(r277505): Crash under WTF::Detail::CallableWrapper<WebKit::WebPageProxy::setUnderPageBackgroundColorOverride(WebCore::Color&&)::$_10, void>::call
https://bugs.webkit.org/show_bug.cgi?id=225979
<rdar://problem/78130098>

Reviewed by Tim Horton.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setUnderPageBackgroundColorOverride):
Semi-speculative fix by checking the weakly-held PageClient before attempting to use it.
Dissasembly suggests this as the cause as the invalid access occurs early in the lambda.

2:46 PM Changeset in webkit [277826] by zhifei_fang@apple.com
  • 2 edits in trunk/Websites/perf.webkit.org

Need to use default git pull to remove the fake svn commit when syncing with SVN
https://bugs.webkit.org/show_bug.cgi?id=226039

Reviewed by Jonathan Bedard.

  • tools/sync-commits.py:

(GitRepository._fetch_remote):

2:28 PM Changeset in webkit [277825] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Use Python 3 for running various scripts on EWS
https://bugs.webkit.org/show_bug.cgi?id=226041

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py: Use Python 3.

(CleanBuild):
(TriggerCrashLogSubmission):
(WaitForCrashCollection):
(ArchiveBuiltProduct):
(ExtractBuiltProduct):

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests.
2:26 PM Changeset in webkit [277824] by Kyle Piddington
  • 10 edits in trunk/Source/ThirdParty/ANGLE

Red flashes zooming on Google Maps when using external monitor on multi-gpu systems
https://bugs.webkit.org/show_bug.cgi?id=225956
<rdar://77024179>

Reviewed by Dean Jackson.
IOSurface presentation swaps require that a command buffer is queued for execution before
swapping. Otherwise, we're liable to drop frames, or present old IOSurface buffers.
Ensure work flushed via glFlush completes before presenation by waiting for it to enqueue before
swapping a surface.

  • src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::flush):

  • src/libANGLE/renderer/metal/mtl_command_buffer.h:
  • src/libANGLE/renderer/metal/mtl_command_buffer.mm:

(rx::mtl::CommandBuffer::waitUntilScheduled):
(rx::mtl::CommandBuffer::commitImpl):

2:25 PM Changeset in webkit [277823] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Configure fullscreen view after it has transitioned
https://bugs.webkit.org/show_bug.cgi?id=226031
<rdar://problem/78277029>

Reviewed by Tim Horton.

Call an internal configuration method after the fullscreen transition.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):

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

[macOS] Allow access to the 'DiskImageURL' IOKit property
https://bugs.webkit.org/show_bug.cgi?id=226033
<rdar://problem/78199855>

Reviewed by Per Arne Vollan.

Access to certain disk image types is affected by the ability to read the DiskImageURL IOKit property. Since file
URLs may reference such locations (and indeed, telemetry shows that this is happening) we should grant this property
access to avoid users encountering file access errors when attempting to load content backed by relevant disk images.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
2:07 PM Changeset in webkit [277821] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

WebAudioBufferList::setSampleCount() should early return if computeBufferSizes() fails
https://bugs.webkit.org/show_bug.cgi?id=226028
rdar://78222414

Reviewed by Eric Carlson.

If computeBufferSizes() fails (returns WTF::nullopt), we now early return on release
builds, without modifying the WebAudioBufferList's internal state in any way. In
Debug, we would still hit the assertion.

  • platform/audio/cocoa/WebAudioBufferList.cpp:

(WebCore::WebAudioBufferList::setSampleCount):

12:59 PM Changeset in webkit [277820] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Move off UIKit IPI in WKMouseGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=226030
rdar://78266173

Reviewed by Devin Rousso and Wenson Hsieh.

Use UIGestureRecognizerDelegate instead of IPI.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]): Deleted.
(-[WKMouseGestureRecognizer _shouldReceivePress:]): Deleted.

12:51 PM Changeset in webkit [277819] by Russell Epstein
  • 1 copy in tags/Safari-612.1.12.11

Tag Safari-612.1.12.11.

12:40 PM Changeset in webkit [277818] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

HTML parser should yield more aggressively
https://bugs.webkit.org/show_bug.cgi?id=224609
rdar://73458064

Reviewed by Darin Adler.

During page loading we may spend substantial amount of time in individual invocations of
the HTML parser. This can be a problem since it blocks rendering updates and so visual
page load progression.

Most of this time is not actually spend parsing, it rather goes into synchronous script
execution and DOM work triggered by scripts. This patch adds a more effective mechanism
where we may decide to yield the parser before executing a script.

  • dom/ScriptElement.h:
  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizerLoop):

  • html/parser/HTMLParserScheduler.cpp:

(WebCore::parserTimeLimit):
(WebCore::PumpSession::PumpSession):
(WebCore::HTMLParserScheduler::HTMLParserScheduler):
(WebCore::HTMLParserScheduler::shouldYieldBeforeExecutingScript):

Consider yielding before script execution after 16ms has elapsed and at least 256 tokens have been parsed.
Only yield for synchronous scripts.
Don't yield on very short inline scripts (this is an imperfect way to try to guess the execution cost).

  • html/parser/HTMLParserScheduler.h:

(WebCore::HTMLParserScheduler::shouldYieldBeforeToken):
(WebCore::HTMLParserScheduler::checkForYield):

Don't reset the token count, instead track the last yield check point.

  • html/parser/HTMLTreeBuilder.h:

(WebCore::HTMLTreeBuilder::scriptToProcess const):

12:34 PM Changeset in webkit [277817] by rmorisset@apple.com
  • 2 edits in trunk/Tools

The test of SmallSet.cpp should pass the right HashTrait to the HashSet it uses as a reference
https://bugs.webkit.org/show_bug.cgi?id=226027

Reviewed by Mark Lam.

SmallSet allows all values except for the max value.
So we test it on small values, including 0.

HashSet by default forbids 0, so it made the test crash.
We can trivially fix it by passing UnsignedWithZeroKeyHashTraits, which allows everything which is not max() or max()-1

  • TestWebKitAPI/Tests/WTF/SmallSet.cpp:

(TestWebKitAPI::testSmallSetOfUnsigned):

12:25 PM Changeset in webkit [277816] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[Hardening] Use CheckedArithmetics in WebAudioBufferList constructor
https://bugs.webkit.org/show_bug.cgi?id=226029
<rdar://78222665>

Reviewed by Eric Carlson.

  • platform/audio/cocoa/WebAudioBufferList.cpp:

(WebCore::WebAudioBufferList::WebAudioBufferList):

12:09 PM Changeset in webkit [277815] by Alan Coon
  • 3 edits in branches/safari-611-branch

Cherry-pick r277713. rdar://problem/78264364

allowsContentJavaScript API not applied from defaultWebpagePreferences
https://bugs.webkit.org/show_bug.cgi?id=225957

Reviewed by Wenson Hsieh.

New API test: WebKit.AllowsContentJavaScriptFromDefaultPreferences

  • UIProcess/API/APIWebsitePolicies.cpp: (API::WebsitePolicies::copy const): allowsContentJavaScript works fine on the per-navigation-level WKWebpagePreferences, but is ignored if applied on the WKWebViewConfiguration's defaultWebpagePreferences, because it is not copied in copy(). Copy it!

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

12:09 PM Changeset in webkit [277814] by Alan Coon
  • 5 edits
    1 add in branches/safari-611-branch

Cherry-pick r277613. rdar://problem/78264256

REGRESSION (r271119): Object methods defined with shorthand notation cannot access "caller" in non-strict mode
https://bugs.webkit.org/show_bug.cgi?id=225277

Reviewed by Darin Adler.

JSTests:

  • stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Now covers #157461 and #157863.
  • stress/function-caller-cross-realm-via-call-apply.js: Added, coverage for #34553.
  • stress/function-hidden-as-caller.js: Also adds test case for #102276.

Source/JavaScriptCore:

This patch loosens function.caller to allow non-strict getters, setters, arrow functions,
and ES6 methods to be returned as callers, fixing web compatibility.

The intent of r230662 is preserved: generator / async functions are never exposed. There is
no good way to acquire wrapper function from the internal body one, nor from its arguments.
Also, this behavior is on standards track [1] (seems to be considered desirable).

[1]: https://github.com/claudepache/es-legacy-function-reflection/blob/master/spec.md#get-functionprototypecaller (step 14)

  • runtime/JSFunction.cpp: (JSC::JSC_DEFINE_CUSTOM_GETTER):

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

12:09 PM Changeset in webkit [277813] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r277477. rdar://problem/78264390

[REGRESSION: r271876] Web Inspector: [Cocoa] Remote inspection crashes when using WEB_THREAD
https://bugs.webkit.org/show_bug.cgi?id=225794

Reviewed by Devin Rousso.

For WEB_THREAD, move callback in dispatchAsyncOnTarget to block scope to ensure it is available for the
lifetime of the block.

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: (Inspector::RemoteConnectionToTarget::dispatchAsyncOnTarget):

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

12:09 PM Changeset in webkit [277812] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r277390. rdar://problem/78264321

TapStorage::lock freed while locked in AudioSourceProviderAVFObjC::destroyMixIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=225706
<rdar://77719381>

Reviewed by Ryosuke Niwa.

In r275933, an update was made to protect access to TapStorage during destruction by
locking its lock inside destroyMixIfNeeded(), but if TapStorage has a refCount==1
during that teardown, the lock itself is destroyed while it is still held. Add an
explicit scoping to the lock holder, and only deref the TapStorage outside that
locking scope.

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm: (WebCore::AudioSourceProviderAVFObjC::destroyMixIfNeeded):

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

12:09 PM Changeset in webkit [277811] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r277375. rdar://problem/78264303

Crash in WebPageProxy::endColorPicker()
https://bugs.webkit.org/show_bug.cgi?id=225679

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-12
Reviewed by Ryosuke Niwa.

Make sure that endColorPicker() and didEndColorPicker()
do not both attempt to null-out m_colorPicker.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::endColorPicker): (WebKit::WebPageProxy::didEndColorPicker):

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

12:09 PM Changeset in webkit [277810] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc

Cherry-pick r277332. rdar://problem/78264344

Improve usrsctp restart handling
https://bugs.webkit.org/show_bug.cgi?id=225638
<rdar://77582953>

Reviewed by Alex Christensen.

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

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

12:09 PM Changeset in webkit [277809] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r277232. rdar://problem/78264335

Add bounds checks around calls to GlyphBuffer::stringOffsetAt()
https://bugs.webkit.org/show_bug.cgi?id=225335
<rdar://problem/75663608>

Reviewed by Simon Fraser and Geoff Garen.

We're getting crash reports that look like they're from string offsets being out-of-bounds.
These string offsets round-trip through Core Text, which is allowed to modify them, which
can end up making them out-of-bounds.

No new tests because I don't have a reproducible test case; just crash reports.

  • platform/graphics/FontCascade.cpp: (WebCore::computeUnderlineType):
  • platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::uncheckedStringOffsetAt const): (WebCore::GlyphBuffer::checkedStringOffsetAt const): (WebCore::GlyphBuffer::stringOffsetAt const): Deleted.
  • platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::applyFontTransforms): (WebCore::WidthIterator::applyExtraSpacingAfterShaping):

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

12:09 PM Changeset in webkit [277808] by Sam Sneddon
  • 1 edit
    1 add in trunk/Tools

Add tox file for webkitpy
https://bugs.webkit.org/show_bug.cgi?id=226016

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tox.ini: Added.
12:08 PM Changeset in webkit [277807] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source

Cherry-pick r276788. rdar://problem/78264378

Reduce memory footprint for background tabs
https://bugs.webkit.org/show_bug.cgi?id=225007

Reviewed by Chris Dumez.

Source/WebKit:

When a WebContent process contains only non-visible pages (e.g. if it is a background tab),
we should attempt to reduce our memory footprint after some time interval to help relieve
system-wide memory pressure. This is enabled only on Mac because iOS already does something
similar just before WebContent suspends.

One exception to this is that we don't do this proactive slimming for processes that are in
the back/forward cache or in the WebProcess cache. This is because dropping the memory cache
in those types of processes leads to perf regressions in benchmarks that do certain types of
cross-origin navigations. We'll use a separate mechanism for controlling the memory usage of
those processes; our current logic keeps those processes around until we are at the warning
or critical memory pressure level.

  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::pageDidEnterWindow): (WebKit::WebProcess::pageWillLeaveWindow): (WebKit::WebProcess::nonVisibleProcessGraphicsCleanupTimerFired): (WebKit::WebProcess::nonVisibleProcessMemoryCleanupTimerFired): (WebKit::WebProcess::nonVisibleProcessCleanupTimerFired): Deleted.
  • WebProcess/WebProcess.h:

Source/WTF:

Add an option to slim background tabs by proactively calling WebCore::releaseMemory on Macs.

  • wtf/PlatformEnableCocoa.h:

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

11:44 AM Changeset in webkit [277806] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Use CheckedLock more in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=226021

Reviewed by Darin Adler.

Use CheckedLock more in IPC::Connection. This is heavily multithreaded code and
it would benefit significantly from Clang Thread Safety Analysis.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::enqueueMatchingMessagesToMessageReceiveQueue):
(IPC::Connection::addMessageReceiveQueue):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeMessageReceiveQueue):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::pushPendingSyncRequestID):
(IPC::Connection::popPendingSyncRequestID):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::installIncomingSyncMessageCallback):
(IPC::Connection::uninstallIncomingSyncMessageCallback):
(IPC::Connection::hasIncomingSyncMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchOneIncomingMessage):
(IPC::Connection::dispatchIncomingMessages):

  • Platform/IPC/Connection.h:

(IPC::Connection::WTF_GUARDED_BY_LOCK):

11:41 AM Changeset in webkit [277805] by Chris Dumez
  • 46 edits in trunk/Source/WebCore

Use CheckedLock more in WebCore
https://bugs.webkit.org/show_bug.cgi?id=226026

Reviewed by Geoffrey Garen.

Use CheckedLock more in WebCore to benefit from Clang Thread Safety Analysis.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):
(WebCore::IDBObjectStore::visitReferencedIndexes const):
(WebCore::IDBObjectStore::renameReferencedIndex):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::internalAbort):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::renameObjectStore):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::visitReferencedObjectStores const):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::saveOperation):
(WebCore::IDBClient::IDBConnectionProxy::completeOperation):
(WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::establishTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction):
(WebCore::IDBClient::IDBConnectionProxy::commitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::abortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCloseFromServer):
(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
(WebCore::IDBClient::IDBConnectionProxy::scheduleMainThreadTasks):
(WebCore::IDBClient::IDBConnectionProxy::handleMainThreadTasks):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::registerDatabaseConnection):
(WebCore::IDBClient::IDBConnectionProxy::unregisterDatabaseConnection):
(WebCore::IDBClient::IDBConnectionProxy::forgetActiveOperations):
(WebCore::IDBClient::IDBConnectionProxy::forgetTransaction):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::setContextSuspended):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::setEncryptionKey):
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):

  • Modules/mediastream/RTCRtpSFrameTransformer.h:
  • Modules/mediastream/RTCRtpScriptTransform.cpp:

(WebCore::RTCRtpScriptTransform::setTransformer):
(WebCore::RTCRtpScriptTransform::setupTransformer):
(WebCore::RTCRtpScriptTransform::clear):

  • Modules/mediastream/RTCRtpScriptTransform.h:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::setClient):
(WebCore::LibWebRTCDataChannelHandler::checkState):
(WebCore::LibWebRTCDataChannelHandler::OnMessage):
(WebCore::LibWebRTCDataChannelHandler::OnBufferedAmountChange):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp:

(WebCore::LibWebRTCRtpTransformBackend::setInputCallback):
(WebCore::LibWebRTCRtpTransformBackend::setOutputCallback):
(WebCore::LibWebRTCRtpTransformBackend::processTransformedFrame):
(WebCore::LibWebRTCRtpTransformBackend::Transform):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.h:
  • inspector/agents/WebHeapAgent.cpp:

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

  • page/ResourceUsageThread.cpp:

(WebCore::ResourceUsageThread::addObserver):
(WebCore::ResourceUsageThread::removeObserver):
(WebCore::ResourceUsageThread::waitUntilObservers):
(WebCore::ResourceUsageThread::notifyObservers):

  • page/ResourceUsageThread.h:
  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::clearAllTestDeferrals):
(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):
(WebCore::WheelEventTestMonitor::deferForReason):
(WebCore::WheelEventTestMonitor::removeDeferralForReason):
(WebCore::WheelEventTestMonitor::receivedWheelEvent):
(WebCore::WheelEventTestMonitor::checkShouldFireCallbacks):

  • page/WheelEventTestMonitor.h:

(WebCore::WheelEventTestMonitor::WTF_GUARDED_BY_LOCK):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::computeWheelProcessingSteps):
(WebCore::ScrollingTree::determineWheelEventProcessing):
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::mainFrameScrollPosition const):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::setGestureState):
(WebCore::ScrollingTree::gestureState):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):
(WebCore::ScrollingTree::isRubberBandInProgressForNode):
(WebCore::ScrollingTree::setRubberBandingInProgressForNode):
(WebCore::ScrollingTree::isUserScrollInProgressForNode):
(WebCore::ScrollingTree::setUserScrollInProgressForNode):
(WebCore::ScrollingTree::clearNodesWithUserScrollInProgress):
(WebCore::ScrollingTree::isScrollSnapInProgressForNode):
(WebCore::ScrollingTree::setNodeScrollSnapInProgress):
(WebCore::ScrollingTree::setMainFramePinnedState):
(WebCore::ScrollingTree::setMainFrameCanRubberBand):
(WebCore::ScrollingTree::mainFrameCanRubberBandInDirection):
(WebCore::ScrollingTree::addPendingScrollUpdate):
(WebCore::ScrollingTree::takePendingScrollUpdates):
(WebCore::ScrollingTree::setScrollPinningBehavior):
(WebCore::ScrollingTree::scrollPinningBehavior):
(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
(WebCore::ScrollingTree::windowScreenDidChange):
(WebCore::ScrollingTree::displayID):
(WebCore::ScrollingTree::hasProcessedWheelEventsRecently):
(WebCore::ScrollingTree::willProcessWheelEvent):
(WebCore::ScrollingTree::nominalFramesPerSecond):
(WebCore::ScrollingTree::scrollingTreeAsText):

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

(WebCore::ScrollingTreeLatchingController::receivedWheelEvent):
(WebCore::ScrollingTreeLatchingController::latchingDataForEvent const):
(WebCore::ScrollingTreeLatchingController::latchedNodeID const):
(WebCore::ScrollingTreeLatchingController::latchedNodeAndSteps const):
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
(WebCore::ScrollingTreeLatchingController::nodeWasRemoved):
(WebCore::ScrollingTreeLatchingController::clearLatchedNode):

  • page/scrolling/ScrollingTreeLatchingController.h:
  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):

  • platform/audio/HRTFDatabaseLoader.h:
  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::hasEnoughFrames const):
(WebCore::AudioDestinationCocoa::render):
(WebCore::AudioDestinationCocoa::renderOnRenderingThead):

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::CDMProxy::instance const):
(WebCore::CDMProxy::setInstance):
(WebCore::CDMProxy::startedWaitingForKey const):
(WebCore::CDMProxy::stoppedWaitingForKey const):

  • platform/encryptedmedia/CDMProxy.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::setDelayCallbacks const):
(WebCore::MediaPlayerPrivateAVFoundation::clearMainThreadPendingFlag):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::takeSurface):
(WebCore::IOSurfacePool::addSurface):
(WebCore::IOSurfacePool::setPoolSize):
(WebCore::IOSurfacePool::collectionTimerFired):
(WebCore::IOSurfacePool::discardAllSurfaces):

  • platform/graphics/cg/IOSurfacePool.h:

(WebCore::IOSurfacePool::WTF_GUARDED_BY_LOCK):

  • platform/graphics/cg/SubimageCacheWithTimer.cpp:

(WebCore::SubimageCacheWithTimer::pruneCacheTimerFired):
(WebCore::SubimageCacheWithTimer::subimage):
(WebCore::SubimageCacheWithTimer::clearImageAndSubimages):
(WebCore::SubimageCacheWithTimer::clearAll):

  • platform/graphics/cg/SubimageCacheWithTimer.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

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

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(WebCore::WebCoreNSURLSessionDataTaskClient::clearTask):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent):
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::shouldCacheResponse):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::accessControlCheckFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFinished):

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

(-[WebCoreResourceHandleAsOperationQueueDelegate detachHandle]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):

  • storage/StorageQuotaManager.cpp:

(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):
(WebCore::StorageQuotaManager::resetQuotaUpdatedBasedOnUsageForTesting):
(WebCore::StorageQuotaManager::resetQuotaForTesting):

  • storage/StorageQuotaManager.h:

(WebCore::StorageQuotaManager::WTF_GUARDED_BY_LOCK):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::scheduleExecutionTermination):
(WebCore::WorkerOrWorkletScriptController::isTerminatingExecution const):

  • workers/WorkerOrWorkletScriptController.h:

(WebCore::WorkerOrWorkletScriptController::WTF_GUARDED_BY_LOCK):

11:25 AM Changeset in webkit [277804] by Wenson Hsieh
  • 5 edits in trunk/Source/WebCore

[GPU Process] ItemHandle::safeCopy is not actually safe, does no bounds-checking
https://bugs.webkit.org/show_bug.cgi?id=226022
rdar://78181677

Reviewed by Chris Dumez.

Currently, it's possible for DisplayList iteration to trigger out-of-bounds access when decoding inline display
list items; this patch adds hardening to prevent this. See below for more details.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

Add an ItemType argument to safeCopy, and use this ItemType instead of assuming that the item type of the
ItemHandle we're copying from hasn't changed since we've validated it.

(WebCore::DisplayList::ItemHandle::safeCopy const):

  • platform/graphics/displaylists/DisplayListItemBuffer.h:
  • platform/graphics/displaylists/DisplayListIterator.cpp:

(WebCore::DisplayList::DisplayList::Iterator::updateCurrentItem):

Verify that the remaining item buffer capacity is at least as large as paddedSizeOfTypeAndItem, such that we
won't go out of bounds when attempting to read from the item handle in safeCopy.

  • platform/graphics/displaylists/InMemoryDisplayList.cpp:

(WebCore::DisplayList::InMemoryDisplayList::ReadingClient::decodeItem):

11:12 AM Changeset in webkit [277803] by Ruben Turcios
  • 8 edits in branches/safari-612.1.15.0-branch/Source

Versioning.

WebKit-7612.1.15.0.3

11:08 AM Changeset in webkit [277802] by Chris Lord
  • 36 edits in trunk/Source/WebCore

Allow passing a VisibleRectContext when calculating the clipped overflow rect
https://bugs.webkit.org/show_bug.cgi?id=226007

Reviewed by Simon Fraser.

Refactor rendering classes to allow specifying a VisibleRectContext
when calculating the clipped overflow rect.

No new tests, this is just a small refactor.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isOffScreen const):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::renderedRectsForMarkers):

  • page/SpatialNavigation.cpp:

(WebCore::hasOffscreenRect):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::clippedOverflowRect const):

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::mayCauseRepaintInsideViewport const):
(WebCore::RenderElement::isVisibleInDocumentRect const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRect const):

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect const):
(WebCore::RenderObject::clippedOverflowRect const):
(WebCore::RenderObject::computeRect const):
(WebCore::absoluteRectsForRangeInText):

  • rendering/RenderObject.h:

(WebCore::RenderObject::absoluteClippedOverflowRectForRepaint const):
(WebCore::RenderObject::clippedOverflowRectForRepaint const):
(WebCore::RenderObject::outlineBoundsForRepaint const):
(WebCore::RenderObject::computeAbsoluteRepaintRect const):
(WebCore::RenderObject::computeRectForRepaint const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRect const):

  • rendering/RenderReplaced.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRect const):

  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::clippedOverflowRect const):

  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::clippedOverflowRect const):

  • rendering/RenderTableRow.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::clippedOverflowRect const):

  • rendering/RenderText.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::updateVisibleViewportRect):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::clippedOverflowRect const):

  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGHiddenContainer.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::clippedOverflowRect const):

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::clippedOverflowRect const):

  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::clippedOverflowRect const):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::clippedOverflowRect const):

  • rendering/svg/RenderSVGText.h:
  • rendering/svg/SVGRenderTreeAsText.cpp:
11:02 AM Changeset in webkit [277801] by Kate Cheney
  • 2 edits in trunk/Tools

Unreviewed contributor name update.

  • Scripts/webkitpy/common/config/contributors.json:
11:02 AM Changeset in webkit [277800] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.6

10:43 AM Changeset in webkit [277799] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add null checks in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225973
<rdar://78200977>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-20
Reviewed by Katherine Cheney.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):

10:37 AM Changeset in webkit [277798] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.5

10:33 AM Changeset in webkit [277797] by Devin Rousso
  • 5 edits in trunk/Source/WebCore

[Modern Media Controls] add a suffix based on TextTrack::Kind when generating display names for TrackBase
https://bugs.webkit.org/show_bug.cgi?id=225995

Reviewed by Eric Carlson.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::buildDisplayStringForTrackBase):

  • platform/LocalizedStrings.h:
  • platform/LocalizedStrings.cpp:

(WebCore::captionsTextTrackWithoutLabelMenuItemText): Added.
(WebCore::descriptionsTextTrackWithoutLabelMenuItemText): Added.
(WebCore::chaptersTextTrackWithoutLabelMenuItemText): Added.
(WebCore::metadataTextTrackWithoutLabelMenuItemText): Added.

  • en.lproj/Localizable.strings:
10:32 AM Changeset in webkit [277796] by Ruben Turcios
  • 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore

Cherry-pick r277784. rdar://problem/78264934

CRASH: Null-pointer deref in MediaSessionManagerCocoa::setNowPlayingInfo()
https://bugs.webkit.org/show_bug.cgi?id=225999
<rdar://78232970>

Reviewed by Eric Carlson.

Null-check nowPlayingInfo.artwork->imageData before dereferencing.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):

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

10:32 AM Changeset in webkit [277795] by Ruben Turcios
  • 3 edits
    2 adds in branches/safari-612.1.15.1-branch

Cherry-pick r277726. rdar://problem/78260457

[Mac] MSE-based video pauses when put in background; PiP context menu disabled
https://bugs.webkit.org/show_bug.cgi?id=225958
<rdar://78130303>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-has-audio-video.html

In r277116, in order to reduce the CPU usage incurred when pushing state changes from
the GPU process to the WebContent process, state changes to hasAudio and hasVideo
were now only updated when the MediaPlayer indicated that its characteristicsChanged().
However, in SourceBufferPrivateAVFObjC, this call was performed too early, before the
SourceBuffer in the WebContent process had informed SourceBufferPrivate of newly added
audio and video tracks. Thus the cached values of hasAudio and hasVideo inside the
WebContent process were never updated.

Call characteristicsChanged() from the callback handler of didReceiveInitializationSegment(),
which will be called only after the WebContent process completes its handling of the
new initialization segment, which includes telling the SourceBufferPrivate in the GPU
process about newly added audio and video tracks.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):

LayoutTests:

  • media/media-source/media-source-has-audio-video-expected.txt: Added.
  • media/media-source/media-source-has-audio-video.html: Added.

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

10:32 AM Changeset in webkit [277794] by Ruben Turcios
  • 2 edits in branches/safari-612.1.15.1-branch/Source/WebKit

Cherry-pick r277518. rdar://problem/78260425

Web Inspector: _WKInspector leaks WebInspectorUIProxy
https://bugs.webkit.org/show_bug.cgi?id=225815

Reviewed by Tim Horton.

Add a missing call in _WKInspector's destructor to destruct the WebInspectorUIProxy in API object storage.

  • UIProcess/API/Cocoa/_WKInspector.mm: (-[_WKInspector dealloc]):

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

10:28 AM Changeset in webkit [277793] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

[Modern Media Controls] should not use codePointCompare as it doesn't take into account language specific sorting rules
https://bugs.webkit.org/show_bug.cgi?id=225993

Reviewed by Eric Carlson.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::sortedTrackListForMenu):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::textTrackCompare):
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):

10:08 AM Changeset in webkit [277792] by ggaren@apple.com
  • 13 edits in trunk/Source

GraphicsLayer::setName() causes heap fragmentation
https://bugs.webkit.org/show_bug.cgi?id=225838

Reviewed by Simon Fraser.

Profiling for heap fragmentation shows that GraphicsLayer::setName() is
a top contributor. Worth about 5MB maximum on GMail.

Use MAKE_STATIC_STRING_IMPL for our constant layer names so we end up
with only one copy and no heap allocation in the many cases that are
compile-time constants.

Source/WebCore:

  • display/compositing/DisplayLayerController.cpp:

(WebCore::Display::LayerController::setupRootLayerHierarchy):

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::createRootLayersIfNeeded):
(WebCore::PageOverlayController::installPageOverlay):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToModel):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateClippingStrategy):
(WebCore::GraphicsLayerCA::updateContentsRects):

  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap):

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

(WebCore::CACFLayerTreeHost::initialize):
(WebCore::CACFLayerTreeHost::updateDebugInfoLayer):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):

Source/WebKit:

  • WebProcess/Inspector/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::showPaintRect):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::CompositingCoordinator):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::LayerTreeHost):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::LayerTreeHost):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):

10:00 AM Changeset in webkit [277791] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add missing method in sandbox IOKit filter
https://bugs.webkit.org/show_bug.cgi?id=225975
<rdar://78212330>

Reviewed by Brent Fulgham.

Add missing method in IOSurfaceRootUserClient filter on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:45 AM Changeset in webkit [277790] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

[Modern Media Controls] should not include TextTrack when sorting TextTrackList if it doesn't have a desired TextTrack::Kind when CaptionDisplayMode::Manual
https://bugs.webkit.org/show_bug.cgi?id=225992

Reviewed by Eric Carlson.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):

9:13 AM Changeset in webkit [277789] by Peng Liu
  • 2 edits in trunk/Source/WebCore

AirPlay icon of the Vimeo.com video player is missing after reloading the page
https://bugs.webkit.org/show_bug.cgi?id=226005

Reviewed by Eric Carlson.

Some sites, e.g., vimeo.com, depends on the "webkitplaybacktargetavailabilitychanged"
event to setup the player related to AirPlay feature properly. When we reload a
page including media element(s), the element's media session will be constructed
with m_hasPlaybackTargets be true, so no "webkitplaybacktargetavailabilitychanged"
event will be fired.

This patch ensures that an HTMLMediaElement always fires that event when we
reload the page.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):

9:12 AM Changeset in webkit [277788] by Peng Liu
  • 2 edits in trunk/Source/WebCore

AirPlay icon of the Vimeo.com video player is missing
https://bugs.webkit.org/show_bug.cgi?id=226004

Reviewed by Eric Carlson.

With the optimizations in r276883, an HTMLMediaElement will activate its
MediaSession just before creating its MediaPlayer inside prepareForLoad()
or loadNextSourceChild(), and will deactivate its MediaSession after tearing
down its MediaPlayer inside mediaLoadingFailed().

However, with these changes, when a new HTMLMediaElement is created and an
event handler of "webkitplaybacktargetavailabilitychanged" is added to the element,
the element's MediaSession might be inactive when function
MediaSessionManageriOS::configureWireLessTargetMonitoring() runs, so its
MediaSession won't monitor wireless routes, and no "webkitplaybacktargetavailabilitychanged"
will be fired thereafter.

This patch fixes this issue by activating an HTMLMediaElement's MediaSession
when adding the first event handler to "webkitplaybacktargetavailabilitychanged" event.
It also keeps the MediaSession active if there is event handler to
"webkitplaybacktargetavailabilitychanged" after tearing down the HTMLMediaElement's
MediaPlayer (in HTMLMediaElement::mediaLoadingFailed()).

We can improve the fix by refactoring the way to activate/deactivate
an HTMLMediaElement's MediaSession.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::loadNextSourceChild):
(WebCore::HTMLMediaElement::mediaLoadingFailed):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::createMediaPlayer):
Replace two mediaSession().setActive(true); in prepareForLoad()
and loadNextSourceChild() with one in createMediaPlayer().

9:11 AM Changeset in webkit [277787] by Chris Dumez
  • 26 edits in trunk

Use CheckedLock more in WebKit2 code
https://bugs.webkit.org/show_bug.cgi?id=226001

Reviewed by Alex Christensen.

Use CheckedLock more in WebKit2 code to benefit from Clang Thread Safety Analysis.

  • NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm:

(LegacyCustomProtocolManager::networkProcessCreated):
(WebKit::LegacyCustomProtocolManager::registerScheme):
(WebKit::LegacyCustomProtocolManager::unregisterScheme):
(WebKit::LegacyCustomProtocolManager::supportsScheme):
(WebKit::LegacyCustomProtocolManager::protocolForID):

  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp:

(WebKit::LegacyCustomProtocolManager::addCustomProtocol):
(WebKit::LegacyCustomProtocolManager::removeCustomProtocol):

  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::addSessionStorageQuotaManager):
(WebKit::NetworkProcess::removeSessionStorageQuotaManager):
(WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath):
(WebKit::NetworkProcess::resetQuota):
(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::suspend):
(WebKit::StorageManagerSet::resume):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm:

(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Shared/BlockingResponseMap.h:

(BlockingResponseMap::waitForResponse):
(BlockingResponseMap::didReceiveResponse):

  • Shared/Cocoa/XPCEndpointClient.h:
  • Shared/Cocoa/XPCEndpointClient.mm:

(WebKit::XPCEndpointClient::setEndpoint):
(WebKit::XPCEndpointClient::connection):

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::request const):
(WebKit::WebURLSchemeTask::willPerformRedirection):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::pageDestroyed):
(WebKit::WebURLSchemeTask::stop):
(WebKit::WebURLSchemeTask::nsRequest const):

  • UIProcess/WebURLSchemeTask.h:
  • UIProcess/mac/DisplayLink.cpp:

(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::removeObserver):
(WebKit::DisplayLink::removeObservers):
(WebKit::DisplayLink::incrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::decrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::setPreferredFramesPerSecond):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):

  • UIProcess/mac/DisplayLink.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThread):
(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionAndDispatchToThread):
(WebKit::LibWebRTCCodecs::createDecoder):
(WebKit::LibWebRTCCodecs::decodeFrame):
(WebKit::LibWebRTCCodecs::createEncoder):
(WebKit::LibWebRTCCodecs::encodeFrame):
(WebKit::LibWebRTCCodecs::setEncodeRates):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):
(WebKit::LibWebRTCCodecs::setLoggingLevel):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
(WebKit::PluginProcessConnectionManager::removePluginProcessConnection):
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):

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

(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::removeScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::takeQueuedTouchEventsForPage):
(WebKit::EventDispatcher::touchEvent):
(WebKit::EventDispatcher::dispatchTouchEvents):
(WebKit::EventDispatcher::notifyScrollingTreesDisplayWasRefreshed):

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

(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):

  • WebProcess/WebPage/ViewUpdateDispatcher.h:
9:00 AM Changeset in webkit [277786] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

$vm should have a function for checking if ASan is enabled similar to $vm.assertEnabled
https://bugs.webkit.org/show_bug.cgi?id=226019

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2021-05-20
Reviewed by Mark Lam.

Add method $vm.asanEnabled(), which parallels $vm.assertEnabled(), and allows checking at
runtime whether the current JavaScriptCore build is instrumented with AddressSanitizer.

  • tools/JSDollarVM.cpp:
8:49 AM Changeset in webkit [277785] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Enable VCP for H264 baseline
https://bugs.webkit.org/show_bug.cgi?id=224043

Reviewed by Eric Carlson.

Enable VCP for baseline past BigSur/iOS14.
Add macros and introduce _useBaseline in addition to _useVCP for that purpose.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 configureCompressionSession]):

8:41 AM Changeset in webkit [277784] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CRASH: Null-pointer deref in MediaSessionManagerCocoa::setNowPlayingInfo()
https://bugs.webkit.org/show_bug.cgi?id=225999
<rdar://78232970>

Reviewed by Eric Carlson.

Null-check nowPlayingInfo.artwork->imageData before dereferencing.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):

8:33 AM Changeset in webkit [277783] by youenn@apple.com
  • 6 edits
    2 adds in trunk

<video> rendered inside <template> shows black for webcam stream (Safari 14.0.3 only)
https://bugs.webkit.org/show_bug.cgi?id=222115
<rdar://problem/74546659>

Reviewed by Eric Carlson.

Source/WebCore:

Update element visibility if changing of document. Add internals API to test this.

Test: fast/media/template-hidden.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didMoveToNewDocument):

  • testing/Internals.cpp:

(WebCore::Internals::isMediaElementHidden):

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

LayoutTests:

  • fast/media/template-hidden-expected.txt: Added.
  • fast/media/template-hidden.html: Added.
7:45 AM Changeset in webkit [277782] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Forward booted simulators to children processes
https://bugs.webkit.org/show_bug.cgi?id=225933
<rdar://problem/78169900>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/api_tests/runner.py:

(setup_shard): Set DeviceManager global variable from parent process.
(Runner.command_for_port): Use Port's device manager instead of simulated device manager.
(Runner.run): Pass DeviceManager details to children processes.

6:48 AM Changeset in webkit [277781] by Sam Sneddon
  • 11 edits in trunk/Tools

Store whether a test is slow on TestInput
https://bugs.webkit.org/show_bug.cgi?id=224563

Reviewed by Jonathan Bedard.

Additionally, notably, this makes a TestResult store a TestInput rather than a
test_name string. With that there, we then don't need to punch through multiple
layers to find out whether a test is slow or not. Note that replacing the
test_name with a Test or TestInput as part of removing the 1:1 relationship
between files and tests.

With this done, we don't have to pass around a test_is_slow_fn, as we can directly
look at the result to determine whether or not it is slow.

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

(LayoutTestRunner.init): Remove test_is_slow_fn argument
(LayoutTestRunner._mark_interrupted_tests_as_skipped): Remove test_is_slow argument
(LayoutTestRunner._update_summary_with_result): Remove test_is_slow argument
(Worker._run_test_in_another_thread): Remove test_is_slow argument

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

(LayoutTestRunnerTests._runner): Remove test_is_slow_fn argument
(LayoutTestRunnerTests.test_update_summary_with_result): TestResult arg rename

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

(Manager): Improve docstring
(Manager.init): Tidy up reading tests-options.json
(Manager._test_input_for_file): Set is_slow
(Manager.run): Remove test_is_slow_fn argument
(Manager._look_for_new_crash_logs): Remove test_is_slow_fn/test_is_slow argument

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

(SingleTestRunner.init): Store TestInput object
(SingleTestRunner._test_name): Replacement getter
(SingleTestRunner._should_run_pixel_test): Replacement getter
(SingleTestRunner._should_dump_jsconsolelog_in_stderr): Replacement getter
(SingleTestRunner._reference_files): Replacement getter
(SingleTestRunner._timeout): Replacement getter
(SingleTestRunner._compare_output): Pass TestInput to TestResult
(SingleTestRunner._run_reftest): Pass TestInput to TestResult
(SingleTestRunner._compare_output_with_reference): Pass TestInput to TestResult

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

(TestInput): Add is_slow boolean

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

(TestResult.init): Rename test_name -> test_input, construct TestInput if we must
(TestResult.test_name): Replacement getter

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

(TestResultsTest.test_pickle_roundtrip): TestResult arg rename

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

(TestRunResults.add): Remove test_is_slow argument, look at TestResult

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

(summarized_results): Remove test_is_slow argument

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tests_options): Add a test that test-options.json works

6:31 AM Changeset in webkit [277780] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][TFC] Available space distribution should account for the top and bottom table spacing
https://bugs.webkit.org/show_bug.cgi?id=226003

Reviewed by Antti Koivisto.

Source/WebCore:

The available space for the table content is the table width/height minus the left-right/top-bottom spacing, minus
the additional spacing between the rows/columns.

Tests: fast/inline/vertical-top-on-subpixel-makes-inline-box-overflow.html

fast/layoutformattingcontext/table-simple-row-height.html

  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::distributeAvailableSpace):

LayoutTests:

  • TestExpectations: rendering code disagrees here.
  • fast/layoutformattingcontext/table-simple-row-height-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-row-height.html: Added.
6:24 AM Changeset in webkit [277779] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

The test fast/images/eps-as-image.html is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=225989
<rdar://77354349>

Reviewed by Maciej Stachowiak.

This is caused by an incorrect sandbox rule. A related service is referred to as an XPC service, but it should be a global name.

  • WebProcess/com.apple.WebProcess.sb.in:
6:21 AM Changeset in webkit [277778] by Aditya Keerthi
  • 4 edits
    2 adds in trunk

Value of a color input does not update visually when using setAttribute
https://bugs.webkit.org/show_bug.cgi?id=166930
<rdar://problem/29983218>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/forms/color/color-input-set-attribute-value.html

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::attributeChanged):

Update the color swatch when the value attribute is changed.

  • html/ColorInputType.h:

LayoutTests:

  • fast/forms/color/color-input-set-attribute-value-expected.html: Added.
  • fast/forms/color/color-input-set-attribute-value.html: Added.
1:00 AM Changeset in webkit [277777] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[css-flexbox] Wrong height of an empty table inside an orthogonal flex parent
https://bugs.webkit.org/show_bug.cgi?id=225339

Patch by Felipe Erias <Felipe Erias> on 2021-05-20
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:

Add a test for an empty table inside a flexbox container, where the logical heights of both elements
are orthogonal to each other (the table has vertical writing mode and the flexbox uses row direction).

This is a flipped version of table-as-item-specified-height.html.

  • web-platform-tests/css/css-flexbox/table-as-item-specified-width-vertical-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-width-vertical.html: Added.

Source/WebCore:

When setting the height of an empty table, give precedence to the overriding value if it has been set.
Do not cache the height of that empty table as the intrinsic content height, because doing so may cause
layout problems (the table is actually empty and may be assigned a different height by its parent).

Test: imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-specified-height.html

imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-specified-width-vertical.html

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

LayoutTests:

Note: See TracTimeline for information about the timeline view.