WebKit-https.git
3 months ago[WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWi...
ysuzuki@apple.com [Mon, 19 Aug 2019 06:59:40 +0000 (06:59 +0000)]
[WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part
https://bugs.webkit.org/show_bug.cgi?id=200620

Source/JavaScriptCore:

Reviewed by Geoff Garen.

* API/JSCallbackObject.h:
(JSC::JSCallbackObjectData::setPrivateProperty):
* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::JSCallbackObject):
* API/JSClassRef.cpp:
(OpaqueJSClassContextData::OpaqueJSClassContextData):
(OpaqueJSClass::contextData):
* API/JSMarkingConstraintPrivate.cpp:
(JSContextGroupAddMarkingConstraint):
* API/JSWrapperMap.mm:
(-[JSWrapperMap initWithGlobalContextRef:]):
* API/ObjCCallbackFunction.mm:
(ArgumentTypeDelegate::typeInteger):
(ArgumentTypeDelegate::typeDouble):
(ArgumentTypeDelegate::typeBool):
(ArgumentTypeDelegate::typeId):
(ArgumentTypeDelegate::typeOfClass):
(ArgumentTypeDelegate::typeStruct):
(ResultTypeDelegate::typeInteger):
(ResultTypeDelegate::typeDouble):
(ResultTypeDelegate::typeBool):
(ResultTypeDelegate::typeVoid):
(ResultTypeDelegate::typeId):
(ResultTypeDelegate::typeOfClass):
(ResultTypeDelegate::typeBlock):
(ResultTypeDelegate::typeStruct):
(objCCallbackFunctionForInvocation):
* API/glib/JSCContext.cpp:
(jscContextSetVirtualMachine):
* API/glib/JSCWrapperMap.cpp:
(JSC::WrapperMap::WrapperMap):
* assembler/ProbeStack.cpp:
(JSC::Probe::Stack::ensurePageFor):
* b3/B3LowerToAir.cpp:
* b3/B3Procedure.cpp:
(JSC::B3::Procedure::Procedure):
(JSC::B3::Procedure::dominators):
(JSC::B3::Procedure::naturalLoops):
(JSC::B3::Procedure::backwardsCFG):
(JSC::B3::Procedure::backwardsDominators):
(JSC::B3::Procedure::addDataSection):
* b3/air/AirCode.cpp:
(JSC::B3::Air::Code::cCallSpecial):
* b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
* b3/air/testair.cpp:
* b3/testb3.h:
(compileProc):
* bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
* bytecode/AccessCaseSnippetParams.cpp:
* bytecode/BytecodeBasicBlock.cpp:
(JSC::BytecodeBasicBlock::computeImpl):
* bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::setFrameShuffleData):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::ensureJITDataSlow):
(JSC::CodeBlock::setCalleeSaveRegisters):
(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::createRareDataIfNecessary):
* bytecode/DFGExitProfile.cpp:
(JSC::DFG::ExitProfile::add):
* bytecode/DeferredCompilationCallback.cpp:
(JSC::DeferredCompilationCallback::ensureDeferredSourceDump):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
* bytecode/GetByIdVariant.cpp:
(JSC::GetByIdVariant::operator=):
* bytecode/LazyOperandValueProfile.cpp:
(JSC::CompressedLazyOperandValueProfileHolder::add):
* bytecode/PolyProtoAccessChain.h:
(JSC::PolyProtoAccessChain::clone):
* bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeForStubInfo):
* bytecode/PutByIdVariant.cpp:
(JSC::PutByIdVariant::operator=):
* bytecode/RecordedStatuses.cpp:
(JSC::RecordedStatuses::addCallLinkStatus):
(JSC::RecordedStatuses::addGetByIdStatus):
(JSC::RecordedStatuses::addPutByIdStatus):
(JSC::RecordedStatuses::addInByIdStatus):
* bytecode/StructureStubClearingWatchpoint.cpp:
(JSC::WatchpointsOnStructureStubInfo::ensureReferenceAndAddWatchpoint):
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::livenessAnalysisSlow):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary):
* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::ensureRareDataSlow):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::generate):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::AbstractInterpreter):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::livenessFor):
(JSC::DFG::Graph::killsFor):
(JSC::DFG::Graph::ensureCPSCFG):
(JSC::DFG::Graph::ensureCPSDominators):
(JSC::DFG::Graph::ensureSSADominators):
(JSC::DFG::Graph::ensureCPSNaturalLoops):
(JSC::DFG::Graph::ensureSSANaturalLoops):
(JSC::DFG::Graph::ensureBackwardsCFG):
(JSC::DFG::Graph::ensureBackwardsDominators):
(JSC::DFG::Graph::ensureControlEquivalenceAnalysis):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::addressOfDoubleConstant):
* dfg/DFGLivenessAnalysisPhase.cpp:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
* dfg/DFGSlowPathGenerator.h:
(JSC::DFG::slowPathCall):
(JSC::DFG::slowPathMove):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitStructureCheck):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::createNewThread):
* disassembler/Disassembler.cpp:
(JSC::disassembleAsynchronously):
* ftl/FTLAbstractHeap.cpp:
(JSC::FTL::IndexedAbstractHeap::atSlow):
* ftl/FTLCompile.cpp:
(JSC::FTL::compile):
* ftl/FTLFail.cpp:
(JSC::FTL::fail):
* ftl/FTLLink.cpp:
(JSC::FTL::link):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lazySlowPath):
* ftl/FTLState.cpp:
(JSC::FTL::State::State):
* heap/CompleteSubspace.cpp:
(JSC::CompleteSubspace::allocatorForSlow):
* heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::protectedObjectTypeCounts):
(JSC::Heap::objectTypeCounts):
(JSC::Heap::addCoreConstraints):
* heap/HeapInlines.h:
* heap/HeapSnapshotBuilder.cpp:
(JSC::HeapSnapshotBuilder::buildSnapshot):
* heap/IsoCellSet.cpp:
(JSC::IsoCellSet::addSlow):
* heap/IsoSubspace.cpp:
(JSC::IsoSubspace::IsoSubspace):
* heap/MarkingConstraintSet.cpp:
(JSC::MarkingConstraintSet::add):
* inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::warnUnimplemented):
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
(Inspector::JSGlobalObjectInspectorController::ensureInspectorAgent):
(Inspector::JSGlobalObjectInspectorController::ensureDebuggerAgent):
(Inspector::JSGlobalObjectInspectorController::createLazyAgents):
* inspector/agents/InspectorAgent.cpp:
(Inspector::InspectorAgent::InspectorAgent):
* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::InspectorConsoleAgent):
(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::logTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::count):
(Inspector::InspectorConsoleAgent::countReset):
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::InspectorDebuggerAgent):
* inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::InspectorHeapAgent):
* inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::InspectorScriptProfilerAgent):
* inspector/agents/InspectorTargetAgent.cpp:
(Inspector::InspectorTargetAgent::InspectorTargetAgent):
* inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
(Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):
* inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
(Inspector::JSGlobalObjectRuntimeAgent::JSGlobalObjectRuntimeAgent):
* inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:
(Inspector::RemoteInspectorSocketEndpoint::createClient):
* inspector/remote/socket/RemoteInspectorSocketEndpoint.h:
* inspector/scripts/codegen/objc_generator_templates.py:
* inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
* inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/generic/expected/domain-availability.json-result:
* inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
* inspector/scripts/tests/generic/expected/enum-values.json-result:
* inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
* jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
(JSC::JIT::link):
* jit/JITThunks.cpp:
(JSC::JITThunks::JITThunks):
* jit/Repatch.cpp:
(JSC::linkPolymorphicCall):
* jsc.cpp:
(runJSC):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
* parser/Parser.h:
(JSC::Scope::pushLabel):
(JSC::Parser<LexerType>::parse):
* parser/ParserArena.h:
(JSC::ParserArena::identifierArena):
* profiler/ProfilerCompilation.cpp:
(JSC::Profiler::Compilation::executionCounterFor):
* runtime/Error.cpp:
(JSC::getStackTrace):
* runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::ensureRareDataSlow):
* runtime/FunctionRareData.h:
(JSC::FunctionRareData::createAllocationProfileClearingWatchpoint):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::createRareDataIfNeeded):
* runtime/JSRunLoopTimer.cpp:
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::registerVM):
* runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::addDeletedOffset):
* runtime/PropertyTable.cpp:
(JSC::PropertyTable::PropertyTable):
* runtime/RegExp.cpp:
(JSC::RegExp::finishCreation):
* runtime/RegExp.h:
* runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::ensureTemplateObjectMapImpl):
* runtime/Structure.cpp:
(JSC::Structure::ensurePropertyReplacementWatchpointSet):
* runtime/StructureRareData.cpp:
(JSC::StructureRareData::setObjectToStringValue):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::localToEntry):
(JSC::SymbolTable::cloneScopePart):
(JSC::SymbolTable::prepareForTypeProfiling):
(JSC::SymbolTable::setRareDataCodeBlock):
* runtime/TypeSet.cpp:
(JSC::StructureShape::propertyHash):
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::ensureHeapProfiler):
(JSC::VM::enableTypeProfiler):
(JSC::VM::enableControlFlowProfiler):
(JSC::VM::queueMicrotask):
(JSC::VM::ensureShadowChicken):
* wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::emitCheck):
(JSC::Wasm::parseAndCompileAir):
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::complete):
* wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
* wasm/WasmWorklist.cpp:
(JSC::Wasm::Worklist::Worklist):
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
(JSC::Yarr::ByteCompiler::regexBegin):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::compile):
* yarr/YarrPattern.cpp:
(JSC::Yarr::CharacterClassConstructor::charClass):
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::resetForReparsing):
(JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
(JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
(JSC::Yarr::YarrPatternConstructor::copyDisjunction):
(JSC::Yarr::anycharCreate):
* yarr/YarrPattern.h:
(JSC::Yarr::PatternDisjunction::addNewAlternative):
* yarr/create_regex_tables:
* yarr/generateYarrUnicodePropertyTables.py:

Source/WebCore:

Reviewed by Geoff Garen.

* Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::logDeveloperWarning):
* Modules/beacon/NavigatorBeacon.cpp:
(WebCore::NavigatorBeacon::from):
* Modules/cache/DOMWindowCaches.cpp:
(WebCore::DOMWindowCaches::from):
* Modules/cache/WorkerGlobalScopeCaches.cpp:
(WebCore::WorkerGlobalScopeCaches::from):
* Modules/credentialmanagement/NavigatorCredentials.cpp:
(WebCore::NavigatorCredentials::from):
* Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::InitDataRegistry::extractPsshBoxesFromCenc):
* Modules/encryptedmedia/legacy/LegacyCDM.cpp:
(WebCore::LegacyCDM::create):
* Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:
(WebCore::LegacyCDMPrivateClearKey::createSession):
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::loadBlob):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::fetch):
(WebCore::FetchResponse::BodyLoader::start):
* Modules/gamepad/NavigatorGamepad.cpp:
(WebCore::NavigatorGamepad::from):
* Modules/geolocation/GeolocationController.cpp:
(WebCore::provideGeolocationTo):
* Modules/geolocation/NavigatorGeolocation.cpp:
(WebCore::NavigatorGeolocation::from):
* Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::from):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::index):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::createIndex):
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer):
* Modules/indexeddb/client/TransactionOperation.cpp:
(WebCore::IDBClient::TransactionOperation::TransactionOperation):
* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getOrCreateUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::ensureQuotaUser):
* Modules/indexeddb/server/IndexValueStore.cpp:
(WebCore::IDBServer::IndexValueStore::addRecord):
* Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
(WebCore::IDBServer::MemoryBackingStoreTransaction::create):
(WebCore::IDBServer::MemoryBackingStoreTransaction::MemoryBackingStoreTransaction):
(WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::create):
(WebCore::IDBServer::MemoryIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::MemoryIDBBackingStore::setDatabaseInfo):
* Modules/indexeddb/server/MemoryIndex.cpp:
(WebCore::IDBServer::MemoryIndex::putIndexKey):
(WebCore::IDBServer::MemoryIndex::maybeOpenCursor):
* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::MemoryObjectStore::maybeOpenCursor):
* Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):
* Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::maybeCreate):
(WebCore::IDBServer::SQLiteIDBCursor::maybeCreateBackingStoreCursor):
(WebCore::IDBServer::SQLiteIDBCursor::createSQLiteStatement):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
* Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
(WebCore::IDBServer::SQLiteIDBTransaction::begin):
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
* Modules/indexeddb/shared/IDBRequestData.cpp:
(WebCore::IDBRequestData::IDBRequestData):
(WebCore::IDBRequestData::isolatedCopy):
* Modules/indexeddb/shared/IDBRequestData.h:
(WebCore::IDBRequestData::decode):
* Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::IDBResultData):
(WebCore::IDBResultData::isolatedCopy):
(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):
(WebCore::IDBResultData::deleteDatabaseSuccess):
(WebCore::IDBResultData::putOrAddSuccess):
(WebCore::IDBResultData::getRecordSuccess):
(WebCore::IDBResultData::getAllRecordsSuccess):
(WebCore::IDBResultData::openCursorSuccess):
(WebCore::IDBResultData::iterateCursorSuccess):
* Modules/indexeddb/shared/IDBResultData.h:
(WebCore::IDBResultData::decode):
* Modules/indexeddb/shared/IDBTransactionInfo.cpp:
(WebCore::IDBTransactionInfo::versionChange):
(WebCore::IDBTransactionInfo::IDBTransactionInfo):
(WebCore::IDBTransactionInfo::isolatedCopy):
* Modules/indexeddb/shared/IDBTransactionInfo.h:
(WebCore::IDBTransactionInfo::decode):
* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::quotaManager):
* Modules/mediacapabilities/NavigatorMediaCapabilities.cpp:
(WebCore::NavigatorMediaCapabilities::from):
* Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::mockPicker):
(WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient):
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::buffered const):
(WebCore::MediaSource::setLiveSeekableRange):
* Modules/mediastream/NavigatorMediaDevices.cpp:
(WebCore::NavigatorMediaDevices::from):
* Modules/mediastream/UserMediaController.cpp:
(WebCore::provideUserMediaTo):
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::channelEvent):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::collectTransceivers):
(WebCore::LibWebRTCMediaEndpoint::newTransceiver):
(WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
(WebCore::LibWebRTCMediaEndpoint::transceiverBackendFromSender):
(WebCore::LibWebRTCMediaEndpoint::createDataChannel):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::createLibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::videoReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::audioReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):
* Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::LibWebRTCRtpSenderBackend::createDTMFBackend):
* Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:
(WebCore::LibWebRTCRtpTransceiverBackend::createReceiverBackend):
(WebCore::LibWebRTCRtpTransceiverBackend::createSenderBackend):
* Modules/notifications/Notification.cpp:
(WebCore::Notification::Notification):
* Modules/notifications/NotificationController.cpp:
(WebCore::provideNotification):
* Modules/quota/DOMWindowQuota.cpp:
(WebCore::DOMWindowQuota::from):
* Modules/quota/NavigatorStorageQuota.cpp:
(WebCore::NavigatorStorageQuota::from):
* Modules/quota/WorkerNavigatorStorageQuota.cpp:
(WebCore::WorkerNavigatorStorageQuota::from):
* Modules/speech/DOMWindowSpeechSynthesis.cpp:
(WebCore::DOMWindowSpeechSynthesis::from):
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::ensurePlatformSpeechSynthesizer):
* Modules/webaudio/AsyncAudioDecoder.cpp:
(WebCore::AsyncAudioDecoder::decodeAsync):
* Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::decodeAudioData):
* Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::createKernel):
(WebCore::BiquadProcessor::getFrequencyResponse):
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::ChannelMergerNode):
* Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::ChannelSplitterNode):
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::setBuffer):
* Modules/webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DelayProcessor.cpp:
(WebCore::DelayProcessor::createKernel):
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
(WebCore::DynamicsCompressorNode::initialize):
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::GainNode):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::setFormat):
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::OscillatorNode):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):
* Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::RealtimeAnalyser):
(WebCore::RealtimeAnalyser::setFftSize):
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
* Modules/webaudio/WaveShaperDSPKernel.cpp:
(WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):
* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::WaveShaperNode):
* Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::createKernel):
* Modules/webauthn/fido/FidoHidMessage.cpp:
(fido::FidoHidMessage::FidoHidMessage):
* Modules/webauthn/fido/FidoHidPacket.cpp:
(fido::FidoHidInitPacket::createFromSerializedData):
(fido::FidoHidContinuationPacket::createFromSerializedData):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::close):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::tableNames):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::recordCreatingDatabase):
(WebCore::DatabaseTracker::recordDeletingDatabase):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSql):
(WebCore::SQLTransaction::openTransactionAndPreflight):
* Modules/webdriver/NavigatorWebDriver.cpp:
(WebCore::NavigatorWebDriver::from):
* Modules/webgpu/NavigatorGPU.cpp:
(WebCore::NavigatorGPU::from):
* Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:
* Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
* Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::createEntryPointScaffolding):
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::createEntryPointScaffolding):
* Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:
(WebCore::WHLSL::Metal::TypeNamer::createNameNode):
* Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::Checker::assignConcreteType):
(WebCore::WHLSL::Checker::assignType):
(WebCore::WHLSL::Checker::forwardType):
* Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parseSemantic):
* Modules/webgpu/WorkerNavigatorGPU.cpp:
(WebCore::WorkerNavigatorGPU::from):
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpgradeURL):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
* Modules/websockets/WebSocketDeflateFramer.cpp:
(WebCore::WebSocketDeflateFramer::createExtensionProcessor):
(WebCore::WebSocketDeflateFramer::enableDeflate):
(WebCore::WebSocketDeflateFramer::deflate):
(WebCore::WebSocketDeflateFramer::inflate):
* Modules/websockets/WebSocketDeflater.cpp:
(WebCore::WebSocketDeflater::WebSocketDeflater):
(WebCore::WebSocketInflater::WebSocketInflater):
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
* Modules/webvr/NavigatorWebVR.cpp:
(WebCore::NavigatorWebVR::from):
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
* animation/WebAnimation.cpp:
(WebCore::WebAnimation::updateFinishedState):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
* bindings/js/JSEventTargetCustom.cpp:
(WebCore::jsEventTargetCast):
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::transferArrayBuffers):
(WebCore::SerializedScriptValue::create):
* bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::decode):
* bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::initNormalWorld):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
* bridge/c/c_class.cpp:
(JSC::Bindings::CClass::methodNamed const):
(JSC::Bindings::CClass::fieldNamed const):
* bridge/objc/objc_class.mm:
(JSC::Bindings::ObjcClass::methodNamed const):
(JSC::Bindings::ObjcClass::fieldNamed const):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::callObjCFallbackObject):
* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::CombinedURLFilters::CombinedURLFilters):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
* crypto/SubtleCrypto.cpp:
(WebCore::normalizeCryptoAlgorithmParameters):
(WebCore::crossThreadCopyImportParams):
* css/CSSCalculationValue.cpp:
(WebCore::determineCategory):
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::appendSources):
* css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
* css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::cssRules const):
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
* css/CSSKeyframesRule.cpp:
(WebCore::CSSKeyframesRule::cssRules):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::cssRules):
* css/DOMCSSPaintWorklet.cpp:
(WebCore::DOMCSSPaintWorklet::from):
* css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::from):
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::DocumentRuleSets):
(WebCore::DocumentRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::DocumentRuleSets::initializeUserStyle):
(WebCore::makeRuleSet):
(WebCore::DocumentRuleSets::resetAuthorStyle):
(WebCore::ensureInvalidationRuleSets):
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):
* css/FontFace.cpp:
(WebCore::populateFontFaceWithArrayBuffer):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::wrapForDeprecatedCSSOM):
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::collectFeatures):
(WebCore::RuleFeatureSet::add):
* css/RuleSet.cpp:
(WebCore::RuleSet::addToRuleSet):
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertTo100PercentMinusLength):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue):
(WebCore::StyleBuilderCustom::applyInheritTextShadow):
(WebCore::StyleBuilderCustom::applyInheritBoxShadow):
(WebCore::StyleBuilderCustom::applyValueContent):
* css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
(WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::cascadedPropertiesForRollback):
* css/makeprop.pl:
(generateFillLayerPropertyInheritValueSetter):
(generateFillLayerPropertyValueSetter):
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::CSSParserImpl):
(WebCore::CSSParserImpl::parsePageSelector):
(WebCore::CSSParserImpl::consumeMediaRule):
(WebCore::CSSParserImpl::consumeSupportsRule):
(WebCore::CSSParserImpl::consumeKeyframesRule):
* css/parser/CSSParserSelector.cpp:
(WebCore::CSSParserSelector::parsePagePseudoSelector):
(WebCore::CSSParserSelector::parsePseudoElementSelector):
(WebCore::CSSParserSelector::parsePseudoClassSelector):
(WebCore::CSSParserSelector::CSSParserSelector):
(WebCore::CSSParserSelector::adoptSelectorVector):
(WebCore::CSSParserSelector::prependTagSelector):
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasicShapePath):
* css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):
* dom/CustomElementReactionQueue.cpp:
(WebCore::CustomElementReactionQueue::ensureBackupQueue):
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::items):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::createForDragStartEvent):
(WebCore::DataTransfer::setDragImage):
* dom/DeviceOrientationController.cpp:
(WebCore::provideDeviceOrientationTo):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::implementation):
(WebCore::Document::formController):
(WebCore::Document::updateTextRenderer):
(WebCore::Document::userAgentShadowTreeStyleResolver):
(WebCore::Document::axObjectCache const):
(WebCore::Document::setParsing):
(WebCore::Document::accessSVGExtensions):
(WebCore::Document::initSecurityContext):
(WebCore::Document::textAutoSizing):
(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didLogMessage):
(WebCore::Document::registerCSSProperty):
(WebCore::Document::deviceOrientationAndMotionAccessController):
(WebCore::Document::contentChangeObserver):
(WebCore::Document::domTimerHoldingTank):
* dom/Document.h:
(WebCore::Document::createParserYieldToken):
* dom/DocumentEventQueue.cpp:
(WebCore::DocumentEventQueue::DocumentEventQueue):
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker):
* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::from):
(WebCore::DocumentStorageAccess::requestStorageAccess):
(WebCore::DocumentStorageAccess::enableTemporaryTimeUserGesture):
* dom/Element.cpp:
(WebCore::Element::attributes const):
(WebCore::Element::setIsDefinedCustomElement):
(WebCore::Element::enqueueToUpgrade):
(WebCore::Element::classList):
(WebCore::Element::dataset):
(WebCore::Element::ensureIntersectionObserverData):
(WebCore::Element::ensureResizeObserverData):
* dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::add):
* dom/EventNames.h:
* dom/EventPath.cpp:
(WebCore::EventPath::buildPath):
(WebCore::EventPath::EventPath):
* dom/IdTargetObserverRegistry.cpp:
(WebCore::IdTargetObserverRegistry::addObserver):
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/MutationObserver.cpp:
(WebCore::queueMutationObserverCompoundMicrotask):
* dom/MutationObserverInterestGroup.cpp:
(WebCore::MutationObserverInterestGroup::createIfNeeded):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
* dom/Node.cpp:
(WebCore::Node::materializeRareData):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::registerMutationObserver):
* dom/NodeRareData.h:
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
* dom/RadioButtonGroups.cpp:
(WebCore::RadioButtonGroups::addButton):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):
(WebCore::ScriptExecutionContext::ensureRejectedPromiseTrackerSlow):
* dom/SelectorQuery.cpp:
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::moveShadowRootToNewDocument):
(WebCore::ShadowRoot::addSlotElementByName):
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::assignToSlot):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::addElementByName):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::addImageElementByUsemap):
(WebCore::TreeScope::labelElementForId):
* editing/Editor.cpp:
(WebCore::createDataTransferForClipboardEvent):
(WebCore::Editor::Editor):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::ensureReplacementFragment):
* editing/SelectionRectGatherer.cpp:
(WebCore::SelectionRectGatherer::clearAndCreateNotifier):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::HTMLConverter):
(HTMLConverterCaches::computedStylePropertyForElement):
* editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
* fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::AsyncFileStream):
* fileapi/FileReader.cpp:
(WebCore::FileReader::readInternal):
* history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame):
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):
* history/PageCache.cpp:
(WebCore::PageCache::addIfCacheable):
* html/FileInputType.cpp:
(WebCore::FileInputType::requestIcon):
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):
* html/FormController.cpp:
(WebCore::SavedFormState::deserialize):
(WebCore::FormController::createSavedFormStateMap):
(WebCore::FormController::takeStateForFormElement):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::relList const):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::mapMouseEvent):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::setImageBuffer const):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::updateNamedElementCache const):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::create):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateVisibleValidationMessage):
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::addToPastNamesMap):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::sandbox):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::ensureImageLoader):
(WebCore::HTMLInputElement::resetListAttributeTargetObserver):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::sizes):
(WebCore::HTMLLinkElement::relList):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::finishInitialization):
(WebCore::HTMLMediaElement::seekWithTolerance):
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::htmlFor):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateAfterStyleResolution):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::create):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):
* html/PublicURLManager.cpp:
(WebCore::PublicURLManager::create):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessage):
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
(WebCore::ValidationMessage::requestToHideMessage):
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::DisplayListDrawingContext::DisplayListDrawingContext):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getExtension):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::printToConsole):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLElementOrFindCustomElementInterface):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::insertAbove):
(WebCore::HTMLElementStack::pushCommon):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
* html/parser/HTMLToken.h:
(WebCore::HTMLToken::beginDOCTYPE):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::decodedHTTPBodySuffixTree):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerTextElement::resolveCustomStyle):
* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::parser):
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::parser):
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::loadTimerFired):
* inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::clearAllWrappers):
* inspector/DOMEditor.cpp:
(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::setAttribute):
(WebCore::DOMEditor::removeAttribute):
(WebCore::DOMEditor::setOuterHTML):
(WebCore::DOMEditor::insertAdjacentHTML):
(WebCore::DOMEditor::replaceWholeText):
(WebCore::DOMEditor::replaceChild):
(WebCore::DOMEditor::setNodeValue):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::createDigest):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::createLazyAgents):
(WebCore::InspectorController::ensureInspectorAgent):
(WebCore::InspectorController::ensureDOMAgent):
(WebCore::InspectorController::ensurePageAgent):
* inspector/InspectorHistory.cpp:
(WebCore::InspectorHistory::markUndoableState):
* inspector/InspectorStyleSheet.cpp:
(ParsedStyleSheet::setSourceData):
(WebCore::InspectorStyleSheet::ensureSourceData):
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::resourceCreated):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::connectFrontend):
(WebCore::WorkerInspectorController::createLazyAgents):
* inspector/agents/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
* inspector/agents/InspectorCPUProfilerAgent.cpp:
(WebCore::InspectorCPUProfilerAgent::InspectorCPUProfilerAgent):
* inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::setStyleSheetText):
(WebCore::InspectorCSSAgent::setStyleText):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
(WebCore::InspectorDOMAgent::highlightFrame):
(WebCore::InspectorDOMAgent::setInspectedNode):
(WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
* inspector/agents/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
* inspector/agents/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
* inspector/agents/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
* inspector/agents/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::InspectorNetworkAgent):
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
* inspector/agents/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
* inspector/agents/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
* inspector/agents/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):
* inspector/agents/WebHeapAgent.cpp:
(WebCore::WebHeapAgent::WebHeapAgent):
* inspector/agents/page/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
* inspector/agents/worker/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::breakpointActionLog):
* layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::displayBoxForLayoutBox const):
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
(WebCore::Layout::LayoutState::createFormattingContext):
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::collectInlineContent const):
* layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
* layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):
* layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::split const):
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::Box):
(WebCore::Layout::Box::ensureRareData):
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::createTableStructure):
(WebCore::Layout::printLayoutTreeForLiveDocuments):
* layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
* loader/ContentFilter.cpp:
(WebCore::ContentFilter::create):
* loader/CrossOriginAccessControl.cpp:
(WebCore::validatePreflightResponse):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::loadApplicationManifest):
(WebCore::DocumentLoader::addAllArchiveResources):
(WebCore::DocumentLoader::addArchiveResource):
(WebCore::DocumentLoader::loadMainResource):
(WebCore::DocumentLoader::didGetLoadDecisionForIcon):
* loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):
(WebCore::FrameLoader::detachChildren):
* loader/LinkLoader.cpp:
(WebCore::createLinkPreloadResourceClient):
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleRedirect):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleFormSubmission):
(WebCore::NavigationScheduler::scheduleRefresh):
(WebCore::NavigationScheduler::scheduleHistoryNavigation):
(WebCore::NavigationScheduler::schedulePageBlock):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::incrementProgress):
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::processNewCueData):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::setBodyDataFrom):
(WebCore::CachedImage::createImage):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::redirectReceived):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::addClientToSet):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::clearPreloads):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::ensureSessionResourceMap):
(WebCore::MemoryCache::addImageToCache):
(WebCore::MemoryCache::lruListFor):
* loader/ios/PreviewLoader.mm:
(-[WebPreviewLoader initWithResourceLoader:resourceResponse:]):
(-[WebPreviewLoader connection:didFailWithError:]):
(WebCore::PreviewLoader::create):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::maybeCreateContextMenu):
* page/DebugPageOverlays.cpp:
(WebCore::MouseWheelRegionOverlay::updateRegion):
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
* page/FrameView.cpp:
(WebCore::FrameView::addEmbeddedObjectToUpdate):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::addScrollableArea):
* page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::pushLayoutState):
(WebCore::FrameViewLayoutContext::pushLayoutStateForPaginationIfNeeded):
* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::serviceWorker):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::initGroup):
(WebCore::Page::setResourceUsageOverlayVisible):
* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
(WebCore::PageConsoleClient::messageWithTypeAndLevel):
(WebCore::PageConsoleClient::screenshot):
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences):
* page/Performance.cpp:
(WebCore::Performance::mark):
(WebCore::Performance::clearMarks):
(WebCore::Performance::measure):
(WebCore::Performance::clearMeasures):
* page/PrintContext.cpp:
(WebCore::PrintContext::outputLinkedDestinations):
* page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::startTimer):
* page/RenderingUpdateScheduler.h:
(WebCore::RenderingUpdateScheduler::create):
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
* page/SettingsBase.cpp:
(WebCore::SettingsBase::SettingsBase):
* page/UserContentController.cpp:
(WebCore::UserContentController::addUserScript):
(WebCore::UserContentController::addUserStyleSheet):
* page/WheelEventDeltaFilter.cpp:
(WebCore::WheelEventDeltaFilter::create):
* page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationController::CSSAnimationController):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
(WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::updateSourceSelf):
* page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::create):
(WebCore::ContentSecurityPolicyDirectiveList::setCSPDirective):
* page/linux/ResourceUsageOverlayLinux.cpp:
(WebCore::ResourceUsageOverlay::platformInitialize):
* page/mac/PageMac.mm:
(WebCore::Page::addSchedulePair):
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
* page/scrolling/ScrollingMomentumCalculator.cpp:
(WebCore::ScrollingMomentumCalculator::create):
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::appendChild):
(WebCore::ScrollingStateNode::insertChild):
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::commit):
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::appendChild):
* page/scrolling/mac/ScrollingMomentumCalculatorMac.mm:
(WebCore::ScrollingMomentumCalculator::create):
* platform/Length.cpp:
(WebCore::convertTo100PercentMinusLength):
(WebCore::blendMixedTypes):
* platform/RemoteCommandListener.cpp:
(WebCore::RemoteCommandListener::create):
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::create):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollAnimator const):
(WebCore::ScrollableArea::ensureSnapOffsetsInfo):
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::AudioBus):
(WebCore::AudioBus::copyWithGainFrom):
* platform/audio/AudioChannel.h:
* platform/audio/AudioResampler.cpp:
(WebCore::AudioResampler::AudioResampler):
(WebCore::AudioResampler::configureChannels):
* platform/audio/DynamicsCompressor.cpp:
(WebCore::DynamicsCompressor::setNumberOfChannels):
* platform/audio/DynamicsCompressorKernel.cpp:
(WebCore::DynamicsCompressorKernel::setNumberOfChannels):
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::createInterpolatedFrame):
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::load):
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::createForSubject):
(WebCore::HRTFElevation::createByInterpolatingSlices):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::HRTFKernel):
(WebCore::HRTFKernel::createImpulseResponse):
* platform/audio/MultiChannelResampler.cpp:
(WebCore::MultiChannelResampler::MultiChannelResampler):
* platform/audio/Panner.cpp:
(WebCore::Panner::create):
* platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::create):
* platform/audio/Reverb.cpp:
(WebCore::Reverb::initialize):
* platform/audio/ReverbConvolver.cpp:
(WebCore::ReverbConvolver::ReverbConvolver):
* platform/audio/ReverbConvolverStage.cpp:
(WebCore::ReverbConvolverStage::ReverbConvolverStage):
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::create):
* platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestination::create):
* platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSession::AudioSession):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::create):
* platform/audio/mac/AudioSampleDataSource.mm:
(WebCore::AudioSampleDataSource::setInputFormat):
(WebCore::AudioSampleDataSource::setOutputFormat):
* platform/audio/mac/AudioSessionMac.cpp:
(WebCore::AudioSession::AudioSession):
* platform/cf/KeyedDecoderCF.cpp:
(WebCore::KeyedDecoder::decoder):
* platform/cf/KeyedEncoderCF.cpp:
(WebCore::KeyedEncoder::encoder):
* platform/cf/MainThreadSharedTimerCF.cpp:
(WebCore::setupPowerObserver):
* platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::create):
* platform/cocoa/ParentalControlsContentFilter.mm:
(WebCore::ParentalControlsContentFilter::create):
* platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::updateScrollSnapPoints):
* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::CDMFactoryClearKey::createCDM):
* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::controllerDidConnect):
* platform/gamepad/mac/HIDGamepadProvider.cpp:
(WebCore::HIDGamepadProvider::deviceAdded):
* platform/generic/KeyedDecoderGeneric.cpp:
(WebCore::KeyedDecoderGeneric::Dictionary::add):
(WebCore::KeyedDecoder::decoder):
(WebCore::KeyedDecoderGeneric::KeyedDecoderGeneric):
* platform/generic/KeyedEncoderGeneric.cpp:
(WebCore::KeyedEncoder::encoder):
* platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimator::create):
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation):
* platform/glib/KeyedDecoderGlib.cpp:
(WebCore::KeyedDecoder::decoder):
* platform/glib/KeyedEncoderGlib.cpp:
(WebCore::KeyedEncoder::encoder):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::startTimer):
(WebCore::BitmapImage::decode):
* platform/graphics/ComplexTextController.cpp:
(WebCore::TextLayout::TextLayout):
* platform/graphics/Font.cpp:
(WebCore::Font::ensureDerivedFontData const):
* platform/graphics/Font.h:
(WebCore::Font::boundsForGlyph const):
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontPlatformData):
* platform/graphics/FontCascade.cpp:
(WebCore::retrieveOrAddCachedFonts):
(WebCore::FontCascade::displayListForTextRun const):
* platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::GlyphPageCacheEntry::setGlyphDataForCharacter):
* platform/graphics/GlyphMetricsMap.h:
(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setTransform):
(WebCore::GraphicsLayer::setChildrenTransform):
* platform/graphics/GraphicsLayer.h:
* platform/graphics/Image.cpp:
(WebCore::Image::startAnimationAsynchronously):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::seekable const):
* platform/graphics/PathUtilities.cpp:
(WebCore::FloatPointGraph::findOrCreateNode):
* platform/graphics/Region.cpp:
(WebCore::Region::setShape):
* platform/graphics/Region.h:
(WebCore::Region::copyShape const):
(WebCore::Region::decode):
* platform/graphics/TextTrackRepresentation.cpp:
(WebCore::TextTrackRepresentation::create):
* platform/graphics/angle/GraphicsContext3DANGLE.cpp:
(WebCore::GraphicsContext3D::getExtensions):
* platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::prepare):
* platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::CDMFactoryFairPlayStreaming::createCDM):
* platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::createSession):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::buffered const):
* platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp:
(WebCore::WebMediaSessionManagerMac::platformPicker):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):
(WebCore::AVFWrapper::notificationCallback):
(WebCore::AVFWrapper::legibleOutputCallback):
(WebCore::AVFWrapper::resourceLoaderShouldWaitForLoadingOfRequestedResource):
(WebCore::AVFWrapper::platformLayer):
* platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
(WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
(WebCore::AudioTrackPrivateAVFObjC::setPlayerItemTrack):
(WebCore::AudioTrackPrivateAVFObjC::setAssetTrack):
(WebCore::AudioTrackPrivateAVFObjC::setMediaSelectionOption):
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setAssetTrack):
* platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjC::readTrackMetadata):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateRotationSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seekable const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::buffered const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):
* platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
(WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
(WebCore::VideoTrackPrivateAVFObjC::setPlayerItemTrack):
(WebCore::VideoTrackPrivateAVFObjC::setAssetTrack):
(WebCore::VideoTrackPrivateAVFObjC::setMediaSelectonOption):
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::setAssetTrack):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::ensureLayerAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::TileController):
(WebCore::TileController::setContentsScale):
(WebCore::TileController::adjustTileCoverageRectForScrolling):
(WebCore::TileController::tiledScrollingIndicatorLayer):
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::setShapeRoundedRect):
* platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:
(-[WebTiledBackingLayer createTileController:]):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::PlatformCALayerWin):
* platform/graphics/ca/win/WebTiledBackingLayerWin.cpp:
(WebTiledBackingLayerWin::createTileController):
* platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::createFactory):
(WebCore::m_private):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::swapBuffersIfNeeded):
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::ensureGraphicsContext):
* platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
(TextTrackRepresentation::create):
* platform/graphics/cv/TextureCacheCV.mm:
(WebCore::TextureCacheCV::create):
* platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::replay):
* platform/graphics/filters/FilterOperation.cpp:
(WebCore::ReferenceFilterOperation::loadExternalDocumentIfNeeded):
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/gpu/Texture.cpp:
(WebCore::Texture::create):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::ensureAudioSourceProvider):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateGStreamerBase::pushNextHolePunchBuffer):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcMakeRequest):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamerMSE::buffered const):
* platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:
(WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):
(WebCore::MediaPlayerPrivateHolePunch::registerMediaEngine):
* platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
* platform/graphics/iso/ISOProtectionSchemeInfoBox.cpp:
(WebCore::ISOProtectionSchemeInfoBox::parse):
* platform/graphics/iso/ISOSchemeInformationBox.cpp:
(WebCore::ISOSchemeInformationBox::parse):
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/nicosia/NicosiaSceneIntegration.cpp:
(Nicosia::SceneIntegration::createUpdateScope):
* platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::createCommand):
* platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:
(Nicosia::PaintingContextCairo::ForPainting::ForPainting):
(Nicosia::PaintingContextCairo::ForRecording::ForRecording):
* platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp:
(Nicosia::BackingStoreTextureMapperImpl::createFactory):
* platform/graphics/nicosia/texmap/NicosiaCompositionLayerTextureMapperImpl.cpp:
(Nicosia::CompositionLayerTextureMapperImpl::createFactory):
* platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::createFactory):
* platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:
(Nicosia::GC3DLayer::swapBuffersIfNeeded):
* platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp:
(Nicosia::ImageBackingTextureMapperImpl::createFactory):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::getExtensions):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::mappedSymbolName):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::getExtensions):
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::getExtensions):
* platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
(WebCore::TextureMapperGC3DPlatformLayer::swapBuffersIfNeeded):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::TextureMapperGL):
(WebCore::TextureMapper::platformCreateAccelerated):
* platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
(WebCore::TextureMapperPlatformLayerBuffer::clone):
* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
* platform/graphics/texmap/coordinated/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::createTiles):
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::operator=):
(WebCore::TransformState::applyTransform):
(WebCore::TransformState::setLastPlanarSecondaryQuad):
* platform/graphics/transforms/TransformState.h:
(WebCore::TransformState::setSecondaryQuad):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FullScreenController.cpp:
(WebCore::FullScreenController::FullScreenController):
(WebCore::FullScreenController::enterFullScreen):
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/win/GraphicsContextDirect2D.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformInit):
* platform/graphics/win/GraphicsContextImplDirect2D.cpp:
(WebCore::GraphicsContextImplDirect2D::createFactory):
(WebCore::m_private):
* platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::createWindowsBitmap):
* platform/graphics/win/ImageBufferDirect2D.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaFoundation::buffered const):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::CustomVideoPresenter):
* platform/graphics/win/WKCAImageQueue.cpp:
(WebCore::WKCAImageQueue::WKCAImageQueue):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForGlobalSelection):
(WebCore::Pasteboard::createForDragAndDrop):
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::writeClipboardContents):
* platform/gtk/RenderThemeGadget.cpp:
(WebCore::RenderThemeGadget::create):
* platform/gtk/RenderThemeWidget.cpp:
(WebCore::RenderThemeWidget::getOrCreate):
(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
(WebCore::RenderThemeComboBox::RenderThemeComboBox):
* platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::decodeHelper):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFFrameContext::decode):
(GIFImageReader::addFrameIfNecessary):
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::decodeAtIndex):
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::decode):
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::decode):
* platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::LegacyTileCache):
(WebCore::LegacyTileCache::commitScaleChange):
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::createForCopyAndPaste):
* platform/ios/QuickLook.mm:
(WebCore::registerQLPreviewConverterIfNeeded):
* platform/ios/RemoteCommandListenerIOS.mm:
(WebCore::RemoteCommandListener::create):
* platform/ios/ScrollAnimatorIOS.mm:
(WebCore::ScrollAnimator::create):
* platform/libwpe/PasteboardLibWPE.cpp:
(WebCore::Pasteboard::createForCopyAndPaste):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):
* platform/mac/RemoteCommandListenerMac.mm:
(WebCore::RemoteCommandListener::create):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimator::create):
* platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::create):
* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
(WebCore::m_capturer):
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource):
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(WebCore::webkit_media_stream_src_init):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource):
(WebCore::m_capturer):
* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::BasicPacketSocketFactory::BasicPacketSocketFactory):
(WebCore::initializePeerConnectionFactoryAndThreads):
(WebCore::LibWebRTCProvider::createPeerConnection):
(WebCore::LibWebRTCProvider::certificateGenerator):
* platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.cpp:
(WebCore::LibWebRTCProviderGStreamer::createDecoderFactory):
(WebCore::LibWebRTCProviderGStreamer::createEncoderFactory):
* platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:
(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
* platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:
(WebCore::MockRealtimeAudioSourceMac::reconfigure):
* platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:
(WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV):
(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):
* platform/mock/RTCNotifiersMock.cpp:
(WebCore::RemoteDataChannelNotifier::fire):
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
(WebCore::MockMediaPlayerMediaSource::buffered const):
* platform/network/BlobResourceHandle.cpp:
* platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::createDecodeTask):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::ResourceHandle):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
* platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask _restart]):
* platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::createPrepareStatement):
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::loadIndex):
(WebCore::CurlCacheManager::didReceiveResponse):
* platform/network/curl/CurlContext.cpp:
(WebCore::CurlContext::CurlContext):
(WebCore::CurlHandle::willSetupSslCtx):
* platform/network/curl/CurlFormDataStream.cpp:
(WebCore::CurlFormDataStream::getPostData):
* platform/network/curl/CurlMultipartHandle.cpp:
(WebCore::CurlMultipartHandle::createIfNeeded):
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::runOnMainThread):
(WebCore::CurlRequest::setupTransfer):
* platform/network/curl/CurlRequestScheduler.cpp:
(WebCore::CurlRequestScheduler::workerThread):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::delegate):
* platform/network/curl/SocketStreamHandleImplCurl.cpp:
(WebCore::SocketStreamHandleImpl::callOnWorkerThread):
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate callFunctionOnMainThread:]):
* platform/network/soup/DNSResolveQueueSoup.cpp:
(WebCore::DNSResolveQueueSoup::resolve):
* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::getCredentialFromPersistentStorage):
* platform/text/BidiResolver.h:
(WebCore::DerivedClass>::appendRunInternal):
* platform/text/LocaleICU.cpp:
(WebCore::Locale::create):
(WebCore::LocaleICU::createLabelVector):
(WebCore::createFallbackMonthLabels):
(WebCore::createFallbackAMPMLabels):
* platform/text/LocaleNone.cpp:
(WebCore::Locale::create):
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::registerCodecs):
* platform/text/TextCodecLatin1.cpp:
(WebCore::TextCodecLatin1::registerCodecs):
* platform/text/TextCodecReplacement.cpp:
(WebCore::TextCodecReplacement::registerCodecs):
* platform/text/TextCodecUTF16.cpp:
(WebCore::TextCodecUTF16::registerCodecs):
* platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::registerCodecs):
* platform/text/TextCodecUserDefined.cpp:
(WebCore::TextCodecUserDefined::registerCodecs):
* platform/text/mac/LocaleMac.mm:
(WebCore::Locale::create):
* platform/text/win/LocaleWin.cpp:
(WebCore::Locale::create):
* platform/text/win/TextCodecWin.cpp:
(WebCore::newTextCodecWin):
* platform/vr/openvr/VRPlatformManagerOpenVR.cpp:
(WebCore::VRPlatformManagerOpenVR::create):
(WebCore::VRPlatformManagerOpenVR::getVRDisplays):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):
* platform/win/SearchPopupMenuDB.cpp:
(WebCore::SearchPopupMenuDB::createPreparedStatement):
* platform/win/WCDataObject.cpp:
(WebCore::WCDataObject::SetData):
* rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildReferenceFilter):
* rendering/ComplexLineLayout.cpp:
(WebCore::createRun):
(WebCore::ComplexLineLayout::createRootInlineBox):
(WebCore::ComplexLineLayout::handleTrailingSpaces):
(WebCore::ComplexLineLayout::linkToEndLineIfNeeded):
* rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::create):
(WebCore::FloatingObject::copyToNewContainer const):
(WebCore::FloatingObject::cloneForNewParent const):
(WebCore::FloatingObjects::computePlacedFloatsTree):
* rendering/Grid.cpp:
(WebCore::GridIterator::nextEmptyGridArea):
* rendering/GridBaselineAlignment.cpp:
(WebCore::GridBaselineAlignment::updateBaselineAlignmentContext):
* rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithm::computeFlexFactorUnitSize const):
(WebCore::GridTrackSizingAlgorithm::setup):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::listBasedTestResult const):
(WebCore::HitTestResult::mutableListBasedTestResult):
* rendering/InlineIterator.h:
(WebCore::addPlaceholderRunForIsolatedInline):
* rendering/LayerOverlapMap.cpp:
(WebCore::LayerOverlapMap::pushCompositingContainer):
* rendering/RenderBlock.cpp:
(WebCore::insertIntoTrackedRendererMaps):
(WebCore::PositionedDescendantsMap::addDescendant):
(WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction):
(WebCore::ensureBlockRareData):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::layoutLineGridBox):
(WebCore::RenderBlockFlow::createFloatingObjects):
(WebCore::RenderBlockFlow::ensureLineBoxes):
(WebCore::RenderBlockFlow::materializeRareBlockFlowData):
* rendering/RenderBox.cpp:
(WebCore::controlStatesForRenderer):
(WebCore::RenderBox::createInlineBox):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::ensureContinuationChainNode):
* rendering/RenderCounter.cpp:
(WebCore::makeCounterNode):
* rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::setRenderBoxFragmentInfo):
* rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::containingFragmentMap):
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::push):
(WebCore::RenderGeometryMap::pushView):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat const):
(WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid const):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::createInlineFlowBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateNormalFlowList):
(WebCore::RenderLayer::collectLayers):
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAncestorClippingStack):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
(WebCore::LegacyWebKitScrollingLayerCoordinator::registerAllViewportConstrainedLayers):
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::createLayer):
* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::createInlineBox):
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::RenderMultiColumnFlow):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::ensureRareData):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::styleDidChange):
* rendering/RenderText.cpp:
(WebCore::RenderText::createTextBox):
(WebCore::RenderText::momentarilyRevealLastTypedCharacter):
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle const):
(WebCore::RenderView::compositor):
(WebCore::RenderView::imageQualityController):
(WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::placeEllipsis):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::appendFloat):
* rendering/SelectionRangeData.cpp:
(WebCore::collect):
(WebCore::SelectionRangeData::collectBounds const):
(WebCore::SelectionRangeData::apply):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::Layout::runResolver const):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::generateLineBoxTree):
* rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizing::addTextNode):
* rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::skipLeadingWhitespace):
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals const):
* rendering/shapes/Shape.cpp:
(WebCore::createInsetShape):
(WebCore::createCircleShape):
(WebCore::createEllipseShape):
(WebCore::createPolygonShape):
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):
* rendering/shapes/ShapeOutsideInfo.h:
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapePath::blend const):
* rendering/style/ContentData.h:
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::clonePtr):
(WebCore::RenderStyle::addCachedPseudoStyle):
(WebCore::RenderStyle::addCustomPaintWatchProperty):
(WebCore::RenderStyle::setContent):
(WebCore::RenderStyle::accessCounterDirectives):
(WebCore::RenderStyle::ensureAnimations):
(WebCore::RenderStyle::ensureTransitions):
* rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleShadowSVGData::StyleShadowSVGData):
* rendering/style/ShadowData.cpp:
(WebCore::ShadowData::ShadowData):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::RenderSVGImage):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::createInlineFlowBox):
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::createTextBox):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives const):
(WebCore::RenderSVGResourceFilter::applyResource):
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::updateShapeFromElement):
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::setClipper):
(WebCore::SVGResources::setFilter):
(WebCore::SVGResources::setMarkerStart):
(WebCore::SVGResources::setMarkerMid):
(WebCore::SVGResources::setMarkerEnd):
(WebCore::SVGResources::setMasker):
(WebCore::SVGResources::setFill):
(WebCore::SVGResources::setStroke):
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderer):
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::RenderTreeUpdater):
* style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::Invalidator):
* style/StyleRelations.cpp:
(WebCore::Style::commitRelationsToRenderStyle):
* style/StyleScope.cpp:
(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::activeStyleSheetsContains const):
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolve):
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::SVGDocumentExtensions):
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::addElementReferencingTarget):
* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::ensureSVGRareData):
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::supplementalTransform):
* svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::copy const):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::schedule):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
* svg/properties/SVGAnimatedDecoratedProperty.h:
(WebCore::SVGAnimatedDecoratedProperty::create):
* svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
* svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
* svg/properties/SVGDecoratedEnumeration.h:
(WebCore::SVGDecoratedEnumeration::create):
* svg/properties/SVGPrimitivePropertyAnimator.h:
(WebCore::SVGPrimitivePropertyAnimator::create):
* svg/properties/SVGValuePropertyAnimatorImpl.h:
* svg/properties/SVGValuePropertyListAnimatorImpl.h:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::from):
* testing/Internals.cpp:
(WebCore::InspectorStubFrontend::InspectorStubFrontend):
(WebCore::Internals::Internals):
(WebCore::Internals::enableMockSpeechSynthesizer):
(WebCore::Internals::openDummyInspectorFrontend):
(WebCore::Internals::setPrinting):
(WebCore::Internals::initializeMockCDM):
(WebCore::Internals::queueMicroTask):
* testing/LegacyMockCDM.cpp:
(WebCore::LegacyMockCDM::createSession):
* testing/MockCDMFactory.cpp:
(WebCore::MockCDMFactory::createCDM):
* testing/MockContentFilter.cpp:
(WebCore::MockContentFilter::create):
* testing/MockGamepadProvider.cpp:
(WebCore::MockGamepadProvider::setMockGamepadDetails):
* workers/WorkerConsoleClient.cpp:
(WebCore::WorkerConsoleClient::messageWithTypeAndLevel):
* workers/WorkerEventQueue.cpp:
(WebCore::WorkerEventQueue::enqueueEvent):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::addMessage):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::WorkerRunLoop):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::createResourceRequest):
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):
* workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::terminateWorker):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::createBlobLoader):
* workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::openSQLiteDatabase):
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::scheduleJob):
(WebCore::SWServer::unregisterServiceWorkerClient):
* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::runRegisterJob):
* worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
* worklets/WorkletConsoleClient.cpp:
(WebCore::WorkletConsoleClient::messageWithTypeAndLevel):
* worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
(WebCore::WorkletGlobalScope::addConsoleMessage):
* worklets/WorkletScriptController.cpp:
(WebCore::WorkletScriptController::initScriptWithSubclass):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::upload):
* xml/XPathFunctions.cpp:
* xml/XPathPredicate.cpp:
(WebCore::XPath::evaluatePredicate):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::loadChildSheet):
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::handleError):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::PendingCallbacks::appendStartElementNSCallback):
(WebCore::PendingCallbacks::appendEndElementNSCallback):
(WebCore::PendingCallbacks::appendCharactersCallback):
(WebCore::PendingCallbacks::appendProcessingInstructionCallback):
(WebCore::PendingCallbacks::appendCDATABlockCallback):
(WebCore::PendingCallbacks::appendCommentCallback):
(WebCore::PendingCallbacks::appendInternalSubsetCallback):
(WebCore::PendingCallbacks::appendErrorCallback):
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::doEnd):

Source/WebCore/PAL:

Reviewed by Geoffrey Garen.

* pal/crypto/openssl/CryptoDigestOpenSSL.cpp:
(PAL::CryptoDigestContextImpl::create):
* pal/system/ClockGeneric.cpp:
(PAL::Clock::create):
* pal/system/mac/ClockCM.mm:
(Clock::create):

Source/WebDriver:

Reviewed by Geoffrey Garen.

* WebDriverService.cpp:
(WebDriver::WebDriverService::connectToBrowser):
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::launchBrowser):
(WebDriver::SessionHost::sendMessageToBackend):

Source/WebKit:

Reviewed by Geoffrey Garen.

* NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:
(WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics):
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
* NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp:
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
(WebKit::DownloadManager::convertNetworkLoadToDownload):
(WebKit::DownloadManager::resumeDownload):
* NetworkProcess/Downloads/DownloadMap.cpp:
(WebKit::DownloadMap::add):
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
* NetworkProcess/NetworkContentRuleListManager.cpp:
(WebKit::NetworkContentRuleListManager::addContentRuleLists):
* NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::NetworkDataTaskBlob):
(WebKit::NetworkDataTaskBlob::download):
* NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
(WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveResponse):
* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::switchToNewTestingSession):
(WebKit::NetworkProcess::ensureSession):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::initializeQuotaUsers):
(WebKit::NetworkProcess::storageQuotaManager):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::addSupplement):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):
(WebKit::NetworkResourceLoader::startNetworkLoad):
* NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
* NetworkProcess/PreconnectTask.cpp:
* NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):
* NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::clone const):
* NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateSessionStorageNamespace):
* NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::add):
* NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::Cache):
(WebKit::NetworkCache::Cache::makeEntry):
(WebKit::NetworkCache::Cache::makeRedirectEntry):
(WebKit::NetworkCache::Cache::update):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::decodeStorageRecord):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresourceLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::readRecord):
(WebKit::NetworkCache::retrieveFromMemory):
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::traverse):
* NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::SubresourcesEntry::decodeStorageRecord):
* NetworkProcess/cache/PrefetchCache.cpp:
(WebKit::PrefetchCache::store):
(WebKit::PrefetchCache::storeRedirect):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):
(WebKit::NetworkProcess::networkHTTPSUpgradeChecker):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSessionCocoa::create):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* NetworkProcess/curl/NetworkProcessCurl.cpp:
(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):
* NetworkProcess/curl/NetworkSessionCurl.h:
* NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:
(WebKit::NetworkConnectionToWebProcess::paymentCoordinator):
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorAuthorizationPresenter):
* NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::download):
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):
* NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::NetworkSessionSoup::createWebSocketTask):
* NetworkProcess/soup/NetworkSessionSoup.h:
* NetworkProcess/soup/WebKitSoupRequestInputStream.cpp:
(webkitSoupRequestInputStreamReadAsync):
* NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
(WebKit::NetworkMDNSRegister::registerMDNSName):
* NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::NetworkRTCMonitor::startUpdating):
* NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::wrapNewTCPConnection):
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::enableIncomingMessagesThrottling):
(IPC::Connection::dispatchSyncMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
* Platform/IPC/Decoder.cpp:
(IPC::Decoder::unwrapForTesting):
* Platform/IPC/HandleMessage.h:
(IPC::handleMessageAsync):
* Platform/IPC/MessageSender.h:
* Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
(IPC::Connection::open):
(IPC::createMessageDecoder):
(IPC::Connection::receiveSourceEventHandler):
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
(IPC::Connection::sendOutputMessage):
* Platform/IPC/win/ConnectionWin.cpp:
(IPC::Connection::readEventHandler):
* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::createForPort):
(WebKit::LayerHostingContext::createForExternalHostingProcess):
(WebKit::LayerHostingContext::createForExternalPluginHostingProcess):
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::createPluginInternal):
* Shared/API/APIURL.h:
(API::URL::create):
(API::URL::parseURLIfNecessary const):
* Shared/API/Cocoa/RemoteObjectInvocation.mm:
(WebKit::RemoteObjectInvocation::decode):
* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _initWithWebPage:]):
(-[_WKRemoteObjectRegistry _initWithWebPageProxy:]):
(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
* Shared/API/glib/WebKitContextMenuItem.cpp:
(webkitContextMenuItemCreate):
(webkit_context_menu_item_new):
(webkit_context_menu_item_new_from_gaction):
(webkit_context_menu_item_new_from_stock_action):
(webkit_context_menu_item_new_from_stock_action_with_label):
(webkit_context_menu_item_new_with_submenu):
(webkit_context_menu_item_new_separator):
* Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
* Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::Handle::decode):
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::texmapLayer):
(WebKit::CoordinatedGraphicsScene::ensureRootLayer):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::registerNPObject):
* Shared/Plugins/Netscape/NetscapePluginModule.cpp:
(WebKit::NetscapePluginModule::tryLoad):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::decode):
* Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
* Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createGraphicsContext):
* Shared/cg/ShareableBitmapCG.cpp:
(WebKit::ShareableBitmap::createGraphicsContext):
* Shared/win/ShareableBitmapDirect2D.cpp:
(WebKit::ShareableBitmap::createGraphicsContext):
* UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::registerObserver):
* UIProcess/API/C/WKContext.cpp:
(WKContextSetInjectedBundleClient):
(WKContextSetHistoryClient):
(WKContextSetDownloadClient):
* UIProcess/API/C/WKGeolocationManager.cpp:
(WKGeolocationManagerSetProvider):
* UIProcess/API/C/WKNotificationManager.cpp:
(WKNotificationManagerSetProvider):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
(WKPageSetPageDiagnosticLoggingClient):
(WKPageSetPageFindClient):
(WKPageSetPageFindMatchesClient):
(WKPageSetPageFormClient):
(WKPageSetPageLoaderClient):
(WKPageSetPagePolicyClient):
(WKPageSetPageUIClient):
(WKPageSetPageStateClient):
* UIProcess/API/C/mac/WKPagePrivateMac.mm:
(-[WKObservablePageState initWithPage:]):
* UIProcess/API/C/wpe/WKView.cpp:
(WKViewSetViewClient):
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController _initWithPageRef:]):
* UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
(-[WKHTTPCookieStore addObserver:]):
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setDownloadDelegate:]):
(-[WKProcessPool _setAutomationDelegate:]):
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
(-[WKWebView _setInputDelegate:]):
* UIProcess/API/Cocoa/_WKAutomationSession.mm:
(-[_WKAutomationSession setDelegate:]):
* UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController init]):
* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::readySQLiteStatement):
* UIProcess/API/glib/WebKitAutomationSession.cpp:
(webkitAutomationSessionConstructed):
* UIProcess/API/glib/WebKitContextMenuClient.cpp:
(attachContextMenuClientToView):
* UIProcess/API/glib/WebKitCustomProtocolManagerClient.cpp:
(attachCustomProtocolManagerClientToContext):
* UIProcess/API/glib/WebKitDownloadClient.cpp:
(attachDownloadClientToContext):
* UIProcess/API/glib/WebKitFaviconDatabase.cpp:
(webkitFaviconDatabaseOpen):
* UIProcess/API/glib/WebKitFindController.cpp:
(webkitFindControllerConstructed):
* UIProcess/API/glib/WebKitFormClient.cpp:
(attachFormClientToView):
* UIProcess/API/glib/WebKitGeolocationManager.cpp:
(webkitGeolocationManagerCreate):
* UIProcess/API/glib/WebKitIconLoadingClient.cpp:
(attachIconLoadingClientToView):
* UIProcess/API/glib/WebKitInjectedBundleClient.cpp:
(attachInjectedBundleClientToContext):
* UIProcess/API/glib/WebKitNotificationProvider.cpp:
(WebKitNotificationProvider::WebKitNotificationProvider):
* UIProcess/API/glib/WebKitUIClient.cpp:
(attachUIClientToView):
* UIProcess/API/glib/WebKitUserContentManager.cpp:
(webkit_user_content_manager_register_script_message_handler):
(webkit_user_content_manager_register_script_message_handler_in_world):
* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed):
(webkit_web_context_set_automation_allowed):
* UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewConstructed):
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createDrawingAreaProxy):
* UIProcess/API/gtk/WebKitEmojiChooser.cpp:
(webkitEmojiChooserSetupEmojiSections):
* UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
(WebKit::RemoteInspectorProtocolHandler::handleRequest):
* UIProcess/API/gtk/WebKitWebInspector.cpp:
(webkitWebInspectorCreate):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseConstructed):
(webkitWebViewBaseGestureController):
(webkitWebViewBaseDragAndDropHandler):
(webkitWebViewBaseDidRelaunchWebProcess):
* UIProcess/API/mac/WKView.mm:
(-[WKView maybeInstallIconLoadingClient]):
(-[WKView initWithFrame:processPool:configuration:]):
* UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::createDrawingAreaProxy):
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::View):
(WKWPE::View::setClient):
* UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::notifyLoadChangedCallback):
(WPEQtView::notifyLoadFailedCallback):
(WPEQtView::runJavaScript):
* UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:
(WPEQtViewBackend::create):
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::WebAutomationSession):
* UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::send):
* UIProcess/Cocoa/IconLoadingDelegate.mm:
(WebKit::IconLoadingDelegate::createIconLoadingClient):
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::createContextMenuClient):
(WebKit::UIDelegate::createUIClient):
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::startDisplayLink):
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended):
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::createDrawingAreaProxy):
(WebKit::WebViewImpl::setTextIndicator):
(WebKit::WebViewImpl::ensureGestureController):
* UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::incorporateUpdate):
(WebKit::DrawingAreaProxyCoordinatedGraphics::dispatchAfterEnsuringDrawing):
* UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::getDataFromDecoder const):
(WebKit::DeviceIdHashSaltStorage::completeDeviceIdHashSaltForOriginCall):
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::setInitialConnectedGamepads):
(WebKit::UIGamepadProvider::platformGamepadConnected):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::createDownloadProxy):
(WebKit::NetworkProcessProxy::takeUploadAssertion):
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy):
(WebKit::WebNotificationManagerProxy::setProvider):
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::pluginRequiresGtk2):
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::didConnectToProcess):
* UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::initializeDebugIndicator):
* UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
* UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::createWithPlainLayer):
* UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
* UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):
* UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
* UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::ScrollingTreeFrameScrollingNodeRemoteMac):
* UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::ScrollingTreeOverflowScrollingNodeRemoteMac):
* UIProcess/WebAuthentication/Cocoa/HidService.mm:
(WebKit::HidService::deviceAdded):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
(WebKit::WebGeolocationManagerProxy::setProvider):
* UIProcess/WebMediaSessionFocusManager.cpp:
(WebKit::WebMediaSessionFocusManager::setFocusedMediaElement):
* UIProcess/WebPageInspectorController.cpp:
(WebKit::WebPageInspectorController::WebPageInspectorController):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::setFormClient):
(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::setIconLoadingClient):
(WebKit::WebPageProxy::setFindClient):
(WebKit::WebPageProxy::setFindMatchesClient):
(WebKit::WebPageProxy::setContextMenuClient):
(WebKit::WebPageProxy::setInjectedBundleClient):
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::setDrawingArea):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::processNextQueuedWheelEvent):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::setFullscreenClient):
(WebKit::WebPageProxy::userMediaPermissionRequestManager):
(WebKit::WebPageProxy::setScrollPerformanceDataCollectionEnabled):
(WebKit::WebPageProxy::speechSynthesisData):
* UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::addProcessIfPossible):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::setInjectedBundleClient):
(WebKit::WebProcessPool::setHistoryClient):
(WebKit::WebProcessPool::setDownloadClient):
(WebKit::WebProcessPool::setAutomationClient):
(WebKit::WebProcessPool::setLegacyCustomProtocolManagerClient):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::didCollectPrewarmInformation):
(WebKit::WebProcessPool::setWebProcessHasUploads):
(WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia):
* UIProcess/WebProcessProxy.cpp:
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend):
* UIProcess/glib/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::inspect):
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::checkRequirements):
* UIProcess/gtk/DragAndDropHandler.cpp:
(WebKit::DragAndDropHandler::dragDataSelection):
* UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::initializeEGL):
* UIProcess/ios/EditableImageController.mm:
(WebKit::EditableImageController::ensureEditableImage):
* UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView didMoveToWindow]):
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
(-[WKContentView _createDrawingAreaProxy:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::elementDidFocus):
(WebKit::WebPageProxy::paymentCoordinatorAuthorizationPresenter):
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::PageClientImpl):
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
* UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]):
* UIProcess/socket/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::inspect):
* UIProcess/socket/RemoteInspectorProtocolHandler.cpp:
(WebKit::RemoteInspectorProtocolHandler::platformStartTask):
* UIProcess/win/BackingStoreDirect2D.cpp:
(WebKit::BackingStore::createBackend):
* UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::createDrawingAreaProxy):
* UIProcess/win/WebView.cpp:
(WebKit::WebView::WebView):
* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::setInitialGamepads):
(WebKit::WebGamepadProvider::gamepadConnected):
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetClient):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetContextMenuClient):
(WKBundlePageSetEditorClient):
(WKBundlePageSetFormClient):
(WKBundlePageSetPageLoaderClient):
(WKBundlePageSetResourceLoadClient):
(WKBundlePageSetUIClient):
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(WKBundlePageOverlayCreate):
* WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
(WKBundlePageBannerCreateBannerWithCALayer):
* WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp:
(WebKit::getOrCreateDOMObjectCacheFrameObserver):
(WebKit::DOMObjectCache::put):
* WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp:
(WebKit::WebKitExtensionManager::initialize):
* WebProcess/InjectedBundle/API/glib/WebKitWebEditor.cpp:
(webkitWebEditorCreate):
* WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp:
(webkitWebExtensionCreate):
* WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
(webkitFrameGetOrCreate):
(webkitWebPageCreate):
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
(-[WKDOMTextIterator initWithRange:]):
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]):
(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::InjectedBundle):
(WebKit::InjectedBundle::setClient):
* WebProcess/Network/WebSocketChannel.cpp:
(WebKit::PendingMessage::PendingMessage):
(WebKit::WebSocketChannel::send):
* WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::LibWebRTCProvider::createSocketFactory):
* WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):
(WebKit::LibWebRTCSocketFactory::createAsyncResolver):
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::PluginDestructionProtector::PluginDestructionProtector):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::scheduleTimer):
* WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::deliverData):
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePluginX11::create):
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::initialize):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::createWebEvent const):
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createColorChooser):
(WebKit::WebChromeClient::createDataListSuggestionPicker):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::showPaintRect):
* WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:
(WebKit::WebPasteboardOverrides::addOverride):
* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
* WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::create):
* WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::ensureBackingStore):
(WebKit::PlatformCALayerRemote::setTransform):
(WebKit::PlatformCALayerRemote::setSublayerTransform):
(WebKit::PlatformCALayerRemote::setFilters):
(WebKit::PlatformCALayerRemote::setShapeRoundedRect):
* WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp:
(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSubframe):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_textAutoSizingAdjustmentTimer):
(WebKit::WebPage::setInjectedBundleContextMenuClient):
(WebKit::WebPage::setInjectedBundleEditorClient):
(WebKit::WebPage::setInjectedBundleFormClient):
(WebKit::WebPage::setInjectedBundlePageLoaderClient):
(WebKit::WebPage::setInjectedBundleResourceLoadClient):
(WebKit::WebPage::setInjectedBundleUIClient):
(WebKit::WebPage::close):
(WebKit::WebPage::beginPrinting):
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::print):
* WebProcess/WebPage/ios/FindControllerIOS.mm:
(WebKit::FindController::updateFindIndicator):
* WebProcess/WebPage/mac/DrawingAreaMac.cpp:
(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::ensureAutomationSessionProxy):
(WebKit::WebProcess::libWebRTCNetwork):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::addSupplement):
* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::Source):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::processTaskStateDidChange):
(WebKit::WebProcess::updateCPUMonitorState):

Source/WebKitLegacy:

Reviewed by Geoffrey Garen.

* Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::StorageSyncManager):
* Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
* Storage/StorageTracker.cpp:
(WebKit::StorageTracker::StorageTracker):
* WebCoreSupport/NetworkStorageSessionMap.cpp:
(NetworkStorageSessionMap::defaultStorageSession):
(NetworkStorageSessionMap::switchToNewTestingSession):
(NetworkStorageSessionMap::ensureSession):

Source/WebKitLegacy/cf:

Reviewed by Geoffrey Garen.

* WebCoreSupport/WebInspectorClientCF.cpp:
(WebInspectorClient::createFrontendSettings):

Source/WebKitLegacy/ios:

Reviewed by Geoffrey Garen.

* WebCoreSupport/WebFixedPositionContent.mm:
(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):

Source/WebKitLegacy/mac:

Reviewed by Geoffrey Garen.

* History/WebHistory.mm:
(-[WebHistoryPrivate init]):
* History/WebHistoryItem.mm:
(-[WebHistoryItem initFromDictionaryRepresentation:]):
* Plugins/Hosted/NetscapePluginHostProxy.mm:
(WKPCGetScriptableNPObjectReply):
(WKPCBooleanReply):
(WKPCBooleanAndDataReply):
(WKPCInstantiatePluginReply):
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::methodNamed):
(WebKit::ProxyInstance::fieldNamed):
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView createPlugin]):
* Plugins/WebNetscapePluginEventHandler.mm:
(WebNetscapePluginEventHandler::create):
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]):
* Storage/WebDatabaseManagerClient.mm:
(DidModifyOriginData::dispatchToMainThread):
* WebCoreSupport/WebFrameLoaderClient.mm:
(addRedirectURL):
(WebFrameLoaderClient::savePlatformDataToCachedFrame):
* WebCoreSupport/WebInspectorClient.mm:
(WebInspectorClient::openLocalFrontend):
* WebView/WebDeviceOrientationProviderMock.mm:
* WebView/WebFrame.mm:
(-[WebFrame _attachScriptDebugger]):
* WebView/WebMediaPlaybackTargetPicker.mm:
(WebMediaPlaybackTargetPicker::create):
* WebView/WebTextIterator.mm:
(-[WebTextIterator initWithRange:]):
* WebView/WebView.mm:
(-[WebView _injectOutlookQuirksScript]):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]):
(-[WebView _selectionServiceController]):
(-[WebView _setTextIndicator:withLifetime:]):
* WebView/WebViewData.mm:
(WebViewLayerFlushScheduler::WebViewLayerFlushScheduler):
(-[WebViewPrivate init]):

Source/WebKitLegacy/win:

Reviewed by Geoffrey Garen.

* FullscreenVideoController.cpp:
(FullscreenVideoController::FullscreenVideoController):
* Plugins/PluginStream.cpp:
(WebCore::PluginStream::didReceiveData):
* Plugins/PluginView.cpp:
(WebCore::PluginView::load):
* Plugins/PluginViewWin.cpp:
(WebCore::PluginView::wndProc):
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::WebChromeClient):
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::WebFrameLoaderClient):
(WebFrameLoaderClient::savePlatformDataToCachedFrame):
* WebCoreSupport/WebInspectorClient.cpp:
(WebInspectorClient::openLocalFrontend):
(WebInspectorClient::highlight):
* WebElementPropertyBag.cpp:
(WebElementPropertyBag::WebElementPropertyBag):
* WebHistoryItem.cpp:
(WebHistoryItem::initFromDictionaryRepresentation):
* WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:
(WKQCA::CAD3DRenderer::createD3DPostProcessingContext):
* WebNotificationCenter.cpp:
(WebNotificationCenter::WebNotificationCenter):
* WebView.cpp:
(WebView::handleMouseEvent):
(WebView::registerEmbeddedViewMIMEType):
(WebView::enterVideoFullscreenForVideoElement):
(WebView::addUserScriptToGroup):
(WebView::addUserStyleSheetToGroup):
(WebView::setAcceleratedCompositing):

Source/WTF:

Reviewed by Geoff Garen.

This patch is second part of bug 200620 patch. I split I split it into three pieces to make roll-out easy.
his part, we convert std::make_unique to WTF::makeUnique or WTF::makeUniqueWithoutFastMallocCheck.
In the third patch, we will add a static_assert to makeUnique, which ensures the given class T is FastMalloced or IsoHeaped.

This patch adds `WTF::makeUnique<T>` and `WTF::makeUniqueWithoutFastMallocCheck<T>` as drop-in replacement for `std::make_unique<T>`.
`WTF::makeUnique<T>` has one additional `static_assert` check which ensures `T` FastMalloc / IsoHeap annotated. If it is not, the
compile error happens.

In this patch, I tried using this everywhere in WebKit as much as possible. And we found that surprisingly many classes are missing
FastMalloc annotation and allocated from system-malloc. Using WTF::makeUnique enforces classes / structs to use FastMalloc.

WTF::makeUniqueWithoutFastMallocCheck is offered for the corner cases. This is identical to std::make_unique. We use this for classes
that are offered by non-WebKit code base, like, zlib. This clear name can make us easily find this allocation is intentionally done
by system-malloc.

We do not take the following direction, `WTF::makeUnique` automatically allocates FastMalloc even if FastMalloc annotation is not attached.
Since default deleter is performing `delete` and this is not what we want for FastMalloced ones, we need to return
std::unique_ptr<T, FastFreeDeleter> for T if T does not have FastMalloc-annotation. Automatically doing this sounds a bit dangerous.

    auto pointer = WTF::makeUnique<T>();
    // Super dangerous, but sometimes it is required...
    auto* rawPointer = pointer.release();
    // Passing rawPointer to somewhere, and
    delete rawPointer;

The above one becomes invalid because pointer may start requiring non `delete` destroying function.
In the above case, the correct way becomes the following.

    rawPointer->~T();
    fastFree(rawPointer);

This looks non-intuitive. And having two ways to destroying objects (`delete` or the above one) can be error-prone.
If we have WTF_MAKE_FAST_ALLOCATED for T, we do not need to care about this. "new" and "delete" operators are defined, and C++ way works.
The simple invariant, "makeUnique just does `new` internally. And `delete` operator does `delete`. default deleter is just doing `delete`", is kept.

While we need to annotate many classes with WTF_MAKE_FAST_ALLOCATED, it is one time cost when we add a class.
And, by introducing `WTF::makeUnique<>`, we no longer forget adding this.

    makeUnique(...)
    static_assert(T is FastMalloced or IsoHeaped);
    return make_unique<T>(...)

* benchmarks/LockFairnessTest.cpp:
* benchmarks/LockSpeedTest.cpp:
* wtf/ConcurrentVector.h:
* wtf/CrossThreadTaskHandler.cpp:
(WTF::CrossThreadTaskHandler::taskRunLoop):
* wtf/FilePrintStream.cpp:
(WTF::FilePrintStream::open):
* wtf/Function.h:
(WTF::Function<Out):
* wtf/HashTable.h:
(WTF::KeyTraits>::HashTable):
* wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):
* wtf/StdLibExtras.h:
(WTF::makeUnique):
(WTF::makeUniqueWithoutFastMallocCheck):
* wtf/StreamBuffer.h:
(WTF::StreamBuffer::append):
* wtf/UniqueRef.h:
(WTF::makeUniqueRefWithoutFastMallocCheck):
(WTF::makeUniqueRef):
* wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::dispatchAfter):
* wtf/text/StringView.cpp:
(WTF::StringView::GraphemeClusters::Iterator::Iterator):

Tools:

Reviewed by Geoffrey Garen.

* DumpRenderTree/TestRunner.cpp:
(addURLToRedirectCallback):
(setWillSendRequestClearHeaderCallback):
(TestRunner::setAccummulateLogsForChannel):
(TestRunner::runUIScript):
(TestRunner::setOpenPanelFiles):
* DumpRenderTree/mac/DumpRenderTree.mm:
(dumpFramesAsText):
* DumpRenderTree/mac/EventSendingController.mm:
(eventPressedMouseButtonsSwizzlerForViewAndEvent):
* DumpRenderTree/win/DRTDataObject.cpp:
(DRTDataObject::SetData):
* DumpRenderTree/win/FrameLoadDelegate.cpp:
(FrameLoadDelegate::FrameLoadDelegate):
* DumpRenderTree/win/UIDelegate.cpp:
(DRTUndoManager::DRTUndoManager):
(UIDelegate::UIDelegate):
(UIDelegate::resetUndoManager):
* TestWebKitAPI/JavaScriptTest.cpp:
(TestWebKitAPI::runJSTest):
* TestWebKitAPI/PlatformUtilities.cpp:
(TestWebKitAPI::Util::toSTD):
* TestWebKitAPI/Tests/WTF/Expected.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::testMovingUsingEnsure):
(TestWebKitAPI::testMovingUsingAdd):
* TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/Lock.cpp:
(TestWebKitAPI::runLockTest):
* TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
* TestWebKitAPI/Tests/WTF/RefCounter.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/Variant.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:
(TestWebKitAPI::CARingBufferTest::SetUp):
* TestWebKitAPI/Tests/WebCore/CalculationValue.cpp:
(TestWebKitAPI::createTestValue):
* TestWebKitAPI/Tests/WebCore/FidoHidMessageTest.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp:
* TestWebKitAPI/Tests/WebKit/CloseFromWithinCreatePage.cpp:
(TestWebKitAPI::createNewPage):
* TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:
(TestWebKitAPI::createNewPage):
* TestWebKitAPI/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp:
* TestWebKitAPI/Tests/WebKit/UserMessage.cpp:
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::SetUp):
* TestWebKitAPI/Tests/WebKit/WillLoad.cpp:
(TestWebKitAPI::WebKit2WillLoadTest::SetUp):
* TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle_Bundle.mm:
(TestWebKitAPI::ForceLightAppearanceInBundleTest::didReceiveMessage):
* TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:
(serverCallback):
(testWebViewAuthenticationProxyHTTPS):
* TestWebKitAPI/Tests/WebKitGtk/DOMDOMWindowTest.cpp:
(WebKitDOMDOMWindowTest::create):
* TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
(TestWebKitAPI::Util::toSTD):
* TestWebKitAPI/cocoa/TestWKWebView.mm:
(applyWorkaroundToAllowWritingAttributedStringsToItemProviders):
(-[TestWKWebView initWithFrame:configuration:addToWindow:]):
* TestWebKitAPI/mac/TestFontOptions.mm:
(-[TestFontOptions initWithFontOptions:]):
* WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::EventSendingController::callAfterScrollingCompletes):
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didCreatePage):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setOpenPanelFiles):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
* WebKitTestRunner/StringFunctions.h:
(WTR::toSTD):
(WTR::toWTFString):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::resetStateToConsistentValues):
(WTR::createTestURL):
(WTR::TestController::runTest):
(WTR::TestController::platformCreateWebView):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::runUISideScript):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
(WTR::TestController::setDefaultCalendarType):
* WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::getGDKKeySymForKeyRef):
* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::setKeyboardInputModeIdentifier):
* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
* WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
(WTR::wpeKeySymForKeyRef):

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

3 months ago[LFC][TFC] Compute column min/max widths and table width.
zalan@apple.com [Sun, 18 Aug 2019 22:16:52 +0000 (22:16 +0000)]
[LFC][TFC] Compute column min/max widths and table width.
https://bugs.webkit.org/show_bug.cgi?id=200757
<rdar://problem/54333148>

Reviewed by Antti Koivisto.

For each column, determine a maximum and minimum column width from the cells that span only that column.
The minimum is that required by the cell with the largest minimum cell width (or the column 'width', whichever is larger).
The maximum is that required by the cell with the largest maximum cell width (or the column 'width', whichever is larger).

* layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns const):
* layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
* layout/tableformatting/TableGrid.h:
(WebCore::Layout::TableGrid::columns):
(WebCore::Layout::TableGrid::rows):

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

3 months ago[JSC] Correct a->an in error messages and API docblocks
ross.kirsling@sony.com [Sun, 18 Aug 2019 20:27:07 +0000 (20:27 +0000)]
[JSC] Correct a->an in error messages and API docblocks
https://bugs.webkit.org/show_bug.cgi?id=200833

Reviewed by Don Olmstead.

JSTests:

* ChakraCore/test/UnitTestFramework/UnitTestFramework.js:
(assert.assert.return.throws):
* stress/promise-finally-should-accept-non-promise-objects.js:
* wasm/js-api/table.js:
(assert.throws):

Source/JavaScriptCore:

* API/JSObjectRef.h:
* builtins/PromiseConstructor.js:
(race):
(reject):
(resolve):
* builtins/PromisePrototype.js:
(finally):
* jsc.cpp:
(functionAsyncTestStart):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseIfStatement):
* wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseResizableLimits):

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

3 months ago[Mac] Use the PID of the WebContent process when issuing local file read sandbox...
pvollan@apple.com [Sun, 18 Aug 2019 19:38:08 +0000 (19:38 +0000)]
[Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=200543
<rdar://problem/49394015>
Source/WebKit:

Reviewed by Brent Fulgham.

Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process
identifier of the WebContent process.

* Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtension::createHandleForReadByPid):
* Shared/SandboxExtension.h:
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadFile):

Source/WTF:

Reviewed by Brent Fulgham.

Add new SPI.

* wtf/Platform.h:
* wtf/spi/darwin/SandboxSPI.h:

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

3 months agoTidy up checks to see if a character is in the Latin-1 range by using isLatin1 consis...
darin@apple.com [Sun, 18 Aug 2019 15:12:19 +0000 (15:12 +0000)]
Tidy up checks to see if a character is in the Latin-1 range by using isLatin1 consistently
https://bugs.webkit.org/show_bug.cgi?id=200861

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

* parser/Lexer.cpp:
(JSC::Lexer<T>::record8): Use isLatin1.
(JSC::assertCharIsIn8BitRange): Deleted. Can just assert isLatin1 directly.
(JSC::Lexer<T>::append8): Assert isLatin1 directly.
(JSC::characterRequiresParseStringSlowCase): Use isLatin1.
* parser/Lexer.h:
(JSC::Lexer<UChar>::isWhiteSpace): Ditto.
* runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::Lexer::lex): Ditto.
(JSC::isSafeStringCharacter): Ditto.
* runtime/Identifier.cpp:
(JSC::Identifier::add8): Ditto.
* runtime/LiteralParser.cpp:
(JSC::isSafeStringCharacter): Ditto.
* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncRepeatCharacter): Ditto.
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce): Ditto.
(JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy): Ditto.
(JSC::Yarr::YarrGenerator::backtrackPatternCharacterNonGreedy): Ditto.

Source/WebCore:

* css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Use isLatin1.
* css/makeSelectorPseudoElementsMap.py: Ditto.
* editing/TextIterator.cpp:
(WebCore::isNonLatin1Separator): Ditto.
(WebCore::isSeparator): Ditto.
* platform/network/HTTPParsers.cpp:
(WebCore::isValidReasonPhrase): Ditto.
(WebCore::isValidHTTPHeaderValue): Ditto.
(WebCore::isValidAcceptHeaderValue): Ditto.
* platform/text/TextCodecLatin1.cpp:
(WebCore::TextCodecLatin1::decode): Ditto.
* platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::handlePartialSequence): Ditto.
(WebCore::TextCodecUTF8::decode): Ditto.

Source/WebKitLegacy/mac:

* Misc/WebKitNSStringExtras.mm:
(canUseFastRenderer): Use isLatin1.

Source/WTF:

* wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::appendCharacters): Use isLatin1 and also call append rather than
calling appendCharacters, since it's the same thing, inlined, and removes the need for
a local variable. Also tweaked the idiom of the code using memcpy.
(WTF::StringBuilder::canShrink const): Reworded a comment.

* wtf/text/StringBuilder.h:
(WTF::StringBuilder::append): Use isLatin1.

* wtf/text/StringCommon.h:
(WTF::isLatin1): Moved this function template here so it can be used here.
(WTF::find): Use isLatin1.

* wtf/text/StringImpl.h:
(WTF::isLatin1): Deleted. Moved to StringCommon.h.
(WTF::reverseFind): Use isLatin1.
(WTF::isSpaceOrNewline): Ditto.

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

3 months agoCrash in Document::deliverResizeObservations
commit-queue@webkit.org [Sun, 18 Aug 2019 14:07:02 +0000 (14:07 +0000)]
Crash in Document::deliverResizeObservations
https://bugs.webkit.org/show_bug.cgi?id=200635

Patch by Cathie Chen <cathiechen@igalia.com> on 2019-08-18
Reviewed by Simon Fraser.

Source/WebCore:

Document::deliverResizeObservations will crash if m_resizeObservers in Document
is modified in JS callbacks when we are traversing observers in m_resizeObservers.
This patch copy m_resizeObservers to a new vector, and check null for observers.

Test: resize-observer/delete-observers-in-callbacks.html

* dom/Document.cpp:
(WebCore::Document::deliverResizeObservations):

LayoutTests:

Test deleting the next/previous sibling of observer list in callbacks, and the order of notifications.

* resize-observer/delete-observers-in-callbacks-expected.txt: Added.
* resize-observer/delete-observers-in-callbacks.html: Added.

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

3 months ago[ESNext] Implement optional chaining
ross.kirsling@sony.com [Sun, 18 Aug 2019 05:54:13 +0000 (05:54 +0000)]
[ESNext] Implement optional chaining
https://bugs.webkit.org/show_bug.cgi?id=200199

Reviewed by Yusuke Suzuki.

JSTests:

* stress/nullish-coalescing.js:
* stress/optional-chaining.js: Added.
* stress/tail-call-recognize.js:

Source/JavaScriptCore:

Implement the optional chaining proposal, which has now reached Stage 3 at TC39.

This introduces a ?. operator which:
 - guards member access when the LHS is nullish, i.e. `null?.foo` and `null?.['foo']` are undefined
 - guards function calls when the LHS is nullish, i.e. `null?.()` is undefined
 - short-circuits over a whole access/call chain, i.e. `null?.a['b'](c++)` is undefined and does not increment c

This feature can be naively viewed as a ternary in disguise, i.e. `a?.b` is like `a == null ? undefined : a.b`.
However, since we must be sure not to double-evaluate the LHS, it's actually rather akin to a try block --
namely, we have the bytecode generator keep an early-out label for use throughout the access and call chain.

(Also note that document.all behaves as an object, so "nullish" means *strictly* equal to null or undefined.)

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::pushOptionalChainTarget): Added.
(JSC::BytecodeGenerator::popOptionalChainTarget): Added.
(JSC::BytecodeGenerator::emitOptionalCheck): Added.
* bytecompiler/BytecodeGenerator.h:
Implement early-out logic.

* bytecompiler/NodesCodegen.cpp:
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode): Refactor so we can emitOptionalCheck in a single location.
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode): Refactor so we can emitOptionalCheck in a single location.
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::CoalesceNode::emitBytecode): Clean up.
(JSC::OptionalChainNode::emitBytecode): Added.
Implement ?. node and emit checks where needed.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
Have OpIsUndefinedOrNull support constant registers.

* parser/ASTBuilder.h:
(JSC::ASTBuilder::createOptionalChain): Added.
(JSC::ASTBuilder::makeDeleteNode):
(JSC::ASTBuilder::makeFunctionCallNode):
* parser/Lexer.cpp:
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
* parser/NodeConstructors.h:
(JSC::OptionalChainNode::OptionalChainNode): Added.
* parser/Nodes.h:
(JSC::ExpressionNode::isOptionalChain const): Added.
(JSC::ExpressionNode::isOptionalChainBase const): Added.
(JSC::ExpressionNode::setIsOptionalChainBase): Added.
* parser/ParserTokens.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::makeFunctionCallNode):
(JSC::SyntaxChecker::createOptionalChain): Added.
Introduce new token and AST node, as well as an ExpressionNode field to mark LHSes with.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
Parse optional chains by wrapping the access/call parse loop.

* runtime/ExceptionHelpers.cpp:
(JSC::functionCallBase):
Ensure that TypeError messages don't include the '?.'.

* runtime/Options.h:
Update feature flag, as ?. and ?? are a double feature of "nullish-aware" operators.

Tools:

* Scripts/run-jsc-stress-tests:

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

3 months agoLayout tests that call resizeTo() crash when run on iOS with IOSurface support enabled
timothy_horton@apple.com [Sun, 18 Aug 2019 05:35:44 +0000 (05:35 +0000)]
Layout tests that call resizeTo() crash when run on iOS with IOSurface support enabled
https://bugs.webkit.org/show_bug.cgi?id=200866
<rdar://problem/50254021>

Reviewed by Simon Fraser.

Source/WebKit:

* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::convertToDeviceSpace):
(WebKit::PageClientImpl::convertToUserSpace):
Implement convertTo{Device,User}Space in PageClientImplIOS.
We don't actually do any conversion. For our purposes, the window is
"device" space, and we never allow iOS WebKit clients to resize the window...
except for in tests! So just pass the rects straight through, instead of
returning an empty rect.

Tools:

* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::windowSnapshotImage):
Replace some logging with release assertions that we are snapshotting a reasonable
view and get a reasonable snapshot back. Failing to snapshot is a big deal, and
"silently" failing with just a log that will be ignored is not helpful.

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

3 months ago[WTF] ThreadGroupRemove test is flaky
ysuzuki@apple.com [Sun, 18 Aug 2019 04:33:58 +0000 (04:33 +0000)]
[WTF] ThreadGroupRemove test is flaky
https://bugs.webkit.org/show_bug.cgi?id=200763

Reviewed by Mark Lam.

ThreadGroup.ThreadGroupRemove test is flaky since its `threadRunning` modification and check in Thread are racy.
It can lead to infinite wait on waitForCompletion. We should do more idiomatic to avoid race: When notifying condition
variables, we should first take a lock, modify the condition shared and notify the condition change while taking a lock,
and releasing the lock after that.

* TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
(TestWebKitAPI::TEST):

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

3 months ago[ESNext] Support hashbang.
ross.kirsling@sony.com [Sun, 18 Aug 2019 02:20:07 +0000 (02:20 +0000)]
[ESNext] Support hashbang.
https://bugs.webkit.org/show_bug.cgi?id=200865

Reviewed by Mark Lam.

JSTests:

* stress/hashbang.js: Added.
* test262/expectations.yaml: Mark 6 cases as passing.

Source/JavaScriptCore:

Hashbang (a.k.a. shebang) support is at Stage 3 in TC39:
https://github.com/tc39/proposal-hashbang

This allows `#!` to be treated like `//`, but only at the very start of the source text.

* parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

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

3 months ago[JSC] DFG ToNumber should support Boolean in fixup
ysuzuki@apple.com [Sun, 18 Aug 2019 01:50:46 +0000 (01:50 +0000)]
[JSC] DFG ToNumber should support Boolean in fixup
https://bugs.webkit.org/show_bug.cgi?id=200864

Reviewed by Mark Lam.

JSTests:

* microbenchmarks/to-number-boolean.js: Added.
(test):
* stress/to-number-boolean-int32.js: Added.
(shouldBe):
(test):
(check):
* stress/to-number-boolean.js: Added.
(shouldBe):
(test):
(check):
* stress/to-number-int32.js: Added.
(shouldBe):
(test):
(check):

Source/JavaScriptCore:

ToNumber should speculate on Boolean, or BooleanOrInt32 in fixup phase to optimize it.

                                  ToT                     Patched

    to-number-boolean      897.6430+-26.8843    ^     87.4802+-5.2831        ^ definitely 10.2611x faster

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupToNumber):

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

3 months ago[JSC] WebAssembly BBQ should switch compile mode for size of modules
ysuzuki@apple.com [Sun, 18 Aug 2019 01:47:58 +0000 (01:47 +0000)]
[JSC] WebAssembly BBQ should switch compile mode for size of modules
https://bugs.webkit.org/show_bug.cgi?id=200807

Reviewed by Mark Lam.

Some webpages use very large Wasm module, and it exhausts all executable memory in ARM64 devices since the size of executable memory region is 128MB.
The long term solution should be introducing Wasm interpreter. But as a short term solution, we introduce heuristics switching back to BBQ B3 at
the sacrifice of start-up time, since BBQ Air bloats such lengthy code, and thereby consumes a large amount of executable memory.

Currently, I picked 10MB since the reported website is using 11MB wasm module.

* runtime/Options.h:
* wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::parseAndCompileAir):
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunctions):
* wasm/WasmModuleInformation.h:
* wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseCode):
* wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::parseCodeSectionSize):

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

3 months agoSource/WebKit:
commit-queue@webkit.org [Sat, 17 Aug 2019 19:13:59 +0000 (19:13 +0000)]
Source/WebKit:
Use bundlePath SPI in AccessibilitySupport for WebProcessLoader
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

* Platform/spi/ios/AccessibilitySupportSPI.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::accessibilityWebProcessLoaderBundlePath):
(WebKit::registerWithAccessibility):

Source/WTF:
Added HAVE_ACCESSIBILITY_BUNDLES_PATH
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

* wtf/Platform.h:

Tools:
Tested that accessibility WebProcessLoader bundle is loaded for the correct path.
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

Added AccessibilityTestPlugin on the web process to report whether a bundle is loaded and its path, so that it can be tested on WKContentView.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestPlugin.mm: Added.
(-[AccessibilityTestPlugin webProcessPlugIn:didCreateBrowserContextController:]):
(-[AccessibilityTestPlugin checkAccessibilityWebProcessLoaderBundleIsLoaded:]):
* TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestSupportProtocol.h: Added.
* TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
(TestWebKitAPI::TEST):

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

3 months agoRename StringBuilder::flexibleAppend(...) to StringBuilder::append(...)
weinig@apple.com [Sat, 17 Aug 2019 18:49:37 +0000 (18:49 +0000)]
Rename StringBuilder::flexibleAppend(...) to StringBuilder::append(...)
https://bugs.webkit.org/show_bug.cgi?id=200756

Reviewed by Darin Adler.

Source/WebCore:

Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).

* Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp:
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitBuiltInsSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledInputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledOutputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitUnpackResourcesAndNamedBuiltIns):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitSignature):
* Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::declareFunction):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitLoop):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitConstantExpressionString):
* Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
* Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
* Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Types::appendNameTo):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
* testing/Internals.cpp:
(WebCore::Internals::ongoingLoadsDescriptions const):

Source/WebKit:

Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).

* WebProcess/WebPage/WebPage.cpp:
(WebKit::dumpHistoryItem):
We have to explicitly access the underlying String of the URL rather than
relying on the implicit conversion since it is now ambiguous which append(...)
overload should be used.

Source/WTF:

Now that there are no remaining multi-parameter or behavior changing overloads
of StringBuilder::append(...), we can rename StringBuilder::flexibleAppend(...)
to StringBuilder::append(...).

This change leaves the existing single parameter overloads StringBuilder::append(...)
for now, and since they have specify specific types, they will continue to be prefered
in overload resolution. Once we have concluded the variadic StringBuilder::append(...)
can provide the same performance as the single parameter variant, we can remove the
single parameter variant.

* wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::pathByAppendingComponents):
* wtf/text/StringBuilder.h:
(WTF::StringBuilder::appendFromAdapters):
(WTF::StringBuilder::append):
(WTF::StringBuilder::flexibleAppendFromAdapters): Deleted.
(WTF::StringBuilder::flexibleAppend): Deleted.
Update for rename from StringBuilder::flexibleAppend(...) to StringBuilder::append(...).

Tools:

Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).

* TestWebKitAPI/Tests/WTF/StringBuilder.cpp:
(TestWebKitAPI::TEST):

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

3 months agoWeb Inspector: make the initial height bigger when attached
drousso@apple.com [Sat, 17 Aug 2019 18:12:29 +0000 (18:12 +0000)]
Web Inspector: make the initial height bigger when attached
https://bugs.webkit.org/show_bug.cgi?id=200855

Reviewed by Joseph Pecoraro.

* Shared/WebPreferences.yaml:
Increase the default attached height from `300px` to `500px`, which is close to the same
amount of area given a 15" MacBook Pro's aspect ratio (default attached width is `750px`).

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

3 months ago[iOS WK2] Scroll indicators disappear sometimes
simon.fraser@apple.com [Sat, 17 Aug 2019 15:27:39 +0000 (15:27 +0000)]
[iOS WK2] Scroll indicators disappear sometimes
https://bugs.webkit.org/show_bug.cgi?id=200791

Reviewed by Tim Horton.
Source/WebKit:

_web_setSubviews: replaces all of the views subviews with the supplied array, but this blows
away views not managed by WebKit, including UIScrollViews scroll indicators. Fix by having
WebKit-managed views implement the WKWebKitControlled protocol, and only removing views
implementing that protocol.

* Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(-[UIView _web_setSubviews:]):
* UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:

Tools:

Tests that test that scroll indicators survive subview replacement, and that
a custom view also survives subview replacement.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/ios/OverflowScrollViewTests.mm: Added.
(TestWebKitAPI::TEST):
* TestWebKitAPI/cocoa/TestWKWebView.h:
* TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView performAfterLoading:]):
(-[UIView wkFirstSubviewWithClass:]):
(-[UIView wkFirstSubviewWithBoundsSize:]):
* TestWebKitAPI/ios/composited.html: Added.
* TestWebKitAPI/ios/overflow-scroll.html: Added.

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

3 months agoContent in <iframe> should override "touch-action" set in embedding document
antti@apple.com [Sat, 17 Aug 2019 08:50:13 +0000 (08:50 +0000)]
Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>

Reviewed by Antoine Quint.

Source/WebKit:

Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').

* UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::touchActionsForPoint):

If the topmost layer hit is a WKChildScrollView we know its content layer didn't have an event region.
This means we should return the default value 'auto'.

LayoutTests:

* pointerevents/ios/touch-action-none-with-frame-inside-expected.txt: Added.
* pointerevents/ios/touch-action-none-with-frame-inside.html: Added.

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

3 months agoWeb Inspector: Sources: gear icons moves to 2nd line when sidebar is narrow
drousso@apple.com [Sat, 17 Aug 2019 08:11:30 +0000 (08:11 +0000)]
Web Inspector: Sources: gear icons moves to 2nd line when sidebar is narrow
https://bugs.webkit.org/show_bug.cgi?id=198017

Reviewed by Joseph Pecoraro.

* UserInterface/Views/NavigationBar.js:
(WI.NavigationBar):
(WI.NavigationBar.prototype.layout):
(WI.NavigationBar.prototype.layout.forceItemHidden): Added.
(WI.NavigationBar.prototype.layout.isDivider): Added.
(WI.NavigationBar.prototype.layout.calculateVisibleItemWidth): Added.
(WI.NavigationBar.prototype.needsLayout): Deleted.
(WI.NavigationBar.prototype.sizeDidChange): Deleted.
(WI.NavigationBar.prototype._updateContent): Deleted.
(WI.NavigationBar.prototype._updateContent.forceItemHidden): Deleted.
(WI.NavigationBar.prototype._updateContent.isDivider): Deleted.
(WI.NavigationBar.prototype._updateContent.calculateVisibleItemWidth): Deleted.
Reset the cached `_minimumWidth` whenever updating in `layout()`.

* UserInterface/Views/NavigationItem.js:
(WI.NavigationItem.prototype.get width):
(WI.NavigationItem.prototype.update): Added.
(WI.NavigationItem.prototype.updateLayout): Deleted.
(WI.NavigationItem.prototype.get totalMargin): Added.
* UserInterface/Views/ButtonNavigationItem.js:
(WI.ButtonNavigationItem.prototype.get totalMargin): Added.
* UserInterface/Views/ButtonNavigationItem.css:
* UserInterface/Views/TextNavigationItem.js:
(WI.TextNavigationItem.prototype.get totalMargin): Added.
* UserInterface/Views/TextNavigationItem.css:
`Element.prototype.getBoundingClientRect` doesn't include the `margin` box of an element.
Rather than create a CSS variable and parse a computed style, save the total `margin` amount
to a getter that can then be added when computing the minimum width.

* UserInterface/Views/Sidebar.js:
(WI.Sidebar):
(WI.Sidebar.prototype._recalculateWidth):
* UserInterface/Views/FlexibleSpaceNavigationItem.js:
(WI.FlexibleSpaceNavigationItem.prototype.update): Added.
(WI.FlexibleSpaceNavigationItem.prototype.updateLayout): Deleted.
* UserInterface/Views/GroupNavigationItem.js:
(WI.GroupNavigationItem.prototype.update): Added.
(WI.GroupNavigationItem.prototype.updateLayout): Deleted.
* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WI.HierarchicalPathNavigationItem.prototype.update): Added.
(WI.HierarchicalPathNavigationItem.prototype.updateLayout): Deleted.
* UserInterface/Views/RadioButtonNavigationItem.js:
(WI.RadioButtonNavigationItem.prototype.update): Added.
(WI.RadioButtonNavigationItem.prototype.updateLayout): Deleted.
Rename `updateLayout` to `update` so it doesn't clash with `WI.View` naming.

* UserInterface/Views/SidebarNavigationBar.js: Removed.
* UserInterface/Main.html:
* UserInterface/Views/NavigationBar.css:
(.navigation-bar .item): Added.
(.navigation-bar .item, .sidebar-navigation-bar > .holder .item): Deleted.
(.sidebar-navigation-bar): Deleted.
(.sidebar-navigation-bar .holder): Deleted.
Remove unnecessary class.

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

3 months agoUse strongly typed identifiers for StorageArea / StorageAreaImpl
cdumez@apple.com [Sat, 17 Aug 2019 05:42:38 +0000 (05:42 +0000)]
Use strongly typed identifiers for StorageArea / StorageAreaImpl
https://bugs.webkit.org/show_bug.cgi?id=200835

Reviewed by Alex Christensen.

Use strongly typed identifiers for StorageArea / StorageAreaImpl. They currently both use uint64_t
and are used in the same code, it is therefore very easy to confused the 2 types of identifiers.

* NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::dispatchEvents const):
* NetworkProcess/WebStorage/StorageArea.h:
(WebKit::StorageArea::identifier):
* NetworkProcess/WebStorage/StorageAreaIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h.
* NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
(WebKit::StorageManagerSet::disconnectFromStorageArea):
(WebKit::StorageManagerSet::getValues):
(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):
* NetworkProcess/WebStorage/StorageManagerSet.h:
* NetworkProcess/WebStorage/StorageManagerSet.messages.in:
* Scripts/webkit/messages.py:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::registerStorageAreaMap):
(WebKit::WebProcess::unregisterStorageAreaMap):
(WebKit::WebProcess::storageAreaMap const):
* WebProcess/WebProcess.h:
* WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
* WebProcess/WebStorage/StorageAreaImpl.h:
* WebProcess/WebStorage/StorageAreaImplIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h.
* WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::loadValuesIfNeeded):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
(WebKit::StorageAreaMap::disconnect):
* WebProcess/WebStorage/StorageAreaMap.h:
(WebKit::StorageAreaMap::identifier const):
* WebProcess/WebStorage/StorageAreaMap.messages.in:

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

3 months agoUnreviewed, rolling out r248772.
commit-queue@webkit.org [Sat, 17 Aug 2019 05:19:47 +0000 (05:19 +0000)]
Unreviewed, rolling out r248772.
https://bugs.webkit.org/show_bug.cgi?id=200853

Causes timeouts in some WebGL tests (Requested by anttik on
#webkit).

Reverted changeset:

"Content in <iframe> should override "touch-action" set in
embedding document"
https://bugs.webkit.org/show_bug.cgi?id=200204
https://trac.webkit.org/changeset/248772

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

3 months ago[macOS] Emoji with variation selectors are rendered in text style, not emoji style
mmaxfield@apple.com [Sat, 17 Aug 2019 04:38:44 +0000 (04:38 +0000)]
[macOS] Emoji with variation selectors are rendered in text style, not emoji style
https://bugs.webkit.org/show_bug.cgi?id=200830
<rdar://problem/53076002>

Reviewed by Simon Fraser.

Source/WebCore:

When mapping characters to glyphs, Core Text is giving us the deleted glyph ID, which is unexpected.
We were treating it as a valid glyph ID, but it rather should be treated as an invalid glyph ID.

Test: fast/text/emoji-variation-selector.html

* platform/graphics/mac/GlyphPageMac.cpp:
(WebCore::GlyphPage::fill):

LayoutTests:

* fast/text/emoji-variation-selector-expected-mismatch.html: Added.
* fast/text/emoji-variation-selector.html: Added.
* platform/win/TestExpectations: Mark as failing on Windows, because it doesn't support variation selectors.

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

3 months ago[WHLSL] Make "operator cast" constructors native
sbarati@apple.com [Sat, 17 Aug 2019 04:13:06 +0000 (04:13 +0000)]
[WHLSL] Make "operator cast" constructors native
https://bugs.webkit.org/show_bug.cgi?id=200748

Reviewed by Myles C. Maxfield.

Source/WebCore:

Tests: webgpu/whlsl/matrix-constructors.html
       webgpu/whlsl/vector-constructors.html

* Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
* Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

* webgpu/whlsl/matrix-constructors-expected.txt: Added.
* webgpu/whlsl/matrix-constructors.html: Added.
* webgpu/whlsl/vector-constructors-expected.txt: Added.
* webgpu/whlsl/vector-constructors.html: Added.

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

3 months agoAdd XCBuild support to ANGLE
krollin@apple.com [Sat, 17 Aug 2019 03:45:45 +0000 (03:45 +0000)]
Add XCBuild support to ANGLE
https://bugs.webkit.org/show_bug.cgi?id=200836
<rdar://problem/54410420>

Reviewed by Alex Christensen.

The ANGLE Xcode project contains two Build Phases: one that copies
some headers, and another that modifies those headers. This
combination does not work with XCBuild, which gets confused when it
finds that headers that it's copied have been changed. When it detects
this, XCBuild thinks that it should recopy those headers on the next
build, causing their modification dates to change and for all
dependent files to be rebuilt. This essentially turns an incremental
rebuild into a full rebuild.

Address this problem by using a new facility in Xcode 11. This
facility supports the copying and modifying headers files in a single
step. It is achieved by first enabling the facility by setting
APPLY_RULES_IN_COPY_HEADERS to YES. Next, we add a new Build Rule that
invokes a custom script when the header files are copied. Third, we
provide this script, which can essentially be a stripped down version
of the one already used to modify the exported headers files. Finally,
we disable the use of that old script when we are using Xcode 11. In
this way, the old script that modifies the exported headers is used in
Xcode 10, and the new facility is used in Xcode 11.

See also Bug 197340 for where this process was also applied to
JavaScriptCore, WebKit, and WebKitLegacy.

* ANGLE.xcodeproj/project.pbxproj:
* Configurations/ANGLE.xcconfig:
* adjust-angle-include-paths-rule: Added.

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

3 months ago[WHLSL] Enums should be shadowed by local variables
mmaxfield@apple.com [Sat, 17 Aug 2019 03:03:37 +0000 (03:03 +0000)]
[WHLSL] Enums should be shadowed by local variables
https://bugs.webkit.org/show_bug.cgi?id=200847

Reviewed by Saam Barati.

Source/WebCore:

Only cause DotExpressions to become EnumerationMemberLiterals if they aren't valid variable names.

Test: webgpu/whlsl/structure-field-enumeration-element-clash.html

* Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
(WebCore::WHLSL::NameResolver::visit):

LayoutTests:

* webgpu/whlsl/structure-field-enumeration-element-clash-expected.txt: Added.
* webgpu/whlsl/structure-field-enumeration-element-clash.html: Added.

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

3 months ago[WHLSL] Add test for the interaction between setters and increments
mmaxfield@apple.com [Sat, 17 Aug 2019 02:56:55 +0000 (02:56 +0000)]
[WHLSL] Add test for the interaction between setters and increments
https://bugs.webkit.org/show_bug.cgi?id=200848

Reviewed by Saam Barati.

As discovered by Robin in https://github.com/gpuweb/WHLSL/issues/308

* webgpu/whlsl/increment-setter-expected.txt: Added.
* webgpu/whlsl/increment-setter.html: Added.

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

3 months agoWeb Inspector: Syntax Highlight more CSS media queries
pecoraro@apple.com [Sat, 17 Aug 2019 02:48:49 +0000 (02:48 +0000)]
Web Inspector: Syntax Highlight more CSS media queries
https://bugs.webkit.org/show_bug.cgi?id=200824

Reviewed by Devin Rousso.

* UserInterface/Views/CodeMirrorAdditions.js:
Special case CSS "error" tokenized values from CodeMirror inside @ rules
to treat some as properties.

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

3 months agoDrop StorageArea::setWorkQueue() member function
cdumez@apple.com [Sat, 17 Aug 2019 01:06:06 +0000 (01:06 +0000)]
Drop StorageArea::setWorkQueue() member function
https://bugs.webkit.org/show_bug.cgi?id=200832

Reviewed by Alex Christensen.

Drop StorageArea::setWorkQueue() member function and pass the WorkQueue to the StorageArea constructor instead.
The WorkQueue can never get updated so an explicit setter is not necessary. It also makes it clearer that the
m_queue data member can never be null.

* NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/LocalStorageNamespace.h:
* NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/SessionStorageNamespace.h:
* NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::clone const):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
* NetworkProcess/WebStorage/StorageArea.h:
(WebKit::StorageArea::setWorkQueue): Deleted.
* NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):
* NetworkProcess/WebStorage/StorageManager.h:
* NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
* NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/TransientLocalStorageNamespace.h:

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

3 months agoLocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted
cdumez@apple.com [Sat, 17 Aug 2019 01:04:53 +0000 (01:04 +0000)]
LocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200825

Reviewed by Alex Christensen.

Source/WebKit:

LocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted. It is currently always
ref'd / deref'd from the com.apple.WebKit.WebStorage serial WorkQueue, save from inside
LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup() on iOS. However, it is probably
not a good idea to set FileSystem metadata from the main thread in platformMaybeExcludeFromBackup()
anyway.

Note that I had to get rid of an old linked-on-after check since those are currently only safe
to do on the main thread. I cleared this with Brady. It has been a while since we've shipped this
behavior now and apps have had a chance to update.

* NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::databasePath const):
* NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
* NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm:
(WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const):
* UIProcess/Cocoa/VersionChecks.h:

Source/WebKitLegacy/mac:

* Misc/WebKitVersionChecks.h:
* Storage/WebStorageManager.mm:
(WebKitInitializeStorageIfNecessary):

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

3 months agoDon't use union to store NodeRareData* and RenderObject*
rniwa@webkit.org [Sat, 17 Aug 2019 00:41:04 +0000 (00:41 +0000)]
Don't use union to store NodeRareData* and RenderObject*
https://bugs.webkit.org/show_bug.cgi?id=200744

Reviewed by Antti Koivisto.

Source/WebCore:

This patch undoes unioning of NodeRareData* and RenderObject* in Node introduced in r133372 in order
to eliminate any possibility of type confusion bugs. Instead of re-introducing the global map, which
is known to be slow, this patch simply adds an extra pointer for NodeRareData: Node::m_rareData.

To compensate for the increased memory usage due to a new pointer type in Node, this patch also packs
the style related flags in ElementRareData, which is the most common reason for which ElementRareData
is created, into RenderObject* pointer using CompactPointerTuple as Node::m_rendererWithStyleFlags.

Unfortunately, there are 9 style related flags and they won't all fit into the single byte provided
by CompactPointerTuple. Luckily, this patch also eliminates the need for HasRareDataFlag as m_rareData
knows whether a node has rare data or not so we re-use that bitflag space for the extra one flag.

No new tests since there should be no observable behavioral change from this.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild): Check the nullity of
m_rareData directly instead of checking HasRareDataFlag, which has been removed.
* dom/Element.cpp:
(WebCore::Element::setStyleAffectedByEmpty): Deleted.
(WebCore::Element::setStyleAffectedByFocusWithin): Deleted.
(WebCore::Element::setStyleAffectedByActive): Deleted.
(WebCore::Element::setChildrenAffectedByDrag): Deleted.
(WebCore::Element::setChildrenAffectedByForwardPositionalRules): Deleted.
(WebCore::Element::setDescendantsAffectedByForwardPositionalRules): Deleted.
(WebCore::Element::setChildrenAffectedByBackwardPositionalRules): Deleted.
(WebCore::Element::setDescendantsAffectedByBackwardPositionalRules): Deleted.
(WebCore::Element::setChildrenAffectedByPropertyBasedBackwardPositionalRules): Deleted.
(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
(WebCore::Element::resetStyleRelations): Clear the flags in m_rendererWithStyleFlags and m_nodeFlags.
(WebCore::Element::rareDataStyleAffectedByEmpty const): Deleted.
(WebCore::Element::rareDataStyleAffectedByFocusWithin const): Deleted.
(WebCore::Element::rareDataStyleAffectedByActive const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByDrag const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules const): Deleted.
(WebCore::Element::rareDataDescendantsAffectedByForwardPositionalRules const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByBackwardPositionalRules const): Deleted.
(WebCore::Element::rareDataDescendantsAffectedByBackwardPositionalRules const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByPropertyBasedBackwardPositionalRules const): Deleted.
* dom/Element.h:
(WebCore::Element::styleAffectedByActive const): Now uses m_rendererWithStyleFlags.
(WebCore::Element::styleAffectedByEmpty const): Ditto.
(WebCore::Element::styleAffectedByFocusWithin const): Now uses m_nodeFlags.
(WebCore::Element::childrenAffectedByDrag const): Now uses m_rendererWithStyleFlags.
(WebCore::Element::childrenAffectedByForwardPositionalRules const): Ditto.
(WebCore::Element::descendantsAffectedByForwardPositionalRules const): Ditto.
(WebCore::Element::childrenAffectedByBackwardPositionalRules const): Ditto.
(WebCore::Element::descendantsAffectedByBackwardPositionalRules const): Ditto.
(WebCore::Element::childrenAffectedByPropertyBasedBackwardPositionalRules const): Ditto.
(WebCore::Element::setStyleAffectedByEmpty): Now stores into m_rendererWithStyleFlags.
(WebCore::Element::setStyleAffectedByFocusWithin): Now uses m_nodeFlags.
(WebCore::Element::setDescendantsAffectedByPreviousSibling): Removed const qualifier & useless return.
(WebCore::Element::setStyleAffectedByActive): Now stores into m_rendererWithStyleFlags.
(WebCore::Element::setChildrenAffectedByDrag): Ditto.
(WebCore::Element::setChildrenAffectedByForwardPositionalRules): Ditto.
(WebCore::Element::setDescendantsAffectedByForwardPositionalRules): Ditto.
(WebCore::Element::setChildrenAffectedByBackwardPositionalRules): Ditto.
(WebCore::Element::setDescendantsAffectedByBackwardPositionalRules): Ditto.
(WebCore::Element::setChildrenAffectedByPropertyBasedBackwardPositionalRules): Ditto.
* dom/ElementRareData.h:
(WebCore::ElementRareData::styleAffectedByActive const): Deleted.
(WebCore::ElementRareData::setStyleAffectedByActive): Deleted.
(WebCore::ElementRareData::styleAffectedByEmpty const): Deleted.
(WebCore::ElementRareData::setStyleAffectedByEmpty): Deleted.
(WebCore::ElementRareData::styleAffectedByFocusWithin const): Deleted.
(WebCore::ElementRareData::setStyleAffectedByFocusWithin): Deleted.
(WebCore::ElementRareData::childrenAffectedByDrag const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByDrag): Deleted.
(WebCore::ElementRareData::childrenAffectedByLastChildRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByLastChildRules): Deleted.
(WebCore::ElementRareData::childrenAffectedByForwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules): Deleted.
(WebCore::ElementRareData::descendantsAffectedByForwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setDescendantsAffectedByForwardPositionalRules): Deleted.
(WebCore::ElementRareData::childrenAffectedByBackwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByBackwardPositionalRules): Deleted.
(WebCore::ElementRareData::descendantsAffectedByBackwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setDescendantsAffectedByBackwardPositionalRules): Deleted.
(WebCore::ElementRareData::childrenAffectedByPropertyBasedBackwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByPropertyBasedBackwardPositionalRules): Deleted.
(WebCore::ElementRareData::useTypes const): Removed UseType::StyleFlags.
(WebCore::ElementRareData::ElementRareData): No longer takes RenderElement*.
(WebCore::ElementRareData::resetStyleRelations): Only re-sets child index now since that's all left.
* dom/Node.cpp:
(WebCore::stringForRareDataUseType): Removed UseType::StyleFlags since there is no style related
flags in ElementRareData.
(WebCore::Node::materializeRareData): Simplified now that m_rareData is not a union.
(WebCore::Node::clearRareData): Ditto.
* dom/Node.h:
(WebCore::NodeRareDataBase): Deleted.
(WebCore::Node::renderer const):
(WebCore::Node::rareDataMemoryOffset):
(WebCore::Node::flagHasRareData): Deleted.
(WebCore::Node::NodeFlags): Replaced HasRareDataFlag with StyleAffectedByFocusWithinFlag.
(WebCore::Node::ElementStyleFlag): Added.
(WebCore::Node::hasStyleFlag const): Added. Checks a reprense of a flag in m_rendererWithStyleFlags.
(WebCore::Node::setStyleFlag): Ditto for setting a flag.
(WebCore::Node::clearStyleFlags): Ditto for clearing all flags.
(WebCore::Node::hasRareData const): Now checks the nullity of m_rareData directly.
(WebCore::Node::rareData const):
* dom/NodeRareData.cpp: The size of NodeRareData is shrunk by one pointer.
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData): No longer inherits from NodeRareDataBase which was needed to
to store RenderObject*.
(WebCore::Node::rareData const): Moved to Node.h.
* rendering/RenderObject.h:
(WebCore::Node::setRenderer): Moved from Node.h since CompactPointerTuple::setPointer has the
aforementioned static_assert which requires the definition of RenderObject.

Source/WTF:

Moved the static assert which requires the type of the object to which the pointer type points
into setPointer so that we can use CompactPointerTuple<T*, U> as a member variable
with just a forward declaration of T.

* wtf/CompactPointerTuple.h:
(WTF::CompactPointerTuple::setPointer):

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

3 months ago[ContentChangeObserver] Keep track of all the visibility candidates.
ryanhaddad@apple.com [Sat, 17 Aug 2019 00:17:07 +0000 (00:17 +0000)]
[ContentChangeObserver] Keep track of all the visibility candidates.
https://bugs.webkit.org/show_bug.cgi?id=200777

Unreviewed test gardening.

* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2-expected.txt: Update baseline.

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

3 months ago[WHLSL] Add comparison operators for vectors and matrices
sbarati@apple.com [Sat, 17 Aug 2019 00:08:07 +0000 (00:08 +0000)]
[WHLSL] Add comparison operators for vectors and matrices
https://bugs.webkit.org/show_bug.cgi?id=200823

Reviewed by Myles C. Maxfield.

Source/WebCore:

Tests: webgpu/whlsl/matrix-compare.html
       webgpu/whlsl/vector-compare.html

* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

* webgpu/whlsl/matrix-compare-expected.txt: Added.
* webgpu/whlsl/matrix-compare.html: Added.
* webgpu/whlsl/vector-compare-expected.txt: Added.
* webgpu/whlsl/vector-compare.html: Added.

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

3 months agoLocalStorageDatabase should use inline initialization for its data members
cdumez@apple.com [Sat, 17 Aug 2019 00:04:00 +0000 (00:04 +0000)]
LocalStorageDatabase should use inline initialization for its data members
https://bugs.webkit.org/show_bug.cgi?id=200828

Reviewed by John Wilander.

* NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
* NetworkProcess/WebStorage/LocalStorageDatabase.h:

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

3 months agoAdd John Wilander as WebKit Reviewer
wilander@apple.com [Fri, 16 Aug 2019 23:51:21 +0000 (23:51 +0000)]
Add John Wilander as WebKit Reviewer
https://bugs.webkit.org/show_bug.cgi?id=200837

Unreviewed update to contributors.json to change my status to reviewer.
See email on reviewers mailing list for proof of granted privileges.

* Scripts/webkitpy/common/config/contributors.json:

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

3 months agoMore missing exception checks in string comparison operators.
mark.lam@apple.com [Fri, 16 Aug 2019 23:49:27 +0000 (23:49 +0000)]
More missing exception checks in string comparison operators.
https://bugs.webkit.org/show_bug.cgi?id=200844
<rdar://problem/54378684>

Reviewed by Saam Barati.

JSTests:

* stress/missing-exception-check-in-string-greater-than-compare.js: Added.
* stress/missing-exception-check-in-string-greater-than-or-equal-compare.js: Added.
* stress/missing-exception-check-in-string-less-than-compare.js: Added.
* stress/missing-exception-check-in-string-less-than-or-equal-compare.js: Added.

Source/JavaScriptCore:

* runtime/Operations.h:
(JSC::jsLess):
(JSC::jsLessEq):

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

3 months agoUnreviewed. When I rebased to land r248795, I had a bad merge in
sbarati@apple.com [Fri, 16 Aug 2019 23:02:16 +0000 (23:02 +0000)]
Unreviewed. When I rebased to land r248795, I had a bad merge in
WHLSLStandardLibrary.txt where the bool matrix constructors ended
up in the wrong section of the standard library.

* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

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

3 months agoCodeBlock destructor should clear all of its watchpoints.
mark.lam@apple.com [Fri, 16 Aug 2019 22:49:26 +0000 (22:49 +0000)]
CodeBlock destructor should clear all of its watchpoints.
https://bugs.webkit.org/show_bug.cgi?id=200792
<rdar://problem/53947800>

Reviewed by Yusuke Suzuki.

JSTests:

* stress/codeblock-should-clear-watchpoints-on-destruction.js: Added.

Source/JavaScriptCore:

We need to clear the watchpoints explicitly (just like we do in CodeBlock::jettison())
because the JITCode may outlive the CodeBlock for a while.  For example, the JITCode
is ref'd in Interpreter::execute(JSC::CallFrameClosure&) like so:

    JSValue result = closure.functionExecutable->generatedJITCodeForCall()->execute(&vm, closure.protoCallFrame);

The call to generatedJITCodeForCall() returns a Ref<JITCode> with the underlying
JITCode ref'd.  Hence, while the interpreter frame is still on the stack, the
executing JITCode instance will have a non-zero refCount, and be kept alive even
though its CodeBlock may have already been destructed.

Note: the Interpreter execute() methods aren't the only ones who would ref the JITCode:
ExecutableBase also holds a RefPtr<JITCode> m_jitCodeForCall and RefPtr<JITCode>
m_jitCodeForConstruct.  But a CodeBlock will be uninstalled before it gets destructed.
Hence, the uninstallation will deref the JITCode before we get to the CodeBlock
destructor.  That said, we should be aware that a JITCode's refCount is not always
1 after the JIT installs it into the CodeBlock, and it should not be assumed to be so.

For this patch, I also audited all Watchpoint subclasses to ensure that we are
clearing all the relevant watchpoints in the CodeBlock destructor.  Here is the
list of audited Watchpoints:

    CodeBlockJettisoningWatchpoint
    AdaptiveStructureWatchpoint
    AdaptiveInferredPropertyValueWatchpoint
        - these are held in the DFG::CommonData, and is tied to JITCode's life cycle.
        - they need to be cleared eagerly in CodeBlock's destructor.

    LLIntPrototypeLoadAdaptiveStructureWatchpoint
        - stored in m_llintGetByIdWatchpointMap in the CodeBlock.
        - this will be automatically cleared on CodeBlock destruction.

The following does not reference CodeBlock:

    FunctionRareData::AllocationProfileClearingWatchpoint
        - stored in FunctionRareData and will be cleared automatically on
          FunctionRareData destruction.
        - only references the owner FunctionRareData.

    ObjectToStringAdaptiveStructureWatchpoint
    ObjectToStringAdaptiveInferredPropertyValueWatchpoint
        - stored in StructureRareData and will be cleared automatically on
          StructureRareData destruction.

    ObjectPropertyChangeAdaptiveWatchpoint
        - stored in JSGlobalObject, and will be cleared automatically on
          JSGlobalObject destruction.
        - only references the owner JSGlobalObject.

    StructureStubClearingWatchpoint
        - stored in WatchpointsOnStructureStubInfo and will be cleared automatically
          on WatchpointsOnStructureStubInfo destruction.

    PropertyWatchpoint
    StructureWatchpoint
        - embedded in AdaptiveInferredPropertyValueWatchpointBase, which is extended
          as AdaptiveInferredPropertyValueWatchpoint, ObjectPropertyChangeAdaptiveWatchpoint,
          and ObjectToStringAdaptiveInferredPropertyValueWatchpoint.
        - life cycle is handled by those 3 subclasses.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::~CodeBlock):

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

3 months agoVersioning.
alancoon@apple.com [Fri, 16 Aug 2019 22:14:26 +0000 (22:14 +0000)]
Versioning.

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

3 months agoFix InBounds speculation of typed array PutByVal and add extra step to integer range...
justin_michaud@apple.com [Fri, 16 Aug 2019 21:33:28 +0000 (21:33 +0000)]
Fix InBounds speculation of typed array PutByVal and add extra step to integer range optimization to search for equality relationships on the RHS value
https://bugs.webkit.org/show_bug.cgi?id=200782

Reviewed by Saam Barati.

JSTests:

* microbenchmarks/int8-out-of-bounds.js: Added.
(foo):
* microbenchmarks/memcpy-typed-loop.js: Added.
(doTest):
(let.arr1.new.Int32Array.1000.let.arr2.new.Int32Array.1000):
(arr2):
* stress/int8-repeat-in-then-out-of-bounds.js: Added.
(foo):

Source/JavaScriptCore:

Speculate that putByVals on typed arrays are in bounds initially, and add an extra rule to integer range optimization to
remove CheckInBounds when we are looping over two arrays. We do this by fixing a bug in the llint slow paths that marked
typed array accesses as out of bounds, and we also add an extra step to integer range optimization to search for equality
relationships on the RHS value.

Microbenchmarks give a 40% improvement on the memcpy loop test, and neutral on the out-of-bounds typed array test.

* dfg/DFGIntegerRangeOptimizationPhase.cpp:
* dfg/DFGOperations.cpp:
(JSC::DFG::putByVal):
* jit/JITOperations.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/JSGenericTypedArrayView.h:
* runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::canGetIndexQuickly const):
(JSC::JSObject::getIndexQuickly const):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::setIndexQuickly):
* runtime/JSObjectInlines.h:
(JSC::JSObject::canGetIndexQuicklyForTypedArray const):
(JSC::JSObject::canSetIndexQuicklyForTypedArray const):
(JSC::JSObject::getIndexQuicklyForTypedArray const):
(JSC::JSObject::setIndexQuicklyForTypedArray):

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

3 months agoFunctions with no parameters in WebKit/Shared/API/c and WebKit/UIProcess/API/C are
commit-queue@webkit.org [Fri, 16 Aug 2019 21:13:40 +0000 (21:13 +0000)]
Functions with no parameters in WebKit/Shared/API/c and WebKit/UIProcess/API/C are
missing a "void" specifier in their argument list
https://bugs.webkit.org/show_bug.cgi?id=200826

Patch by Kate Cheney <katherine_cheney@apple.com> on 2019-08-16
Reviewed by Chris Dumez.

Added void to indicate functions with no arguments to satisfy compiler errors.
This error came to light when fixing another patch.

* Shared/API/c/WKArray.h:
* Shared/API/c/WKConnectionRef.h:
* Shared/API/c/WKContextMenuItem.h:
* Shared/API/c/WKData.h:
* Shared/API/c/WKDictionary.h:
* Shared/API/c/WKErrorRef.h:
* Shared/API/c/WKMutableArray.h:
* Shared/API/c/WKMutableDictionary.h:
* Shared/API/c/WKNumber.h:
* Shared/API/c/WKPluginInformation.h:
* Shared/API/c/WKRenderLayer.h:
* Shared/API/c/WKRenderObject.h:
* Shared/API/c/WKSecurityOriginRef.h:
* Shared/API/c/WKSerializedScriptValue.h:
* Shared/API/c/WKString.h:
* Shared/API/c/WKURL.h:
* Shared/API/c/WKURLRequest.h:
* Shared/API/c/WKURLResponse.h:
* Shared/API/c/WKUserContentURLPattern.h:
* UIProcess/API/C/WKBackForwardListItemRef.h:
* UIProcess/API/C/WKBackForwardListRef.h:
* UIProcess/API/C/WKContext.h:
* UIProcess/API/C/WKFormSubmissionListener.h:
* UIProcess/API/C/WKFrame.h:
* UIProcess/API/C/WKFramePolicyListener.h:
* UIProcess/API/C/WKGeolocationManager.h:
* UIProcess/API/C/WKGeolocationPermissionRequest.h:
* UIProcess/API/C/WKGeolocationPosition.h:
* UIProcess/API/C/WKHitTestResult.h:
* UIProcess/API/C/WKNavigationDataRef.h:
* UIProcess/API/C/WKOpenPanelParametersRef.h:
* UIProcess/API/C/WKOpenPanelResultListener.h:
* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPageConfigurationRef.h:
* UIProcess/API/C/WKPageGroup.h:
* UIProcess/API/C/WKPageUIClient.h:
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/API/C/WKUserContentControllerRef.h:
* UIProcess/API/C/WKUserMediaPermissionRequest.h:
* UIProcess/API/C/WKUserScriptRef.h:

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

3 months ago[Re-land] ProxyObject should not be allow to access its target's private properties.
mark.lam@apple.com [Fri, 16 Aug 2019 21:03:44 +0000 (21:03 +0000)]
[Re-land] ProxyObject should not be allow to access its target's private properties.
https://bugs.webkit.org/show_bug.cgi?id=200739
<rdar://problem/53972768>

Reviewed by Yusuke Suzuki.

JSTests:

* stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js: Copied from JSTests/stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js.
* stress/proxy-with-private-symbols.js:

Source/JavaScriptCore:

Re-landing this after r200829 which resolves the test262 failure uncovered by this patch.

* runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::performPut):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performDefineOwnProperty):

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

3 months ago[WHLSL] Make operator== native and add bool matrices
sbarati@apple.com [Fri, 16 Aug 2019 20:59:29 +0000 (20:59 +0000)]
[WHLSL] Make operator== native and add bool matrices
https://bugs.webkit.org/show_bug.cgi?id=200749

Reviewed by Myles C. Maxfield.

Source/WebCore:

This patch makes operator== native and implements them the right way
for vectors and matrices. Previously, we would just return a single
boolean indicating if all elements were equal. However, to be compatible
with HLSL, we should return a boolean vector or matrix, indicating which
elements are equal or not. This patch makes this change, and in the process,
adds a bool matrix.

This patch also:
- Lifts the requirement that all comparison operators in user code must return bool.
We no longer follow this in the standard library, and don't want to require user
code to do so. It seems reasonable to have a custom comparison operator
which returns an enum of the form { LessThan, Equal, GreaterThan, Incomparable }
- Changes the native operator inliner to no longer assume that operations on
matrices return the same type as the arguments. This was true for math, but
is not true for comparison operators.

Tests: webgpu/whlsl/bool-matrix.html
       webgpu/whlsl/operator-equal-equal.html

* Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
* Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:
(WebCore::WHLSL::Metal::writeNativeType):
* Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::checkOperatorOverload):
* Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:
(WebCore::WHLSL::Intrinsics::addMatrix):
* Modules/webgpu/WHLSL/WHLSLIntrinsics.h:
(WebCore::WHLSL::Intrinsics::WTF_ARRAY_LENGTH):
* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

* webgpu/whlsl/bool-matrix-expected.txt: Added.
* webgpu/whlsl/bool-matrix.html: Added.
* webgpu/whlsl/builtin-vectors.html:
* webgpu/whlsl/matrices-spec-tests.html:
* webgpu/whlsl/operator-equal-equal-expected.txt: Added.
* webgpu/whlsl/operator-equal-equal.html: Added.

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

3 months agoLocalStorageDatabase does not need to subclass ThreadSafeRefCounted
cdumez@apple.com [Fri, 16 Aug 2019 20:56:00 +0000 (20:56 +0000)]
LocalStorageDatabase does not need to subclass ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200822

Reviewed by Geoff Garen.

LocalStorageDatabase does not need to subclass ThreadSafeRefCounted, it is only ref'd / deref'd by the StorageArea
on the com.apple.WebKit.WebStorage serial WorkQueue, and in LocalStorageDatabase::scheduleDatabaseUpdate() on the
same WorkQueue.

* NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
(WebKit::LocalStorageDatabase::~LocalStorageDatabase):
* NetworkProcess/WebStorage/LocalStorageDatabase.h:

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

3 months ago[JSC] Promise.prototype.finally should accept non-promise objects
ysuzuki@apple.com [Fri, 16 Aug 2019 20:44:37 +0000 (20:44 +0000)]
[JSC] Promise.prototype.finally should accept non-promise objects
https://bugs.webkit.org/show_bug.cgi?id=200829

Reviewed by Mark Lam.

JSTests:

* stress/promise-finally-should-accept-non-promise-objects.js: Added.
(shouldBe):
(Thenable):
(Thenable.prototype.then):

Source/JavaScriptCore:

According to the Promise.prototype.finally spec step 2[1], we should check @isObject instead of @isPromise,
since Promise.prototype.finally should accept thenable objects that are defined by user libraries (like, bluebird for example).
This patch changes this check to the specified one.

[1]: https://tc39.es/proposal-promise-finally/

* builtins/PromisePrototype.js:
(finally):

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

3 months agoMany WebStorage classes do not need to subclass ThreadSafeRefCounted
cdumez@apple.com [Fri, 16 Aug 2019 20:43:45 +0000 (20:43 +0000)]
Many WebStorage classes do not need to subclass ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200821

Reviewed by Geoffrey Garen.

Many WebStorage classes do not need to subclass ThreadSafeRefCounted. They never get ref'd or deref'd.

* NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::LocalStorageNamespace::clearAllStorageAreas):
* NetworkProcess/WebStorage/LocalStorageNamespace.h:
* NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/SessionStorageNamespace.h:
* NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::clone const):
* NetworkProcess/WebStorage/StorageArea.h:
* NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateSessionStorageNamespace):
* NetworkProcess/WebStorage/StorageManager.h:
* NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
* NetworkProcess/WebStorage/TransientLocalStorageNamespace.h:

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

3 months agoLong pressing images with transparent backgrounds in dark mode causes a black backgro...
dino@apple.com [Fri, 16 Aug 2019 20:33:06 +0000 (20:33 +0000)]
Long pressing images with transparent backgrounds in dark mode causes a black background to appear around the image content
https://bugs.webkit.org/show_bug.cgi?id=200827
<rdar://53933379>

Reviewed by Tim Horton.

Set a clear color when there is no provided background.

* UIProcess/ios/WKContentViewInteraction.mm:
(createTargetedPreview):

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

3 months ago[ContentChangeObserver] Add ContentChangeObserver::elementDidBecomeHidden
zalan@apple.com [Fri, 16 Aug 2019 20:24:53 +0000 (20:24 +0000)]
[ContentChangeObserver] Add ContentChangeObserver::elementDidBecomeHidden
https://bugs.webkit.org/show_bug.cgi?id=200819
Source/WebCore:

Reviewed by Simon Fraser.

r248750 started tracking candidate elements that become hidden through renderer destruction. This patch expands the check for other visibility style changes.
<rdar://problem/54400223>

Test: fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3.html

* page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::rendererWillBeDestroyed):
(WebCore::ContentChangeObserver::elementDidBecomeHidden):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
* page/ios/ContentChangeObserver.h:

LayoutTests:

<rdar://problem/54400223>

Reviewed by Simon Fraser.

* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3-expected.txt: Added.
* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3.html: Added.

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

3 months ago[Win] WebCoreTestSupport is too big to link
ross.kirsling@sony.com [Fri, 16 Aug 2019 20:12:56 +0000 (20:12 +0000)]
[Win] WebCoreTestSupport is too big to link
https://bugs.webkit.org/show_bug.cgi?id=200820

Reviewed by Don Olmstead.

* Source/cmake/OptionsWin.cmake:
As with WebCore itself, build WebCoreTestSupport as an object library when unified builds are disabled
(and we haven't explicitly asked to build it as a shared library).

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

3 months agoPromise constructor should check argument before [[Construct]]
commit-queue@webkit.org [Fri, 16 Aug 2019 20:09:39 +0000 (20:09 +0000)]
Promise constructor should check argument before [[Construct]]
https://bugs.webkit.org/show_bug.cgi?id=198976

Patch by Alexey Shvayka <shvaikalesh@gmail.com> on 2019-08-16
Reviewed by Ross Kirsling.

JSTests:

* stress/create-subclass-structure-may-throw-exception-when-getting-prototype.js: Fix test.
* stress/create-subclass-structure-might-throw.js: Fix test.
* test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

Check if argument is a function before invoking `createSubclassStructure`.
(step 2 of https://tc39.es/ecma262/#sec-promise-executor)

* builtins/PromiseOperations.js:
(globalPrivate.initializePromise): Remove typeof check.
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise): Add isFunction check.

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

3 months agoUnreviewed, rolling out r248709.
ryanhaddad@apple.com [Fri, 16 Aug 2019 20:09:15 +0000 (20:09 +0000)]
Unreviewed, rolling out r248709.

Caused test/built-ins/Promise/prototype/finally/this-value-
non-promise.js to fail on test262 bot

Reverted changeset:

"ProxyObject should not be allow to access its target's
private properties."
https://bugs.webkit.org/show_bug.cgi?id=200739
https://trac.webkit.org/changeset/248709

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

3 months agoWeb Inspector: JavaScript formatting of single statement arrow function can be poor
pecoraro@apple.com [Fri, 16 Aug 2019 19:50:59 +0000 (19:50 +0000)]
Web Inspector: JavaScript formatting of single statement arrow function can be poor
https://bugs.webkit.org/show_bug.cgi?id=200800

Reviewed by Ross Kirsling.

Source/WebInspectorUI:

* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._isLikelyToHaveNewline):
(EsprimaFormatter.prototype._handleTokenAtNode):
Better heuristic for single statement arrow functions.

LayoutTests:

* inspector/formatting/resources/javascript-tests/arrow-functions-expected.js:
* inspector/formatting/resources/javascript-tests/arrow-functions.js:
Add a few additional complex single statement arrow function test cases.

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

3 months agoSplit tabIndex computation for DOM and the rest of WebCore
rniwa@webkit.org [Fri, 16 Aug 2019 19:43:34 +0000 (19:43 +0000)]
Split tabIndex computation for DOM and the rest of WebCore
https://bugs.webkit.org/show_bug.cgi?id=200806

Reviewed by Chris Dumez.

Source/WebCore:

This patch renames Element::tabIndex to Element::tabIndexForBindings and migrates its usage in
WebCore outside JS bindings code to: tabIndexSetExplicitly, which now returns Optional<int>,
and shouldBeIgnoredInSequentialFocusNavigation which returns true whenever the old tabIndex
function used to return -1.

Instead of overriding Element::tabIndex, each subclass of element now overrides defaultTabIndex
corresponding to the concept of the default value of tabIndex IDL attribute defined at:
https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute

No new tests since there should be no observable behavior change.

* dom/Element.cpp:
(WebCore::Element::tabIndexSetExplicitly const): Now returns Optional<int> instead of bool.
(WebCore::Element::defaultTabIndex const): Added. Return -1 here. HTMLElement and SVGElement
manually override tabIndex to implement this behavior. Now MathMLElement overrides this function
to return 0 instead, which is arguably a bug.
(WebCore::Element::supportsFocus const): Convert Optional<int> to bool.
(WebCore::Element::tabIndexForBindings const): Renamed from tabIndex. Migrated the code in
HTMLElement::tabIndex and SVGElement::tabIndex here. Note all overrides of HTMLElement::tabIndex
and SVGElement::tabIndex below were skipping supportsFocus check and using 0 as the default value.
This is now accomplished by having an explicit check defaultTabIndex returning 0. MathMLElement
overrides defaultTabIndex so it continues to use the old logic. All this complexity should go away
in webkit.org/b/199606.
(WebCore::Element::setTabIndexForBindings): Renamed from setTabIndex.
(WebCore::Element::isKeyboardFocusable const): Checks shouldBeIgnoredInSequentialFocusNavigation
in lieu of calling Element::tabIndexForBindings.
* dom/Element.h:
(WebCore::Element::shouldBeIgnoredInSequentialFocusNavigation const): Added. Returns true if the
old implementation of Element::tabIndex would have returned -1 due to supportsFocus returning false.
* dom/ElementRareData.h:
(WebCore::ElementRareData::tabIndex const): Made this function return Optional<int>. Note that
ElementRareData continue to store a bit field and int for more efficient packing.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultTabIndex const): Replaced tabIndex.
* html/HTMLAnchorElement.h:
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::isFocusable const):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::tabIndex const): Deleted. The logic is now in Element::tabIndex itself.
* html/HTMLElement.h:
* html/HTMLElement.idl:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::defaultTabIndex const): Replaced tabIndex.
* html/HTMLFormControlElement.h:
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::defaultTabIndex const): Replaced tabIndex. This is probably a bug since
this would put every MathML element in the sequential navigation order regardless of whether it
has tabIndex set or not.
* mathml/MathMLElement.h:
* page/FocusController.cpp:
(WebCore::tabIndexForElement): Added. Computes the "effective" tab index FocusController uses.
(WebCore::shadowAdjustedTabIndex):
(WebCore::nextElementWithGreaterTabIndex): This code should use shadowAdjustedTabIndex instead
but keeping the old behavior for now.
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultTabIndex const): Replaced tabIndex.
* svg/SVGAElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::tabIndex const): Deleted. The logic is now in Element::tabIndex itself.
* svg/SVGElement.h:
(WebCore::SVGElement::hasTagName const):
* svg/SVGElement.idl:

Source/WebKit:

* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp:
(webkit_dom_html_element_get_tab_index):
(webkit_dom_html_element_set_tab_index):

Source/WebKitLegacy/mac:

* DOM/DOMHTMLElement.mm:
(-[DOMHTMLElement tabIndex]):
(-[DOMHTMLElement setTabIndex:]):

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

3 months agoUnreviewed restabilization of non-unified build.
ross.kirsling@sony.com [Fri, 16 Aug 2019 19:38:21 +0000 (19:38 +0000)]
Unreviewed restabilization of non-unified build.

Source/WebCore:

* Modules/indexeddb/server/IDBSerializationContext.cpp:
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
* fileapi/ThreadableBlobRegistry.h:
* loader/SinkDocument.cpp:

Source/WebKit:

* NetworkProcess/NetworkCORSPreflightChecker.h:
* NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::StorageManagerSet):
* Shared/FrameInfoData.cpp:
(WebKit::FrameInfoData::decode):
* WebProcess/WebStorage/StorageNamespaceImpl.cpp:
* WebProcess/WebStorage/StorageNamespaceImpl.h:

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

3 months agoWeb Inspector: there should be an opposite icon for Eye.svg when we want to hide...
drousso@apple.com [Fri, 16 Aug 2019 19:35:45 +0000 (19:35 +0000)]
Web Inspector: there should be an opposite icon for Eye.svg when we want to hide things instead of showing them
https://bugs.webkit.org/show_bug.cgi?id=200736

Reviewed by Joseph Pecoraro.

We currently use Eye.svg for disabling, or turning "off", Shader Programs, but it's not very
clear that clicking on the eye (which looks like "show me this", not "hide this") will do
that. Furthermore, a greyed out version also isn't clear that the Shader Program is disabled,
instead making the user think that the disable toggle is somehow "not working".

The new hide icon is clearer, as it uses a strikethrough, rather than some shading/greying.

* UserInterface/Views/ShaderProgramTreeElement.css:
(.item.shader-program .status > img):
(.item.shader-program.disabled:matches:hover .status > img): Added.
(.item.shader-program.disabled > :not(.status)): Added.
(.item.shader-program.disabled > *): Deleted.
* UserInterface/Images/Hide.svg: Added.

* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property .getter):
* UserInterface/Images/Show.svg: Renamed from UserInterface/Images/Eye.svg.

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

3 months agoTypo correction for han-quotes expectation entry.
russell_e@apple.com [Fri, 16 Aug 2019 19:15:10 +0000 (19:15 +0000)]
Typo correction for han-quotes expectation entry.
rdar://52594556

Unreviewed Test Gardening.

* platform/mac/TestExpectations: Test is an ImageOnlyFailure, not a
text Failure. Corrected mistake.

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

3 months agoStorageManager does not need to subclass RefCounted
cdumez@apple.com [Fri, 16 Aug 2019 18:22:16 +0000 (18:22 +0000)]
StorageManager does not need to subclass RefCounted
https://bugs.webkit.org/show_bug.cgi?id=200818

Reviewed by Geoffrey Garen.

StorageManager does not need to subclass RefCounted. It is owned by the StorageManagerSet
and is never ref'd / deref'd.

* NetworkProcess/WebStorage/StorageManager.h:
(WebKit::StorageManager::create): Deleted.
* NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::add):
* NetworkProcess/WebStorage/StorageManagerSet.h:

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

3 months agoClarify StorageManagerSet / StorageManager threading model after r248734
cdumez@apple.com [Fri, 16 Aug 2019 18:15:21 +0000 (18:15 +0000)]
Clarify StorageManagerSet / StorageManager threading model after r248734
https://bugs.webkit.org/show_bug.cgi?id=200817

Reviewed by Geoffrey Garen.

Clarify StorageManagerSet / StorageManager threading model after r248734. StorageManager is now
a background thread object but it still calls its completion handlers on the main thread, which
is very error prone. The pattern in WebKit for thread safety is that methods should always call
their completion handler of the thread / queue they were called on themselves. Doing differently
has caused so many thread-safety bugs in the past.

* NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins const):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins const):
(WebKit::StorageManager::getLocalStorageOriginDetails const):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::getSessionStorageOrigins): Deleted.
(WebKit::StorageManager::getLocalStorageOrigins): Deleted.
(WebKit::StorageManager::getLocalStorageOriginDetails): Deleted.
* NetworkProcess/WebStorage/StorageManager.h:
* NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::getSessionStorageOrigins):
(WebKit::StorageManagerSet::deleteSessionStorage):
(WebKit::StorageManagerSet::deleteSessionStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOrigins):
(WebKit::StorageManagerSet::deleteLocalStorageModifiedSince):
(WebKit::StorageManagerSet::deleteLocalStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOriginDetails):

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

3 months agoStorageManagerSet constructor should not be public
cdumez@apple.com [Fri, 16 Aug 2019 17:55:25 +0000 (17:55 +0000)]
StorageManagerSet constructor should not be public
https://bugs.webkit.org/show_bug.cgi?id=200816

Reviewed by Geoffrey Garen.

StorageManagerSet constructor should not be public since it subclasses ThreadSafeRefCounted and
has a factory method.

* NetworkProcess/WebStorage/StorageManagerSet.h:

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

3 months agordar://52557916 (REGRESSION: fast/css/paint-order.html and fast/css/paint-order-shado...
russell_e@apple.com [Fri, 16 Aug 2019 17:47:44 +0000 (17:47 +0000)]
rdar://52557916 (REGRESSION: fast/css/paint-order.html and fast/css/paint-order-shadow.html are failing)

Unreviewed Test Gardening.

* platform/mac/TestExpectations: Corrected typo in previous entry and
added test expectations for fast/css/paint-order.html and fast/css/paint-order-shadow.html

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

3 months agoREGRESSION (r248436): WKWebView doesn’t respect isOpaque setting in NIB.
timothy@apple.com [Fri, 16 Aug 2019 17:23:27 +0000 (17:23 +0000)]
REGRESSION (r248436): WKWebView doesn’t respect isOpaque setting in NIB.
https://bugs.webkit.org/show_bug.cgi?id=200802
rdar://problem/54357818

Reviewed by Tim Horton.

Source/WebKit:

Tests: WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden,
WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive,
WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Call _setOpaqueInternal:NO instead of self.opaque = NO.
(-[WKWebView _setOpaqueInternal:]): Added. Moved code from setOpaque:.
(-[WKWebView setOpaque:]): Call _setOpaqueInternal:.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added WKWebViewOpaque.mm.
* TestWebKitAPI/Tests/ios/WKWebViewOpaque.mm: Added.
(-[OpaqueTestWKWebView isOpaque]): Added.
(-[NonOpaqueTestWKWebView isOpaque]): Added.
(isOpaque): Added.
(TEST): Added WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden,
WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive,
WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration.

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

3 months agordar://52594556 (Layout test fast/text/international/system-language/han-quotes.html...
russell_e@apple.com [Fri, 16 Aug 2019 17:17:21 +0000 (17:17 +0000)]
rdar://52594556 (Layout test fast/text/international/system-language/han-quotes.html is failing)

Unreviewed Test Gardening.

* platform/mac/TestExpectations: Added expectation for fast/text/international/system-language/han-quotes.html

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

3 months agoUnreviewed, fix test failure and add additional tests after r248753
drousso@apple.com [Fri, 16 Aug 2019 16:59:58 +0000 (16:59 +0000)]
Unreviewed, fix test failure and add additional tests after r248753

* inspector/unit-tests/url-utilities.html:
* inspector/unit-tests/url-utilities-expected.txt:
Add additional tests of `WI.displayNameForURL` with paths, query strings, and fragments.

* inspector/css/add-rule.html:
* inspector/css/add-rule-expected.txt:
The `doNotCreateIfMissing` parameter was removed from `preferredInspectorStyleSheetForFrame`.
All the test is trying to do is check that there's not an existing Inspector Style Sheet, so
instead just check that the list of Inspector Style Sheets is empty.

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

3 months agoWeb Inspector: rename "Invalid Characters" to "Invisible Characters" for clarity
drousso@apple.com [Fri, 16 Aug 2019 16:54:48 +0000 (16:54 +0000)]
Web Inspector: rename "Invalid Characters" to "Invisible Characters" for clarity
https://bugs.webkit.org/show_bug.cgi?id=200808

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):

* UserInterface/Base/Main.js:
(setInvisibleCharacterClassName): Added.
(setInvalidCharacterClassName): Deleted.
* UserInterface/Views/CodeMirrorOverrides.css:
(.show-invisible-characters .CodeMirror .cm-invalidchar): Added.
(.show-invalid-characters .CodeMirror .cm-invalidchar): Deleted.

* Localizations/en.lproj/localizedStrings.js:

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

3 months agoContent in <iframe> should override "touch-action" set in embedding document
antti@apple.com [Fri, 16 Aug 2019 15:48:03 +0000 (15:48 +0000)]
Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>

Reviewed by Antoine Quint.

Source/WebCore:

Test: pointerevents/ios/touch-action-region-frame.html

Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateEventRegion):

Generate event region for the main layer of subframes.

LayoutTests:

* pointerevents/ios/touch-action-region-frame-expected.txt: Added.
* pointerevents/ios/touch-action-region-frame.html: Added.

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

3 months agoUpdate WebGL test expectations for WebKit WPE
commit-queue@webkit.org [Fri, 16 Aug 2019 15:04:39 +0000 (15:04 +0000)]
Update WebGL test expectations for WebKit WPE
https://bugs.webkit.org/show_bug.cgi?id=200765

Patch by Chris Lord <clord@igalia.com> on 2019-08-16
Reviewed by Carlos Alberto Lopez Perez.

Establish a new baseline for WPE backend WebGL test results.

* platform/wpe/TestExpectations:
* platform/wpe/webgl/2.0.0/conformance/extensions/get-extension-expected.txt:
* platform/wpe/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt: Removed.
* platform/wpe/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
* platform/wpe/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt:
* platform/wpe/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt:
* platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Removed.
* platform/wpe/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt: Added.
* platform/wpe/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt:

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

3 months ago[ews] Add build steps for Windows Factory
aakash_jain@apple.com [Fri, 16 Aug 2019 14:39:18 +0000 (14:39 +0000)]
[ews] Add build steps for Windows Factory
https://bugs.webkit.org/show_bug.cgi?id=200813

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/factories.py:
(WindowsFactory.__init__):

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

3 months ago[GTK][WPE] Move TextureMapperAnimation to the nicosia namespace as Nicosia::Animation
magomez@igalia.com [Fri, 16 Aug 2019 14:37:20 +0000 (14:37 +0000)]
[GTK][WPE] Move TextureMapperAnimation to the nicosia namespace as Nicosia::Animation
https://bugs.webkit.org/show_bug.cgi?id=200707

Reviewed by Žan Doberšek.

Move TextureMapperAnimation to Nicosia::Animation so it can be used by non TextureMapper
code paths.

* platform/TextureMapper.cmake:
* platform/graphics/nicosia/NicosiaAnimation.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp.
(Nicosia::shouldReverseAnimationValue):
(Nicosia::normalizedAnimationValue):
(Nicosia::normalizedAnimationValueForFillsForwards):
(Nicosia::timingFunctionForAnimationValue):
(Nicosia::Animation::Animation):
(Nicosia::Animation::apply):
(Nicosia::Animation::applyKeepingInternalState):
(Nicosia::Animation::pause):
(Nicosia::Animation::resume):
(Nicosia::Animation::computeTotalRunningTime):
(Nicosia::Animation::isActive const):
(Nicosia::Animation::applyInternal):
(Nicosia::Animations::add):
(Nicosia::Animations::remove):
(Nicosia::Animations::pause):
(Nicosia::Animations::suspend):
(Nicosia::Animations::resume):
(Nicosia::Animations::apply):
(Nicosia::Animations::applyKeepingInternalState):
(Nicosia::Animations::hasActiveAnimationsOfType const):
(Nicosia::Animations::hasRunningAnimations const):
(Nicosia::Animations::getActiveAnimations const):
* platform/graphics/nicosia/NicosiaAnimation.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.h.
(Nicosia::Animation::Animation):
(Nicosia::Animation::keyframes const):
(Nicosia::Animation::timingFunction const):
(Nicosia::Animations::animations const):
(Nicosia::Animations::animations):
* platform/graphics/nicosia/NicosiaPlatformLayer.h:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setAnimations):
(WebCore::TextureMapperLayer::syncAnimations):
* platform/graphics/texmap/TextureMapperLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

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

3 months ago[ews] Report machine uptime in PrintConfiguration
aakash_jain@apple.com [Fri, 16 Aug 2019 14:33:41 +0000 (14:33 +0000)]
[ews] Report machine uptime in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=200812

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(PrintConfiguration): Added uptime command.
* BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.

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

3 months agoAdd shared-mime-info to WPE WebKit jhbuild
commit-queue@webkit.org [Fri, 16 Aug 2019 09:22:18 +0000 (09:22 +0000)]
Add shared-mime-info to WPE WebKit jhbuild
https://bugs.webkit.org/show_bug.cgi?id=200768

Patch by Chris Lord <clord@igalia.com> on 2019-08-16
Reviewed by Carlos Alberto Lopez Perez.

* wpe/jhbuild.modules:

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

3 months agoWeb Inspector: RTL: Console should be always LTR
nvasilyev@apple.com [Fri, 16 Aug 2019 09:14:00 +0000 (09:14 +0000)]
Web Inspector: RTL: Console should be always LTR
https://bugs.webkit.org/show_bug.cgi?id=200482

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ConsoleCommandView.js:
(WI.ConsoleCommandView.prototype.render):
* UserInterface/Views/ConsoleMessageView.css:
* UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype.render):
Make console messages always LTR.

* UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype._keyDown):
Since the console is always LTR now, we can remove code that flips left and right
arrow keys.

* UserInterface/Views/ObjectTreeView.css:
JS objects should always be LTR.

* UserInterface/Views/TreeElement.js:
Look at "direction" CSS property because Element's text direction can be LTR even
when `WI.resolvedLayoutDirection()` is RTL.

(WI.TreeElement.prototype.isEventWithinDisclosureTriangle):
* UserInterface/Views/TreeOutline.css:
(body[dir=ltr] .tree-outline .item :matches(.disclosure-button, .icon),):
(body[dir=rtl] [dir=ltr] .tree-outline .item .disclosure-button):

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

3 months agoWeb Inspector: Elements: setting a breakpoint on a specific listener should enable...
drousso@apple.com [Fri, 16 Aug 2019 08:45:41 +0000 (08:45 +0000)]
Web Inspector: Elements: setting a breakpoint on a specific listener should enable the event listener
https://bugs.webkit.org/show_bug.cgi?id=200551

Reviewed by Joseph Pecoraro.

* UserInterface/Views/EventListenerSectionGroup.js:
(WI.EventListenerSectionGroup):

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

3 months agoUnreviewed, speculative build fix for WinCairo, part 2
ysuzuki@apple.com [Fri, 16 Aug 2019 07:54:43 +0000 (07:54 +0000)]
Unreviewed, speculative build fix for WinCairo, part 2
https://bugs.webkit.org/show_bug.cgi?id=200526

* Modules/indexeddb/server/IDBSerializationContext.h:

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

3 months agoUnreviewed, speculative build fix for WinCairo
ysuzuki@apple.com [Fri, 16 Aug 2019 07:46:06 +0000 (07:46 +0000)]
Unreviewed, speculative build fix for WinCairo
https://bugs.webkit.org/show_bug.cgi?id=200526

* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

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

3 months ago[WTF] Add makeUnique<T>, which ensures T is fast-allocated, WTF_MAKE_FAST_ALLOCATED...
ysuzuki@apple.com [Fri, 16 Aug 2019 06:53:36 +0000 (06:53 +0000)]
[WTF] Add makeUnique<T>, which ensures T is fast-allocated, WTF_MAKE_FAST_ALLOCATED annotation part
https://bugs.webkit.org/show_bug.cgi?id=200620

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Three patches including this one were originally one patch. I split it into three pieces to make roll-out easy.
This part, we annotate classes / structs with WTF_MAKE_FAST_ALLOCATED and WTF_MAKE_STRUCT_FAST_ALLOCATED if
they are allocated from std::make_unique. The second patch will switch `std::make_unique` to `WTF::makeUnique` and
the third patch will insert a static_assert that makeUnique-allocated class T is FastMalloc-ed.
One insight from this patch is that we tend to forget adding WTF_MAKE_STRUCT_FAST_ALLOCATED if it is just a data struct.

* debugger/Debugger.h:
* inspector/scripts/codegen/objc_generator_templates.py:
* inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
* inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result:
* inspector/scripts/tests/generic/expected/domain-availability.json-result:
* inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
* inspector/scripts/tests/generic/expected/enum-values.json-result:
* inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
* inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
* inspector/scripts/tests/generic/expected/should-strip-comments.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
* inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result:
* inspector/scripts/tests/generic/expected/version.json-result:
* inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result:
* inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:

Source/WebCore:

* Modules/encryptedmedia/legacy/LegacyCDM.h:
(WebCore::LegacyCDM::keySystem const): Deleted.
(WebCore::LegacyCDM::client const): Deleted.
(WebCore::LegacyCDM::setClient): Deleted.
* Modules/encryptedmedia/legacy/LegacyCDMPrivate.h:
* Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h:
* Modules/webaudio/AsyncAudioDecoder.h:
(WebCore::AsyncAudioDecoder::DecodingTask::audioData): Deleted.
(WebCore::AsyncAudioDecoder::DecodingTask::sampleRate const): Deleted.
(WebCore::AsyncAudioDecoder::DecodingTask::successCallback): Deleted.
(WebCore::AsyncAudioDecoder::DecodingTask::errorCallback): Deleted.
(WebCore::AsyncAudioDecoder::DecodingTask::audioBuffer): Deleted.
* Modules/webauthn/AuthenticatorCoordinator.h:
* Modules/webdatabase/SQLStatement.h:
(WebCore::SQLStatement::hasStatementCallback const): Deleted.
(WebCore::SQLStatement::hasStatementErrorCallback const): Deleted.
* Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
* Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
* Modules/webgpu/WHLSL/WHLSLResolvingType.h:
* bindings/js/DOMPromiseProxy.h:
* bindings/js/GCController.h:
* bridge/jsc/BridgeJSC.h:
* contentextensions/ContentExtensionsBackend.h:
* dom/FullscreenManager.h:
(WebCore::FullscreenManager::document): Deleted.
(WebCore::FullscreenManager::document const): Deleted.
(WebCore::FullscreenManager::topDocument const): Deleted.
(WebCore::FullscreenManager::page const): Deleted.
(WebCore::FullscreenManager::frame const): Deleted.
(WebCore::FullscreenManager::documentElement const): Deleted.
(WebCore::FullscreenManager::hasLivingRenderTree const): Deleted.
(WebCore::FullscreenManager::pageCacheState const): Deleted.
(WebCore::FullscreenManager::scheduleFullStyleRebuild): Deleted.
(WebCore::FullscreenManager::fullscreenElement const): Deleted.
(WebCore::FullscreenManager::isFullscreen const): Deleted.
(WebCore::FullscreenManager::isFullscreenKeyboardInputAllowed const): Deleted.
(WebCore::FullscreenManager::currentFullscreenElement const): Deleted.
* dom/Microtasks.h:
(WebCore::MicrotaskQueue::vm const): Deleted.
* editing/CompositeEditCommand.h:
* editing/mac/AlternativeTextUIController.h:
* html/HTMLMediaElement.h:
* inspector/InspectorFrontendClientLocal.h:
* inspector/agents/WebHeapAgent.cpp:
* layout/displaytree/DisplayRun.h:
* layout/inlineformatting/InlineItem.h:
* layout/inlineformatting/InlineLine.h:
* layout/tableformatting/TableGrid.h:
* loader/FrameLoader.h:
(WebCore::FrameLoader::frame const): Deleted.
(WebCore::FrameLoader::policyChecker const): Deleted.
(WebCore::FrameLoader::history const): Deleted.
(WebCore::FrameLoader::notifier const): Deleted.
(WebCore::FrameLoader::subframeLoader const): Deleted.
(WebCore::FrameLoader::mixedContentChecker const): Deleted.
(WebCore::FrameLoader::urlSelected): Deleted.
(WebCore::FrameLoader::reload): Deleted.
(WebCore::FrameLoader::requestedHistoryItem const): Deleted.
(WebCore::FrameLoader::documentLoader const): Deleted.
(WebCore::FrameLoader::policyDocumentLoader const): Deleted.
(WebCore::FrameLoader::provisionalDocumentLoader const): Deleted.
(WebCore::FrameLoader::state const): Deleted.
(WebCore::FrameLoader::shouldReportResourceTimingToParentFrame const): Deleted.
(WebCore::FrameLoader::client const): Deleted.
(WebCore::FrameLoader::forceSandboxFlags): Deleted.
(WebCore::FrameLoader::hasOpenedFrames const): Deleted.
(WebCore::FrameLoader::setLoadsSynchronously): Deleted.
(WebCore::FrameLoader::loadsSynchronously const): Deleted.
(WebCore::FrameLoader::stateMachine): Deleted.
(WebCore::FrameLoader::quickRedirectComing const): Deleted.
(WebCore::FrameLoader::pageDismissalEventBeingDispatched const): Deleted.
(WebCore::FrameLoader::previousURL const): Deleted.
(WebCore::FrameLoader::setOverrideCachePolicyForTesting): Deleted.
(WebCore::FrameLoader::setOverrideResourceLoadPriorityForTesting): Deleted.
(WebCore::FrameLoader::setStrictRawResourceValidationPolicyDisabledForTesting): Deleted.
(WebCore::FrameLoader::isStrictRawResourceValidationPolicyDisabledForTesting): Deleted.
(WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL const): Deleted.
(WebCore::FrameLoader::setProvisionalLoadErrorBeingHandledURL): Deleted.
(WebCore::FrameLoader::isReloadingFromOrigin const): Deleted.
(WebCore::FrameLoader::setAlwaysAllowLocalWebarchive): Deleted.
(WebCore::FrameLoader::alwaysAllowLocalWebarchive const): Deleted.
(WebCore::FrameLoader::loadWithDocumentLoader): Deleted.
(WebCore::FrameLoader::loadWithNavigationAction): Deleted.
(WebCore::FrameLoader::shouldTreatCurrentLoadAsContinuingLoad const): Deleted.
* loader/NavigationDisabler.h:
* loader/NavigationScheduler.h:
* loader/cache/CachedResource.h:
* loader/cache/CachedSVGDocumentReference.h:
(WebCore::CachedSVGDocumentReference::loadRequested const): Deleted.
(WebCore::CachedSVGDocumentReference::document): Deleted.
* loader/ios/PreviewLoader.h:
* page/CaptionUserPreferences.h:
* page/PrewarmInformation.h:
* page/ResizeObserver.h:
* page/SuspendableTimer.h:
* page/csp/ContentSecurityPolicyDirective.h:
* page/ios/ContentChangeObserver.h:
* page/ios/DOMTimerHoldingTank.h:
* page/linux/ResourceUsageOverlayLinux.cpp:
* page/mac/TextIndicatorWindow.h:
* page/scrolling/ScrollSnapOffsetsInfo.h:
* page/scrolling/ScrollingMomentumCalculator.h:
* platform/CPUMonitor.h:
* platform/FileMonitor.h:
* platform/ScrollAnimation.h:
* platform/SuddenTermination.h:
* platform/audio/AudioBus.h:
(WebCore::AudioBus::numberOfChannels const): Deleted.
(WebCore::AudioBus::channel): Deleted.
(WebCore::AudioBus::channel const): Deleted.
(WebCore::AudioBus::length const): Deleted.
(WebCore::AudioBus::sampleRate const): Deleted.
(WebCore::AudioBus::setSampleRate): Deleted.
(WebCore::AudioBus::reset): Deleted.
(WebCore::AudioBus::AudioBus): Deleted.
* platform/audio/AudioChannel.h:
(WebCore::AudioChannel::AudioChannel): Deleted.
(WebCore::AudioChannel::set): Deleted.
(WebCore::AudioChannel::length const): Deleted.
(WebCore::AudioChannel::mutableData): Deleted.
(WebCore::AudioChannel::data const): Deleted.
(WebCore::AudioChannel::zero): Deleted.
(WebCore::AudioChannel::clearSilentFlag): Deleted.
(WebCore::AudioChannel::isSilent const): Deleted.
* platform/audio/AudioFIFO.h:
(WebCore::AudioFIFO::framesInFifo const): Deleted.
(WebCore::AudioFIFO::updateIndex): Deleted.
* platform/audio/AudioPullFIFO.h:
* platform/audio/AudioResampler.h:
(WebCore::AudioResampler::rate const): Deleted.
* platform/audio/AudioResamplerKernel.h:
* platform/audio/AudioSession.cpp:
* platform/audio/AudioSession.h:
(WebCore::AudioSession::isActive const): Deleted.
* platform/audio/Biquad.h:
* platform/audio/Cone.h:
(WebCore::ConeEffect::setInnerAngle): Deleted.
(WebCore::ConeEffect::innerAngle const): Deleted.
(WebCore::ConeEffect::setOuterAngle): Deleted.
(WebCore::ConeEffect::outerAngle const): Deleted.
(WebCore::ConeEffect::setOuterGain): Deleted.
(WebCore::ConeEffect::outerGain const): Deleted.
* platform/audio/DenormalDisabler.h:
(WebCore::DenormalDisabler::DenormalDisabler): Deleted.
(WebCore::DenormalDisabler::~DenormalDisabler): Deleted.
(WebCore::DenormalDisabler::flushDenormalFloatToZero): Deleted.
(WebCore::DenormalDisabler::getCSR): Deleted.
(WebCore::DenormalDisabler::setCSR): Deleted.
* platform/audio/DirectConvolver.h:
* platform/audio/Distance.h:
(WebCore::DistanceEffect::model): Deleted.
(WebCore::DistanceEffect::setModel): Deleted.
(WebCore::DistanceEffect::setRefDistance): Deleted.
(WebCore::DistanceEffect::setMaxDistance): Deleted.
(WebCore::DistanceEffect::setRolloffFactor): Deleted.
(WebCore::DistanceEffect::refDistance const): Deleted.
(WebCore::DistanceEffect::maxDistance const): Deleted.
(WebCore::DistanceEffect::rolloffFactor const): Deleted.
* platform/audio/DownSampler.h:
* platform/audio/DynamicsCompressor.h:
(WebCore::DynamicsCompressor::sampleRate const): Deleted.
(WebCore::DynamicsCompressor::nyquist const): Deleted.
(WebCore::DynamicsCompressor::tailTime const): Deleted.
(WebCore::DynamicsCompressor::latencyTime const): Deleted.
* platform/audio/DynamicsCompressorKernel.h:
(WebCore::DynamicsCompressorKernel::latencyFrames const): Deleted.
(WebCore::DynamicsCompressorKernel::sampleRate const): Deleted.
(WebCore::DynamicsCompressorKernel::meteringGain const): Deleted.
* platform/audio/EqualPowerPanner.h:
* platform/audio/FFTConvolver.h:
(WebCore::FFTConvolver::fftSize const): Deleted.
* platform/audio/HRTFDatabase.h:
(WebCore::HRTFDatabase::numberOfAzimuths): Deleted.
(WebCore::HRTFDatabase::sampleRate const): Deleted.
* platform/audio/HRTFElevation.h:
(WebCore::HRTFElevation::HRTFElevation): Deleted.
(WebCore::HRTFElevation::kernelListL): Deleted.
(WebCore::HRTFElevation::kernelListR): Deleted.
(WebCore::HRTFElevation::elevationAngle const): Deleted.
(WebCore::HRTFElevation::numberOfAzimuths const): Deleted.
(WebCore::HRTFElevation::sampleRate const): Deleted.
* platform/audio/HRTFPanner.h:
(WebCore::HRTFPanner::fftSize const): Deleted.
(WebCore::HRTFPanner::sampleRate const): Deleted.
* platform/audio/MultiChannelResampler.h:
* platform/audio/PlatformAudioData.h:
* platform/audio/Reverb.h:
(WebCore::Reverb::impulseResponseLength const): Deleted.
* platform/audio/ReverbAccumulationBuffer.h:
(WebCore::ReverbAccumulationBuffer::readIndex const): Deleted.
(WebCore::ReverbAccumulationBuffer::readTimeFrame const): Deleted.
* platform/audio/ReverbConvolver.h:
(WebCore::ReverbConvolver::impulseResponseLength const): Deleted.
(WebCore::ReverbConvolver::inputBuffer): Deleted.
(WebCore::ReverbConvolver::useBackgroundThreads const): Deleted.
* platform/audio/ReverbConvolverStage.h:
(WebCore::ReverbConvolverStage::inputReadIndex const): Deleted.
* platform/audio/ReverbInputBuffer.h:
(WebCore::ReverbInputBuffer::writeIndex const): Deleted.
* platform/audio/SincResampler.h:
* platform/audio/UpSampler.h:
* platform/audio/ZeroPole.h:
(WebCore::ZeroPole::ZeroPole): Deleted.
(WebCore::ZeroPole::reset): Deleted.
(WebCore::ZeroPole::setZero): Deleted.
(WebCore::ZeroPole::setPole): Deleted.
(WebCore::ZeroPole::zero const): Deleted.
(WebCore::ZeroPole::pole const): Deleted.
* platform/audio/cocoa/WebAudioBufferList.h:
(WebCore::WebAudioBufferList::list const): Deleted.
(WebCore::WebAudioBufferList::operator AudioBufferList& const): Deleted.
(WebCore::WebAudioBufferList::kind const): Deleted.
* platform/audio/ios/AudioSessionIOS.mm:
* platform/audio/mac/CARingBuffer.h:
* platform/encryptedmedia/clearkey/CDMClearKey.h:
* platform/gamepad/mac/HIDGamepad.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/Font.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContext3DPrivate.h:
* platform/graphics/GraphicsContextImpl.h:
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/LegacyCDMSession.h:
* platform/graphics/Region.h:
* platform/graphics/VelocityData.h:
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
* platform/graphics/avfoundation/CDMFairPlayStreaming.h:
* platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:
* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
* platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/cairo/FontCustomPlatformData.h:
* platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
* platform/graphics/cairo/PlatformContextCairo.h:
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
* platform/graphics/cv/ImageRotationSessionVT.h:
(WebCore::ImageRotationSessionVT::RotationProperties::isIdentity const): Deleted.
(WebCore::ImageRotationSessionVT::transform const): Deleted.
(WebCore::ImageRotationSessionVT::rotationProperties const): Deleted.
(WebCore::ImageRotationSessionVT::size): Deleted.
(WebCore::ImageRotationSessionVT::rotatedSize): Deleted.
* platform/graphics/cv/PixelBufferConformerCV.h:
* platform/graphics/cv/TextureCacheCV.h:
* platform/graphics/cv/VideoTextureCopierCV.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/VideoTextureCopierGStreamer.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
* platform/graphics/iso/ISOBox.h:
* platform/graphics/iso/ISOOriginalFormatBox.h:
* platform/graphics/iso/ISOProtectionSchemeInfoBox.h:
* platform/graphics/iso/ISOSchemeInformationBox.h:
* platform/graphics/iso/ISOSchemeTypeBox.h:
* platform/graphics/iso/ISOTrackEncryptionBox.h:
* platform/graphics/iso/ISOVTTCue.cpp:
(WebCore::ISOStringBox::contents): Deleted.
* platform/graphics/iso/ISOVTTCue.h:
(WebCore::ISOWebVTTCue::boxTypeName): Deleted.
(WebCore::ISOWebVTTCue::presentationTime const): Deleted.
(WebCore::ISOWebVTTCue::duration const): Deleted.
(WebCore::ISOWebVTTCue::sourceID const): Deleted.
(WebCore::ISOWebVTTCue::id const): Deleted.
(WebCore::ISOWebVTTCue::originalStartTime const): Deleted.
(WebCore::ISOWebVTTCue::settings const): Deleted.
(WebCore::ISOWebVTTCue::cueText const): Deleted.
* platform/graphics/nicosia/NicosiaPaintingOperation.h:
* platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h:
* platform/graphics/nicosia/texmap/NicosiaCompositionLayerTextureMapperImpl.h:
* platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
* platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h:
* platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h:
* platform/graphics/opengl/Extensions3DOpenGLCommon.h:
* platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:
* platform/graphics/texmap/coordinated/Tile.h:
* platform/graphics/win/FontCustomPlatformData.h:
* platform/graphics/win/FullScreenController.cpp:
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
* platform/graphics/win/PlatformContextDirect2D.h:
* platform/graphics/win/WKCAImageQueue.cpp:
* platform/gtk/PasteboardHelper.cpp:
* platform/ios/LegacyTileGrid.h:
* platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
* platform/mediastream/gstreamer/GStreamerAudioData.h:
(WebCore::GStreamerAudioData::GStreamerAudioData): Deleted.
(WebCore::GStreamerAudioData::getSample): Deleted.
(WebCore::GStreamerAudioData::getAudioInfo): Deleted.
(WebCore::GStreamerAudioData::kind const): Deleted.
* platform/mediastream/gstreamer/GStreamerCapturer.h:
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
* platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.h:
* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h:
* platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
* platform/mediastream/libwebrtc/LibWebRTCProvider.h:
* platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
* platform/mock/MediaPlaybackTargetPickerMock.h:
* platform/mock/RTCDataChannelHandlerMock.h:
* platform/network/ResourceErrorBase.h:
* platform/network/curl/CookieJarDB.h:
* platform/network/curl/CurlCacheEntry.h:
* platform/network/curl/CurlContext.h:
* platform/network/curl/CurlMultipartHandle.h:
* platform/network/curl/CurlRequestScheduler.h:
* platform/network/curl/CurlSSLVerifier.h:
* platform/network/ios/PreviewConverter.h:
* platform/network/soup/NetworkStorageSessionSoup.cpp:
* platform/vr/openvr/VRPlatformDisplayOpenVR.h:
* platform/vr/openvr/VRPlatformManagerOpenVR.h:
* rendering/HitTestResult.h:
* rendering/LayerOverlapMap.cpp:
* rendering/RenderLayerCompositor.h:
* rendering/svg/RenderSVGResourceMasker.h:
* replay/UserInputBridge.h:
* svg/graphics/filters/SVGFilterBuilder.h:
* svg/properties/SVGAttributeAnimator.h:
* svg/properties/SVGDecoratedProperty.h:
* svg/properties/SVGPropertyAnimatorFactory.h:
* testing/InternalSettings.cpp:
* testing/LegacyMockCDM.cpp:
* testing/LegacyMockCDM.h:
* testing/MockCDMFactory.h:
* workers/WorkerEventQueue.cpp:
* workers/WorkerEventQueue.h:
* workers/service/ServiceWorkerContainer.h:
* worklets/PaintWorkletGlobalScope.h:
* xml/XMLErrors.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:

Source/WebDriver:

* glib/SessionHostGlib.cpp:

Source/WebKit:

* NetworkProcess/AdClickAttributionManager.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Cookies/WebCookieManager.h:
* NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h:
* NetworkProcess/NetworkHTTPSUpgradeChecker.h:
* NetworkProcess/NetworkProcess.cpp:
* NetworkProcess/NetworkSession.h:
* NetworkProcess/NetworkSocketChannel.h:
* NetworkProcess/WebSocketTask.h:
* NetworkProcess/cache/PrefetchCache.h:
* NetworkProcess/cocoa/WebSocketTaskCocoa.h:
* NetworkProcess/soup/WebKitSoupRequestInputStream.cpp:
* NetworkProcess/soup/WebSocketTaskSoup.h:
* NetworkProcess/webrtc/LibWebRTCSocketClient.h:
* NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
* Platform/Module.h:
* PluginProcess/PluginControllerProxy.h:
* Shared/ApplePay/WebPaymentCoordinatorProxy.h:
* Shared/Authentication/AuthenticationManager.h:
* Shared/Cocoa/SandboxExtensionCocoa.mm:
* Shared/Plugins/NPObjectMessageReceiver.h:
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
* UIProcess/API/APIAutomationClient.h:
* UIProcess/API/APIAutomationSessionClient.h:
* UIProcess/API/APIContextMenuClient.h:
* UIProcess/API/APICustomProtocolManagerClient.h:
* UIProcess/API/APIDiagnosticLoggingClient.h:
* UIProcess/API/APIDownloadClient.h:
* UIProcess/API/APIFindClient.h:
* UIProcess/API/APIFindMatchesClient.h:
* UIProcess/API/APIFormClient.h:
* UIProcess/API/APIFullscreenClient.h:
* UIProcess/API/APIGeolocationProvider.h:
* UIProcess/API/APIHistoryClient.h:
* UIProcess/API/APIIconDatabaseClient.h:
* UIProcess/API/APIIconLoadingClient.h:
* UIProcess/API/APIInjectedBundleClient.h:
* UIProcess/API/APILegacyContextHistoryClient.h:
* UIProcess/API/APILoaderClient.h:
* UIProcess/API/APINavigationClient.h:
* UIProcess/API/APIPolicyClient.h:
* UIProcess/API/APIUIClient.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageStateClient):
* UIProcess/API/Cocoa/WKUserContentController.mm:
* UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
* UIProcess/API/glib/IconDatabase.h:
* UIProcess/API/glib/WebKitAutomationSession.cpp:
* UIProcess/API/glib/WebKitIconLoadingClient.cpp:
* UIProcess/API/glib/WebKitNotificationProvider.h:
* UIProcess/API/glib/WebKitUserContentManager.cpp:
* UIProcess/API/glib/WebKitWebContext.cpp:
* UIProcess/API/glib/WebKitWebView.cpp:
* UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
* UIProcess/API/gtk/WebKitWebInspector.cpp:
* UIProcess/API/mac/WKView.mm:
(-[WKView maybeInstallIconLoadingClient]):
* UIProcess/API/wpe/APIViewClient.h:
* UIProcess/API/wpe/ScrollGestureController.h:
* UIProcess/ApplicationStateTracker.h:
* UIProcess/Cocoa/AutomationSessionClient.h:
* UIProcess/Cocoa/IconLoadingDelegate.h:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* UIProcess/DrawingAreaProxy.h:
* UIProcess/HighPerformanceGraphicsUsageSampler.h:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/PageClient.h:
* UIProcess/PerActivityStateCPUUsageSampler.h:
* UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.h:
* UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
* UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
* UIProcess/SystemPreviewController.h:
* UIProcess/UserMediaPermissionRequestManagerProxy.h:
* UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
* UIProcess/WebNavigationState.h:
* UIProcess/WebPageInjectedBundleClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebsiteData/WebsiteDataStoreClient.h:
* UIProcess/gtk/DragAndDropHandler.h:
* UIProcess/ios/EditableImageController.h:
* UIProcess/ios/InputViewUpdateDeferrer.h:
* UIProcess/ios/SmartMagnificationController.h:
* UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
* UIProcess/mac/WKFullScreenWindowController.mm:
* UIProcess/mac/WKTextFinderClient.mm:
* WebProcess/ApplePay/WebPaymentCoordinator.h:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.h:
* WebProcess/Geolocation/WebGeolocationManager.h:
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
* WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
* WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp:
* WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
* WebProcess/MediaCache/WebMediaKeyStorageManager.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
* WebProcess/Network/webrtc/LibWebRTCResolver.h:
* WebProcess/Notifications/WebNotificationManager.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.h:
* WebProcess/Plugins/PluginController.h:
* WebProcess/Storage/WebSWOriginTable.h:
* WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebContextMenuClient.h:
* WebProcess/WebCoreSupport/WebDragClient.h:
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebCoreSupport/WebGeolocationClient.h:
* WebProcess/WebCoreSupport/WebInspectorClient.h:
* WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:
* WebProcess/WebCoreSupport/WebNotificationClient.h:
* WebProcess/WebCoreSupport/WebPlugInClient.h:
* WebProcess/WebCoreSupport/WebProgressTrackerClient.h:
* WebProcess/WebCoreSupport/WebSpeechSynthesisClient.h:
* WebProcess/WebCoreSupport/WebUserMediaClient.h:
* WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h:
* WebProcess/WebPage/FindController.h:
* WebProcess/WebPage/ViewGestureGeometryCollector.h:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
* WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:
* WebProcess/WebProcess.h:
* WebProcess/cocoa/UserMediaCaptureManager.h:

Source/WebKitLegacy/ios:

* WebCoreSupport/WebChromeClientIOS.h:
* WebCoreSupport/WebFixedPositionContent.mm:

Source/WebKitLegacy/mac:

* Plugins/Hosted/NetscapePluginInstanceProxy.h:
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
* Plugins/WebNetscapePluginEventHandlerCocoa.h:
* Storage/WebDatabaseManagerClient.mm:
* WebCoreSupport/WebAlternativeTextClient.h:
* WebCoreSupport/WebCachedFramePlatformData.h:
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebDragClient.h:
* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebGeolocationClient.h:
* WebCoreSupport/WebInspectorClient.h:
* WebCoreSupport/WebNotificationClient.h:
* WebCoreSupport/WebSelectionServiceController.h:
* WebView/WebMediaPlaybackTargetPicker.h:

Source/WebKitLegacy/win:

* FullscreenVideoController.cpp:
* FullscreenVideoController.h:
* Plugins/PluginMessageThrottlerWin.h:
* WebCachedFramePlatformData.h:
* WebCoreSupport/AcceleratedCompositingContext.h:
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebDesktopNotificationsDelegate.h:
* WebCoreSupport/WebDragClient.h:
* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebFrameLoaderClient.cpp:
* WebCoreSupport/WebGeolocationClient.h:
* WebCoreSupport/WebInspectorClient.h:
* WebDatabaseManager.cpp:
* WebKitQuartzCoreAdditions/CAD3DRenderer.h:
* WebNodeHighlight.h:
* WebNotificationCenter.cpp:
* WebNotificationCenter.h:

Tools:

* DumpRenderTree/AccessibilityController.h:
* DumpRenderTree/GCController.h:
* DumpRenderTree/win/DRTDataObject.cpp:
* DumpRenderTree/win/DRTDataObject.h:
* DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
* DumpRenderTree/win/DRTDropSource.h:
* DumpRenderTree/win/DraggingInfo.h:
* DumpRenderTree/win/EditingDelegate.h:
* DumpRenderTree/win/EventSender.cpp:
* DumpRenderTree/win/FrameLoadDelegate.h:
* DumpRenderTree/win/HistoryDelegate.h:
* DumpRenderTree/win/MD5.h:
* DumpRenderTree/win/PolicyDelegate.h:
* DumpRenderTree/win/ResourceLoadDelegate.h:
* DumpRenderTree/win/TextInputController.h:
* DumpRenderTree/win/UIDelegate.cpp:
* DumpRenderTree/win/UIDelegate.h:
* TestRunnerShared/UIScriptContext/UIScriptContext.h:
* TestRunnerShared/cocoa/ClassMethodSwizzler.h:
* TestRunnerShared/cocoa/InstanceMethodSwizzler.h:
* TestWebKitAPI/Counters.h:
* TestWebKitAPI/PlatformWebView.h:
* TestWebKitAPI/Tests/WTF/Expected.cpp:
* TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::DerefObserver::ref):
(TestWebKitAPI::DerefObserver::deref):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::DerefObserver::ref):
(TestWebKitAPI::DerefObserver::deref):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/UniqueRef.cpp:
* TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
* TestWebKitAPI/Tests/WebCore/CalculationValue.cpp:
* TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:
* TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h:
* TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:
* WebKitTestRunner/EventSenderProxy.h:
* WebKitTestRunner/GeolocationProviderMock.h:
* WebKitTestRunner/InjectedBundle/AccessibilityController.h:
* WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:
* WebKitTestRunner/PlatformWebView.h:
* WebKitTestRunner/TestInvocation.h:

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

3 months ago[ContentChangeObserver] Rename contentVisibilityDidChange to elementDidBecomeVisible
zalan@apple.com [Fri, 16 Aug 2019 04:28:49 +0000 (04:28 +0000)]
[ContentChangeObserver] Rename contentVisibilityDidChange to elementDidBecomeVisible
https://bugs.webkit.org/show_bug.cgi?id=200780
<rdar://problem/54358330>

Reviewed by Simon Fraser.

"elementDidBecomeVisible" name is more accurate and also we'll probably start tracking changes from visible to hidden soon.

* page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::visibilityChangedFromHiddenToVisible):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::ContentChangeObserver::contentVisibilityDidChange): Deleted.
* page/ios/ContentChangeObserver.h:

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

3 months agoWeb Inspector: Update Esprima to support modern JavaScript language features
pecoraro@apple.com [Fri, 16 Aug 2019 03:03:32 +0000 (03:03 +0000)]
Web Inspector: Update Esprima to support modern JavaScript language features
https://bugs.webkit.org/show_bug.cgi?id=200796

Reviewed by Ross Kirsling.

Source/WebInspectorUI:

Use a fork of Esprima to support modern JavaScript language features
while going through the process to upstream support:

  ES2018 Feature: Async Iteration (for-await-of)
  https://github.com/jquery/esprima/issues/1990

  ES2019 Feature: Numeric Separator
  https://github.com/jquery/esprima/issues/1989

  ES2019 Feature: Optional catch binding
  https://github.com/jquery/esprima/issues/1953

  ES2020 Feature: BigInt
  https://github.com/jquery/esprima/issues/1988

ESTree compatible AST changes are summarized as:

  - CatchClause `param` property is now nullable
  - ForOfStatement now has a boolean `await` property
  - Literal can be a `"bigint"` type (works if the environment has BigInt or not)

The pretty printer only needed to have additional handling for `for-await-of`.

* UserInterface/External/Esprima/esprima.js:
New version. Typescript output expects a modern JavaScript environment
instead of just ES6.

* Tools/Formatting/index.html:
Update the formatting tool for easier use in case of errors.

* UserInterface/Models/ScriptSyntaxTree.js:
(WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree):

* UserInterface/Test/TestHarness.js:
(TestHarness.prototype.passOrFail):
Convenience for pass/fail with the same message based on a condition.

* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
Ensure a space after `await` in `for await` syntax.

LayoutTests:

* inspector/formatting/resources/javascript-tests/classes-expected.js:
* inspector/formatting/resources/javascript-tests/classes.js:
* inspector/formatting/resources/javascript-tests/for-statements-expected.js:
* inspector/formatting/resources/javascript-tests/for-statements.js:
* inspector/formatting/resources/javascript-tests/generators-expected.js:
* inspector/formatting/resources/javascript-tests/generators.js:
* inspector/formatting/resources/javascript-tests/numbers-expected.js: Added.
* inspector/formatting/resources/javascript-tests/numbers.js: Added.
* inspector/formatting/resources/javascript-tests/try-catch-finally-statements-expected.js:
* inspector/formatting/resources/javascript-tests/try-catch-finally-statements.js:
* inspector/formatting/resources/javascript-tests/unary-binary-expressions-expected.js:
* inspector/formatting/resources/javascript-tests/unary-binary-expressions.js:
Test formatting of new JavaScript language features.

* inspector/formatting/formatting-css-expected.txt:
* inspector/formatting/formatting-javascript-expected.txt:
* inspector/formatting/formatting-javascript.html:
* inspector/formatting/resources/utilities.js:
(TestPage.registerInitializer.async.runFormattingTest):
(TestPage.registerInitializer.window.addFormattingTests):
(TestPage.registerInitializer):
Cleaner output and better handling for debugging failures.

* inspector/model/parse-script-syntax-tree.html:
Test new AST permutations.

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

3 months ago[ContentChangeObserver] Keep track of all the visibility candidates.
zalan@apple.com [Fri, 16 Aug 2019 02:20:57 +0000 (02:20 +0000)]
[ContentChangeObserver] Keep track of all the visibility candidates.
https://bugs.webkit.org/show_bug.cgi?id=200777
<rdar://problem/54356331>

Reviewed by Simon Fraser.

Source/WebCore:

In order to find out whether a visible (and actionable) content change happened, we need to keep track of all the candidate elements.

Test: fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2.html

* page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::reset):
(WebCore::ContentChangeObserver::rendererWillBeDestroyed):
(WebCore::ContentChangeObserver::contentVisibilityDidChange):
(WebCore::ContentChangeObserver::shouldObserveVisibilityChangeForElement):
* page/ios/ContentChangeObserver.h:

Source/WTF:

* wtf/WeakHashSet.h:

LayoutTests:

* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2-expected.txt: Added.
* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2.html: Added.

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

3 months agoWeb Inspector: REGRESSION(r244268): "Show Scope Chain on pause" setting has no effect
drousso@apple.com [Fri, 16 Aug 2019 02:08:29 +0000 (02:08 +0000)]
Web Inspector: REGRESSION(r244268): "Show Scope Chain on pause" setting has no effect
https://bugs.webkit.org/show_bug.cgi?id=200797

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DebuggerTabContentView.js:
(WI.DebuggerTabContentView.prototype.showDetailsSidebarPanels):
* UserInterface/Views/SourcesTabContentView.js:
(WI.SourcesTabContentView.prototype.showDetailsSidebarPanels):
When the sidebar panel isn't visible `parentSidebar` is `null`. Use `WI.DetailsSidebar` instead.

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

3 months agoWeb Inspector: Uncaught Exception: TypeError: null is not an object (evaluating ...
drousso@apple.com [Fri, 16 Aug 2019 01:58:38 +0000 (01:58 +0000)]
Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'this._resource.initiatorSourceCodeLocation')
https://bugs.webkit.org/show_bug.cgi?id=200798

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WI.ResourceDetailsSidebarPanel.prototype.set resource):
(WI.ResourceDetailsSidebarPanel.prototype.layout):
Cancel the `Throttler` whenever the `_resource` is updated, as otherwise the `Throttler` may
fire later on with an unset `_resource`.

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

3 months ago[WHLSL] Add unary plus
mmaxfield@apple.com [Fri, 16 Aug 2019 01:54:20 +0000 (01:54 +0000)]
[WHLSL] Add unary plus
https://bugs.webkit.org/show_bug.cgi?id=200753

Reviewed by Saam Barati.

Source/WebCore:

HLSL has these, so we should too.

Test: webgpu/whlsl/vector-matrix-addition-subtraction.html

* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

* webgpu/whlsl/vector-matrix-addition-subtraction-expected.txt: Added.
* webgpu/whlsl/vector-matrix-addition-subtraction.html: Added.

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

3 months ago[FTW] Enable CoreFoundation use if building for Apple target
bfulgham@apple.com [Fri, 16 Aug 2019 01:50:05 +0000 (01:50 +0000)]
[FTW] Enable CoreFoundation use if building for Apple target
https://bugs.webkit.org/show_bug.cgi?id=200799

Reviewed by Alex Christensen.

Source/JavaScriptCore:

* PlatformFTW.cmake: Add missing files.

Source/WebKit:

Fix the build and remove an unused method.

* PlatformFTW.cmake:
* Shared/ShareableBitmap.h:
* Shared/win/ShareableBitmapDirect2D.cpp:
(WebKit::ShareableBitmap::createDirect2DSurface):
(WebKit::ShareableBitmap::releaseSurfaceData): Deleted.

Source/WebKitLegacy:

* PlatformFTW.cmake:

Source/WebKitLegacy/win:

* FullscreenVideoController.cpp:
(FullscreenVideoController::FullscreenVideoController):
(FullscreenVideoController::enterFullscreen):
(FullscreenVideoController::exitFullscreen):
(FullscreenVideoController::createHUDWindow):
* FullscreenVideoController.h:
* WebView.cpp:
(WebView::exitFullscreenIfNeeded):

Source/WTF:

* wtf/PlatformFTW.cmake: Add missing files.

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

3 months ago[WHLSL] Matrices should have constructors that take a flattened list of scalars
mmaxfield@apple.com [Fri, 16 Aug 2019 01:39:34 +0000 (01:39 +0000)]
[WHLSL] Matrices should have constructors that take a flattened list of scalars
https://bugs.webkit.org/show_bug.cgi?id=200804

Reviewed by Saam Barati.

Source/WebCore:

HLSL has them, so we should too.

Test: webgpu/whlsl/matrix-constructors-list-of-scalars.html

* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

* webgpu/whlsl/matrix-constructors-list-of-scalars-expected.txt: Added.
* webgpu/whlsl/matrix-constructors-list-of-scalars.html: Added.

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

3 months agoWeb Inspector: Sources: provide a way to create an arbitrary Inspector Style Sheet
drousso@apple.com [Fri, 16 Aug 2019 00:43:11 +0000 (00:43 +0000)]
Web Inspector: Sources: provide a way to create an arbitrary Inspector Style Sheet
https://bugs.webkit.org/show_bug.cgi?id=200425

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Right now, the only way to create an Inspector Style Sheet is by creating a new rule in the
Styles sidebar of the Elements Tab. This is unnecessarily restrictive, especially for those
who don't use the Elements tab.

Add a + button after the filter bar in the Navigation sidebar. Clicking on the + button will
show a menu with the following (more likely to be added later):
 - Inspector Style Sheet
 - Frames (if there are subframes)
   - (name of subframe)
      - Inspector Style Sheet

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject): Added.
(WI.SourcesNavigationSidebarPanel.prototype._filterByResourcesWithIssues): Added.
(WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
(WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
(WI.SourcesNavigationSidebarPanel.prototype._addResource):
(WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged):
(WI.SourcesNavigationSidebarPanel.prototype._handleFrameWasAdded): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleMainFrameDidChange): Deleted.
* UserInterface/Views/GeneralTreeElement.js:
(WI.GeneralTreeElement.prototype.createFoldersAsNeededForSubpath):
Drive-by: sort `WI.ResourceTreeElement`s alongside `WI.FolderTreeElement`s for easier readability.
* UserInterface/Views/FrameTreeElement.js:
(WI.FrameTreeElement.prototype.onpopulate):
Add all `inspectorStyleSheetsForFrame` instead of just the preferred one so that they all
are visible/selectable for editing.

* UserInterface/Views/FilterBar.js:
(WI.FilterBar):
* UserInterface/Views/FilterBar.css:
(.filter-bar > .navigation-bar > .item):
(.filter-bar > input[type="search"]):
(.filter-bar > .navigation-bar + input[type="search"]): Added.
(.filter-bar > input[type="search"] + .navigation-bar:empty): Added.
Move the position of the filter bar buttons to be after the filter bar itself, so that other
parents can add action items before the filter bar to keep a consistent positioning.
 - to the left of the filter bar are action items (e.g. "+")
 - the filter bar itself
 - to the right of the filter bar are filter buttons (e.g. "filter by resoure with issue")

* UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager.prototype.get frames):
Drive-by: use `Array.from`, instead of `[...map.values()]`.
* UserInterface/Models/Frame.js:
(WI.Frame.prototype.get url):
(WI.Frame.prototype.get urlComponents): Added.

* UserInterface/Base/URLUtilities.js.js:
(parseURL):
Calculate and include the `origin` string with the output.

* UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame):
Remove `doNotCreateIfMissing` now that the last caller has been removed.

* Localizations/en.lproj/localizedStrings.js:

LayoutTests:

* inspector/unit-tests/url-utilities.html:
* inspector/unit-tests/url-utilities-expected.txt:

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

3 months agoTidy up some event stream helpers in basic-gestures.js
wenson_hsieh@apple.com [Fri, 16 Aug 2019 00:37:20 +0000 (00:37 +0000)]
Tidy up some event stream helpers in basic-gestures.js
https://bugs.webkit.org/show_bug.cgi?id=200783

Reviewed by Tim Horton.

* resources/basic-gestures.js:

Make a few small adjustments:
(1) Invoke uiScriptComplete within the completion callback of sendEventStream. This actually doesn't result in
    any behavior differences, since UIScriptController will, by default, wait for non-persistent asynchronous
    tasks to finish before allowing the UI-side script invocation to finish.
(2) Fix some minor indentation issues in longPressAndHoldAtPoint, touchAndDragFromPointToPoint, holdAtPoint,
    and continueTouchAndDragFromPointToPoint.

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

3 months agoUse one VM per thread for IDB serialization work in network process
sihui_liu@apple.com [Fri, 16 Aug 2019 00:12:42 +0000 (00:12 +0000)]
Use one VM per thread for IDB serialization work in network process
https://bugs.webkit.org/show_bug.cgi?id=200526

Reviewed by Geoffrey Garen.

We had one static VM in UniqueIDBDatabase for serialization/deserialization in MemoryObjectStore. This VM was
never destroyed and could be used on different background threads.

We also had one VM per SQLiteIDBBackingStore for serialization/deserialization in SQLiteIDBBackingStore. If
there were multiple IndexedDB databases of the same session opened, we would have multiple VMs created
on the same thread. Each VM has its memory allocator and garbage collector, which takes up memory.

To be more memory efficient and safe, we can use one VM per thread in the network process, and create/destroy
the VMs on demand.

* Modules/indexeddb/server/IDBSerializationContext.cpp: Added.
(WebCore::IDBServer::IDBSerializationContext::getOrCreateIDBSerializationContext):
(WebCore::IDBServer::IDBSerializationContext::~IDBSerializationContext):
(WebCore::IDBServer::IDBSerializationContext::initializeVM):
(WebCore::IDBServer::IDBSerializationContext::vm):
(WebCore::IDBServer::IDBSerializationContext::execState):
(WebCore::IDBServer::IDBSerializationContext::IDBSerializationContext):
* Modules/indexeddb/server/IDBSerializationContext.h: Added.
* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::createBackingStore):
* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::create):
(WebCore::IDBServer::MemoryIDBBackingStore::MemoryIDBBackingStore):
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
* Modules/indexeddb/server/MemoryIDBBackingStore.h:
* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::create):
(WebCore::IDBServer::MemoryObjectStore::MemoryObjectStore):
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
* Modules/indexeddb/server/MemoryObjectStore.h:
* Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::~SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::initializeVM): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::vm): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::globalObject): Deleted.
* Modules/indexeddb/server/SQLiteIDBBackingStore.h:
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::databaseThreadVM): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::databaseThreadExecState): Deleted.
* Modules/indexeddb/server/UniqueIDBDatabase.h:
* Sources.txt:

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

3 months ago[ContentChangeObserver] Dispatch synthetic click when the visibility candidate elemen...
zalan@apple.com [Thu, 15 Aug 2019 22:18:56 +0000 (22:18 +0000)]
[ContentChangeObserver] Dispatch synthetic click when the visibility candidate element becomes hidden again.
https://bugs.webkit.org/show_bug.cgi?id=200773
<rdar://problem/54351728>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes the case when the candidate element (going from hidden to visible) becomes hidden by the end of the observation window. It essentially means that no visible change has happened
and we should proceed with dispatching the synthetic click event.
We now keep track of the candidate element and reset the visiblity state when it loses its renderer.

Test: fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden.html

* page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::didAddTransition):
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::reset):
(WebCore::ContentChangeObserver::rendererWillBeDestroyed):
(WebCore::ContentChangeObserver::contentVisibilityDidChange):
(WebCore::ContentChangeObserver::touchEventDidStart):
(WebCore::ContentChangeObserver::touchEventDidFinish):
(WebCore::ContentChangeObserver::mouseMovedDidStart):
(WebCore::ContentChangeObserver::mouseMovedDidFinish):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::ContentChangeObserver::hasDeterminateState const): Deleted.
* page/ios/ContentChangeObserver.h:
(WebCore::ContentChangeObserver::hasObservedTransition const):
(WebCore::ContentChangeObserver::setTouchEventIsBeingDispatched):
(WebCore::ContentChangeObserver::isTouchEventBeingDispatched const):
(WebCore::ContentChangeObserver::setMouseMovedEventIsBeingDispatched):
(WebCore::ContentChangeObserver::isMouseMovedEventBeingDispatched const):
(WebCore::ContentChangeObserver::isObservingContentChanges const):

LayoutTests:

* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-expected.html: Added.
* fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden.html: Added.

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

3 months agoUnreviewed suggested patch follow-up to https://bugs.webkit.org/show_bug.cgi?id=200740.
justin_fan@apple.com [Thu, 15 Aug 2019 22:15:29 +0000 (22:15 +0000)]
Unreviewed suggested patch follow-up to https://bugs.webkit.org/show_bug.cgi?id=200740.

* platform/graphics/gpu/GPURequestAdapterOptions.h:
(): Deleted.

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

3 months ago[FTW] Support web fonts
bfulgham@apple.com [Thu, 15 Aug 2019 21:49:01 +0000 (21:49 +0000)]
[FTW] Support web fonts
https://bugs.webkit.org/show_bug.cgi?id=200771
<rdar://problem/54350291>

Reviewed by Dean Jackson.

The current code path for handling web fonts uses 'AddFontMemResourceEx'. Unfortunately, this only updates the font caches used by GDI, and is not exposed to DirectWrite.

This patch does the following:
1. Moves some code into a new DirectWriteUtilities file, similar to how Direct2D is handled, so we
   can share code in more places.
2. After adding the font to GDI, it adds the font information to the DirectWrite font cache.
3. Add logic to check the overall system DirectWrite fonts, as well as the custom font cache used
   for downloaded fonts.

* PlatformFTW.cmake: Add DirectWriteUtilities.cpp
* css/CSSFontFaceSource.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedSVGFont.cpp:
* platform/graphics/Font.cpp:
* platform/graphics/Font.h:
* platform/graphics/FontCache.cpp:
* platform/graphics/FontPlatformData.cpp:
* platform/graphics/FontPlatformData.h:
* platform/graphics/opentype/OpenTypeUtilities.cpp:
(WebCore::renameAndActivateFont):
* platform/graphics/win/DirectWriteUtilities.cpp: Added.
* platform/graphics/win/DirectWriteUtilities.h: Added.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::createGDIFont):
* platform/graphics/win/FontCascadeDirect2D.cpp:
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
* platform/graphics/win/FontPlatformDataDirect2D.cpp:
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::createFallbackFont):
* platform/graphics/win/FontPlatformDataWin.cpp:
* platform/graphics/win/GlyphPageTreeNodeDirect2D.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/win/GraphicsContextDirect2D.cpp:
* platform/graphics/win/SimpleFontDataDirect2D.cpp:
(WebCore::Font::systemDWriteFactory): Deleted.
(WebCore::Font::systemDWriteGdiInterop): Deleted.
* platform/graphics/win/SimpleFontDataWin.cpp:

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

3 months ago[Cocoa] Adopt -preventDisplaySleepForVideoPlayback
jer.noble@apple.com [Thu, 15 Aug 2019 21:39:32 +0000 (21:39 +0000)]
[Cocoa] Adopt -preventDisplaySleepForVideoPlayback
https://bugs.webkit.org/show_bug.cgi?id=200774

Reviewed by Eric Carlson.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

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

3 months ago[WHLSL] Don't accept operator&& or operator|| in the Lexer
rmorisset@apple.com [Thu, 15 Aug 2019 21:18:11 +0000 (21:18 +0000)]
[WHLSL] Don't accept operator&& or operator|| in the Lexer
https://bugs.webkit.org/show_bug.cgi?id=200785

Reviewed by Saam Barati.

Source/WebCore:

Implementing && or || as function calls would lose us short-circuiting.

2 new tests in LayoutTests/webgpu/whlsl/lexing.html

* Modules/webgpu/WHLSL/WHLSLLexer.cpp:
(WebCore::WHLSL::Lexer::consumeTokenFromStream):

LayoutTests:

* webgpu/whlsl/lexing.html:

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

3 months agoYellow Lookup highlight gets stuck over Mail messages
timothy_horton@apple.com [Thu, 15 Aug 2019 20:21:05 +0000 (20:21 +0000)]
Yellow Lookup highlight gets stuck over Mail messages
https://bugs.webkit.org/show_bug.cgi?id=200778
<rdar://problem/53868514>

Reviewed by Wenson Hsieh.

* WebView/WebView.mm:
(-[WebView _showDictionaryLookupPopup:]):
Add a dismissal callback so that when Reveal hides the panel, it also
dismisses the yellow indicator. This matches the behavior in modern WebKit.

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

3 months agoUnreviewed. Debug build fix after r248730.
sbarati@apple.com [Thu, 15 Aug 2019 20:13:14 +0000 (20:13 +0000)]
Unreviewed. Debug build fix after r248730.

* Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):

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

3 months agoWeb Inspector: CodeMirror still inserts a tab even when "Prefer indent using" is...
drousso@apple.com [Thu, 15 Aug 2019 19:32:14 +0000 (19:32 +0000)]
Web Inspector: CodeMirror still inserts a tab even when "Prefer indent using" is set to "Spaces"
https://bugs.webkit.org/show_bug.cgi?id=200770

Reviewed by Ross Kirsling.

* UserInterface/Views/CodeMirrorAdditions.js:
Remap the `insertTab` command to use `insertSoftTab` when "Prefer indent using" is set to
"Spaces" so that CodeMirror inserts the number of spaces that would match a tab ("\t") being
inserted at the same spot.

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

3 months agoDateConversion::formatDateTime incorrectly formats negative years
commit-queue@webkit.org [Thu, 15 Aug 2019 19:31:13 +0000 (19:31 +0000)]
DateConversion::formatDateTime incorrectly formats negative years
https://bugs.webkit.org/show_bug.cgi?id=199964

Patch by Alexey Shvayka <shvaikalesh@gmail.com> on 2019-08-15
Reviewed by Ross Kirsling.

JSTests:

* test262/expectations.yaml: Mark 6 test cases as passing.

Source/JavaScriptCore:

Currently, year is always padded to max length of 4, including the minus sign "-".
With this change, only absolute value of year is padded to max length of 4 and
preceded by minus sign "-" if the year is negative.
(steps 6-10 of https://tc39.es/ecma262/#sec-datestring)

* runtime/DateConversion.cpp:
(JSC::appendNumber):

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

3 months agoWeb Inspector: Sources: the "No Filter Results" message sits on top of all of the...
drousso@apple.com [Thu, 15 Aug 2019 19:18:43 +0000 (19:18 +0000)]
Web Inspector: Sources: the "No Filter Results" message sits on top of all of the content, preventing any interaction
https://bugs.webkit.org/show_bug.cgi?id=200755

Reviewed by Joseph Pecoraro.

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
* UserInterface/Views/SourcesNavigationSidebarPanel.css:
(.sidebar > .panel.navigation.sources > .content > .resources-container): Added.
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container)): Added.
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .call-stack-container):
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .breakpoints-container):
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .resources-container): Added.
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources)): Deleted.
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .resources): Deleted.
Wrap the resources `WI.TreeOutline` in a <div> so the empty message placeholder that gets
inserted after it can be constrained to the size of the `WI.TreeOutline`.

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

3 months agoWeb Inspector: support `console.screenshot` with detached <canvas>
drousso@apple.com [Thu, 15 Aug 2019 19:16:04 +0000 (19:16 +0000)]
Web Inspector: support `console.screenshot` with detached <canvas>
https://bugs.webkit.org/show_bug.cgi?id=200723

Reviewed by Joseph Pecoraro.

Source/WebCore:

* page/PageConsoleClient.cpp:
(WebCore::snapshotCanvas): Added.
(WebCore::PageConsoleClient::screenshot):

LayoutTests:

* inspector/console/console-screenshot.html:
* inspector/console/console-screenshot-expected.txt:

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

3 months agoWeb Inspector: Layers: background of 3D area doesn't update when transitioning to...
drousso@apple.com [Thu, 15 Aug 2019 19:13:21 +0000 (19:13 +0000)]
Web Inspector: Layers: background of 3D area doesn't update when transitioning to/from Dark mode
https://bugs.webkit.org/show_bug.cgi?id=200775

Reviewed by Ross Kirsling.

* UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView.prototype.initialLayout):
Add a `matchMedia` listener for `(prefers-color-scheme: dark)` and update the clear color
of the WebGL renderer whenever it changes.

* UserInterface/Views/ErrorObjectView.css:
(@media (prefers-color-scheme: dark)): Added.
(@media (prefers-dark-interface)): Deleted.
* UserInterface/Views/SourcesNavigationSidebarPanel.css:
(@media (prefers-color-scheme: dark)): Added.
(@media (prefers-dark-interface)): Deleted.
Drive-by: replace older `prefers-dark-interface` with modern `prefers-color-scheme: dark`.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 months agoSome improvements on web storage
sihui_liu@apple.com [Thu, 15 Aug 2019 18:41:53 +0000 (18:41 +0000)]
Some improvements on web storage
https://bugs.webkit.org/show_bug.cgi?id=200373

Reviewed by Geoffrey Garen.
Source/WebCore:

Remove storage type EphemeralLocalStorage, which is used for localStorage in ephemeral session, and use
LocalStorage instead.

Add SessionID to StorageNamespace to make StorageNamespace session-specific.

No new test, updating existing tests for new behavior.

* loader/EmptyClients.cpp:
(WebCore::EmptyStorageNamespaceProvider::createLocalStorageNamespace):
(WebCore::EmptyStorageNamespaceProvider::createTransientLocalStorageNamespace):
(WebCore::EmptyStorageNamespaceProvider::createEphemeralLocalStorageNamespace): Deleted.

* page/Chrome.cpp:
(WebCore::Chrome::createWindow const): ephemeral localStorage of different windows will connect to the same
StorageArea in network process, so no need to copy from parent window to child window.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::prewarmLocalStorageIfNecessary): localStorage will be prewarmed in network process in the
initialization of StorageAreaMap.

* page/Page.cpp:
(WebCore::m_applicationManifest):
(WebCore::Page::~Page):
(WebCore::Page::setSessionID):
(WebCore::Page::ephemeralLocalStorage): Deleted.
(WebCore::Page::setEphemeralLocalStorage): Deleted.
(WebCore::Page::setStorageNamespaceProvider): Deleted.
* page/Page.h:
(WebCore::Page::storageNamespaceProvider):
* storage/Storage.cpp:
(WebCore::Storage::prewarm): Deleted.
* storage/Storage.h:
* storage/StorageArea.h:
(WebCore::StorageArea::closeDatabaseIfIdle):
(WebCore::StorageArea::prewarm): Deleted.
* storage/StorageNamespace.h:
* storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::~StorageNamespaceProvider):
(WebCore::StorageNamespaceProvider::localStorageArea):
(WebCore::StorageNamespaceProvider::localStorageNamespace):
(WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
(WebCore::StorageNamespaceProvider::enableLegacyPrivateBrowsingForTesting): change SessionID of storageNamespace
and update every StorageArea in this namespace.
(WebCore::StorageNamespaceProvider::addPage): Deleted.
(WebCore::StorageNamespaceProvider::removePage): Deleted.
* storage/StorageNamespaceProvider.h:
* storage/StorageType.h:
(WebCore::isLocalStorage):

Source/WebKit:

Fix some issues in web storage architecture. For example, sessionStorageNameSpace for web page is prepared and
destroyed in the network process when the page comes and goes, even though the page may not use sessionStorage
at all. The messages about page state sent from web process to network process can be waste.

Here are some general ideas of this patch:
1. Network process owns the web storage, and web process keeps a small local copy (based on session and
origins that are visited). There is a virtual connection from the local copy in the web process to the original
copy in the network process. The connection is created by web process when some page asks for web storage.
2. If connection is lost because network process is gone, storage in memory will be lost. The local copy in web
processs will be discarded.
3. (SessionID, StorageNamespaceID, SecurityOrigin) is used to identify a storage area. If session is changed in
web process (like enabling private browsing in layout test now), a re-connection with different sessionID would
suffice to load another copy of storage.
4. localStorage in ephemeral session has the same behavior as localStorage instead of sessionStorage, which
means different pages in the same ephemeral session share the same localStorage.

Also, this patch introduces StorageManagerSet to network process. It handles web storage stuff, including
receiving storage messages from web process, on one background thread. Previously each session has its own
StorageManager and each StorageManager has its own WorkQueue.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:

* NetworkProcess/NetworkConnectionToWebProcess.cpp: remove message handlers that are no longer needed. Network
process no longer needs to know page states from web process.
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::webPageWasAdded): Deleted.
(WebKit::NetworkConnectionToWebProcess::webPageWasRemoved): Deleted.
(WebKit::NetworkConnectionToWebProcess::webProcessSessionChanged): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:

* NetworkProcess/NetworkProcess.cpp: NetworkProcess uses StorageManagerSet instead of StorageManager from
different sessions to deal with web storage.
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess): StorageManagerSet starts handling
StorageManagerSet messages from the new connection.
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::hasLocalStorage):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::actualPrepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::syncLocalStorage):
(WebKit::NetworkProcess::clearLegacyPrivateBrowsingLocalStorage): added for clearing in-memory ephemeral
localStorage.
(WebKit::NetworkProcess::getLocalStorageOriginDetails):
(WebKit::NetworkProcess::connectionToWebProcessClosed):
(WebKit::NetworkProcess::webPageWasAdded): Deleted.
(WebKit::NetworkProcess::webPageWasRemoved): Deleted.
(WebKit::NetworkProcess::webProcessWasDisconnected): Deleted.
(WebKit::NetworkProcess::webProcessSessionChanged): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:

* NetworkProcess/NetworkSession.cpp: StorageManager is moved out of NetworkSession. It is now managed by
StorageManagerSet.
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::storageManager): Deleted.

* NetworkProcess/NetworkSessionCreationParameters.cpp: creation parameters of StorageManager is moved out of
NetworkSessionCreationParameters.
(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* NetworkProcess/NetworkSessionCreationParameters.h:

* NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::updateDatabase): remove an assertion that is no longer true as we can force an
update with syncLocalStorage now.
* NetworkProcess/WebStorage/LocalStorageDatabase.h: make updateDatabase public for syncLocalStorage.

* NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: LocalStorageDatabaseTracker is created on the
background thread now, so it does not hold WorkQueue to do the file operation.
(WebKit::LocalStorageDatabaseTracker::create):
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
(WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker):
* NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
* NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::LocalStorageNamespace::cloneTo): Deleted.
* NetworkProcess/WebStorage/LocalStorageNamespace.h:
* NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::SessionStorageNamespace::addAllowedConnection): Deleted.
(WebKit::SessionStorageNamespace::removeAllowedConnection): Deleted.
* NetworkProcess/WebStorage/SessionStorageNamespace.h:
(WebKit::SessionStorageNamespace::allowedConnections const): Deleted.

* NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::generateStorageAreaIdentifier): each StorageArea has an identifier. StorageAreaMap in web process uses
this identifier to indicate which StorageArea it is connecting to.
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::~StorageArea): StorageArea may still have listeners because StorageArea should be
destroyed by requests from UI process, and listeners are connections to web processses.
(WebKit::StorageArea::addListener): load localStorageDatabase in advance if there is some connection to this
LocalStorage area.
(WebKit::StorageArea::removeListener):
(WebKit::StorageArea::hasListener const):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
(WebKit::StorageArea::dispatchEvents const):
(WebKit::StorageArea::syncToDatabase):
(WebKit::StorageArea::setItems): Deleted. Stop syncing from web process to network process after network process
is relaunched.
* NetworkProcess/WebStorage/StorageArea.h:
(WebKit::StorageArea::identifier):
(WebKit::StorageArea::setWorkQueue):

* NetworkProcess/WebStorage/StorageManager.cpp: StorageManager should be accessed by only background thread now.
(WebKit::StorageManager::StorageManager):
(WebKit::StorageManager::~StorageManager):
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace): this is not used now but keep it for future
improvement to remove in-memory sessionStorage in network process if we know some web page is gone forever.
(WebKit::StorageManager::cloneSessionStorageNamespace): previously each page had its own ephemeral
localStorageNamespace and now all pages in the same session share one localStorage, so we don't need to clone
localStorageNamespace.
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateSessionStorageNamespace):
(WebKit::StorageManager::clearStorageNamespaces):
(WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection): Deleted.
(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection): Deleted.
(WebKit::StorageManager::processDidCloseConnection): Deleted.
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): Deleted.
(WebKit::StorageManager::createLocalStorageMap): Deleted.
(WebKit::StorageManager::createTransientLocalStorageMap): Deleted.
(WebKit::StorageManager::createSessionStorageMap): Deleted.
(WebKit::StorageManager::destroyStorageMap): Deleted.
(WebKit::StorageManager::prewarm): Deleted.
(WebKit::StorageManager::getValues): Deleted.
(WebKit::StorageManager::setItem): Deleted.
(WebKit::StorageManager::setItems): Deleted.
(WebKit::StorageManager::removeItem): Deleted.
(WebKit::StorageManager::clear): Deleted.
(WebKit::StorageManager::waitUntilTasksFinished): Deleted.
(WebKit::StorageManager::suspend): Deleted.
(WebKit::StorageManager::resume): Deleted.
(WebKit::StorageManager::findStorageArea const): Deleted.
* NetworkProcess/WebStorage/StorageManager.h:
(WebKit::StorageManager::workQueue const): Deleted.
(): Deleted.

* NetworkProcess/WebStorage/StorageManager.messages.in: Removed. Moved to StorageManagerSet.messages.in.

* NetworkProcess/WebStorage/StorageManagerSet.cpp: Added.
(WebKit::StorageManagerSet::create):
(WebKit::StorageManagerSet::StorageManagerSet):
(WebKit::StorageManagerSet::~StorageManagerSet):
(WebKit::StorageManagerSet::add):
(WebKit::StorageManagerSet::remove):
(WebKit::StorageManagerSet::contains):
(WebKit::StorageManagerSet::addConnection):
(WebKit::StorageManagerSet::removeConnection):
(WebKit::StorageManagerSet::waitUntilTasksFinished):
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
(WebKit::StorageManagerSet::suspend):
(WebKit::StorageManagerSet::resume):
(WebKit::StorageManagerSet::getSessionStorageOrigins):
(WebKit::StorageManagerSet::deleteSessionStorage):
(WebKit::StorageManagerSet::deleteSessionStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOrigins):
(WebKit::StorageManagerSet::deleteLocalStorageModifiedSince):
(WebKit::StorageManagerSet::deleteLocalStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOriginDetails):
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
(WebKit::StorageManagerSet::disconnectFromStorageArea):
(WebKit::StorageManagerSet::getValues):
(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):
(WebKit::StorageManagerSet::cloneSessionStorageNamespace):
* NetworkProcess/WebStorage/StorageManagerSet.h: Added.
* NetworkProcess/WebStorage/StorageManagerSet.messages.in: Added.

* Shared/WebsiteDataStoreParameters.cpp: creation parameters of StorageManager are moved to
WebsiteDataStoreParameters.
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::privateSessionParameters):
* Shared/WebsiteDataStoreParameters.h:
* Sources.txt:

* UIProcess/API/C/WKContext.cpp: add SPI for tests.
(WKContextSyncLocalStorage):
(WKContextClearLegacyPrivateBrowsingLocalStorage):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveLocalStorage):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::syncLocalStorage):
(WebKit::WebProcessPool::clearLegacyPrivateBrowsingLocalStorage):
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
* WebKit.xcodeproj/project.pbxproj:

* WebProcess/InjectedBundle/InjectedBundle.cpp: session change of web storage is done via
WebStorageNamespaceProvider instead of WebProcess now.
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/WebProcess.cpp: web process no longer sends messsages about page state to network process.
(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::storageAreaMap const):
(WebKit::WebProcess::enablePrivateBrowsingForTesting): Deleted. This was used for changing session via
WebProcess.
* WebProcess/WebProcess.h:
* WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::length):
(WebKit::StorageAreaImpl::key):
(WebKit::StorageAreaImpl::item):
(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::contains):
(WebKit::StorageAreaImpl::storageType const):
(WebKit::StorageAreaImpl::incrementAccessCount):
(WebKit::StorageAreaImpl::decrementAccessCount):
(WebKit::StorageAreaImpl::prewarm): Deleted.
(WebKit::StorageAreaImpl::securityOrigin const): Deleted.

* WebProcess/WebStorage/StorageAreaImpl.h: make StorageAreaImpl hold a weak reference to StorageAreaMap and
StorageNamespaceImpl hold a strong reference. In this way lifeime of localStorage StorageAreraMap stays align
with StorageNameSpaceProvider and Page.

* WebProcess/WebStorage/StorageAreaMap.cpp: identifier of StorageAreaMap is the same as identifier of
StorageArea it connects to. If the identifier is 0, it means the StorageAreaMap is disconnected.
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::resetValues):
(WebKit::StorageAreaMap::loadValuesIfNeeded):
(WebKit::StorageAreaMap::applyChange):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
(WebKit::StorageAreaMap::connect):
(WebKit::StorageAreaMap::disconnect):
(WebKit::generateStorageMapID): Deleted.
(WebKit::StorageAreaMap::prewarm): Deleted.
(WebKit::StorageAreaMap::didGetValues): Deleted. This is useless as GetValues is a synchronous operation.
* WebProcess/WebStorage/StorageAreaMap.h:
(): Deleted.

* WebProcess/WebStorage/StorageAreaMap.messages.in: there are two synchronous messages, one for connection and
one for getting values. We may merge them into one in future improvement.
* WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::setSessionIDForTesting):
(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace): Deleted.
* WebProcess/WebStorage/StorageNamespaceImpl.h:
* WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace): Deleted.
* WebProcess/WebStorage/WebStorageNamespaceProvider.h:

Source/WebKitLegacy:

Do some clean-up and add support for session change of web storage in layout tests.

* Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::sessionChanged):
* Storage/StorageAreaImpl.h:
(): Deleted.

* Storage/StorageAreaSync.h: make sure StorageAreaSync is destructed on the main thread, as it can be
dereferenced in StorageAreaImpl::sessionChanged and its last reference for final sync could be released on the
background thread.

* Storage/StorageNamespaceImpl.cpp: replace EphemeralLocalStorage with LocalStorage, and store SessionID in
StorageNamespace.
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):
(WebKit::StorageNamespaceImpl::setSessionIDForTesting):
(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace): Deleted.
* Storage/StorageNamespaceImpl.h:
* Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace): Deleted.
* Storage/WebStorageNamespaceProvider.h:

Source/WebKitLegacy/mac:

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): notify storageNamespaceProvider about session change.

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:
(TEST): update expectation for behavior change.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: new SPI to synchronously flush localStorage to
database file.
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::syncLocalStorage):
* WebKitTestRunner/InjectedBundle/TestRunner.h:

* WebKitTestRunner/TestController.cpp: clear local storage between test runs to make each test isolated.
(WTR::TestController::resetStateToConsistentValues):
(WTR::StorageVoidCallbackContext::StorageVoidCallbackContext):
(WTR::StorageVoidCallback):
(WTR::TestController::clearIndexedDatabases):
(WTR::TestController::clearLocalStorage):
(WTR::TestController::syncLocalStorage):
(WTR::RemoveAllIndexedDatabasesCallbackContext::RemoveAllIndexedDatabasesCallbackContext): Deleted. Replaced
with StorageVoidCallbackContext for general usage.
(WTR::RemoveAllIndexedDatabasesCallback): Deleted. Replaced with StorageVoidCallback.
(WTR::TestController::ClearIndexedDatabases): Deleted. Use lowercase for consistent style.
* WebKitTestRunner/TestController.h:

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): add handler for new message
SyncLocalStorage.

LayoutTests:

Modify tests for a behavior change: sessionStorage will be lost when network process crashes.

For tests which use sessionStorage to store items, crash network process, then read from sessionStorage and
expect items to be in sessionStorage, replace sessionStorage with localStorage. Also, to make sure localStorage
is stored persistently before network process gets terminated, adopt a newly introduced SPI to
synchronously flush localStorage content to disk before terminating network process.

* platform/ios-simulator-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
* storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
* storage/indexeddb/IDBObject-leak.html:
* storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt:
* storage/indexeddb/modern/opendatabase-after-storage-crash.html:

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

3 months agoOccasional hang under -[UIKeyboardTaskQueue lockWhenReadyForMainThread] when long...
wenson_hsieh@apple.com [Thu, 15 Aug 2019 18:39:32 +0000 (18:39 +0000)]
Occasional hang under -[UIKeyboardTaskQueue lockWhenReadyForMainThread] when long-pressing non-editable text
https://bugs.webkit.org/show_bug.cgi?id=200731
<rdar://problem/54315371>

Reviewed by Tim Horton.

Source/WebKit:

When handling a single tap in non-editable content, keyboards logic in UIKit may attempt to wait for all
pending tasks in UIKeyboardTaskQueue to finish executing (e.g. by calling -waitUntilAllTasksAreFinished]). If
the task queue has a pending task at this moment - for example, a text selection update that is waiting for a
response from the web process - this will result in a permanent deadlock, since the main thread will be blocked,
and therefore cannot receive any IPC communication from the web process.

One way to trigger this is to activate both the loupe gesture and non-editable text tap gesture simultaneously,
by tapping in a non-editable part of the web page, while an ongoing loupe gesture is driving selection updates
(see the layout test for more details).

To avoid getting into this scenario, prevent the text tap gesture recognizer from firing in a few edge cases
that could lead to hangs under keyboard code in UIKit. See comments below.

Test: editing/selection/ios/tap-during-loupe-gesture.html

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

Don't allow the text tap gesture recognizer to fire if the user is actively modifying the text selection using
the loupe gesture, or if there's other pending selection change updates that are pending responses from the web
content process.

(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):

Increment and decrement _suppressNonEditableSingleTapTextInteractionCount while handling these selection
updates.

LayoutTests:

Add a layout test to verify that tapping the page while handling a text loupe gesture doesn't cause the UI
process to hang indefinitely.

* editing/selection/ios/tap-during-loupe-gesture-expected.txt: Added.
* editing/selection/ios/tap-during-loupe-gesture.html: Added.

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

3 months agoWeb Inspector: Update Esprima to trunk (minor fixes)
joepeck@webkit.org [Thu, 15 Aug 2019 18:14:45 +0000 (18:14 +0000)]
Web Inspector: Update Esprima to trunk (minor fixes)
https://bugs.webkit.org/show_bug.cgi?id=200691
<rdar://problem/54276170>

Rubber-stamped by Devin Rousso.

Source/WebInspectorUI:

* UserInterface/External/Esprima/esprima.js:
Updated to jquery/esprima@5e55171feb5adbc2b1d28ef4b2628d5ea9af0848.

* UserInterface/Models/ScriptSyntaxTree.js:
(WI.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WI.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WI.ScriptSyntaxTree.prototype._recurse):
(WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WI.ScriptSyntaxTree):
* UserInterface/Workers/Formatter/ESTreeWalker.js:
(ESTreeWalker.prototype._walkChildren):
(ESTreeWalker):
* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
- SpreadProperty => SpreadElement.
- RestProperty => RestElement.

Source/WebInspectorUI/../../LayoutTests:

* inspector/model/parse-script-syntax-tree-expected.txt:
* inspector/model/parse-script-syntax-tree.html:
- SpreadProperty => SpreadElement.
- RestProperty => RestElement.

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

3 months agoUnreviewed, rolling out r248440.
commit-queue@webkit.org [Thu, 15 Aug 2019 18:02:34 +0000 (18:02 +0000)]
Unreviewed, rolling out r248440.
https://bugs.webkit.org/show_bug.cgi?id=200772

Introduced regressions related to loading of local files.
(Requested by perarne on #webkit).

Reverted changeset:

"[Mac] Use the PID of the WebContent process when issuing
local file read sandbox extensions"
https://bugs.webkit.org/show_bug.cgi?id=200543
https://trac.webkit.org/changeset/248440

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