haikuwebkit/Source/WebDriver/ChangeLog

3629 lines
162 KiB
Plaintext
Raw Permalink Normal View History

Reduce use of reinterpret_cast<> in the codebase https://bugs.webkit.org/show_bug.cgi?id=226743 Reviewed by Darin Adler. Source/WebCore: * Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp: (WebCore::CDMSessionClearKey::generateKeyRequest): * Modules/fetch/FetchBody.cpp: (WebCore::FetchBody::take): * Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::resolve): (WebCore::FetchBodyConsumer::takeAsBlob): (WebCore::FetchBodyConsumer::takeAsText): * Modules/mediastream/RTCDataChannelRemoteHandler.cpp: (WebCore::RTCDataChannelRemoteHandler::readyToSend): (WebCore::RTCDataChannelRemoteHandler::sendStringData): (WebCore::RTCDataChannelRemoteHandler::sendRawData): * Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp: (WebCore::copyBusData): * Modules/webauthn/AuthenticatorResponseData.h: (WebCore::encodeArrayBuffer): (WebCore::decodeArrayBuffer): * Modules/websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::startClosingHandshake): (WebCore::WebSocketChannel::processOutgoingFrameQueue): * Modules/websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::getExpectedWebSocketAccept): (WebCore::headerHasValidHTTPVersion): * bindings/js/ScriptBufferSourceProvider.h: * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readString): * contentextensions/SerializedNFA.cpp: (WebCore::ContentExtensions::SerializedNFA::pointerAtOffsetInFile const): * dom/Node.cpp: (WebCore::hashPointer): * dom/TextEncoder.cpp: (WebCore::TextEncoder::encode const): * dom/TextEncoderStreamEncoder.cpp: (WebCore::TextEncoderStreamEncoder::flush): * editing/cocoa/WebContentReaderCocoa.mm: (WebCore::sanitizeMarkupWithArchive): * html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper): * inspector/DOMPatchSupport.cpp: (WebCore::addStringToSHA1): * loader/TextResourceDecoder.cpp: (WebCore::TextResourceDecoder::textFromUTF8): * loader/cache/CachedScript.cpp: (WebCore::CachedScript::script): * page/cocoa/ResourceUsageOverlayCocoa.mm: (WebCore::showText): * platform/SharedBufferChunkReader.cpp: (WebCore::SharedBufferChunkReader::nextChunk): * platform/cf/SharedBufferCF.cpp: (WebCore::SharedBuffer::createCFData const): * platform/generic/KeyedEncoderGeneric.cpp: (WebCore::KeyedEncoderGeneric::encodeString): * platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::packImageData): * platform/graphics/ImageBufferBackend.cpp: (WebCore::ImageBufferBackend::getPixelBuffer const): (WebCore::ImageBufferBackend::putPixelBuffer): * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp: (WebCore::CDMSessionAVFoundationCF::generateKeyRequest): (WebCore::CDMSessionAVFoundationCF::update): * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp: (WebCore::InbandTextTrackPrivateAVCF::readNativeSampleBuffer): * platform/graphics/displaylists/DisplayListItemBuffer.cpp: (WebCore::DisplayList::ItemBuffer::createItemBuffer): * platform/graphics/displaylists/DisplayListIterator.cpp: (WebCore::DisplayList::DisplayList::Iterator::updateCurrentItem): * platform/image-decoders/gif/GIFImageReader.h: (GIFImageReader::data const): * platform/mac/SSLKeyGeneratorMac.mm: (WebCore::signedPublicKeyAndChallengeString): * platform/mediastream/RealtimeMediaSourceCenter.cpp: (WebCore::addStringToSHA1): * platform/network/FormDataBuilder.cpp: (WebCore::FormDataBuilder::encodeStringAsFormData): * platform/network/SocketStreamHandle.cpp: (WebCore::SocketStreamHandle::sendHandshake): * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): * platform/network/cf/ResourceRequestCFNet.h: (WebCore::httpHeaderValueUsingSuitableEncoding): * platform/network/cf/SocketStreamHandleImplCFNet.cpp: (WebCore::SocketStreamHandleImpl::platformSendInternal): * platform/network/curl/CurlCacheEntry.cpp: (WebCore::CurlCacheEntry::generateBaseFilename): * platform/sql/SQLiteStatement.cpp: (WebCore::SQLiteStatement::columnBlobView): * testing/MockCDMFactory.cpp: (WebCore::MockCDM::sanitizeResponse const): Source/WebDriver: * socket/HTTPParser.cpp: (WebDriver::HTTPParser::readLine): * socket/SessionHostSocket.cpp: (WebDriver::SessionHost::sendWebInspectorEvent): Source/WebKit: * GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::mediaPlayerInitializationDataEncountered): * GPUProcess/media/RemoteTextTrackProxy.cpp: (WebKit::RemoteTextTrackProxy::addDataCue): * GPUProcess/webrtc/RemoteMediaRecorder.cpp: (WebKit::RemoteMediaRecorder::fetchData): * NetworkProcess/cache/NetworkCacheDataCurl.cpp: (WebKit::NetworkCache::Data::apply const): * NetworkProcess/cache/NetworkCacheKey.cpp: (WebKit::NetworkCache::hashString): * NetworkProcess/soup/WebKitDirectoryInputStream.cpp: (webkitDirectoryInputStreamRead): * Platform/IPC/ArgumentCoders.cpp: (IPC::ArgumentCoder<CString>::encode): (IPC::ArgumentCoder<String>::encode): * Shared/API/c/cf/WKStringCF.mm: (WKStringCopyCFString): * Shared/API/c/cf/WKURLCF.mm: (WKURLCopyCFURL): * Shared/ShareableResource.cpp: (WebKit::ShareableResource::wrapInSharedBuffer): * Shared/SharedDisplayListHandle.h: (WebKit::SharedDisplayListHandle::data const): * Shared/WebCompiledContentRuleList.cpp: (WebKit::WebCompiledContentRuleList::conditionsApplyOnlyToDomain const): * UIProcess/API/APIWebAuthenticationAssertionResponse.cpp: (API::WebAuthenticationAssertionResponse::userHandle const): * UIProcess/API/C/WKPage.cpp: (dataFrom): * UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm: (WebKit::RedirectSOAuthorizationSession::completeInternal): * UIProcess/Inspector/socket/RemoteInspectorClient.cpp: (WebKit::RemoteInspectorClient::sendWebInspectorEvent): * WebProcess/Network/WebSocketChannel.cpp: (WebKit::WebSocketChannel::createMessageQueue): (WebKit::WebSocketChannel::didReceiveText): * WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp: (WebKit::RTCDataChannelRemoteManager::sendData): (WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveStringData): * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: (WebKit::NetscapePluginStream::sendJavaScriptStream): Source/WTF: * wtf/CryptographicallyRandomNumber.cpp: * wtf/FastMalloc.h: (WTF::FastAllocator::allocate): * wtf/SHA1.h: (WTF::SHA1::addBytes): * wtf/StackCheck.h: (WTF::StackCheck::Scope::Scope): (WTF::StackCheck::StackCheck): * wtf/URLHelpers.cpp: (WTF::URLHelpers::userVisibleURL): * wtf/URLParser.cpp: (WTF::URLParser::formURLDecode): * wtf/cf/URLCF.cpp: (WTF::URL::createCFURL const): * wtf/cocoa/URLCocoa.mm: (WTF::URL::createCFURL const): * wtf/persistence/PersistentCoders.cpp: (WTF::Persistence::Coder<CString>::encode): (WTF::Persistence::Coder<String>::encode): * wtf/text/CString.h: * wtf/text/WTFString.cpp: (WTF::String::latin1 const): * wtf/text/cf/StringImplCF.cpp: (WTF::StringImpl::createCFString): Canonical link: https://commits.webkit.org/238604@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-08 17:35:15 +00:00
2021-06-08 Chris Dumez <cdumez@apple.com>
Reduce use of reinterpret_cast<> in the codebase
https://bugs.webkit.org/show_bug.cgi?id=226743
Reviewed by Darin Adler.
* socket/HTTPParser.cpp:
(WebDriver::HTTPParser::readLine):
* socket/SessionHostSocket.cpp:
(WebDriver::SessionHost::sendWebInspectorEvent):
Remove <wtf/Optional.h> https://bugs.webkit.org/show_bug.cgi?id=226437 Reviewed by Chris Dumez. Source/JavaScriptCore: * <many files>: Remove include of <wtf/Optional.h>. * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: (CppBackendDispatcherHeaderGenerator._generate_secondary_header_includes): Don't generate an include of wtf/Optional.h; including WTFString.h takes care of this anyway. * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: (CppFrontendDispatcherHeaderGenerator._generate_secondary_header_includes): Ditto. * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (CppProtocolTypesHeaderGenerator._generate_secondary_header_includes): Ditto. * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator.generate_output): Generate an include of <optional> instead of <wtf/Optional.h>. * inspector/scripts/tests/expected/*: Regenerate. Source/WebCore: * <many files>: Removed include of <wtf/Optional.h>. * platform/graphics/Font.h: Tweaked style a bit. * Modules/geolocation/GeolocationClient.h: Added include of <optional>. * Modules/mediastream/DoubleRange.h: Ditto. * Modules/mediastream/LongRange.h: Ditto. * Modules/webauthn/AuthenticationExtensionsClientOutputs.h: Ditto. * css/CSSToLengthConversionData.h: Ditto. * css/DOMMatrix2DInit.h: Ditto. * dom/AddEventListenerOptions.h: Ditto. * dom/DeviceMotionData.h: Ditto. * dom/DeviceOrientationData.h: Ditto. * dom/SuccessOr.h: Ditto. * html/DateTimeFieldsState.h: Ditto. * html/ImageBitmapOptions.h: Ditto. * html/canvas/PredefinedColorSpace.h: Ditto. * layout/LayoutPhase.h: Ditto. * layout/MarginTypes.h: Ditto. * loader/ResourceLoadNotifier.h: Ditto. * page/RuntimeEnabledFeatures.h: Ditto. * page/ScrollOptions.h: Ditto. * platform/MediaCapabilitiesInfo.h: Ditto. * platform/cocoa/SystemBattery.h: Ditto. * platform/graphics/DecodingOptions.h: Ditto. * platform/graphics/DestinationColorSpace.h: Ditto. * platform/graphics/DisplayRefreshMonitorClient.h: Ditto. * platform/graphics/FloatLine.h: Ditto. * platform/graphics/gpu/GPURequestAdapterOptions.h: Ditto. * platform/graphics/x11/PlatformDisplayX11.h: Ditto. * platform/ios/SelectionGeometry.h: Ditto. * platform/mac/NSScrollerImpDetails.h: Ditto. * platform/network/DNS.h: Ditto. * platform/text/EncodingTables.h: Ditto. * platform/text/TextCodecCJK.h: Ditto. * platform/text/TextCodecUTF16.h: Ditto. * platform/text/TextFlags.h: Ditto. Source/WebCore/PAL: * pal/SessionID.h: Include <optional>. * pal/crypto/gcrypt/Utilities.h: Ditto. * pal/crypto/tasn1/Utilities.cpp: Removed include of <wtf/Optional.h>. Source/WebDriver: * SessionHost.h: Removed include of <wtf/Optional.h>. Source/WebKit: * <many files>: Removed include of <wtf/Optional.h>. Source/WebKitLegacy/mac: * DOM/DOMRangeInternal.h: Added import of <optional>. * WebView/WebGeolocationPosition.mm: Removed import of <wtf/Optional.h>. * WebView/WebGeolocationPositionInternal.h: Added import of <optional>. Source/WTF: * <many files>: Removed include of <wtf/Optional.h>. * WTF.xcodeproj/project.pbxproj: Removed Optional.h. * wtf/Markable.h: Added include of <optional>. * wtf/OptionSet.h: Ditto. * wtf/Optional.h: Emptied this file. On the Windows build system, we can't seem to build successfully without an empty file here. The copied forwarding header seems to linger even if we remove the original. Until we fix the Windows build system, if we want to support incremental builds, we need to keep this empty file around. * wtf/PrintStream.h: Added include of <optional>. * wtf/Seconds.h: Ditto. * wtf/StackTrace.h: Ditto. * wtf/StdLibExtras.h: Moved the valueOrCompute function here from Optional.h. Re-sorted the "using" at the bottom of the file. * wtf/URLHelpers.h: Added include of <optional>. * wtf/Vector.h: Ditto. Tools: * <many files>: Removed include of <wtf/Optional.h>. Canonical link: https://commits.webkit.org/238372@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-02 06:45:51 +00:00
2021-06-01 Darin Adler <darin@apple.com>
Remove <wtf/Optional.h>
https://bugs.webkit.org/show_bug.cgi?id=226437
Reviewed by Chris Dumez.
* SessionHost.h: Removed include of <wtf/Optional.h>.
Remove WTF::Optional synonym for std::optional, using that class template directly instead https://bugs.webkit.org/show_bug.cgi?id=226433 Reviewed by Chris Dumez. Source/JavaScriptCore: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: (ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload): Use auto instead of Optional<>. Also use * instead of value() and nest the definition of the local inside an if statement in the case where it's an optional. * inspector/scripts/tests/expected/*: Regenerated these results. Source/WebCore: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebCore/PAL: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebDriver: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebKit: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. * Scripts/webkit/tests: Regenerated expected results, by running the command "python Scripts/webkit/messages_unittest.py -r". (How am I supposed to know to do that?) Source/WebKitLegacy/ios: * WebCoreSupport/WebChromeClientIOS.h: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebKitLegacy/mac: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebKitLegacy/win: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WTF: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. * wtf/Optional.h: Remove WTF::Optional. Tools: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Canonical link: https://commits.webkit.org/238290@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-30 16:11:40 +00:00
2021-05-30 Darin Adler <darin@apple.com>
Remove WTF::Optional synonym for std::optional, using that class template directly instead
https://bugs.webkit.org/show_bug.cgi?id=226433
Reviewed by Chris Dumez.
* <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>.
Clients of optional should use has_value instead of relying on hasValue macro https://bugs.webkit.org/show_bug.cgi?id=226395 Reviewed by Chris Dumez. Source/JavaScriptCore: * bytecompiler/NodesCodegen.cpp: (JSC::RegExpNode::emitBytecode): Don't use hasValue. Source/WebCore: In some files we are touching, moved from Optional to std::optional, but doing that consistently in files we are not otherwise modifying is out of scope here. In some places, use has_value instead of hasValue. In others, improved further by not using has_value explicitly when it's clearer to do so. Wasn't 100% consistent about that, but did aim to cover 100% of the hasValue call sites. * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::create): Don't use hasValue. * Modules/webxr/WebXRFrame.cpp: (WebCore::WebXRFrame::getViewerPose): Ditto. (WebCore::WebXRFrame::getPose): Ditto. * Modules/webxr/WebXRGamepad.cpp: (WebCore::WebXRGamepad::WebXRGamepad): Ditto. * Modules/webxr/WebXRInputSource.cpp: (WebCore::WebXRInputSource::requiresInputSourceChange): Use has_value. * bindings/js/DOMPromiseProxy.h: (WebCore::DOMPromiseProxy<IDLType>::isFulfilled const): Ditto. (WebCore::DOMPromiseProxy<IDLUndefined>::isFulfilled const): Ditto. (WebCore::DOMPromiseProxyWithResolveCallback<IDLType>::isFulfilled const): Ditto. * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readTerminal): Ditto. * css/CSSFontFaceSet.cpp: (WebCore::CSSFontFaceSet::addToFacesLookupTable): Removed unneeded double check of optional value. !x and !x.has_value() check the same thing. (WebCore::CSSFontFaceSet::remove): Ditto. (WebCore::CSSFontFaceSet::fontFace): Simplified code with extra local variables to use an idiom that does not use hasValue. Since using *, ->, or value() on an optional already asserts, there is no need to explicitly assert in the caller. * css/CSSGradientValue.cpp: (WebCore::GradientStop::isSpecified const): Use has_value. * css/CSSSegmentedFontFace.cpp: (WebCore::CSSSegmentedFontFace::fontRanges): Removed unneeded calls to hasValue. * css/FontFace.cpp: (WebCore::FontFace::family const): Use has_value. (WebCore::FontFace::style const): Ditto. (WebCore::FontFace::weight const): Ditto. (WebCore::FontFace::stretch const): Ditto. (WebCore::FontFace::unicodeRange const): Ditto. (WebCore::FontFace::featureSettings const): Ditto. (WebCore::FontFace::display const): Ditto. * css/parser/CSSSelectorParser.cpp: (WebCore::consumeANPlusB): Ditto. * display/css/DisplayStyle.h: Ditto. * dom/DataTransferItemList.h: Ditto. * dom/Document.cpp: (WebCore::Document::updateHighlightPositions): Ditto. * dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener): Ditto. * editing/AlternativeTextController.cpp: (WebCore::AlternativeTextController::hasPendingCorrection const): Ditto. * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyInlineStyle): Don't call hasValue. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::captionDisplayMode): Ditto. * html/ImageBitmap.h: Ditto. * inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::setScreenSizeOverride): Use has_value. * layout/LayoutPhase.cpp: (WebCore::Layout::PhaseScope::PhaseScope): Ditto. * layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): Ditto. * layout/formattingContexts/inline/InlineLine.h: Ditto. * loader/CrossOriginPreflightResultCache.cpp: (WebCore::parseAccessControlMaxAge): Ditto. * page/EventHandler.cpp: (WebCore::EventHandler::defaultWheelEventHandler): Ditto. * page/ios/ContentChangeObserver.cpp: (WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope): Ditto. * page/scrolling/ScrollSnapOffsetsInfo.cpp: (WebCore::closestSnapOffsetWithInfoAndAxis): Ditto. * platform/ScrollController.cpp: (WebCore::ScrollController::adjustScrollDestination): Don't use hasValue. * platform/cocoa/SystemBattery.mm: (WebCore::systemHasBattery): Use has_value. (WebCore::systemHasAC): Use has_value. * platform/graphics/Gradient.h: Ditto. * platform/graphics/ImageSource.h: Ditto. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::wouldTaintOrigin const): Changed idiom to not use hasValue. * platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp: (setGLContext): Do not use hasValue. * platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: (WebCore::GStreamerRegistryScanner::ElementFactories::hasElementForMediaType const): Ditto. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::playbackPosition const): Ditto. (WebCore::MediaPlayerPrivateGStreamer::performTaskAtMediaTime): Ditto. (WebCore::MediaPlayerPrivateGStreamer::triggerRepaint): Ditto. * platform/graphics/gstreamer/eme/CDMProxyThunder.cpp: (WebCore::CDMProxyThunder::getDecryptionSession const): Use has_value. * platform/graphics/gstreamer/eme/CDMThunder.cpp: (WebCore::ParsedResponseMessage::hasType const): Use has_value. (WebCore::CDMInstanceSessionThunder::cdmInstanceThunder const): Use a pointer for the erturn value instead of Optional<&>. This hasn't compiled since we switched to std::optional so I suspect this code is not compiled by EWS or the buildbot. * platform/graphics/gstreamer/eme/CDMThunder.h: Updated to match above. * platform/graphics/gstreamer/mse/AppendPipeline.cpp: (WebCore::AppendPipeline::parseDemuxerSrcPadCaps): Use value_or. (WebCore::AppendPipeline::appsinkCapsChanged): Do not use has_value. * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: (WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected): Ditto. * platform/graphics/transforms/TransformState.h: Use has_value. * platform/ios/VideoFullscreenInterfaceAVKit.mm: (WebCore::supportsPictureInPicture): Ditto. * platform/mac/NSScrollerImpDetails.mm: (WebCore::ScrollerStyle::recommendedScrollerStyle): Ditto. * platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::isSystemPreview const): Ditto. * platform/xr/openxr/OpenXRInputSource.cpp: (PlatformXR::OpenXRInputSource::getInputSource const): Ditto. * rendering/EventRegion.h: Ditto. * rendering/GridTrackSizingAlgorithm.h: Remove unnecessary assertion, since the * operator already does the assertion. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::canComputePercentageFlexBasis): Use has_value. * rendering/RenderListItem.cpp: (WebCore::RenderListItem::setExplicitValue): Ditto. * rendering/RenderThemeIOS.mm: (WebCore::RenderThemeIOS::systemFocusRingColor): Ditto. * rendering/updating/RenderTreeBuilder.cpp: (WebCore::RenderTreeBuilder::removeAnonymousWrappersForInlineChildrenIfNeeded): Ditto. * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::createSVGTransformFromMatrix): Changed idiom to not call hasValue. * svg/SVGTransform.h: Ditto. * testing/WebFakeXRDevice.cpp: (WebCore::WebFakeXRDevice::setViews): Ditto. Source/WebDriver: * socket/SessionHostSocket.cpp: (WebDriver::SessionHost::isConnected const): Use has_value. Source/WebKit: * Platform/IPC/ArgumentCoders.h: Use std::optional; there was no hasValue in here and I edited it by mistake, but we want to do this eventually. * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: Removed using namespace WebCore. (IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData): Use has_value. * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceInitializerDelegate::getClientSDKVersion): Ditto. * Shared/WebCoreArgumentCoders.cpp: (IPC::decodeImage): Changed idiom to not call hasValue. (IPC::ArgumentCoder<Ref<Font>>::decode): Ditto. * Shared/mac/MediaFormatReader/MediaFormatReader.cpp: (WebKit::MediaFormatReader::finishParsing): Use has_value. (WebKit::MediaFormatReader::copyProperty): Ditto. (WebKit::MediaFormatReader::copyTrackArray): Ditto. * Shared/win/WebCoreArgumentCodersWin.cpp: (IPC::ArgumentCoder<Ref<Font>>::decodePlatformData): Do not call hasValue. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration encodeWithCoder:]): Changed idiom to not use hasValue. * UIProcess/API/glib/InputMethodFilter.cpp: (WebKit::InputMethodFilter::setState): Use has_value. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::AutomationCommandError::toProtocolString): Changed idiom to not use hasValue. * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: (WebKit::WebPasteboardProxy::determineDataOwner const): Use has_value. * UIProcess/Inspector/socket/RemoteInspectorClient.cpp: (WebKit::RemoteInspectorClient::sendWebInspectorEvent): Changed idiom to not use hasValue. * UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::platformValidateUserMediaRequestConstraints): Ditto. * WebProcess/GPU/media/MediaSourcePrivateRemote.cpp: (WebKit::MediaSourcePrivateRemote::addSourceBuffer): Use has_value. * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters): Ditto. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::notifyPreferencesChanged): Changed idiom to not call hasValue. Source/WTF: * wtf/Hasher.h: Use has_value. * wtf/Optional.h: Remove hasValue macro. Not needed any more, but also a bit dangerous because of how widespread the use of hasValue is for things other than WTF::Optional. Tools: * TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp: Use has_value. * TestWebKitAPI/Tests/WebCore/CBORWriterTest.cpp: Ditto. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: Ditto. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (AudioRenderingWebViewTest::handleStart): Ditto. * WebKitTestRunner/GeolocationProviderMock.cpp: (WTR::GeolocationProviderMock::setPosition): Ditto. * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView canPerformAction:withSender:]): Ditto. Canonical link: https://commits.webkit.org/238281@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278244 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-29 22:08:56 +00:00
2021-05-28 Darin Adler <darin@apple.com>
Clients of optional should use has_value instead of relying on hasValue macro
https://bugs.webkit.org/show_bug.cgi?id=226395
Reviewed by Chris Dumez.
* socket/SessionHostSocket.cpp:
(WebDriver::SessionHost::isConnected const): Use has_value.
Next step toward using std::optional directly instead of through WTF::Optional typedef https://bugs.webkit.org/show_bug.cgi?id=226280 Reviewed by Chris Dumez. Source/JavaScriptCore: * <many files>: Accept the renaming done by do-webcore-rename. * yarr/YarrSyntaxChecker.cpp: Since the style checker complained about this file, tweaked style to make it happy after the renaming done by do-webcore-rename, and also hand-updated Optional to std::optional as long as we were touching it. Source/WebCore: * <many files>: Accept the renaming done by do-webcore-rename. * Modules/webauthn/fido/DeviceRequestConverter.h: Since style checker complained about the names of some arguments, fixed them, and also hand-updated Optional to std::optional as long as we were touching it. * loader/EmptyClients.cpp: Since style checker complained about the mix of WEBCORE_EXPORT and inlined functions, moved them out of line, and also hand-updated Optional to std::optional as long as we were touching it. Also removed is<EmptyFrameLoaderClient>(). * loader/EmptyFrameLoaderClient.h: Ditto. Source/WebCore/PAL: * <many files>: Accept the renaming done by do-webcore-rename. Source/WebDriver: * <many files>: Accept the renaming done by do-webcore-rename. Source/WebKit: * <many files>: Accept the renaming done by do-webcore-rename. Source/WebKitLegacy: * Storage/StorageTracker.cpp: (WebKit::StorageTracker::diskUsageForOrigin): Accept the renaming done by do-webcore-rename. Source/WebKitLegacy/mac: * <many files>: Accept the renaming done by do-webcore-rename. Source/WebKitLegacy/win: * <many files>: Accept the renaming done by do-webcore-rename. Source/WTF: * <many files>: Accept the renaming done by do-webcore-rename. * wtf/Optional.h: Remove WTF::nullopt_t and WTF::makeOptional. * wtf/URLHelpers.cpp: (WTF::URLHelpers::mapHostName): Convert from nullopt to std::nullopt. Tools: * Scripts/do-webcore-rename: Use script to rename valueOr, WTF::nullopt, WTF::nullopt_t, WTF::Optional, WTF::makeOptional, and makeOptional. Other renamings can't necessarily be done by the script and so will be done in later passes. * <many files>: Accept the renaming done by do-webcore-rename. Canonical link: https://commits.webkit.org/238228@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-28 01:26:23 +00:00
2021-05-27 Darin Adler <darin@apple.com>
Next step toward using std::optional directly instead of through WTF::Optional typedef
https://bugs.webkit.org/show_bug.cgi?id=226280
Reviewed by Chris Dumez.
* <many files>: Accept the renaming done by do-webcore-rename.
2021-05-13 Michael Catanzaro <mcatanzaro@gnome.org>
Misc GCC warning cleanup
https://bugs.webkit.org/show_bug.cgi?id=225777
Reviewed by Carlos Garcia Campos.
Remove unused variable.
* glib/WebDriverServiceGLib.cpp:
(WebDriver::parseVersion):
Remove StringBuilder::appendNumber https://bugs.webkit.org/show_bug.cgi?id=225732 Reviewed by Sam Weinig. Source/JavaScriptCore: * API/JSContextRef.cpp: (BacktraceFunctor::operator() const): Use append instead of appendNumber. * API/tests/PingPongStackOverflowTest.cpp: (PingPongStackOverflowObject_hasInstance): Ditto. * heap/HeapSnapshotBuilder.cpp: (JSC::HeapSnapshotBuilder::json): Ditto. * interpreter/StackVisitor.cpp: (JSC::StackVisitor::Frame::toString const): Use makeString instead of StringBuilder. * runtime/ConsoleClient.cpp: (JSC::appendURLAndPosition): Ditto. (JSC::ConsoleClient::printConsoleMessageWithArguments): Use append instead of appendNumber. * runtime/JSONObject.cpp: (JSC::Stringifier::appendStringifiedValue): Ditto. * runtime/Options.cpp: (JSC::OptionReader::Option::dump const): Ditto. * runtime/StackFrame.cpp: (JSC::StackFrame::toString const): Use makeString instead of StringBuilder. Source/WebCore: * Modules/indexeddb/server/IndexValueStore.cpp: (WebCore::IDBServer::IndexValueStore::loggingString const): Use append instead of appendNumber. * Modules/websockets/WebSocketHandshake.cpp: (WebCore::hostName): Use makeString instead of StringBuilder. * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::prefixTreeVertexToString): Use append instead of appendNumber. * contentextensions/Term.h: (WebCore::ContentExtensions::Term::toString const): Ditto. * css/CSSFontFeatureValue.cpp: (WebCore::CSSFontFeatureValue::customCSSText const): Ditto. * css/CSSTimingFunctionValue.cpp: (WebCore::CSSStepsTimingFunctionValue::customCSSText const): Ditto. * dom/Document.cpp: (WebCore::Document::downgradeReferrerToRegistrableDomain): Use makeString instead of StringBuilder. * editing/MarkupAccumulator.cpp: (WebCore::MarkupAccumulator::generateUniquePrefix): Ditto. * editing/cocoa/DataDetection.mm: (WebCore::dataDetectorStringForPath): Use append instead of appendNumber. * html/HTMLAnchorElement.cpp: (WebCore::appendServerMapMousePosition): Ditto. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createContext2d): Use makeString instead of StringBuilder. (WebCore::HTMLCanvasElement::createImageBuffer const): Ditto. * loader/ResourceLoadStatistics.cpp: (WebCore::ResourceLoadStatistics::toString const): Use append instead of appendNumber. * loader/SubresourceIntegrity.cpp: (WebCore::integrityMismatchDescription): Use makeString instead of StringBuilder. * page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::rootMargin const): Use append instead of appendNumber. * page/SecurityOriginData.cpp: (WebCore::SecurityOriginData::databaseIdentifier const): Use makeString instead of StringBuilder. * platform/Decimal.cpp: (WebCore::Decimal::toString const): Use append instead of appendNumber. * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::animationNameForTransition): Use makeString instead of StringBuilder. * platform/graphics/ca/TileController.cpp: (WebCore::TileController::createTileLayer): Ditto. * platform/graphics/ca/win/PlatformCALayerWin.cpp: (printTransform): Use single append instead of a run of them. (printLayer): Ditto, and use append instead of apppendNumber. (PlatformCALayerWin::layerTreeAsString const): Ditto. * platform/mediarecorder/MediaRecorderPrivateMock.cpp: (WebCore::MediaRecorderPrivateMock::generateMockCounterString): Use append instead of appendNumber. * platform/network/ProxyServer.cpp: (WebCore::appendProxyServerString): Ditto. * rendering/RenderTreeAsText.cpp: (WebCore::nodePosition): Ditto. * svg/SVGPathUtilities.cpp: (WebCore::buildStringFromPath): Ditto. * testing/Internals.cpp: (WebCore::Internals::parserMetaData): Use makeString instead of StringBuilder. (WebCore::appendOffsets): Use append instead of appendNumber. * testing/MockPageOverlayClient.cpp: (WebCore::MockPageOverlayClient::drawRect): Use makeString instead of StringBuilder. (WebCore::MockPageOverlayClient::mouseEvent): Ditto. * xml/XMLErrors.cpp: (WebCore::XMLErrors::appendErrorMessage): Use append instead of appendNumber. Source/WebDriver: * SessionHost.cpp: (WebDriver::SessionHost::sendCommandToBackend): Use append instead of appendNumber. * socket/HTTPServerSocket.cpp: (WebDriver::HTTPRequestHandler::packHTTPMessage const): Ditto. Source/WebKit: * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::buildList): Use append instead of appendNumber. (WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources): Ditto. (WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const): Ditto. (WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString): Ditto. (WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString): Ditto. * Shared/WebMemorySampler.cpp: (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile): Ditto. * UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewRunJavaScriptCallback): Ditto. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::loggingString): Ditto. * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: (PageResourceLoadClient::didReceiveResponseForResource): Use makeString instead of StringBuilder. * WebProcess/Plugins/PluginView.cpp: (WebKit::buildHTTPHeaders): Use append instead of appendNumber. Source/WebKitLegacy/win: * WebKitStatistics.cpp: (WebKitStatistics::comClassNameCounts): Use append instead of appendNumber. Source/WTF: We originally added StringBuilder::appendNumber to resolve the ambiguity between UChar and uint16_t, but that problem was solved long ago and it is safe to use StringBuilder::append, including the variadic form, on all types of numbers and we'll get the same results we did with appendNumber. * wtf/JSONValues.cpp: (WTF::JSONImpl::Value::writeJSON const): Use append instead of appendNumber. * wtf/text/StringBuilder.cpp: (WTF::StringBuilder::appendNumber): Deleted. * wtf/text/StringBuilder.h: Removed appendNumber. * wtf/text/TextStream.cpp: (WTF::TextStream::operator<<): Use append instead of appendNumber. Tools: * TestWebKitAPI/Tests/WTF/StringBuilder.cpp: Test append with a number instead of appendNumber. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Use append instead of appendNumber. * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::dumpResponseDescriptionSuitableForTestResult): Use append instead of appendNumber. (WTR::dumpFrameScrollPosition): Ditto. (WTR::InjectedBundlePage::didFinishDocumentLoadForFrame): Use makeString instead of StringBuilder. (WTR::InjectedBundlePage::shouldCacheResponse): Ditto. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::attributesOfElement): Use append instead of appendNumber. (WTR::AccessibilityUIElement::attributedStringForRange): Ditto. (WTR::stringAtOffset): Ditto. Canonical link: https://commits.webkit.org/237685@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-13 16:18:32 +00:00
2021-05-13 Darin Adler <darin@apple.com>
Remove StringBuilder::appendNumber
https://bugs.webkit.org/show_bug.cgi?id=225732
Reviewed by Sam Weinig.
* SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend): Use append instead
of appendNumber.
* socket/HTTPServerSocket.cpp:
(WebDriver::HTTPRequestHandler::packHTTPMessage const): Ditto.
Remove all remaining uses of the String::toInt family of functions https://bugs.webkit.org/show_bug.cgi?id=225580 Reviewed by Sam Weinig. Source/WebCore: * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: (WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo): Use parseInteger<uint64_t> instead of String::toUInt64Strict. (WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile): Ditto. * Modules/websockets/WebSocketDeflateFramer.cpp: (WebCore::WebSocketExtensionDeflateFrame::WebSocketExtensionDeflateFrame): Use a reference instead of a pointer. (WebCore::WebSocketExtensionDeflateFrame::processResponse): Use ASCIILiteral. Use parseIntegerAllowingTrailingJunk<int> instead of String::toInt. Use auto. Use references instead of pointers. (WebCore::DeflateResultHolder::DeflateResultHolder): Use a reference. (WebCore::DeflateResultHolder::~DeflateResultHolder): Ditto. (WebCore::InflateResultHolder::InflateResultHolder): Ditto. (WebCore::InflateResultHolder::~InflateResultHolder): Ditto. (WebCore::WebSocketDeflateFramer::WebSocketDeflateFramer): Deleted. (WebCore::WebSocketDeflateFramer::createExtensionProcessor): Pass a reference. (WebCore::WebSocketDeflateFramer::deflate): Ditto. (WebCore::WebSocketDeflateFramer::inflate): Ditto. * Modules/websockets/WebSocketDeflateFramer.h: Use forward declarations instead of includes, references instead of pointers, initialize data members in the class definition, and remove an unnecessary explicit default constructor. * Modules/websockets/WebSocketHandshake.cpp: (WebCore::headerHasValidHTTPVersion): Use parseInteger<int> instead of StringView::toIntStrict. (WebCore::WebSocketHandshake::readStatusLine): Ditto. * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::headingLevel const): Use getIntegralAttribute instead of AtomString::toInt. (WebCore::AccessibilityNodeObject::hierarchicalLevel const): Ditto. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::getIntegralAttribute const): Added. Since AccessibilityObject has its own getAttribute function, we need to re-implement Element::getIntegralAttribute here. (WebCore::AccessibilityObject::setSize const): Use getIntegralAttribute instead of AtomString::toInt. (WebCore::AccessibilityObject::posInSet const): Ditto. * accessibility/AccessibilityObject.h: Added getIntegralAttribute. * accessibility/AccessibilityTable.cpp: (WebCore::AccessibilityTable::isDataTable const):Use getIntegralAttribute instead of AtomString::toInt. (WebCore::AccessibilityTable::axColumnCount const): Ditto. (WebCore::AccessibilityTable::axRowCount const): Ditto. * accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::axColumnIndex const): Ditto. (WebCore::AccessibilityTableCell::axRowIndex const): Ditto. (WebCore::AccessibilityTableCell::axColumnSpan const): Ditto. (WebCore::AccessibilityTableCell::axRowSpan const): Ditto. * accessibility/AccessibilityTableRow.cpp: (WebCore::AccessibilityTableRow::axColumnIndex const): Ditto. (WebCore::AccessibilityTableRow::axRowIndex const): Ditto. * css/parser/CSSSelectorParser.cpp: (WebCore::consumeANPlusB): Use parseInteger<int> instead of String::toIntStrict * css/parser/CSSTokenizer.cpp: (WebCore::CSSTokenizer::consumeEscape): Use parseInteger<uint32_t> instead of String::toUIntStrict. * editing/cocoa/DataDetection.mm: (WebCore::DataDetection::canPresentDataDetectorsUIForElement): Use parseIntegerAllowingTrailingJunk<int> instead of String::toInt. Also use StringView instead of String. (WebCore::dataDetectorStringForPath): Use makeString instead of StringBuilder. * editing/cocoa/HTMLConverter.mm: (HTMLConverter::computedAttributesForElement): Use parseIntegerAllowingTrailingJunk<int> instead of String::toInt. * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::parseAttribute): Use parseHTMLInteger instead of parseIntegerAllowingTrailingJunk<int>. * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::parseAttribute): Ditto. * html/HTMLHRElement.cpp: (WebCore::HTMLHRElement::collectStyleForPresentationAttribute): Ditto. * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute): Ditto. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseAttribute): Ditto. * html/HTMLLIElement.cpp: (WebCore::HTMLLIElement::parseValue): Ditto. * html/HTMLMarqueeElement.cpp: (WebCore::HTMLMarqueeElement::loop const): Use getIntegralAttribute instead of parseIntegerAllowingTrailingJunk<int>. * html/HTMLTableCellElement.cpp: (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute): Use parseHTMLInteger instead of parseIntegerAllowingTrailingJunk<int>. * html/HTMLTableColElement.cpp: (WebCore::HTMLTableColElement::parseAttribute): Ditto. * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::parseAttribute): Ditto. * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight): Use parseIntegerAllowingTrailingJunk<unsigned> instead of String::toUInt. * inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::nodeForPath): Use parseIntegerAllowingTrailingJunk<unsigned> instead of String::toUInt. * layout/layouttree/LayoutTreeBuilder.cpp: (WebCore::Layout::TreeBuilder::createLayoutBox): Use parseHTMLInteger instead of AtomString::toInt. * loader/CrossOriginPreflightResultCache.cpp: (WebCore::parseAccessControlMaxAge): Use parseInteger<uint64_t> instead of String::toUIntStrict. * loader/FTPDirectoryParser.cpp: (WebCore::parseOneFTPLine): Use parseIntegerAllowingTrailingJunk<unsigned> instead of String::toUInt. * loader/PrivateClickMeasurement.cpp: (WebCore::PrivateClickMeasurement::parseAttributionRequest): Use parseInteger<uint64_t> instead of String::toUInt64Strict. * mathml/MathMLSelectElement.cpp: (WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Use getIntegralAttribute instead of parseIntegerAllowingTrailingJunk<int>. * page/EventSource.cpp: (WebCore::EventSource::parseEventStreamLine): Use parseIntegerAllowingTrailingJunk<uint64_t> instead of charactersToUInt64. * page/Location.cpp: (WebCore::Location::setPort): Use parseInteger<uint16_t> instead of parseUInt16. * page/SecurityOriginData.cpp: (WebCore::SecurityOriginData::fromDatabaseIdentifier): Use parseIntegerAllowingTrailingJunk<uint16_t> instead of String::toInt, which allows us to remove some range checking and type conversion. * page/WindowFeatures.cpp: (WebCore::setWindowFeature): Use parseIntegerAllowingTrailingJunk<int> instead of StringView::toInt. * page/csp/ContentSecurityPolicySourceList.cpp: (WebCore::ContentSecurityPolicySourceList::parsePort): Use parseInteger<uint16_t> instead of charactersToIntStrict. * page/linux/ResourceUsageThreadLinux.cpp: (WebCore::collectCPUUsage): Use parseInteger<pid_t> instead of String::toIntStrict. Also removed unneeded special cases for "." and ".." since both will fail to parse as an integer, and this no longer need to put d_name into a WTF::String. * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (CachedResourceStreamingClient::responseReceived): Use parseIntegerAllowingTrailingJunk<int> instead of String::toInt. * platform/graphics/gstreamer/eme/CDMThunder.cpp: (WebCore::ParsedResponseMessage::ParsedResponseMessage): Use parseInteger<int> instead of String::toInt to parse a single-digit. Probably should write this another way. * platform/network/curl/CookieUtil.cpp: (WebCore::CookieUtil::parseCookieAttributes): Use parseIntegerAllowingTrailingJunk<int64_t> instead of String::toInt64. * platform/network/curl/CurlCacheEntry.cpp: (WebCore::CurlCacheEntry::setResponseFromCachedHeaders): Use parseIntegerAllowingTrailingJunk<long long> instead of String::toInt64. * svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::appendOS2Table): Use parseHTMLInteger instead of parseIntegerAllowingTrailingJunk<int>. Might be even better to refactor to use getIntegralAttribute later. (WebCore::SVGToOTFFontConverter::appendVORGTable): Ditto. * testing/Internals.cpp: (WebCore::Internals::setSFrameCounter): Use parseInteger<uint64_t> instead of StringView::toUInt64Strict. Source/WebDriver: * WebDriverService.cpp: (WebDriver::WebDriverService::run): Use parseIntegerAllowingTrailingJunk<uint16_t> instead of String::toUInt. * glib/WebDriverServiceGLib.cpp: (WebDriver::parseVersion): Use parseIntegerAllowingTrailingJunk<uint64_t> instead of String::toInt64, and then assigning into a uint64_t. * socket/HTTPParser.cpp: (WebDriver::HTTPParser::expectedBodyLength const): Use parseIntegerAllowingTrailingJunk<size_t> instead of String::toInt. Also use StringView instead of String::substringSharingImpl and dropped an unneeded call to String::stripWhiteSpace. Source/WebKitLegacy/win: * Plugins/PluginDatabaseWin.cpp: (WebCore::parseVersionString): Use parseIntegerAllowinTrailingJunk<int> isnstead of String::toInt. * Plugins/PluginView.cpp: (WebCore::PluginView::handlePost): Use parseIntegerAllowingTrailingJunk<unsigned> instead of String::toInt, and then assigning to an unsigned. Tools: * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::numberAttributeValue): Use parseIntegerAllowingTrailingJunk<int> instead of String::toInt. (WTR::AccessibilityUIElement::hierarchicalLevel const): Ditto. Canonical link: https://commits.webkit.org/237536@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-10 16:57:02 +00:00
2021-05-09 Darin Adler <darin@apple.com>
Remove all remaining uses of the String::toInt family of functions
https://bugs.webkit.org/show_bug.cgi?id=225580
Reviewed by Sam Weinig.
* WebDriverService.cpp:
(WebDriver::WebDriverService::run): Use
parseIntegerAllowingTrailingJunk<uint16_t> instead of String::toUInt.
* glib/WebDriverServiceGLib.cpp:
(WebDriver::parseVersion): Use
parseIntegerAllowingTrailingJunk<uint64_t> instead of String::toInt64,
and then assigning into a uint64_t.
* socket/HTTPParser.cpp:
(WebDriver::HTTPParser::expectedBodyLength const): Use
parseIntegerAllowingTrailingJunk<size_t> instead of String::toInt.
Also use StringView instead of String::substringSharingImpl and
dropped an unneeded call to String::stripWhiteSpace.
2021-03-25 Don Olmstead <don.olmstead@sony.com>
[CMake] Use WebDriver_DERIVED_SOURCES value
https://bugs.webkit.org/show_bug.cgi?id=223760
Reviewed by Ross Kirsling.
Replace DERIVED_SOURCES_WEBDRIVER_DIR with WebDriver_DERIVED_SOURCES.
* CMakeLists.txt:
All string resources from UserAgentStyleSheets / UserAgentScripts should be used as non-copying StringImpl https://bugs.webkit.org/show_bug.cgi?id=223685 Reviewed by Saam Barati. Source/WebCore: We use StringImpl::createWithoutCopying for string resources from UserAgentStyleSheets / UserAgentScripts to make sure that these resources do not allocate heap strings. This patch also fixes HTMLMeterElement's bug (and imageOverlayUserAgentStyleSheet's bug). Previously, we are using String::ConstructFromLiteral, but this only accepts string literal as it says. As a result, we are dropping the last character since UserAgentStyleSheets's last character is not \0. * Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::quickTimePluginReplacementScript): * WebCoreMacros.cmake: * dom/Document.cpp: (WebCore::Document::ensurePlugInsInjectedScript): * html/HTMLElement.cpp: (WebCore::HTMLElement::updateWithImageExtractionResult): * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): * rendering/RenderThemeAdwaita.cpp: (WebCore::RenderThemeAdwaita::extraDefaultStyleSheet): (WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet): (WebCore::RenderThemeAdwaita::mediaControlsScripts): * rendering/RenderThemeCocoa.mm: (WebCore::RenderThemeCocoa::mediaControlsStyleSheet): (WebCore::RenderThemeCocoa::mediaControlsScripts): * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::extraDefaultStyleSheet): (WebCore::RenderThemeWin::extraQuirksStyleSheet): * style/UserAgentStyle.cpp: (WebCore::Style::UserAgentStyle::initDefaultStyleSheet): (WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement): Source/WebDriver: * Session.cpp: (WebDriver::Session::fullscreenWindow): (WebDriver::Session::findElements): (WebDriver::Session::isElementSelected): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::elementClear): Source/WTF: Add StringImpl::createWithoutCopying for `const char*`. * wtf/text/StringImpl.h: (WTF::StringImpl::createWithoutCopying): LayoutTests: * fast/dom/HTMLMeterElement/meter-element-markup-expected.txt: Canonical link: https://commits.webkit.org/235738@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-25 01:55:58 +00:00
2021-03-24 Yusuke Suzuki <ysuzuki@apple.com>
All string resources from UserAgentStyleSheets / UserAgentScripts should be used as non-copying StringImpl
https://bugs.webkit.org/show_bug.cgi?id=223685
Reviewed by Saam Barati.
* Session.cpp:
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::elementClear):
[SOUP] Add support for libsoup3 https://bugs.webkit.org/show_bug.cgi?id=222093 Reviewed by Adrian Perez de Castro. .: * Source/cmake/FindLibSoup.cmake: * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsWPE.cmake: Source/WebCore: * platform/Soup.cmake: * platform/network/soup/AuthenticationChallenge.h: * platform/network/soup/AuthenticationChallengeSoup.cpp: (WebCore::AuthenticationChallenge::AuthenticationChallenge): (WebCore::AuthenticationChallenge::platformCompare): * platform/network/soup/CookieSoup.cpp: (WebCore::Cookie::Cookie): (WebCore::Cookie::toSoupCookie const): * platform/network/soup/GUniquePtrSoup.h: * platform/network/soup/NetworkStorageSessionSoup.cpp: (WebCore::schemeFromProtectionSpaceServerType): (WebCore::authTypeFromProtectionSpaceAuthenticationScheme): (WebCore::NetworkStorageSession::setCookiesFromDOM const): (WebCore::NetworkStorageSession::setCookies): (WebCore::NetworkStorageSession::deleteCookie const): (WebCore::NetworkStorageSession::getHostnamesWithCookies): (WebCore::NetworkStorageSession::getCookies): (WebCore::NetworkStorageSession::hasCookies const): (WebCore::NetworkStorageSession::getRawCookies const): (WebCore::cookiesForSession): * platform/network/soup/ResourceErrorSoup.cpp: (WebCore::ResourceError::transportError): (WebCore::ResourceError::httpError): (WebCore::ResourceError::authenticationError): (WebCore::ResourceError::tlsError): * platform/network/soup/ResourceRequest.h: * platform/network/soup/ResourceRequestSoup.cpp: (WebCore::ResourceRequest::createSoupMessage const): (WebCore::ResourceRequest::updateSoupMessageBody const): (WebCore::ResourceRequest::createSoupURI const): * platform/network/soup/ResourceResponseSoup.cpp: (WebCore::ResourceResponse::ResourceResponse): * platform/network/soup/SoupNetworkSession.cpp: (WebCore::SoupNetworkSession::SoupNetworkSession): (WebCore::SoupNetworkSession::setupLogger): (WebCore::SoupNetworkSession::clearHSTSCache): (WebCore::SoupNetworkSession::setProxySettings): * platform/network/soup/SoupVersioning.h: Added. (soup_message_get_method): (soup_server_message_get_method): (soup_message_get_status): (soup_server_message_set_status): (soup_message_get_reason_phrase): (soup_message_get_request_headers): (soup_server_message_get_request_headers): (soup_message_get_response_headers): (soup_server_message_get_response_headers): (soup_server_message_get_response_body): (soup_server_message_set_response): (soup_server_message_get_uri): (soup_message_get_tls_certificate): (soup_message_get_tls_certificate_errors): (soup_session_send_async): (soup_session_websocket_connect_async): (soup_auth_cancel): * platform/network/soup/URLSoup.cpp: (WebCore::soupURIToURL): (WebCore::urlToSoupURI): * platform/network/soup/URLSoup.h: Source/WebDriver: * soup/HTTPServerSoup.cpp: (WebDriver::HTTPServer::listen): Source/WebKit: * NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::createRequest): (WebKit::NetworkDataTaskSoup::clearRequest): (WebKit::NetworkDataTaskSoup::resume): (WebKit::NetworkDataTaskSoup::cancel): (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback): (WebKit::NetworkDataTaskSoup::acceptCertificateCallback): (WebKit::NetworkDataTaskSoup::acceptCertificate): (WebKit::NetworkDataTaskSoup::authenticateCallback): (WebKit::NetworkDataTaskSoup::authenticate): (WebKit::NetworkDataTaskSoup::continueAuthenticate): (WebKit::shouldRedirectAsGET): (WebKit::NetworkDataTaskSoup::continueHTTPRedirection): (WebKit::NetworkDataTaskSoup::didGetHeaders): (WebKit::NetworkDataTaskSoup::wroteBodyDataCallback): (WebKit::NetworkDataTaskSoup::didWriteBodyData): (WebKit::NetworkDataTaskSoup::networkEvent): (WebKit::NetworkDataTaskSoup::hstsEnforced): (WebKit::NetworkDataTaskSoup::didRestart): * NetworkProcess/soup/NetworkDataTaskSoup.h: * NetworkProcess/soup/NetworkSessionSoup.cpp: (WebKit::NetworkSessionSoup::createWebSocketTask): * NetworkProcess/soup/WebSocketTaskSoup.cpp: (WebKit::isConnectionError): (WebKit::WebSocketTask::WebSocketTask): Source/WTF: * wtf/Platform.h: * wtf/URL.h: * wtf/glib/GRefPtr.cpp: (WTF::refGPtr): (WTF::derefGPtr): * wtf/glib/GRefPtr.h: * wtf/glib/URLGLib.cpp: (WTF::URL::URL): (WTF::URL::createGUri const): Tools: * MiniBrowser/gtk/BrowserTab.c: (tlsErrorsDialogResponse): * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: (Tunnel::Tunnel): (Tunnel::connect): (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: (testCookieManagerAddCookie): (testCookieManagerGetCookies): (testCookieManagerDeleteCookie): (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: (addContentDispositionHTTPHeaderToResponse): (writeNextChunk): (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp: (testLoadingError): (testWebViewIsLoading): (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: (addCacheHTTPHeadersToResponse): (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: (WebSocketTest::serverWebSocketCallback): (httpsServerCallback): (httpServerCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (serverCallback): (ProxyTest::webSocketProxyServerCallback): (webSocketServerCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: (serverCallback): * TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp: (writeNextChunk): (serverCallback): * TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp: (WebKitTestServer::run): (WebKitTestServer::addWebSocketHandler): Canonical link: https://commits.webkit.org/234422@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273236 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-02-22 11:07:31 +00:00
2021-02-22 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Add support for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=222093
Reviewed by Adrian Perez de Castro.
* soup/HTTPServerSoup.cpp:
(WebDriver::HTTPServer::listen):
[CMake] Determine correct visibility for linked frameworks https://bugs.webkit.org/show_bug.cgi?id=210366 Reviewed by Michael Catanzaro. .: WebKit has some frameworks that are compiled statically into a larger shared library. For example Apple compiles bmalloc and WTF into JavaScriptCore. This means the JavaScriptCore framework also exposes the symbols for those two libraries and that targets depending on WTF or bmalloc should link to JavaScriptCore and never to WTF or bmalloc directly. The CMake code allows each port to decide the type of library for a WEBKIT_FRAMEWORK. This means there are many different combinations that it needs to support. To ensure that everything links properly some bookkeeping is required. WEBKIT_FRAMEWORK now uses ${target}_FRAMEWORKS to determine how to link the frameworks it depends on. First the macro determines if the framework is a SHARED library or is linked into a shared library, and if so it is linked as PUBLIC. If the framework itself is not a SHARED library, then it links other STATIC/OBJECT framework as PUBLIC. If the framework itself is SHARED then any framework that is a STATIC/OBJECT library is linked as PRIVATE to stop propagation. The linked framework's header directories are added to the WebKit::${framework} target to allow the framework to present as that framework. A global property is set to inform consumers that they should link to this different framework to get the requested framework. This ensures that all ports can ship with hidden visibility turned on which is a precursor to a port turning on link time optimization (LTO). * Source/cmake/WebKitMacros.cmake: Source/JavaScriptCore: Set JavaScriptCore_FRAMEWORKS to determine correct linkage for the library. Remove explicit setting of STATICALLY_LINKED_WITH_${framework} and $<TARGET_OBJECTS:${framework}> by ports. Move the add_subdirectory of shell to the end of the CMakeLists.txt so its after the WEBKIT_FRAMEWORK call. This ensures that the frameworks linked into JavaScriptCore are known when creating the executables in that directory. * CMakeLists.txt: * PlatformGTK.cmake: * PlatformJSCOnly.cmake: * PlatformMac.cmake: * PlatformPlayStation.cmake: * shell/CMakeLists.txt: Source/WebCore: Set WebCore_FRAMEWORKS and WebCoreTestSupport_FRAMEWORKS to determine correct linkage for the libraries. Remove explicit setting of STATICALLY_LINKED_WITH_PAL. For the GTK port JavaScriptCore is compiled as a SHARED library with WTF and bmalloc compiled into it. WEBKIT_FRAMEWORK now correctly prevents WTF and bmalloc being linked into targets that also link JavaScriptCore. However GTK port can't be compiled with hidden visibility turned on currently to properly export symbols so the libraries are added back to the list for WebCore to keep the old, albiet wrong, behavior. * CMakeLists.txt: * PlatformGTK.cmake: Source/WebCore/PAL: Set PAL_FRAMEWORKS to determine correct linkage for the library. * pal/CMakeLists.txt: Source/WebDriver: Conditionally add bmalloc to the list of WebDriver_FRAMEWORKS. * CMakeLists.txt: Source/WebKit: Set WebKit_FRAMEWORKS to determine correct linkage for the library. Remove explicit setting of STATICALLY_LINKED_WITH_${framework} and $<TARGET_OBJECTS:${framework}> by ports. * CMakeLists.txt: * PlatformFTW.cmake: * PlatformPlayStation.cmake: * PlatformWPE.cmake: * PlatformWin.cmake: Source/WebKitLegacy: Remove explicit setting of STATICALLY_LINKED_WITH_${framework}. * PlatformFTW.cmake: * PlatformWin.cmake: Source/WTF: Set WTF_FRAMEWORKS to determine correct linkage for the library. Remove explicit setting of STATICALLY_LINKED_WITH_${framework} by ports. * wtf/CMakeLists.txt: * wtf/PlatformPlayStation.cmake: Tools: Remove explicit setting of STATICALLY_LINKED_WITH_${framework}. * TestWebKitAPI/PlatformWin.cmake: Canonical link: https://commits.webkit.org/232353@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-11 19:15:43 +00:00
2020-12-11 Don Olmstead <don.olmstead@sony.com>
[CMake] Determine correct visibility for linked frameworks
https://bugs.webkit.org/show_bug.cgi?id=210366
Reviewed by Michael Catanzaro.
Conditionally add bmalloc to the list of WebDriver_FRAMEWORKS.
* CMakeLists.txt:
[CMake] Determine when to use $<TARGET_OBJECTS> for executables https://bugs.webkit.org/show_bug.cgi?id=219648 Reviewed by Michael Catanzaro. .: When a WebKit framework is declared as an OBJECT library the WebKit::${framework} ALIAS does not propagate the objects to the executable being built. As a workaround ports will explicitly add $<TARGET_OBJECTS> to the list of libraries being linked. There is already enough information to determine when $<TARGET_OBJECTS> is needed so this decision is moved into the WEBKIT_EXECUTABLE macros. An additional ${taget_name}_FRAMEWORKS variable is added which specifies the WebKit frameworks being used. This will link the WebKit::${framework} alias and if necessary the associated $<TARGET_OBJECTS>. This functionality will be expanded upon when support for ${target_name}_FRAMEWORKS is added to WebKit frameworks to support hidden visibility across ports. * Source/cmake/WebKitMacros.cmake: Source/JavaScriptCore: Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables. * CMakeLists.txt: * shell/CMakeLists.txt: Source/WebDriver: Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables. Remove use of $<TARGET_OBJECTS>. * CMakeLists.txt: * PlatformPlayStation.cmake: * PlatformWin.cmake: Tools: Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables. Remove use of $<TARGET_OBJECTS>. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformPlayStation.cmake: * TestWebKitAPI/PlatformWin.cmake: * WebKitTestRunner/CMakeLists.txt: Canonical link: https://commits.webkit.org/232316@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-10 21:28:18 +00:00
2020-12-10 Don Olmstead <don.olmstead@sony.com>
[CMake] Determine when to use $<TARGET_OBJECTS> for executables
https://bugs.webkit.org/show_bug.cgi?id=219648
Reviewed by Michael Catanzaro.
Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.
Remove use of $<TARGET_OBJECTS>.
* CMakeLists.txt:
* PlatformPlayStation.cmake:
* PlatformWin.cmake:
WebDriver: add support for pen pointer events https://bugs.webkit.org/show_bug.cgi?id=219024 Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-12-09 Reviewed by Brian Burg. LayoutTests/imported/w3c: Handle pen pointer events in testdriver. * web-platform-tests/resources/testdriver-vendor.js: (window.test_driver_internal.action_sequence): Source/WebCore: * Headers.cmake: * dom/Element.cpp: (WebCore::dispatchPointerEventIfNeeded): Pass pointer ID and pointer type to pointerEventForMouseEvent(). * dom/PointerEvent.cpp: (WebCore::PointerEvent::create): Add pointer ID and pointer type parameters. (WebCore::PointerEvent::PointerEvent): Ditto. * dom/PointerEvent.h: * page/PointerCaptureController.cpp: (WebCore::PointerCaptureController::pointerEventForMouseEvent): Do not assume the pointer type is always mouse. We might not have a capturing data yet for other pointer types. (WebCore::PointerCaptureController::pointerEventWillBeDispatched): Explicilty check it's not touch pointer event. * page/PointerCaptureController.h: * platform/PlatformMouseEvent.h: (WebCore::PlatformMouseEvent::pointerType const): Source/WebDriver: Pass the actual pointer type to the automation as a different input source. * Session.cpp: (WebDriver::automationSourceType): (WebDriver::Session::performActions): Source/WebKit: Make it possible to synthesize pointer events for any pointer type. Add pen input source to automation and handle it when dispatching actions. * Shared/NativeWebMouseEvent.h: * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent): * Shared/WebMouseEvent.cpp: (WebKit::WebMouseEvent::WebMouseEvent): (WebKit::WebMouseEvent::encode const): (WebKit::WebMouseEvent::decode): * Shared/WebMouseEvent.h: (WebKit::WebMouseEvent::pointerId const): (WebKit::WebMouseEvent::pointerType const): * Shared/gtk/NativeWebMouseEventGtk.cpp: (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (primaryPointerForType): (webkitWebViewBaseSynthesizeMouseEvent): * UIProcess/API/gtk/WebKitWebViewBaseInternal.h: * UIProcess/Automation/Automation.json: * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputSourceState::emptyStateForSourceType): (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): * UIProcess/Automation/SimulatedInputDispatcher.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::simulateMouseInteraction): (WebKit::WebAutomationSession::performMouseInteraction): (WebKit::simulatedInputSourceTypeFromProtocolSourceType): (WebKit::WebAutomationSession::performInteractionSequence): * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: (WebKit::WebAutomationSession::platformSimulateMouseInteraction): * UIProcess/Automation/mac/WebAutomationSessionMac.mm: (WebKit::WebAutomationSession::platformSimulateMouseInteraction): * UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: (WebKit::WebAutomationSession::platformSimulateMouseInteraction): * UIProcess/gtk/PointerLockManager.cpp: (WebKit::PointerLockManager::handleMotion): Tools: Add optional pointerType parameter to EventSenderProxy mouseDown(), mouseUp() and mouseMoveTo() methods. * WebKitTestRunner/EventSenderProxy.h: * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: (WTR::createMouseMessageBody): (WTR::EventSendingController::mouseDown): (WTR::EventSendingController::mouseUp): (WTR::EventSendingController::mouseMoveTo): (WTR::EventSendingController::scheduleAsynchronousClick): * WebKitTestRunner/InjectedBundle/EventSendingController.h: * WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm: (WTR::EventSenderProxy::mouseDown): (WTR::EventSenderProxy::mouseUp): (WTR::EventSenderProxy::mouseMoveTo): * WebKitTestRunner/TestController.cpp: (WTR::TestController::didReceiveMessageFromInjectedBundle): (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: (WTR::EventSenderProxy::mouseDown): (WTR::EventSenderProxy::mouseUp): (WTR::EventSenderProxy::mouseMoveTo): * WebKitTestRunner/mac/EventSenderProxy.mm: (WTR::EventSenderProxy::mouseDown): (WTR::EventSenderProxy::mouseUp): (WTR::EventSenderProxy::mouseMoveTo): * WebKitTestRunner/win/EventSenderProxyWin.cpp: (WTR::EventSenderProxy::mouseDown): (WTR::EventSenderProxy::mouseUp): (WTR::EventSenderProxy::mouseMoveTo): * WebKitTestRunner/wpe/EventSenderProxyWPE.cpp: (WTR::EventSenderProxy::mouseDown): (WTR::EventSenderProxy::mouseUp): (WTR::EventSenderProxy::mouseMoveTo): LayoutTests: Update expectations of imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html. The test is now timing out, but because tesdriver doesn't correctly handle the iframe element. * platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-expected.txt: Added. * platform/mac-wk2/imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-expected.txt: Added. Canonical link: https://commits.webkit.org/232253@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270582 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-09 17:03:08 +00:00
2020-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: add support for pen pointer events
https://bugs.webkit.org/show_bug.cgi?id=219024
Reviewed by Brian Burg.
Pass the actual pointer type to the automation as a different input source.
* Session.cpp:
(WebDriver::automationSourceType):
(WebDriver::Session::performActions):
[WTF] Avoid JSONValue::create with raw string falling to bool overload https://bugs.webkit.org/show_bug.cgi?id=219483 Reviewed by Adrian Perez de Castro. Source/JavaScriptCore: * inspector/InjectedScriptBase.cpp: (Inspector::InjectedScriptBase::makeAsyncCall): Convert to WTF::String when creating the value. Source/WebCore: Covered by existing tests. * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Convert to WTF::String when creating the value. Source/WebDriver: Avoid accidental conversion of "selected" to bool that would make the getElementAttribute javascriptcode to fail with "attributeName.toLowerCase is undefined" * Session.cpp: (WebDriver::Session::isElementSelected): Convert to WTF::String when creating the value. Source/WTF: r269757 removed the const char* overload for Value::create() and replaced them with makeString() versions. While this worked most of the time, one could still call Value::create(raw_string) and it would end up calling the bool overload. This could cause side effects like making a number of WebDriver tests to fail with wrong types in the executed javascript code. To avoid these accidental conversions, this commit added an overload to delete all implicit conversions of Value::create(). * wtf/JSONValues.h: Delete implicit overloads for Value::create(T). Canonical link: https://commits.webkit.org/232076@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-03 10:30:16 +00:00
2020-12-03 Lauro Moura <lmoura@igalia.com>
[WTF] Avoid JSONValue::create with raw string falling to bool overload
https://bugs.webkit.org/show_bug.cgi?id=219483
Reviewed by Adrian Perez de Castro.
Avoid accidental conversion of "selected" to bool that would make the
getElementAttribute javascriptcode to fail with "attributeName.toLowerCase
is undefined"
* Session.cpp:
(WebDriver::Session::isElementSelected): Convert to WTF::String when creating the value.
WebDriver: session can have more than one active input source of the same type https://bugs.webkit.org/show_bug.cgi?id=218382 Reviewed by Brian Burg. Source/WebDriver: Only send to the browser the list of input sources actually used by the action sequence. * Session.cpp: (WebDriver::Session::performActions): Source/WebKit: We are failing in that case, and the dispatcher assumes it's not possible, but the spec doesn't say there's such limitation and there's a WPT infrastructure test checking that (infrastructure/testdriver/actions/eventOrder.html). * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputKeyFrame::keyFrameFromStateOfInputSources): Input sources are now stored in a HashMap. (WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ditto. (WebKit::SimulatedInputDispatcher::run): We don't need to copy the given input sources, since they are owned by the session. (WebKit::SimulatedInputDispatcher::finishDispatching): Ditto. * UIProcess/Automation/SimulatedInputDispatcher.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::WebAutomationSession): Do not create initial input sources for each type. (WebKit::WebAutomationSession::performInteractionSequence): Check there aren't multiple input sources with the same ID, but don't fail if there are multiple input sources with the same type. (WebKit::WebAutomationSession::cancelInteractionSequence): Clear the active input sources. (WebKit::WebAutomationSession::inputSourceForType): Removed. * UIProcess/Automation/WebAutomationSession.h: Canonical link: https://commits.webkit.org/231248@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269419 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-05 08:45:46 +00:00
2020-11-05 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: session can have more than one active input source of the same type
https://bugs.webkit.org/show_bug.cgi?id=218382
Reviewed by Brian Burg.
Only send to the browser the list of input sources actually used by the action sequence.
* Session.cpp:
(WebDriver::Session::performActions):
[WinCairo][PlayStation] Add handling for accept failure case https://bugs.webkit.org/show_bug.cgi?id=217353 Reviewed by Alex Christensen. Source/JavaScriptCore: It is rare to happen, but listening socket can be invalid state (i.e. cable disconnection, interface error), and accept() will be called because of the poll's false report. In that situation, it is required to rebuild the listening socket from the scratch. The failure of accept is the good place to capture this situation. This patch moves listening duty into Listener internal calss and it is possible to make the invalid state while maintained by SocketEndpoint. Also in case of failure continues, the retry will be gradually increasing the intervals. * inspector/remote/socket/RemoteInspectorServer.h: * inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp: (Inspector::RemoteInspectorSocketEndpoint::listenInet): (Inspector::RemoteInspectorSocketEndpoint::pollingTimeout): (Inspector::RemoteInspectorSocketEndpoint::workerThread): (Inspector::RemoteInspectorSocketEndpoint::createClient): (Inspector::RemoteInspectorSocketEndpoint::disconnect): (Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled): * inspector/remote/socket/RemoteInspectorSocketEndpoint.h: Source/WebDriver: Following the interface change. * HTTPServer.h: * socket/HTTPServerSocket.cpp: (WebDriver::HTTPServer::didStatusChanged): Canonical link: https://commits.webkit.org/231006@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-28 23:51:45 +00:00
2020-10-28 Basuke Suzuki <basuke.suzuki@sony.com>
[WinCairo][PlayStation] Add handling for accept failure case
https://bugs.webkit.org/show_bug.cgi?id=217353
Reviewed by Alex Christensen.
Following the interface change.
* HTTPServer.h:
* socket/HTTPServerSocket.cpp:
(WebDriver::HTTPServer::didStatusChanged):
2020-10-22 Nitzan Uziely <linkgoron@gmail.com>
Elements in Shadow DOM are wrongly marked as stale by the WebDriver
https://bugs.webkit.org/show_bug.cgi?id=217635
Reviewed by Brian Burg.
Changed stale checking, to check if the root node is the document element,
instead of document.contains which doesn't work for elements in Shadow DOM.
* Session.cpp:
(WebDriver::Session::elementSendKeys):
WebDriver: add support for wheel actions https://bugs.webkit.org/show_bug.cgi?id=217174 Reviewed by Brian Burg. .: Enable WEBDRIVER_WHEEL_INTERACTIONS for GTK and WPE ports. * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsWPE.cmake: * Source/cmake/WebKitFeatures.cmake: Source/WebDriver: Handle wheel actions. * Actions.h: * Session.cpp: (WebDriver::automationSourceType): Handle InputSource::Type::Wheel. (WebDriver::Session::performActions): Handle Action::Type::Wheel. * WebDriverService.cpp: (WebDriver::processKeyAction): Assert if Action::Subtype::Scroll. (WebDriver::processPointerMoveAction): Move this code to a helper to be used by both pointer move and scroll actions. (WebDriver::processPointerAction): Use processPointerMoveAction(). (WebDriver::processWheelAction): Call processPointerMoveAction() and process the scroll delta too. (WebDriver::processInputActionSequence): Handle InputSource::Type::Wheel. Source/WebKit: * UIProcess/Automation/Automation.json: Add scroll delta to action state. * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputSourceState::emptyStateForSourceType): Initialize scrollDelta for wheel actions. (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Handle SimulatedInputSourceType::Wheel. * UIProcess/Automation/SimulatedInputDispatcher.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::WebAutomationSession): Add SimulatedInputSourceType::Wheel. (WebKit::WebAutomationSession::terminate): Handle pending wheel events. (WebKit::WebAutomationSession::willShowJavaScriptDialog): Ditto. (WebKit::WebAutomationSession::wheelEventsFlushedForPage): Ditto. (WebKit::WebAutomationSession::willClosePage): Ditto. (WebKit::WebAutomationSession::isSimulatingUserInteraction const): Return true if there are pending wheel events too. (WebKit::WebAutomationSession::simulateWheelInteraction): Handle the wheel action. (WebKit::simulatedInputSourceTypeFromProtocolSourceType): Handle Inspector::Protocol::Automation::InputSourceType::Wheel. (WebKit::WebAutomationSession::performInteractionSequence): Initialize the scroll delta for wheel action. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: (WebKit::WebAutomationSession::platformSimulateWheelInteraction): Synthesize a wheel event. * UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: (WebKit::WebAutomationSession::platformSimulateWheelInteraction): Ditto. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isProcessingWheelEvents const): Return whether page has pending wheel events. (WebKit::WebPageProxy::didReceiveEvent): Notify automation that pending wheel events have been processed. * UIProcess/WebPageProxy.h: * config.h: Tools: Add webdriver-wheel-interactions option. * Scripts/webkitperl/FeatureList.pm: WebDriverTests: Remove expectations for wheel actions test. * TestExpectations.json: Canonical link: https://commits.webkit.org/230734@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-21 12:36:18 +00:00
2020-10-21 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: add support for wheel actions
https://bugs.webkit.org/show_bug.cgi?id=217174
Reviewed by Brian Burg.
Handle wheel actions.
* Actions.h:
* Session.cpp:
(WebDriver::automationSourceType): Handle InputSource::Type::Wheel.
(WebDriver::Session::performActions): Handle Action::Type::Wheel.
* WebDriverService.cpp:
(WebDriver::processKeyAction): Assert if Action::Subtype::Scroll.
(WebDriver::processPointerMoveAction): Move this code to a helper to be used by both pointer move and scroll actions.
(WebDriver::processPointerAction): Use processPointerMoveAction().
(WebDriver::processWheelAction): Call processPointerMoveAction() and process the scroll delta too.
(WebDriver::processInputActionSequence): Handle InputSource::Type::Wheel.
WebDriver: add support for right variations of virtual keys https://bugs.webkit.org/show_bug.cgi?id=217819 Reviewed by Brian Burg. Source/WebDriver: The browser is currently receiving the virtual keys already normalized, but WebDriver expects the key code to be the actual one, not the normalized one. We need to send the raw virtual keys to the browser and do the normalization there, but use the raw one when synthesizing the events. Fixes: imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue009-CONTROL] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue008-SHIFT] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue052-R_ALT] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[CONTROL-expected5] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ALT-expected48] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWDOWN-expected49] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWLEFT-expected50] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWRIGHT-expected51] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWUP-expected52] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_DELETE-expected54] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_END-expected55] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_HOME-expected56] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_INSERT-expected57] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_PAGEDOWN-expected59] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_PAGEUP-expected60] imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[SHIFT-expected64] * Session.cpp: (WebDriver::Session::virtualKeyForKey): Do not normalize the virtual keys. Source/WebKit: Instead of using a HashSet the pressed virtual keys are now stored in a HashMap where the key is the normalized virtual key and the value is the raw virtual key. * UIProcess/Automation/Automation.json: * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): * UIProcess/Automation/SimulatedInputDispatcher.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::normalizedVirtualKey): (WebKit::WebAutomationSession::performInteractionSequence): * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: (WebKit::keyCodeForVirtualKey): (WebKit::modifiersForKeyCode): * UIProcess/Automation/mac/WebAutomationSessionMac.mm: (WebKit::keyCodeForVirtualKey): * UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: (WebKit::keyCodeForVirtualKey): (WebKit::modifiersForKeyCode): WebDriverTests: Remove expectations for tests that are now passing. * TestExpectations.json: Canonical link: https://commits.webkit.org/230668@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-20 09:14:35 +00:00
2020-10-20 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: add support for right variations of virtual keys
https://bugs.webkit.org/show_bug.cgi?id=217819
Reviewed by Brian Burg.
The browser is currently receiving the virtual keys already normalized, but WebDriver expects the key code to be
the actual one, not the normalized one. We need to send the raw virtual keys to the browser and do the
normalization there, but use the raw one when synthesizing the events.
Fixes: imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue009-CONTROL]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue008-SHIFT]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue052-R_ALT]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[CONTROL-expected5]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ALT-expected48]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWDOWN-expected49]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWLEFT-expected50]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWRIGHT-expected51]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ARROWUP-expected52]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_DELETE-expected54]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_END-expected55]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_HOME-expected56]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_INSERT-expected57]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_PAGEDOWN-expected59]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_PAGEUP-expected60]
imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[SHIFT-expected64]
* Session.cpp:
(WebDriver::Session::virtualKeyForKey): Do not normalize the virtual keys.
2020-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: add support for same site cookies
https://bugs.webkit.org/show_bug.cgi?id=217222
Reviewed by Brian Burg.
* Session.cpp:
(WebDriver::parseAutomationCookie): Parse sameSite.
(WebDriver::builtAutomationCookie): Add sameSite to cookie.
(WebDriver::serializeCookie): Serialize sameSite.
* Session.h:
* WebDriverService.cpp:
(WebDriver::deserializeCookie): Deserialize sameSite.
WebDriver: several issues when switching to new browser context https://bugs.webkit.org/show_bug.cgi?id=217217 Reviewed by Brian Burg. Source/WebDriver: There are several issues to fix when switching to a browser context: 1- The spec has changed and now we should always keep the current parent browsing context. 2- The spec says we should focus the new frame after switching to a frame or parent frame, but we are just resolving the frame and updating the handle internally. 3- We are keeping stale frame handles and ids in the automation session, they should be removed when frames are destroyed. 4- We are clearing all frame references in the automation session when a navigation happens in any main frame. We should only clear the frames of the page that completed the navigation. All theses cases are covered by new tests added to imported/w3c/webdriver/tests/switch_to_parent_frame/ * Session.cpp: (WebDriver::Session::close): Close the current parent browsing context too. (WebDriver::Session::switchToTopLevelBrowsingContext): Initialize the current parent browsing context too. (WebDriver::Session::switchToBrowsingContext): Resolve the parent frame handle and set the current parent browsing context. (WebDriver::Session::go): Pass completion handler to switchToBrowsingContext(). (WebDriver::Session::back): Ditto. (WebDriver::Session::forward): Ditto. (WebDriver::Session::refresh): Ditto. (WebDriver::Session::closeWindow): Close the current parent browsing context too. (WebDriver::Session::switchToBrowsingContext): Send switchToBrowsingContext message to the browser. (WebDriver::Session::switchToWindow): Use switchToBrowsingContext() to send the message to the browser. (WebDriver::Session::switchToFrame): Call switchToBrowsingContext() after the child frame handle is resolved. (WebDriver::Session::switchToParentFrame): Check current parent browsing context is still open and call switchToBrowsingContext() to switch to the current parent browsing context. (WebDriver::Session::waitForNavigationToComplete): Close the current parent browsing context too when the window is closed due to the navigation. * Session.h: Add m_currentParentBrowsingContext. Source/WebKit: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::didDestroyFrame): Remove the frame references from maps. (WebKit::WebAutomationSession::navigationOccurredForFrame): Only clear the frame references from the maps for the frames in the given frame's page. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didDestroyFrame): Notify automation session about frame being destroyed. Canonical link: https://commits.webkit.org/230029@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-03 06:26:08 +00:00
2020-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: several issues when switching to new browser context
https://bugs.webkit.org/show_bug.cgi?id=217217
Reviewed by Brian Burg.
There are several issues to fix when switching to a browser context:
1- The spec has changed and now we should always keep the current parent browsing context.
2- The spec says we should focus the new frame after switching to a frame or parent frame, but we are just
resolving the frame and updating the handle internally.
3- We are keeping stale frame handles and ids in the automation session, they should be removed when frames
are destroyed.
4- We are clearing all frame references in the automation session when a navigation happens in any main
frame. We should only clear the frames of the page that completed the navigation.
All theses cases are covered by new tests added to imported/w3c/webdriver/tests/switch_to_parent_frame/
* Session.cpp:
(WebDriver::Session::close): Close the current parent browsing context too.
(WebDriver::Session::switchToTopLevelBrowsingContext): Initialize the current parent browsing context too.
(WebDriver::Session::switchToBrowsingContext): Resolve the parent frame handle and set the current parent browsing context.
(WebDriver::Session::go): Pass completion handler to switchToBrowsingContext().
(WebDriver::Session::back): Ditto.
(WebDriver::Session::forward): Ditto.
(WebDriver::Session::refresh): Ditto.
(WebDriver::Session::closeWindow): Close the current parent browsing context too.
(WebDriver::Session::switchToBrowsingContext): Send switchToBrowsingContext message to the browser.
(WebDriver::Session::switchToWindow): Use switchToBrowsingContext() to send the message to the browser.
(WebDriver::Session::switchToFrame): Call switchToBrowsingContext() after the child frame handle is resolved.
(WebDriver::Session::switchToParentFrame): Check current parent browsing context is still open and call
switchToBrowsingContext() to switch to the current parent browsing context.
(WebDriver::Session::waitForNavigationToComplete): Close the current parent browsing context too when the window
is closed due to the navigation.
* Session.h: Add m_currentParentBrowsingContext.
WebDriver: check the right browser context is open in all commands https://bugs.webkit.org/show_bug.cgi?id=217177 Reviewed by Carlos Alberto Lopez Perez. We currently check the top level browsing context for all commands, but the current browsing context should be checked instead in some of them. New tests added to check this are now failing. This patch changes the way we were handling the current browsing context, considering nullopt to be the main frame of the current top level browsing context. Now the null string is used for that, matching what automation expects in the browser and nullopt means the browser context is closed. That way we can check if the current browser context has been closed. * Session.cpp: (WebDriver::Session::close): Also close the current browsing context. (WebDriver::Session::switchToTopLevelBrowsingContext): Initialize the current browsing context to null string. (WebDriver::Session::switchToBrowsingContext): Just set the given context now. (WebDriver::Session::go): Pass null string to switchToBrowsingContext(). (WebDriver::Session::back): Ditto. (WebDriver::Session::forward): Ditto. (WebDriver::Session::refresh): Ditto. (WebDriver::Session::closeWindow): Close the current browsing context too. (WebDriver::Session::switchToFrame): If frame is null check top level browsing context is open, otherwise check current browsing context. (WebDriver::Session::findElements): Check current browsing context is open instead of toplevel one. (WebDriver::Session::getActiveElement): Ditto. (WebDriver::Session::isElementSelected): Ditto. (WebDriver::Session::getElementText): Ditto. (WebDriver::Session::getElementTagName): Ditto. (WebDriver::Session::getElementRect): Ditto. (WebDriver::Session::isElementEnabled): Ditto. (WebDriver::Session::getElementAttribute): Ditto. (WebDriver::Session::getElementProperty): Ditto. (WebDriver::Session::getElementCSSValue): Ditto. (WebDriver::Session::waitForNavigationToComplete): Ditto. Also close the current browsing context when the window or the frame are closed to do the navigation. (WebDriver::Session::elementClick): Check current browsing context is open instead of toplevel one. (WebDriver::Session::elementClear): Ditto. (WebDriver::Session::elementSendKeys): Ditto. (WebDriver::Session::getPageSource): Ditto. (WebDriver::Session::executeScript): Ditto. (WebDriver::Session::getAllCookies): Ditto. (WebDriver::Session::addCookie): Ditto. (WebDriver::Session::deleteCookie): Ditto. (WebDriver::Session::deleteAllCookies): Ditto. (WebDriver::Session::performActions): Ditto. (WebDriver::Session::takeScreenshot): Check current browsing context is open instead of toplevel one when an element is given. * Session.h: Canonical link: https://commits.webkit.org/229990@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-02 11:54:41 +00:00
2020-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: check the right browser context is open in all commands
https://bugs.webkit.org/show_bug.cgi?id=217177
Reviewed by Carlos Alberto Lopez Perez.
We currently check the top level browsing context for all commands, but the current browsing context should be
checked instead in some of them. New tests added to check this are now failing. This patch changes the way we
were handling the current browsing context, considering nullopt to be the main frame of the current top level
browsing context. Now the null string is used for that, matching what automation expects in the browser and
nullopt means the browser context is closed. That way we can check if the current browser context has been
closed.
* Session.cpp:
(WebDriver::Session::close): Also close the current browsing context.
(WebDriver::Session::switchToTopLevelBrowsingContext): Initialize the current browsing context to null string.
(WebDriver::Session::switchToBrowsingContext): Just set the given context now.
(WebDriver::Session::go): Pass null string to switchToBrowsingContext().
(WebDriver::Session::back): Ditto.
(WebDriver::Session::forward): Ditto.
(WebDriver::Session::refresh): Ditto.
(WebDriver::Session::closeWindow): Close the current browsing context too.
(WebDriver::Session::switchToFrame): If frame is null check top level browsing context is open, otherwise check
current browsing context.
(WebDriver::Session::findElements): Check current browsing context is open instead of toplevel one.
(WebDriver::Session::getActiveElement): Ditto.
(WebDriver::Session::isElementSelected): Ditto.
(WebDriver::Session::getElementText): Ditto.
(WebDriver::Session::getElementTagName): Ditto.
(WebDriver::Session::getElementRect): Ditto.
(WebDriver::Session::isElementEnabled): Ditto.
(WebDriver::Session::getElementAttribute): Ditto.
(WebDriver::Session::getElementProperty): Ditto.
(WebDriver::Session::getElementCSSValue): Ditto.
(WebDriver::Session::waitForNavigationToComplete): Ditto. Also close the current browsing context when the
window or the frame are closed to do the navigation.
(WebDriver::Session::elementClick): Check current browsing context is open instead of toplevel one.
(WebDriver::Session::elementClear): Ditto.
(WebDriver::Session::elementSendKeys): Ditto.
(WebDriver::Session::getPageSource): Ditto.
(WebDriver::Session::executeScript): Ditto.
(WebDriver::Session::getAllCookies): Ditto.
(WebDriver::Session::addCookie): Ditto.
(WebDriver::Session::deleteCookie): Ditto.
(WebDriver::Session::deleteAllCookies): Ditto.
(WebDriver::Session::performActions): Ditto.
(WebDriver::Session::takeScreenshot): Check current browsing context is open instead of toplevel one when an
element is given.
* Session.h:
[PlayStation][WinCairo] Enable WebDriver target on PlayStation and client for WinCairo https://bugs.webkit.org/show_bug.cgi?id=216908 Reviewed by Don Olmstead. Source/JavaScriptCore: Implement automation session correctly for PlayStation and WinCairo. * inspector/remote/RemoteInspector.h: * inspector/remote/socket/RemoteInspectorConnectionClient.cpp: (Inspector::RemoteInspectorConnectionClient::parseTargetListJSON): * inspector/remote/socket/RemoteInspectorConnectionClient.h: * inspector/remote/socket/RemoteInspectorSocket.cpp: (Inspector::RemoteInspector::stopInternal): (Inspector::RemoteInspector::requestAutomationSession): (Inspector::RemoteInspector::startAutomationSession): Source/WebDriver: Extend WebDriver client binary to support connection to remote device for both PlayStation and WinCairo. We've implemented a simple web server to accept WebDriver request natively and bypass them to RemoteInspector. * Capabilities.h: * HTTPServer.h: * PlatformPlayStation.cmake: Added. * PlatformWin.cmake: * SessionHost.h: (WebDriver::SessionHost::setHostAddress): * WebDriverMain.cpp: (main): (dllLauncherEntryPoint): * WebDriverService.cpp: (WebDriver::printUsageStatement): (WebDriver::WebDriverService::run): (WebDriver::WebDriverService::connectToBrowser): * WebDriverService.h: * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformInit): * playstation/WebDriverServicePlayStation.cpp: Copied from Source\WebDriver\win\WebDriverServiceWin.cpp. (WebDriver::WebDriverService::platformInit): (WebDriver::WebDriverService::platformCapabilities): (WebDriver::WebDriverService::platformCompareBrowserVersions): (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformMatchCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): (WebDriver::WebDriverService::platformSupportProxyType const): * socket/CapabilitiesSocket.cpp: Copied from Source\WebDriver\socket\SessionHostSocket.cpp. (WebDriver::CapabilitiesSocket::parseCapabilities): * socket/CapabilitiesSocket.h: Copied from Source\WebDriver\socket\HTTPServerSocket.cpp. * socket/HTTPParser.cpp: Added. (WebDriver::HTTPParser::parse): (WebDriver::HTTPParser::handlePhase): (WebDriver::HTTPParser::abortProcess): (WebDriver::HTTPParser::parseFirstLine): (WebDriver::HTTPParser::readLine): (WebDriver::HTTPParser::expectedBodyLength const): * socket/HTTPParser.h: Copied from Source\WebDriver\HTTPServer.h. (WebDriver::HTTPParser::pullMessage): * socket/HTTPServerSocket.cpp: (WebDriver::HTTPServer::listen): (WebDriver::HTTPServer::disconnect): (WebDriver::HTTPServer::doAccept): (WebDriver::HTTPServer::didClose): (WebDriver::HTTPRequestHandler::connect): (WebDriver::HTTPRequestHandler::reset): (WebDriver::HTTPRequestHandler::didReceive): (WebDriver::HTTPRequestHandler::sendResponse): (WebDriver::HTTPRequestHandler::packHTTPMessage const): (WebDriver::HTTPRequestHandler::didClose): * socket/SessionHostSocket.cpp: (WebDriver::SessionHost::dispatchMap): (WebDriver::SessionHost::sendWebInspectorEvent): (WebDriver::SessionHost::connectToBrowser): (WebDriver::SessionHost::isConnected const): (WebDriver::SessionHost::didClose): (WebDriver::SessionHost::parseTargetList): (WebDriver::SessionHost::receivedSetTargetList): (WebDriver::SessionHost::receivedSendMessageToFrontend): (WebDriver::SessionHost::startAutomationSession): (WebDriver::SessionHost::setTargetList): (WebDriver::SessionHost::sendMessageToBackend): * win/WebDriverServiceWin.cpp: (WebDriver::WebDriverService::platformInit): (WebDriver::WebDriverService::platformParseCapabilities const): * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformInit): Canonical link: https://commits.webkit.org/229926@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-30 21:22:57 +00:00
2020-09-30 Basuke Suzuki <basuke.suzuki@sony.com>
[PlayStation][WinCairo] Enable WebDriver target on PlayStation and client for WinCairo
https://bugs.webkit.org/show_bug.cgi?id=216908
Reviewed by Don Olmstead.
Extend WebDriver client binary to support connection to remote device for both PlayStation
and WinCairo. We've implemented a simple web server to accept WebDriver request natively and bypass them
to RemoteInspector.
* Capabilities.h:
* HTTPServer.h:
* PlatformPlayStation.cmake: Added.
* PlatformWin.cmake:
* SessionHost.h:
(WebDriver::SessionHost::setHostAddress):
* WebDriverMain.cpp:
(main):
(dllLauncherEntryPoint):
* WebDriverService.cpp:
(WebDriver::printUsageStatement):
(WebDriver::WebDriverService::run):
(WebDriver::WebDriverService::connectToBrowser):
* WebDriverService.h:
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformInit):
* playstation/WebDriverServicePlayStation.cpp: Copied from Source\WebDriver\win\WebDriverServiceWin.cpp.
(WebDriver::WebDriverService::platformInit):
(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformCompareBrowserVersions):
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
(WebDriver::WebDriverService::platformSupportProxyType const):
* socket/CapabilitiesSocket.cpp: Copied from Source\WebDriver\socket\SessionHostSocket.cpp.
(WebDriver::CapabilitiesSocket::parseCapabilities):
* socket/CapabilitiesSocket.h: Copied from Source\WebDriver\socket\HTTPServerSocket.cpp.
* socket/HTTPParser.cpp: Added.
(WebDriver::HTTPParser::parse):
(WebDriver::HTTPParser::handlePhase):
(WebDriver::HTTPParser::abortProcess):
(WebDriver::HTTPParser::parseFirstLine):
(WebDriver::HTTPParser::readLine):
(WebDriver::HTTPParser::expectedBodyLength const):
* socket/HTTPParser.h: Copied from Source\WebDriver\HTTPServer.h.
(WebDriver::HTTPParser::pullMessage):
* socket/HTTPServerSocket.cpp:
(WebDriver::HTTPServer::listen):
(WebDriver::HTTPServer::disconnect):
(WebDriver::HTTPServer::doAccept):
(WebDriver::HTTPServer::didClose):
(WebDriver::HTTPRequestHandler::connect):
(WebDriver::HTTPRequestHandler::reset):
(WebDriver::HTTPRequestHandler::didReceive):
(WebDriver::HTTPRequestHandler::sendResponse):
(WebDriver::HTTPRequestHandler::packHTTPMessage const):
(WebDriver::HTTPRequestHandler::didClose):
* socket/SessionHostSocket.cpp:
(WebDriver::SessionHost::dispatchMap):
(WebDriver::SessionHost::sendWebInspectorEvent):
(WebDriver::SessionHost::connectToBrowser):
(WebDriver::SessionHost::isConnected const):
(WebDriver::SessionHost::didClose):
(WebDriver::SessionHost::parseTargetList):
(WebDriver::SessionHost::receivedSetTargetList):
(WebDriver::SessionHost::receivedSendMessageToFrontend):
(WebDriver::SessionHost::startAutomationSession):
(WebDriver::SessionHost::setTargetList):
(WebDriver::SessionHost::sendMessageToBackend):
* win/WebDriverServiceWin.cpp:
(WebDriver::WebDriverService::platformInit):
(WebDriver::WebDriverService::platformParseCapabilities const):
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformInit):
REGRESSION(r266885): WebDriver is broken since r266885 https://bugs.webkit.org/show_bug.cgi?id=216477 Reviewed by Devin Rousso. There are several issues introduced in r266885, most of them related to JSValue::get methods now returning an optional. In some cases of boolean values, the optional is checked instead of the contained bool or the logic is inverted. JSONValue::getString() is problematic too because it doesn't use optional, when you call getString() and null is returned it could be because the property is not present in the object or because the property is not a string. In several cases we need to know that so we need to first get the value and then call asString(9 instead of calling getString() directly. * Session.cpp: (WebDriver::Session::handleUserPrompts): Check the value of isShowingJavaScriptDialog, not the optional. (WebDriver::parseAutomationCookie): Check also the value of the session optional bool, not only the optional. * SessionHost.cpp: (WebDriver::SessionHost::dispatchMessage): Only set the responseObject if the object is not empty. * WebDriverService.cpp: (WebDriver::WebDriverService::newWindow): Unknown values of type hint are not an error. (WebDriver::WebDriverService::deleteCookie): Fix indentation. (WebDriver::processKeyAction): Empty key value is an error, not the opposite. * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformValidateCapability const): Only fail if optional values are wrong type, not if they are not present. * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformValidateCapability const): Ditto. Canonical link: https://commits.webkit.org/229360@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-15 06:25:04 +00:00
2020-09-14 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r266885): WebDriver is broken since r266885
https://bugs.webkit.org/show_bug.cgi?id=216477
Reviewed by Devin Rousso.
There are several issues introduced in r266885, most of them related to JSValue::get methods now returning an
optional. In some cases of boolean values, the optional is checked instead of the contained bool or the logic is
inverted. JSONValue::getString() is problematic too because it doesn't use optional, when you call getString()
and null is returned it could be because the property is not present in the object or because the property is
not a string. In several cases we need to know that so we need to first get the value and then call asString(9
instead of calling getString() directly.
* Session.cpp:
(WebDriver::Session::handleUserPrompts): Check the value of isShowingJavaScriptDialog, not the optional.
(WebDriver::parseAutomationCookie): Check also the value of the session optional bool, not only the optional.
* SessionHost.cpp:
(WebDriver::SessionHost::dispatchMessage): Only set the responseObject if the object is not empty.
* WebDriverService.cpp:
(WebDriver::WebDriverService::newWindow): Unknown values of type hint are not an error.
(WebDriver::WebDriverService::deleteCookie): Fix indentation.
(WebDriver::processKeyAction): Empty key value is an error, not the opposite.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const): Only fail if optional values are wrong type,
not if they are not present.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformValidateCapability const): Ditto.
2020-09-10 Fujii Hironori <Hironori.Fujii@sony.com>
Unreviewed Debug build fix for WPE and WinCairo
https://bugs.webkit.org/show_bug.cgi?id=216302
<rdar://problem/68547649>
* Session.cpp:
(WebDriver::Session::switchToFrame): Replaced 'frameIndex' with '*frameIndex' in ASSERT expression.
Web Inspector: modernize generated backend protocol code https://bugs.webkit.org/show_bug.cgi?id=216302 <rdar://problem/68547649> Reviewed by Brian Burg. Source/JavaScriptCore: Previously, the inspector protocol was expressed in code in a somewhat confusing way: - the error string was the first argument - required parameters were `T` or `const T&` - optional parameters were `const T*` - enum parameters were the underlying type requiring the backend dispatcher handler to process it instead of it being preprocessed - required returns were `T&` - optional returns were `T*` This doesn't really make for easy/obvious reading of code since the order of arguments is not weird (e.g. error string first), and that there are references/pointers to primitive types. This patch cleans up the generated inspector protocol code to be: - required parameters are `T` or `Ref<T>&&` - optional parameters are `Optional<T>&&` or `RefPtr<T>&&` - enum parameters are preprocessed and passed to the backend dispatcher handler if valid - synchronous commands return `Expected<X, ErrorString>` using the same types/rules above where `X` is either a single return or a `std::tuple` of multiple returns The one exception to the above is `String`, which is already a tri-state of `nullString()`, `emptyString()`, and something set, so there's no need to use `Optional<String>`. Also use `Protocol` objects/`typedefs` wherever possible to further relate the protocol JSON and the actual backend dispatcher handler implementation. * inspector/scripts/codegen/generator.py: (Generator.generate_includes_from_entries): * inspector/scripts/codegen/cpp_generator_templates.py: * inspector/scripts/codegen/cpp_generator.py: (CppGenerator.helpers_namespace): (CppGenerator.cpp_getter_method_for_type): (CppGenerator.cpp_setter_method_for_type): (CppGenerator.cpp_protocol_type_for_type): (CppGenerator.cpp_type_for_type_member_argument): Added. (CppGenerator.cpp_type_for_command_parameter): Added. (CppGenerator.cpp_type_for_command_return_declaration): Added. (CppGenerator.cpp_type_for_command_return_argument): Added. (CppGenerator.cpp_type_for_event_parameter): Added. (CppGenerator.cpp_type_for_enum): Added. (CppGenerator.should_move_argument): Added. (CppGenerator.should_release_argument): Added. (CppGenerator.should_dereference_argument): Added. (CppGenerator.cpp_protocol_type_for_type_member): Deleted. (CppGenerator.cpp_type_for_unchecked_formal_in_parameter): Deleted. (CppGenerator.cpp_type_for_checked_formal_event_parameter): Deleted. (CppGenerator.cpp_type_for_type_member): Deleted. (CppGenerator.cpp_type_for_type_with_name): Deleted. (CppGenerator.cpp_type_for_formal_out_parameter): Deleted. (CppGenerator.cpp_type_for_formal_async_parameter): Deleted. (CppGenerator.cpp_type_for_stack_in_parameter): Deleted. (CppGenerator.cpp_type_for_stack_out_parameter): Deleted. (CppGenerator.cpp_assertion_method_for_type_member): Deleted. (CppGenerator.cpp_assertion_method_for_type_member.assertion_method_for_type): Deleted. (CppGenerator.should_use_wrapper_for_return_type): Deleted. (CppGenerator.should_use_references_for_type): Deleted. (CppGenerator.should_pass_by_copy_for_return_type): Deleted. * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py: (CppAlternateBackendDispatcherHeaderGenerator._generate_secondary_header_includes): (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: (CppBackendDispatcherHeaderGenerator.generate_output): (CppBackendDispatcherHeaderGenerator._generate_secondary_header_includes): (CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain): (CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_anonymous_enum_for_parameter): Deleted. * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator._generate_secondary_header_includes): (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: (CppFrontendDispatcherHeaderGenerator._generate_secondary_header_includes): (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_event): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_secondary_header_includes): (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (CppProtocolTypesHeaderGenerator._generate_secondary_header_includes): * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator._generate_secondary_header_includes): (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain): (CppProtocolTypesImplementationGenerator._generate_open_field_names): (CppProtocolTypesImplementationGenerator._generate_assertion_for_enum): * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py: (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declaration_for_command): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_command): (ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command): (ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command.and): (ObjCBackendDispatcherImplementationGenerator._generate_conversions_for_command.in_param_expression): (ObjCBackendDispatcherImplementationGenerator._generate_conversions_for_command): (ObjCBackendDispatcherImplementationGenerator._generate_invocation_for_command): * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: (ObjCFrontendDispatcherImplementationGenerator._generate_event): (ObjCFrontendDispatcherImplementationGenerator._generate_event_out_parameters): * inspector/scripts/codegen/objc_generator_templates.py: * inspector/scripts/codegen/objc_generator.py: (ObjCGenerator.protocol_type_for_type): (ObjCGenerator.objc_type_for_param_internal): (ObjCGenerator.objc_protocol_import_expression_for_parameter): * inspector/protocol/Page.json: Now that enums are processed before being passed to backend dispacher handlers, the `appearance` parameter of `Page.setForcedAppearance` must be marked `optional` as there's no way for it to accept an empty string, as that's not possible for an enum. * inspector/agents/InspectorAgent.h: * inspector/agents/InspectorAgent.cpp: * inspector/agents/InspectorAuditAgent.h: * inspector/agents/InspectorAuditAgent.cpp: * inspector/agents/InspectorConsoleAgent.h: * inspector/agents/InspectorConsoleAgent.cpp: * inspector/agents/InspectorDebuggerAgent.h: * inspector/agents/InspectorDebuggerAgent.cpp: * inspector/agents/InspectorHeapAgent.h: * inspector/agents/InspectorHeapAgent.cpp: * inspector/agents/InspectorRuntimeAgent.h: * inspector/agents/InspectorRuntimeAgent.cpp: * inspector/agents/InspectorScriptProfilerAgent.h: * inspector/agents/InspectorScriptProfilerAgent.cpp: * inspector/agents/InspectorTargetAgent.h: * inspector/agents/InspectorTargetAgent.cpp: * inspector/agents/JSGlobalObjectAuditAgent.h: * inspector/agents/JSGlobalObjectAuditAgent.cpp: * inspector/agents/JSGlobalObjectDebuggerAgent.h: * inspector/agents/JSGlobalObjectDebuggerAgent.cpp: * inspector/agents/JSGlobalObjectRuntimeAgent.h: * inspector/agents/JSGlobalObjectRuntimeAgent.cpp: * inspector/JSGlobalObjectConsoleClient.cpp: * inspector/JSGlobalObjectInspectorController.cpp: Elided backend dispatcher handler changes describe above. * bindings/ScriptValue.cpp: (Inspector::jsToInspectorValue): * inspector/AsyncStackTrace.h: * inspector/AsyncStackTrace.cpp: (Inspector::AsyncStackTrace::buildInspectorObject const): * inspector/ConsoleMessage.cpp: (Inspector::ConsoleMessage::addToFrontend): * inspector/InjectedScriptBase.h: * inspector/InjectedScriptBase.cpp: (Inspector::InjectedScriptBase::makeEvalCall): (Inspector::InjectedScriptBase::checkCallResult): (Inspector::InjectedScriptBase::checkAsyncCallResult): * inspector/InjectedScript.h: * inspector/InjectedScript.cpp: (Inspector::InjectedScript::execute): (Inspector::InjectedScript::evaluate): (Inspector::InjectedScript::callFunctionOn): (Inspector::InjectedScript::evaluateOnCallFrame): (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::functionDetails): (Inspector::InjectedScript::getPreview): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::saveResult): (Inspector::InjectedScript::wrapCallFrames const): (Inspector::InjectedScript::wrapObject const): (Inspector::InjectedScript::wrapJSONString const): (Inspector::InjectedScript::wrapTable const): (Inspector::InjectedScript::previewValue const): * inspector/InjectedScriptManager.cpp: (Inspector::InjectedScriptManager::injectedScriptForObjectId): * inspector/InspectorBackendDispatcher.h: * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::CallbackBase::sendSuccess): (Inspector::BackendDispatcher::dispatch): (Inspector::BackendDispatcher::sendResponse): (Inspector::BackendDispatcher::getPropertyValue): (Inspector::BackendDispatcher::getBoolean): (Inspector::BackendDispatcher::getInteger): (Inspector::BackendDispatcher::getDouble): (Inspector::BackendDispatcher::getString): (Inspector::BackendDispatcher::getValue): (Inspector::BackendDispatcher::getObject): (Inspector::BackendDispatcher::getArray): (Inspector::castToInteger): Deleted. (Inspector::castToNumber): Deleted. * inspector/InspectorProtocolTypes.h: (Inspector::Protocol::BindingTraits<JSON::ArrayOf<T>>::runtimeCast): (Inspector::Protocol::BindingTraits<JSON::ArrayOf<T>>::assertValueHasExpectedType): * inspector/remote/socket/RemoteInspectorConnectionClient.cpp: (Inspector::RemoteInspectorConnectionClient::extractEvent): * inspector/remote/socket/RemoteInspectorSocket.cpp: (Inspector::RemoteInspector::pushListingsNow): * runtime/TypeSet.cpp: (JSC::StructureShape::inspectorRepresentation): `JSON` classes now use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*` so that values can be more easily manipulated and can be confidently known to exist. * inspector/scripts/tests/enum-values.json: * inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result: * inspector/scripts/tests/expected/commands-with-async-attribute.json-result: * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: * inspector/scripts/tests/expected/definitions-with-mac-platform.json-result: * inspector/scripts/tests/expected/domain-debuggableTypes.json-result: * inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result: * inspector/scripts/tests/expected/domain-targetTypes.json-result: * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: * inspector/scripts/tests/expected/enum-values.json-result: * inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result: * inspector/scripts/tests/expected/events-with-optional-parameters.json-result: * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: * inspector/scripts/tests/expected/same-type-id-different-domain.json-result: * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: * inspector/scripts/tests/expected/should-strip-comments.json-result: * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: * inspector/scripts/tests/expected/type-declaration-array-type.json-result: * inspector/scripts/tests/expected/type-declaration-enum-type.json-result: * inspector/scripts/tests/expected/type-declaration-object-type.json-result: * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: * inspector/scripts/tests/expected/type-with-open-parameters.json-result: * inspector/scripts/tests/expected/version.json-result: Source/WebCore: Previously, the inspector protocol was expressed in code in a somewhat confusing way: - the error string was the first argument - required parameters were `T` or `const T&` - optional parameters were `const T*` - enum parameters were the underlying type requiring the backend dispatcher handler to process it instead of it being preprocessed - required returns were `T&` - optional returns were `T*` This doesn't really make for easy/obvious reading of code since the order of arguments is not weird (e.g. error string first), and that there are references/pointers to primitive types. This patch cleans up the generated inspector protocol code to be: - required parameters are `T` or `Ref<T>&&` - optional parameters are `Optional<T>&&` or `RefPtr<T>&&` - enum parameters are preprocessed and passed to the backend dispatcher handler if valid - synchronous commands return `Expected<X, ErrorString>` using the same types/rules above where `X` is either a single return or a `std::tuple` of multiple returns The one exception to the above is `String`, which is already a tri-state of `nullString()`, `emptyString()`, and something set, so there's no need to use `Optional<String>`. Also use `Protocol` objects/`typedefs` wherever possible to further relate the protocol JSON and the actual backend dispatcher handler implementation. * inspector/InspectorAuditResourcesObject.cpp: * inspector/InspectorCanvas.h: * inspector/InspectorCanvas.cpp: * inspector/InspectorController.cpp: * inspector/InspectorStyleSheet.h: * inspector/InspectorStyleSheet.cpp: * inspector/agents/InspectorAnimationAgent.h: * inspector/agents/InspectorAnimationAgent.cpp: * inspector/agents/InspectorApplicationCacheAgent.h: * inspector/agents/InspectorApplicationCacheAgent.cpp: * inspector/agents/InspectorCPUProfilerAgent.h: * inspector/agents/InspectorCPUProfilerAgent.cpp: * inspector/agents/InspectorCSSAgent.h: * inspector/agents/InspectorCSSAgent.cpp: * inspector/agents/InspectorCanvasAgent.h: * inspector/agents/InspectorCanvasAgent.cpp: * inspector/agents/InspectorDOMAgent.h: * inspector/agents/InspectorDOMAgent.cpp: * inspector/agents/InspectorDOMDebuggerAgent.h: * inspector/agents/InspectorDOMDebuggerAgent.cpp: * inspector/agents/InspectorDOMStorageAgent.h: * inspector/agents/InspectorDOMStorageAgent.cpp: * inspector/agents/InspectorDatabaseAgent.h: * inspector/agents/InspectorDatabaseAgent.cpp: * inspector/agents/InspectorIndexedDBAgent.h: * inspector/agents/InspectorIndexedDBAgent.cpp: * inspector/agents/InspectorLayerTreeAgent.h: * inspector/agents/InspectorLayerTreeAgent.cpp: * inspector/agents/InspectorMemoryAgent.h: * inspector/agents/InspectorMemoryAgent.cpp: * inspector/agents/InspectorNetworkAgent.h: * inspector/agents/InspectorNetworkAgent.cpp: * inspector/agents/InspectorPageAgent.h: * inspector/agents/InspectorPageAgent.cpp: * inspector/agents/InspectorTimelineAgent.h: * inspector/agents/InspectorTimelineAgent.cpp: * inspector/agents/InspectorWorkerAgent.h: * inspector/agents/InspectorWorkerAgent.cpp: * inspector/agents/WebConsoleAgent.h: * inspector/agents/WebDebuggerAgent.h: * inspector/agents/WebDebuggerAgent.cpp: * inspector/agents/WebHeapAgent.h: * inspector/agents/WebHeapAgent.cpp: * inspector/agents/page/PageAuditAgent.h: * inspector/agents/page/PageAuditAgent.cpp: * inspector/agents/page/PageConsoleAgent.h: * inspector/agents/page/PageConsoleAgent.cpp: * inspector/agents/page/PageDOMDebuggerAgent.h: * inspector/agents/page/PageDOMDebuggerAgent.cpp: * inspector/agents/page/PageDebuggerAgent.h: * inspector/agents/page/PageDebuggerAgent.cpp: * inspector/agents/page/PageHeapAgent.h: * inspector/agents/page/PageHeapAgent.cpp: * inspector/agents/page/PageNetworkAgent.h: * inspector/agents/page/PageNetworkAgent.cpp: * inspector/agents/page/PageRuntimeAgent.h: * inspector/agents/page/PageRuntimeAgent.cpp: * inspector/agents/worker/ServiceWorkerAgent.h: * inspector/agents/worker/ServiceWorkerAgent.cpp: * inspector/agents/worker/WorkerAuditAgent.h: * inspector/agents/worker/WorkerConsoleAgent.h: * inspector/agents/worker/WorkerAuditAgent.cpp: * inspector/agents/worker/WorkerDOMDebuggerAgent.h: * inspector/agents/worker/WorkerDOMDebuggerAgent.cpp: * inspector/agents/worker/WorkerDebuggerAgent.h: * inspector/agents/worker/WorkerDebuggerAgent.cpp: * inspector/agents/worker/WorkerNetworkAgent.h: * inspector/agents/worker/WorkerNetworkAgent.cpp: * inspector/agents/worker/WorkerRuntimeAgent.h: * inspector/agents/worker/WorkerRuntimeAgent.cpp: Elided backend dispatcher handler changes describe above. * inspector/CommandLineAPIHost.cpp: (WebCore::CommandLineAPIHost::inspect): (WebCore::CommandLineAPIHost::clearConsoleMessages): * inspector/InspectorFrontendHost.cpp: (WebCore::valuePayloadFromJSONValue): (WebCore::InspectorFrontendHost::logDiagnosticEvent): * inspector/TimelineRecordFactory.h: * inspector/TimelineRecordFactory.cpp: (WebCore::TimelineRecordFactory::appendLayoutRoot): * Modules/applicationmanifest/ApplicationManifestParser.cpp: (WebCore::ApplicationManifestParser::parseManifest): (WebCore::ApplicationManifestParser::parseStartURL): (WebCore::ApplicationManifestParser::parseDisplay): (WebCore::ApplicationManifestParser::parseScope): (WebCore::ApplicationManifestParser::parseGenericString): * Modules/encryptedmedia/InitDataRegistry.cpp: (WebCore::extractKeyIDsKeyids): * platform/encryptedmedia/CDMUtilities.cpp: (WebCore::CDMUtilities::parseJSONObject): * platform/encryptedmedia/clearkey/CDMClearKey.cpp: (WebCore::parseLicenseFormat): (WebCore::parseLicenseReleaseAcknowledgementFormat): * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::extractSinfData): * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::parseJSONValue): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense): `JSON` classes now use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*` so that values can be more easily manipulated and can be confidently known to exist. Source/WebDriver: * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): * Session.cpp: (WebDriver::firstWindowHandleInResult): (WebDriver::Session::getTimeouts): (WebDriver::Session::createTopLevelBrowsingContext): (WebDriver::Session::handleUserPrompts): (WebDriver::Session::reportUnexpectedAlertOpen): (WebDriver::Session::go): (WebDriver::Session::getCurrentURL): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::getTitle): (WebDriver::Session::getWindowHandle): (WebDriver::Session::closeTopLevelBrowsingContext): (WebDriver::Session::switchToWindow): (WebDriver::Session::getWindowHandles): (WebDriver::Session::newWindow): (WebDriver::Session::switchToFrame): (WebDriver::Session::switchToParentFrame): (WebDriver::Session::getToplevelBrowsingContextRect): (WebDriver::Session::setWindowRect): (WebDriver::Session::maximizeWindow): (WebDriver::Session::minimizeWindow): (WebDriver::Session::fullscreenWindow): (WebDriver::Session::createElement): (WebDriver::Session::extractElementID): (WebDriver::Session::computeElementLayout): (WebDriver::Session::findElements): (WebDriver::Session::getActiveElement): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::getElementProperty): (WebDriver::Session::getElementCSSValue): (WebDriver::Session::waitForNavigationToComplete): (WebDriver::Session::elementIsFileUpload): (WebDriver::Session::parseElementIsFileUploadResult): (WebDriver::Session::selectOptionElement): (WebDriver::Session::elementClick): (WebDriver::Session::elementIsEditable): (WebDriver::Session::elementClear): (WebDriver::Session::setInputFileUploadFiles): (WebDriver::Session::elementSendKeys): (WebDriver::Session::getPageSource): (WebDriver::Session::handleScriptResult): (WebDriver::Session::executeScript): (WebDriver::Session::performMouseInteraction): (WebDriver::Session::performKeyboardInteractions): (WebDriver::builtAutomationCookie): (WebDriver::serializeCookie): (WebDriver::Session::getAllCookies): (WebDriver::Session::getNamedCookie): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::performActions): (WebDriver::Session::releaseActions): (WebDriver::Session::dismissAlert): (WebDriver::Session::acceptAlert): (WebDriver::Session::getAlertText): (WebDriver::Session::sendAlertText): (WebDriver::Session::takeScreenshot): * SessionHost.cpp: (WebDriver::SessionHost::dispatchMessage): * WebDriverService.h: * WebDriverService.cpp: (WebDriver::WebDriverService::handleRequest): (WebDriver::WebDriverService::sendResponse const): (WebDriver::valueAsNumberInRange): (WebDriver::deserializeTimeouts): (WebDriver::deserializeProxy): (WebDriver::WebDriverService::parseCapabilities const): (WebDriver::WebDriverService::findSessionOrCompleteWithError): (WebDriver::WebDriverService::validatedCapabilities const): (WebDriver::WebDriverService::mergeCapabilities const): (WebDriver::WebDriverService::matchCapabilities const): (WebDriver::WebDriverService::processCapabilities const): (WebDriver::WebDriverService::createSession): (WebDriver::WebDriverService::deleteSession): (WebDriver::WebDriverService::go): (WebDriver::WebDriverService::setWindowRect): (WebDriver::WebDriverService::closeWindow): (WebDriver::WebDriverService::switchToWindow): (WebDriver::WebDriverService::newWindow): (WebDriver::WebDriverService::switchToFrame): (WebDriver::findElementOrCompleteWithError): (WebDriver::findStrategyAndSelectorOrCompleteWithError): (WebDriver::WebDriverService::getElementAttribute): (WebDriver::WebDriverService::getElementProperty): (WebDriver::WebDriverService::getElementCSSValue): (WebDriver::WebDriverService::elementSendKeys): (WebDriver::findScriptAndArgumentsOrCompleteWithError): (WebDriver::WebDriverService::getNamedCookie): (WebDriver::deserializeCookie): (WebDriver::WebDriverService::addCookie): (WebDriver::WebDriverService::deleteCookie): (WebDriver::processPauseAction): (WebDriver::processNullAction): (WebDriver::processKeyAction): (WebDriver::processPointerAction): (WebDriver::processPointerParameters): (WebDriver::processInputActionSequence): (WebDriver::WebDriverService::performActions): (WebDriver::WebDriverService::sendAlertText): * WebDriver/gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformMatchCapability): (WebDriver::WebDriverService::platformValidateCapability): (WebDriver::WebDriverService::platformParseCapabilities): * WebDriver/win/WebDriverServiceWin.cpp: (WebDriver::WebDriverService::platformMatchCapability): (WebDriver::WebDriverService::platformValidateCapability): (WebDriver::WebDriverService::platformParseCapabilities): * WebDriver/wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformMatchCapability): (WebDriver::WebDriverService::platformValidateCapability): (WebDriver::WebDriverService::platformParseCapabilities): `JSON` classes now use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*` so that values can be more easily manipulated and can be confidently known to exist. Source/WebInspectorUI: * UserInterface/Controllers/CSSManager.js: (WI.CSSManager.prototype.set forcedAppearance): Now that enums are processed before being passed to backend dispacher handlers, the `appearance` parameter of `Page.setForcedAppearance` must be marked `optional` as there's no way for it to accept an empty string, as that's not possible for an enum. As such, rework the frontend logic for invoking `Page.setForcedAppearance` to instead not provide an `appearance` parameter at all when wanting to "unset" it. * UserInterface/Views/SettingsTabContentView.js: (WI.SettingsTabContentView.prototype._createConsoleSettingsView): Now that all logging channels matching a `Console.ChannelSource` are returned instead of just the hardcoded list, check for a matching `WI.UIString` before showing a `<select>`. Source/WebKit: Previously, the inspector protocol was expressed in code in a somewhat confusing way: - the error string was the first argument - required parameters were `T` or `const T&` - optional parameters were `const T*` - enum parameters were the underlying type requiring the backend dispatcher handler to process it instead of it being preprocessed - required returns were `T&` - optional returns were `T*` This doesn't really make for easy/obvious reading of code since the order of arguments is not weird (e.g. error string first), and that there are references/pointers to primitive types. This patch cleans up the generated inspector protocol code to be: - required parameters are `T` or `Ref<T>&&` - optional parameters are `Optional<T>&&` or `RefPtr<T>&&` - enum parameters are preprocessed and passed to the backend dispatcher handler if valid - synchronous commands return `Expected<X, ErrorString>` using the same types/rules above where `X` is either a single return or a `std::tuple` of multiple returns The one exception to the above is `String`, which is already a tri-state of `nullString()`, `emptyString()`, and something set, so there's no need to use `Optional<String>`. Also use `Protocol` objects/`typedefs` wherever possible to further relate the protocol JSON and the actual backend dispatcher handler implementation. * UIProcess/Automation/Automation.json: `CoordinateSystem` has `Page` and `Viewport` enum values, but `WebAutomationSession` checks for `"Page"` and `"LayoutViewport"`. Add a `LayoutViewport` enum value now that enums are processed before being passed to backend dispacher handlers to preserve functionality. * UIProcess/Inspector/Agents/InspectorBrowserAgent.h: * UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp: * UIProcess/Automation/WebAutomationSessionMacros.h: * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/WebAutomationSession.cpp: * UIProcess/Automation/mac/WebAutomationSessionMac.mm: Elided backend dispatcher handler changes describe above. * UIProcess/Inspector/socket/RemoteInspectorClient.cpp: (WebKit::RemoteInspectorClient::setTargetList): `JSON` classes now use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*` so that values can be more easily manipulated and can be confidently known to exist. Source/WTF: * wtf/JSONValues.h: (WTF::JSONImpl::ObjectBase::setValue): (WTF::JSONImpl::ObjectBase::setObject): (WTF::JSONImpl::ObjectBase::setArray): (WTF::JSONImpl::ArrayBase::pushValue): (WTF::JSONImpl::ArrayBase::pushObject): (WTF::JSONImpl::ArrayBase::pushArray): (WTF::JSONImpl::ArrayOf::ArrayOf): Deleted. (WTF::JSONImpl::ArrayOf::castedArray): Deleted. (WTF::JSONImpl::ArrayOf::addItem): Deleted. (WTF::JSONImpl::ArrayOf::create): Deleted. * wtf/JSONValues.cpp: (WTF::JSONImpl::Value::asValue): (WTF::JSONImpl::Value::asObject): (WTF::JSONImpl::Value::asArray): (WTF::JSONImpl::Value::parseJSON): (WTF::JSONImpl::Value::asBoolean const): (WTF::JSONImpl::Value::asDouble const): (WTF::JSONImpl::Value::asInteger const): (WTF::JSONImpl::Value::asString const): (WTF::JSONImpl::ObjectBase::asObject): (WTF::JSONImpl::ObjectBase::memoryCost const): (WTF::JSONImpl::ObjectBase::getBoolean const): (WTF::JSONImpl::ObjectBase::getDouble const): (WTF::JSONImpl::ObjectBase::getInteger const): (WTF::JSONImpl::ObjectBase::getString const): (WTF::JSONImpl::ObjectBase::getObject const): (WTF::JSONImpl::ObjectBase::getArray const): (WTF::JSONImpl::ObjectBase::getValue const): (WTF::JSONImpl::ObjectBase::ObjectBase): (WTF::JSONImpl::ArrayBase::asArray): (WTF::JSONImpl::ArrayBase::writeJSON const): (WTF::JSONImpl::ArrayBase::ArrayBase): (WTF::JSONImpl::ArrayBase::get const): (WTF::JSONImpl::ArrayBase::memoryCost const): (WTF::JSONImpl::ObjectBase::openAccessors): Deleted. Use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*` so that values can be more easily manipulated and can be confidently assumed to exist. Remove unused overloads and allow subclasses to call `as*` instead of `openAccessors` as they're effectively the same thing. Tools: * TestWebKitAPI/Tests/WTF/JSONValue.cpp: LayoutTests: * inspector/canvas/requestShaderSource-expected.txt: * inspector/canvas/updateShader-expected.txt: * inspector/console/webcore-logging-expected.txt: * inspector/dom/highlightQuad-expected.txt: * inspector/worker/dom-debugger-dom-breakpoints-expected.txt: Canonical link: https://commits.webkit.org/229208@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266885 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-10 19:23:17 +00:00
2020-09-10 Devin Rousso <drousso@apple.com>
Web Inspector: modernize generated backend protocol code
https://bugs.webkit.org/show_bug.cgi?id=216302
<rdar://problem/68547649>
Reviewed by Brian Burg.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
* Session.cpp:
(WebDriver::firstWindowHandleInResult):
(WebDriver::Session::getTimeouts):
(WebDriver::Session::createTopLevelBrowsingContext):
(WebDriver::Session::handleUserPrompts):
(WebDriver::Session::reportUnexpectedAlertOpen):
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::getWindowHandle):
(WebDriver::Session::closeTopLevelBrowsingContext):
(WebDriver::Session::switchToWindow):
(WebDriver::Session::getWindowHandles):
(WebDriver::Session::newWindow):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::createElement):
(WebDriver::Session::extractElementID):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::findElements):
(WebDriver::Session::getActiveElement):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::elementIsFileUpload):
(WebDriver::Session::parseElementIsFileUploadResult):
(WebDriver::Session::selectOptionElement):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementIsEditable):
(WebDriver::Session::elementClear):
(WebDriver::Session::setInputFileUploadFiles):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::getPageSource):
(WebDriver::Session::handleScriptResult):
(WebDriver::Session::executeScript):
(WebDriver::Session::performMouseInteraction):
(WebDriver::Session::performKeyboardInteractions):
(WebDriver::builtAutomationCookie):
(WebDriver::serializeCookie):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::getNamedCookie):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::releaseActions):
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
(WebDriver::Session::takeScreenshot):
* SessionHost.cpp:
(WebDriver::SessionHost::dispatchMessage):
* WebDriverService.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::handleRequest):
(WebDriver::WebDriverService::sendResponse const):
(WebDriver::valueAsNumberInRange):
(WebDriver::deserializeTimeouts):
(WebDriver::deserializeProxy):
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::mergeCapabilities const):
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::createSession):
(WebDriver::WebDriverService::deleteSession):
(WebDriver::WebDriverService::go):
(WebDriver::WebDriverService::setWindowRect):
(WebDriver::WebDriverService::closeWindow):
(WebDriver::WebDriverService::switchToWindow):
(WebDriver::WebDriverService::newWindow):
(WebDriver::WebDriverService::switchToFrame):
(WebDriver::findElementOrCompleteWithError):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::WebDriverService::getElementAttribute):
(WebDriver::WebDriverService::getElementProperty):
(WebDriver::WebDriverService::getElementCSSValue):
(WebDriver::WebDriverService::elementSendKeys):
(WebDriver::findScriptAndArgumentsOrCompleteWithError):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::processPointerAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):
(WebDriver::WebDriverService::sendAlertText):
* WebDriver/gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformMatchCapability):
(WebDriver::WebDriverService::platformValidateCapability):
(WebDriver::WebDriverService::platformParseCapabilities):
* WebDriver/win/WebDriverServiceWin.cpp:
(WebDriver::WebDriverService::platformMatchCapability):
(WebDriver::WebDriverService::platformValidateCapability):
(WebDriver::WebDriverService::platformParseCapabilities):
* WebDriver/wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformMatchCapability):
(WebDriver::WebDriverService::platformValidateCapability):
(WebDriver::WebDriverService::platformParseCapabilities):
`JSON` classes now use `Ref&&` wherever possible and `Optional` instead of an out parameter
for `get*`/`as*` so that values can be more easily manipulated and can be confidently known
to exist.
2020-07-15 Fujii Hironori <Hironori.Fujii@sony.com>
[CMake][WebDriver] Generating WebDriverAtoms.cpp is rarely failing as "ImportError: No module named jsmin"
https://bugs.webkit.org/show_bug.cgi?id=214339
Reviewed by Don Olmstead.
There are a race condition between copying jsmin.py in
JavaScriptCore and using it in WebDriver. WebDriver target should
have a dependency to it.
* CMakeLists.txt: Added add_dependencies for WebDriver.
Initializing the main thread should initialize the main run loop https://bugs.webkit.org/show_bug.cgi?id=213637 Reviewed by Anders Carlsson. Source/JavaScriptCore: * JavaScriptCore.order: Removed some defunct stuff. * shell/playstation/TestShell.cpp: (setupTestRun): Merged initializeThreading call with initializeMainThread call because initializeMainThread is a superset. Source/WebCore: * platform/ios/wak/WebCoreThread.mm: (RunWebThread): Removed call to initializeMainThread() because the main thread calls it before starting the web thread, so it's a no-op. (And if it were an op, it would be broken.) (StartWebThread): Merged RunLoop::initializeMain and initializeThreading into initializeMainThread. Source/WebDriver: * WebDriverService.cpp: (WebDriver::WebDriverService::run): Source/WebKit: * Shared/Cocoa/WebKit2InitializeCocoa.mm: (WebKit::runInitializationCode): (WebKit::InitializeWebKit2): * Shared/WebKit2Initialize.cpp: (WebKit::InitializeWebKit2): Source/WebKitLegacy/mac: * History/WebBackForwardList.mm: (+[WebBackForwardList initialize]): * History/WebHistoryItem.mm: (+[WebHistoryItem initialize]): * Misc/WebCache.mm: (+[WebCache initialize]): * Misc/WebElementDictionary.mm: (+[WebElementDictionary initialize]): * Misc/WebIconDatabase.mm: * Plugins/Hosted/WebHostedNetscapePluginView.mm: (+[WebHostedNetscapePluginView initialize]): * Plugins/WebBaseNetscapePluginView.mm: * Plugins/WebBasePluginPackage.mm: (+[WebBasePluginPackage initialize]): * Plugins/WebNetscapePluginView.mm: (+[WebNetscapePluginView initialize]): * WebCoreSupport/WebEditorClient.mm: (+[WebUndoStep initialize]): * WebCoreSupport/WebFrameLoaderClient.mm: (+[WebFramePolicyListener initialize]): * WebView/WebArchive.mm: (+[WebArchivePrivate initialize]): * WebView/WebDataSource.mm: (+[WebDataSource initialize]): * WebView/WebHTMLView.mm: (+[WebHTMLViewPrivate initialize]): (+[WebHTMLView initialize]): * WebView/WebPreferences.mm: (+[WebPreferences initialize]): * WebView/WebResource.mm: (+[WebResourcePrivate initialize]): * WebView/WebTextIterator.mm: (+[WebTextIteratorPrivate initialize]): * WebView/WebView.mm: (+[WebView initialize]): * WebView/WebViewData.mm: (+[WebViewPrivate initialize]): Source/WebKitLegacy/win: * WebView.cpp: (WebView::WebView): Source/WTF: Previously, some code initialized one, some the other, and some both; and some code tried to initialize more than once; and some code tried to initialize in ways that would crash but luckily got pre-empted by other code that had already initialized. In addition to general confusion, this setup made it subtly high stakes to call certain functions, like callOnMainThread or RunLoop::main().dispatch(), because they might crash if the right initialization had not been performed. Let's fix that. * wtf/MainThread.cpp: (WTF::initializeMainThread): Removed defunct comment about initializeMainThreadToProcessMainThread. Shrank scope of initializeKey. * wtf/RunLoop.cpp: (WTF::RunLoop::initializeMain): Don't call initializeMainThread anymore because it calls us now. No need for a store fence since we run on the main thread and we don't store anything. (WTF::RunLoop::initializeWeb): Upgrade to RELEASE_ASSERT. * wtf/RunLoop.h: Removed incorrect comment. (Fascinating to wonder when it became incorrect.) Tools: Updated TestWebKitAPI to stop using RunLoop::initializeMain directly. * TestWebKitAPI/Tests/WTF/RefPtr.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/RunLoop.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/AbortableTaskQueue.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp: (ApplicationManifestParserTest::SetUp): * TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: (TestWebKitAPI::ComplexTextControllerTest::SetUp): * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::ContentExtensionTest::SetUp): * TestWebKitAPI/Tests/WebCore/DNS.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm: (initializeInAppBrowserPrivacyTestSettings): * TestWebKitAPI/TestsController.cpp: (TestWebKitAPI::TestsController::TestsController): * WebKitTestRunner/TestController.cpp: (TestController::initialize): Canonical link: https://commits.webkit.org/226452@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263575 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-26 19:28:18 +00:00
2020-06-26 Geoffrey Garen <ggaren@apple.com>
Initializing the main thread should initialize the main run loop
https://bugs.webkit.org/show_bug.cgi?id=213637
Reviewed by Anders Carlsson.
* WebDriverService.cpp:
(WebDriver::WebDriverService::run):
Remove a lot of unnecessary calls to Ref::copyRef() https://bugs.webkit.org/show_bug.cgi?id=213533 Reviewed by Darin Adler. Remove a lot of unnecessary calls to Ref::copyRef() now that Ref is copyable. Source/WebCore: * Modules/cache/DOMCache.cpp: (WebCore::DOMCache::addAll): * Modules/indexeddb/IDBTransaction.cpp: (WebCore::IDBTransaction::doRequestOpenCursor): (WebCore::IDBTransaction::requestGetAllObjectStoreRecords): (WebCore::IDBTransaction::requestGetAllIndexRecords): (WebCore::IDBTransaction::requestGetRecord): (WebCore::IDBTransaction::requestIndexRecord): (WebCore::IDBTransaction::requestCount): (WebCore::IDBTransaction::requestDeleteRecord): (WebCore::IDBTransaction::requestClearObjectStore): (WebCore::IDBTransaction::requestPutOrAdd): * Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::create): * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::create): * Modules/webdatabase/Database.cpp: (WebCore::Database::scheduleTransactionCallback): * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::Peer::send): (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount): (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect): (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage): (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData): (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount): (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake): (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose): (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError): (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL): (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize): (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize): * bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld): * crypto/SubtleCrypto.cpp: (WebCore::SubtleCrypto::wrapKey): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::begin): * loader/NetscapePlugInStreamLoader.cpp: (WebCore::NetscapePlugInStreamLoader::create): * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): * platform/graphics/ImageSource.cpp: (WebCore::ImageSource::startAsyncDecodingQueue): * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests): * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: * platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp: (WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::wrapCryptoKey): (WebCore::WorkerGlobalScope::unwrapCryptoKey): * workers/service/WorkerSWClientConnection.cpp: (WebCore::WorkerSWClientConnection::matchRegistration): (WebCore::WorkerSWClientConnection::getRegistrations): (WebCore::WorkerSWClientConnection::whenRegistrationReady): (WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer): * workers/service/context/ServiceWorkerFetch.cpp: (WebCore::ServiceWorkerFetch::dispatchFetchEvent): * workers/service/context/ServiceWorkerThread.cpp: (WebCore::ServiceWorkerThread::queueTaskToFireFetchEvent): (WebCore::ServiceWorkerThread::queueTaskToPostMessage): (WebCore::ServiceWorkerThread::queueTaskToFireInstallEvent): (WebCore::ServiceWorkerThread::queueTaskToFireActivateEvent): Source/WebDriver: * Session.cpp: (WebDriver::Session::go): (WebDriver::Session::getCurrentURL): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::getTitle): (WebDriver::Session::newWindow): (WebDriver::Session::switchToFrame): (WebDriver::Session::switchToParentFrame): (WebDriver::Session::setWindowRect): (WebDriver::Session::maximizeWindow): (WebDriver::Session::minimizeWindow): (WebDriver::Session::fullscreenWindow): (WebDriver::Session::findElements): (WebDriver::Session::getActiveElement): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::getElementProperty): (WebDriver::Session::getElementCSSValue): (WebDriver::Session::elementClick): (WebDriver::Session::elementClear): (WebDriver::Session::elementSendKeys): (WebDriver::Session::getPageSource): (WebDriver::Session::executeScript): (WebDriver::Session::getAllCookies): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::performActions): (WebDriver::Session::takeScreenshot): Source/WebKit: * GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::requestResource): * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::CompletionHandler<void): * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess): (WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal): (WebKit::ResourceLoadStatisticsMemoryStore::clear): (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: (WebKit::ResourceLoadStatisticsStore::removeDataRecords): (WebKit::ResourceLoadStatisticsStore::grandfatherExistingWebsiteData): (WebKit::ResourceLoadStatisticsStore::updateCookieBlockingForDomains): (WebKit::ResourceLoadStatisticsStore::removeAllStorageAccess): * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::loadPing): * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didClose): (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteData): (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): (WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains): (WebKit::NetworkProcess::registrableDomainsWithWebsiteData): (WebKit::NetworkProcess::renameOriginInWebsiteData): * NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::readCachesFromDisk): (WebKit::CacheStorage::Engine::fetchDirectoryEntries): (WebKit::CacheStorage::Engine::clearAllCaches): (WebKit::CacheStorage::Engine::clearCachesForOrigin): (WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories): * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::clearDiskCache): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::clearDiskCache): * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreStatisticsResetToConsistentState): * UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _takeViewSnapshot]): * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::resolveChildFrameHandle): (WebKit::WebAutomationSession::resolveParentFrameHandle): (WebKit::WebAutomationSession::computeElementLayout): (WebKit::WebAutomationSession::selectOptionElement): (WebKit::WebAutomationSession::setFilesForInputFileUpload): (WebKit::WebAutomationSession::getAllCookies): (WebKit::WebAutomationSession::deleteSingleCookie): (WebKit::WebAutomationSession::addSingleCookie): (WebKit::WebAutomationSession::performMouseInteraction): (WebKit::WebAutomationSession::takeScreenshot): * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleSynchronousMessage): (WebKit::WebPageProxy::clearServiceWorkerEntitlementOverride): (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForResponseShared): (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processForNavigationInternal): (WebKit::WebProcessPool::seedResourceLoadStatisticsForTesting): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::setMaxStatisticsEntries): (WebKit::WebsiteDataStore::setPruneEntriesDownTo): (WebKit::WebsiteDataStore::setGrandfatheringTime): (WebKit::WebsiteDataStore::setMinimumTimeBetweenDataRecordsRemoval): (WebKit::WebsiteDataStore::setPrevalentResource): (WebKit::WebsiteDataStore::setPrevalentResourceForDebugMode): (WebKit::WebsiteDataStore::setVeryPrevalentResource): (WebKit::WebsiteDataStore::setShouldClassifyResourcesBeforeDataRecordsRemoval): (WebKit::WebsiteDataStore::setSubframeUnderTopFrameDomain): (WebKit::WebsiteDataStore::setSubresourceUnderTopFrameDomain): (WebKit::WebsiteDataStore::setSubresourceUniqueRedirectTo): (WebKit::WebsiteDataStore::setSubresourceUniqueRedirectFrom): (WebKit::WebsiteDataStore::setTopFrameUniqueRedirectTo): (WebKit::WebsiteDataStore::setTopFrameUniqueRedirectFrom): (WebKit::WebsiteDataStore::clearPrevalentResource): (WebKit::WebsiteDataStore::resetParametersToDefaultValues): (WebKit::WebsiteDataStore::scheduleClearInMemoryAndPersistent): (WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary): (WebKit::WebsiteDataStore::scheduleCookieBlockingUpdate): (WebKit::WebsiteDataStore::scheduleStatisticsAndDataRecordsProcessing): (WebKit::WebsiteDataStore::setLastSeen): (WebKit::WebsiteDataStore::mergeStatisticForTesting): (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting): (WebKit::WebsiteDataStore::setNotifyPagesWhenDataRecordsWereScanned): (WebKit::WebsiteDataStore::setIsRunningResourceLoadStatisticsTest): (WebKit::WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured): (WebKit::WebsiteDataStore::setTimeToLiveUserInteraction): (WebKit::WebsiteDataStore::logUserInteraction): (WebKit::WebsiteDataStore::clearUserInteraction): (WebKit::WebsiteDataStore::setGrandfathered): (WebKit::WebsiteDataStore::setUseITPDatabase): (WebKit::WebsiteDataStore::setCrossSiteLoadWithLinkDecorationForTesting): (WebKit::WebsiteDataStore::resetCrossSiteLoadsWithLinkDecorationForTesting): (WebKit::WebsiteDataStore::deleteCookiesForTesting): (WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldDowngradeReferrerForTesting): (WebKit::WebsiteDataStore::setThirdPartyCookieBlockingMode): (WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldEnbleSameSiteStrictEnforcementForTesting): (WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting): (WebKit::WebsiteDataStore::setResourceLoadStatisticsToSameSiteStrictCookiesForTesting): (WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources): (WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources): (WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode): (WebKit::WebsiteDataStore::resetQuota): (WebKit::WebsiteDataStore::clearAppBoundSession): (WebKit::WebsiteDataStore::renameOriginInWebsiteData): (WebKit::WebsiteDataStore::forwardAppBoundDomainsToITPIfInitialized): (WebKit::WebsiteDataStore::setAppBoundDomainsForITP): (WebKit::WebsiteDataStore::updateBundleIdentifierInNetworkProcess): (WebKit::WebsiteDataStore::clearBundleIdentifierInNetworkProcess): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::markAllLayersVolatile): Source/WTF: * wtf/glib/SocketConnection.cpp: (WTF::SocketConnection::waitForSocketWritability): Canonical link: https://commits.webkit.org/226321@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-23 22:02:24 +00:00
2020-06-23 Chris Dumez <cdumez@apple.com>
Remove a lot of unnecessary calls to Ref::copyRef()
https://bugs.webkit.org/show_bug.cgi?id=213533
Reviewed by Darin Adler.
Remove a lot of unnecessary calls to Ref::copyRef() now that Ref is copyable.
* Session.cpp:
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::newWindow):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::getActiveElement):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementClear):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::getPageSource):
(WebDriver::Session::executeScript):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::takeScreenshot):
Some style improvements to main thread code https://bugs.webkit.org/show_bug.cgi?id=213051 Reviewed by Darin Adler. Source/WebCore: Updated for rename. * WebCore.order: * platform/ios/wak/WebCoreThread.mm: (StartWebThread): Source/WebDriver: Updated for rename. * WebDriverService.cpp: (WebDriver::WebDriverService::run): Source/WebKit: Updated for rename. * Shared/Cocoa/WebKit2InitializeCocoa.mm: (WebKit::runInitializationCode): (WebKit::InitializeWebKit2): * Shared/WebKit2Initialize.cpp: (WebKit::InitializeWebKit2): Source/WebKitLegacy/mac: Updated for rename. * History/WebBackForwardList.mm: (+[WebBackForwardList initialize]): * History/WebHistoryItem.mm: (+[WebHistoryItem initialize]): * Misc/WebCache.mm: (+[WebCache initialize]): * Misc/WebElementDictionary.mm: (+[WebElementDictionary initialize]): * Misc/WebIconDatabase.mm: * Plugins/Hosted/WebHostedNetscapePluginView.mm: (+[WebHostedNetscapePluginView initialize]): * Plugins/WebBaseNetscapePluginView.mm: * Plugins/WebBasePluginPackage.mm: (+[WebBasePluginPackage initialize]): * Plugins/WebNetscapePluginView.mm: (+[WebNetscapePluginView initialize]): * WebCoreSupport/WebEditorClient.mm: (+[WebUndoStep initialize]): * WebCoreSupport/WebFrameLoaderClient.mm: (+[WebFramePolicyListener initialize]): * WebView/WebArchive.mm: (+[WebArchivePrivate initialize]): * WebView/WebDataSource.mm: (+[WebDataSource initialize]): * WebView/WebHTMLView.mm: (+[WebHTMLViewPrivate initialize]): (+[WebHTMLView initialize]): * WebView/WebPreferences.mm: (+[WebPreferences initialize]): * WebView/WebResource.mm: (+[WebResourcePrivate initialize]): * WebView/WebTextIterator.mm: (+[WebTextIteratorPrivate initialize]): * WebView/WebView.mm: (+[WebView initialize]): * WebView/WebViewData.mm: (+[WebViewPrivate initialize]): Source/WebKitLegacy/win: Updated for rename. * WebView.cpp: (WebView::WebView): Source/WTF: * wtf/RunLoop.cpp: (WTF::RunLoop::initializeMain): Renamed initializeMainRunLoop => initializeMain to match the getter's name. (WTF::RunLoop::initializeWeb): Samesies. (WTF::RunLoop::webIfExists): Added an IfExists accessor for use in scheduleDispatchFunctionsOnMainThread(). (WTF::RunLoop::initializeMainRunLoop): Deleted. (WTF::RunLoop::initializeWebRunLoop): Deleted. * wtf/RunLoop.h: * wtf/cocoa/MainThreadCocoa.mm: (WTF::scheduleDispatchFunctionsOnMainThread): Use RunLoop::webIfExists() to check for the web thread run loop, since that's more explicit than checking a pthread variable. (WTF::isWebThread): Renamed mainThreadPthread => webThreadPthread because it's the web thread. Changed style on globals to "s_" for consistency. Removed mainThreadNSThread because it was unused. (WTF::initializeApplicationUIThread): (WTF::initializeWebThread): (WTF::canCurrentThreadAccessThreadLocalData): Tools: Updated for rename. * TestWebKitAPI/Tests/WTF/RefPtr.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/RunLoop.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/AbortableTaskQueue.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp: (ApplicationManifestParserTest::SetUp): * TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: (TestWebKitAPI::ComplexTextControllerTest::SetUp): * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::ContentExtensionTest::SetUp): * TestWebKitAPI/Tests/WebCore/DNS.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm: (initializeInAppBrowserPrivacyTestSettings): * WebKitTestRunner/TestController.cpp: (WTR::TestController::initialize): Canonical link: https://commits.webkit.org/225844@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 00:15:05 +00:00
2020-06-10 Geoffrey Garen <ggaren@apple.com>
Some style improvements to main thread code
https://bugs.webkit.org/show_bug.cgi?id=213051
Reviewed by Darin Adler.
Updated for rename.
* WebDriverService.cpp:
(WebDriver::WebDriverService::run):
Fix many warnings with Clang 7.0 on GTK x86-64 in Debug. https://bugs.webkit.org/show_bug.cgi?id=209146 Reviewed by Darin Adler. Source/JavaScriptCore: * runtime/JSCellInlines.h: (JSC::CallFrame::deprecatedVM const): A reference may not be NULL, so this ASSERT() can never trip. Source/WebCore: Warning fixes, no new tests. * Modules/encryptedmedia/MediaKeys.cpp: (WebCore::MediaKeys::MediaKeys): * Modules/webaudio/MediaStreamAudioSource.h: The m_numberOfFrames ivar is platform-specific. * loader/cache/CachedResource.cpp: (WebCore::CachedResource::load): * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGLData::getStaticVBO): * platform/mediastream/RealtimeVideoSource.h: * platform/mediastream/gstreamer/GStreamerAudioCapturer.h: There are still virtual methods in this class, but no virtual destructor. Since this won't be subclassed further (I doubt, anyway!) lets make it final and plug the bug. * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: * platform/mediastream/gstreamer/GStreamerVideoCapturer.h: See AudioCapturer. * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::RegisterDecodeCompleteCallback): Deleted. (WebCore::GStreamerVideoDecoder::ImplementationName const): Deleted. * platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp: * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: The encoder was being used uninitialized, and hence codec support can not be working as intended. Fix that bug. (WebCore::GStreamerVideoEncoder::AddCodecIfSupported): (WebCore::GStreamerVideoEncoder::InitEncode): Deleted. (WebCore::GStreamerVideoEncoder::GetEncoderInfo const): Deleted. * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h: * platform/network/soup/NetworkStorageSessionSoup.cpp: (WebCore::NetworkStorageSession::setCookies): * rendering/RenderLayerBacking.h: Condition the bear trap on Cocoa platform where the crash is being seen. On GTK these traps generate warning spam and we don't see the crash here. * rendering/RenderThemeAdwaita.h: * testing/Internals.cpp: (WebCore::Internals::readPreferenceInteger): (WebCore::Internals::encodedPreferenceValue): (WebCore::Internals::getUTIFromMIMEType): (WebCore::Internals::getUTIFromTag): Source/WebDriver: * Session.cpp: (WebDriver::Session::newWindow): (WebDriver::Session::elementIsFileUpload): (WebDriver::Session::elementIsEditable): (WebDriver::Session::setInputFileUploadFiles): Source/WebKit: * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: (WebKit::NetworkHTTPSUpgradeChecker::query): * NetworkProcess/NetworkLoadChecker.cpp: The m_isHTTPSUpgradeEnabled ivar is only used on Cocoa platforms, on GTK it is causing warning spam. (WebKit::NetworkLoadChecker::NetworkLoadChecker): * NetworkProcess/NetworkLoadChecker.h: * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::updateSceneState): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: m_inForceRepaint is not being used anymore. (WebKit::ThreadedCompositor::forceRepaint): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * UIProcess/API/glib/WebKitNavigationClient.cpp: * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: (WebKit::RemoteInspectorProtocolHandler::RemoteInspectorProtocolHandler): * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.h: Source/WTF: * wtf/LoggerHelper.h: When the RELEASE_LOG is disabled, avoid warning spam about unused channel names. Call sites often create locals for the channel name outside of RELEASE_LOG ifdef's, which cause many unused variable warnings. Tools: * TestWebKitAPI/Tests/WebCore/TransformationMatrix.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: (testDownloadMIMEType): (testContextMenuDownloadActions): * TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp: Canonical link: https://commits.webkit.org/222211@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-03-19 15:17:17 +00:00
2020-03-19 Charlie Turner <cturner@igalia.com>
Fix many warnings with Clang 7.0 on GTK x86-64 in Debug.
https://bugs.webkit.org/show_bug.cgi?id=209146
Reviewed by Darin Adler.
* Session.cpp:
(WebDriver::Session::newWindow):
(WebDriver::Session::elementIsFileUpload):
(WebDriver::Session::elementIsEditable):
(WebDriver::Session::setInputFileUploadFiles):
2020-02-12 Carlos Alberto Lopez Perez <clopez@igalia.com>
WebDriver: return invalidSessionID exception if the WebProcess doesn't respond (crashes)
https://bugs.webkit.org/show_bug.cgi?id=207565
Reviewed by Adrian Perez de Castro.
Report InvalidSessionID if the session connection its not connected.
* WebDriverService.cpp:
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
[GTK] WebDriver: screenshot ignores CSS transformations or WebGL content. https://bugs.webkit.org/show_bug.cgi?id=206514 Reviewed by Carlos Alberto Lopez Perez. Source/WebDriver: * Session.cpp: (WebDriver::Session::takeScreenshot): Always set clipToViewport to true. * WebDriverService.cpp: (WebDriver::WebDriverService::takeElementScreenshot): Stop pretending a GET command can have body. Source/WebKit: WebPage::scaledSnapshotWithOptions() doesn't work when accelerated compositing is enabled. To fix this, we need to take the screenshot from the UI process, like we do for the layout tests. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::takeViewSnapshot): Pass clip rectangle to webkitWebViewBaseTakeViewSnapshot. * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseTakeViewSnapshot): Use the given clip rectangle if not nullopt. * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::takeScreenshot): In case of full web view snapshot just call WebPageProxy::takeViewSnapshot() with a nullopt clip rectangle. In case of element snapshot, send SnapshotRectForScreenshot message to the web process to get the clip rectangle and then call WebPageProxy::takeViewSnapshot(). (WebKit::WebAutomationSession::platformGetBase64EncodedPNGData): Empty implementation for other ports. * UIProcess/Automation/WebAutomationSession.h: Make platformGetBase64EncodedPNGData() static. * UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp: (WebKit::base64EncodedPNGData): Moved common code to this new function. (WebKit::WebAutomationSession::platformGetBase64EncodedPNGData): New function to get the encoded PNG from a ViewSnapshot. * UIProcess/PageClient.h: Add optional clip rectangle parameter to takeViewSnapshot(). * UIProcess/ViewSnapshotStore.cpp: (WebKit::ViewSnapshotStore::recordSnapshot): Pass nullopt to takeViewSnapshot(). * UIProcess/WebPageProxy.cpp: * UIProcess/WebPageProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::takeViewSnapshot): * UIProcess/mac/PageClientImplMac.h: * UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::takeViewSnapshot): * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::snapshotElementRectForScreenshot): Renamed to avoid conflict with new IPC message handler. (WebKit::WebAutomationSessionProxy::takeScreenshot): Call snapshotRectForScreenshot() to get the snapshot rectangle and convert it to document coords. (WebKit::WebAutomationSessionProxy::snapshotRectForScreenshot): Get the snapshot rectangle in client coords. (WebKit::snapshotRectForScreenshot): Deleted. * WebProcess/Automation/WebAutomationSessionProxy.h: * WebProcess/Automation/WebAutomationSessionProxy.messages.in: Add SnapshotRectForScreenshot message. Canonical link: https://commits.webkit.org/219941@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-01-29 09:52:17 +00:00
2020-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: screenshot ignores CSS transformations or WebGL content.
https://bugs.webkit.org/show_bug.cgi?id=206514
Reviewed by Carlos Alberto Lopez Perez.
* Session.cpp:
(WebDriver::Session::takeScreenshot): Always set clipToViewport to true.
* WebDriverService.cpp:
(WebDriver::WebDriverService::takeElementScreenshot): Stop pretending a GET command can have body.
2020-01-13 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: pressed virtual keys not correctly handled in action sequences
https://bugs.webkit.org/show_bug.cgi?id=205997
Reviewed by Brian Burg.
We are assuming that only one virtual key can be pressed and that a key up always releases the pressed virtual
key if any. We should keep a list of pressed keys and remove them from the list when key up happens for them.
Fixes: imported/w3c/webdriver/tests/perform_actions/key_modifiers.py::test_shift_modifier_generates_capital_letters[\ue008]
imported/w3c/webdriver/tests/perform_actions/key_modifiers.py::test_shift_modifier_generates_capital_letters[\ue050]
* Session.cpp:
(WebDriver::Session::performActions):
* Session.h:
Automation: evaluateJavaScriptFunction should use Promises https://bugs.webkit.org/show_bug.cgi?id=204151 Reviewed by Brian Burg. Source/WebDriver: * CommandResult.cpp: (WebDriver::CommandResult::httpStatusCode const): Timeout errors should return 500 not 408. * Session.cpp: (WebDriver::Session::executeScript): Ensure the script body goes between new lines to avoid problems with trailing comments like in function() { return foo; // Comment }. Source/WebKit: Make the function to run scripts async and handle the result as a promise. To implement the script timeout we use another promise that starts the timer and then we run a Promise.race() with both promises. To simplify the results reporting, all exceptions (including timeout errors that are now handled as exceptions) are now handled as errors passed to the resultCallback. The boolean parameter has been removed, we can simply check the type of the value received because results are always strings and errors are always exception objects. * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::evaluateJavaScriptCallback): Handle the script result, including all possible errors now (not only timeouts). (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Any exception running the script should be an internal error now. The code to handle error has been moved to evaluateJavaScriptCallback(). * WebProcess/Automation/WebAutomationSessionProxy.js: (WebKitAutomation.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _execute and handle the promise result to call resultCallback wityh either the result or the error. (WebKitAutomation.AutomationSessionProxy.prototype._execute): Make the function to run the script async and handle the result as a promise. WebDriverTests: Remove expectations for tests that are now passing. * TestExpectations.json: Canonical link: https://commits.webkit.org/219172@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-01-10 08:44:37 +00:00
2020-01-10 Carlos Garcia Campos <cgarcia@igalia.com>
Automation: evaluateJavaScriptFunction should use Promises
https://bugs.webkit.org/show_bug.cgi?id=204151
Reviewed by Brian Burg.
* CommandResult.cpp:
(WebDriver::CommandResult::httpStatusCode const): Timeout errors should return 500 not 408.
* Session.cpp:
(WebDriver::Session::executeScript): Ensure the script body goes between new lines to avoid problems with
trailing comments like in function() { return foo; // Comment }.
WebDriver: handle no such element errors https://bugs.webkit.org/show_bug.cgi?id=204684 Reviewed by Brian Burg. Source/WebDriver: Handle InvalidNodeIdentifier errors. Fixes: imported/w3c/webdriver/tests/get_element_tag_name/get.py::test_element_not_found imported/w3c/webdriver/tests/get_element_property/get.py::test_element_not_found imported/w3c/webdriver/tests/get_element_attribute/get.py::test_element_not_found * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): Source/WebKit: Add InvalidNodeIdentifier to be generated when the elementID provided by WebDriver is not a valid node identifier. * UIProcess/Automation/Automation.json: Add InvalidNodeIdentifier error. * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::isValidNodeHandle): Helper function to check the given node handle is valid. (WebKit::isValidNodeIdentifier): JavaScript callback function to check the node identifier is valid. (WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Add isValidNodeIdentifier function. (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidNodeIdentifier errors. (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): Call isValidNodeHandle() and generate InvalidNodeIdentifier error if it fails. (WebKit::WebAutomationSessionProxy::computeElementLayout): Ditto. (WebKit::WebAutomationSessionProxy::selectOptionElement): Ditto. (WebKit::WebAutomationSessionProxy::takeScreenshot): Ditto. * WebProcess/Automation/WebAutomationSessionProxy.js: (let.AutomationSessionProxy.prototype._nodeForIdentifier): Call isValidNodeIdentifier() and throw InvalidNodeIdentifier if it fails. Canonical link: https://commits.webkit.org/218986@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-01-07 09:55:38 +00:00
2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: handle no such element errors
https://bugs.webkit.org/show_bug.cgi?id=204684
Reviewed by Brian Burg.
Handle InvalidNodeIdentifier errors.
Fixes: imported/w3c/webdriver/tests/get_element_tag_name/get.py::test_element_not_found
imported/w3c/webdriver/tests/get_element_property/get.py::test_element_not_found
imported/w3c/webdriver/tests/get_element_attribute/get.py::test_element_not_found
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
WebDriver: fix handling of session timeouts for values higher than MAX_INT https://bugs.webkit.org/show_bug.cgi?id=204114 Reviewed by Brian Burg. Source/JavaScriptCore: Fix generation of code with optional number in stack variable. * inspector/scripts/codegen/cpp_generator.py: (CppGenerator.cpp_type_for_stack_in_parameter): Do not use Optional for numbers either. * inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result: Source/WebDriver: Use double instead of Seconds for handling timeouts. * Capabilities.h: * Session.cpp: (WebDriver::Session::getTimeouts): Handle the case of script timeout being null. (WebDriver::Session::go): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::findElements): (WebDriver::Session::waitForNavigationToComplete): (WebDriver::Session::executeScript): Do not pass a timeout when it's null. * Session.h: (WebDriver::Session::scriptTimeout const): (WebDriver::Session::pageLoadTimeout const): (WebDriver::Session::implicitWaitTimeout const): * WebDriverService.cpp: (WebDriver::deserializeTimeouts): Add IgnoreUnknownTimeout, since we should only fail when processing capabilities, but not when setting new timeouts. Also handle the case of script timeout being null. (WebDriver::WebDriverService::parseCapabilities const): Pass IgnoreUnknownTimeout::No to deserializeTimeouts. (WebDriver::WebDriverService::validatedCapabilities const): Ditto. (WebDriver::WebDriverService::createSession): Handle the case of script timeout being null. (WebDriver::WebDriverService::setTimeouts): Pass IgnoreUnknownTimeout::Yes to deserializeTimeouts. Source/WebKit: Use number instead of integer for all optional timeout parameters. In the case of script timeout, not passing a value means a timeout should not be used, so use Optional<double> also for the IPC message and handle the optional value in the web process to not set any timeout in that case. * UIProcess/Automation/Automation.json: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::waitForNavigationToComplete): (WebKit::WebAutomationSession::navigateBrowsingContext): (WebKit::WebAutomationSession::goBackInBrowsingContext): (WebKit::WebAutomationSession::goForwardInBrowsingContext): (WebKit::WebAutomationSession::reloadBrowsingContext): (WebKit::WebAutomationSession::evaluateJavaScriptFunction): * UIProcess/Automation/WebAutomationSession.h: * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): * WebProcess/Automation/WebAutomationSessionProxy.h: * WebProcess/Automation/WebAutomationSessionProxy.js: (let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): * WebProcess/Automation/WebAutomationSessionProxy.messages.in: Canonical link: https://commits.webkit.org/218762@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-23 10:42:26 +00:00
2019-12-23 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: fix handling of session timeouts for values higher than MAX_INT
https://bugs.webkit.org/show_bug.cgi?id=204114
Reviewed by Brian Burg.
Use double instead of Seconds for handling timeouts.
* Capabilities.h:
* Session.cpp:
(WebDriver::Session::getTimeouts): Handle the case of script timeout being null.
(WebDriver::Session::go):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::findElements):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::executeScript): Do not pass a timeout when it's null.
* Session.h:
(WebDriver::Session::scriptTimeout const):
(WebDriver::Session::pageLoadTimeout const):
(WebDriver::Session::implicitWaitTimeout const):
* WebDriverService.cpp:
(WebDriver::deserializeTimeouts): Add IgnoreUnknownTimeout, since we should only fail when processing
capabilities, but not when setting new timeouts. Also handle the case of script timeout being null.
(WebDriver::WebDriverService::parseCapabilities const): Pass IgnoreUnknownTimeout::No to deserializeTimeouts.
(WebDriver::WebDriverService::validatedCapabilities const): Ditto.
(WebDriver::WebDriverService::createSession): Handle the case of script timeout being null.
(WebDriver::WebDriverService::setTimeouts): Pass IgnoreUnknownTimeout::Yes to deserializeTimeouts.
2019-12-13 Jim Mason <jmason@ibinx.com>
[GTK] WebKitGTK build hangs on g-ir-scanner
https://bugs.webkit.org/show_bug.cgi?id=204715
This patch fixes the static initialization order problem
introduced by Bug 204503.
The patch replaces the static data members with statics that
are constructed only upon first access (i.e., the 'construct
on first use' idiom).
Reviewed by Carlos Garcia Campos.
* SessionHost.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::messageHandlers):
(WebDriver::SessionHost::connectToBrowser):
2019-12-12 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: tests is_element_enabled/enabled.py::test_fieldset_disabled_descendant are failing
https://bugs.webkit.org/show_bug.cgi?id=204700
Reviewed by Carlos Alberto Lopez Perez.
Fixes: imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[button]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[input]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[select]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[textarea]
* CMakeLists.txt: Add ElementEnabled.js to compilation.
* Session.cpp:
(WebDriver::Session::isElementEnabled): Use ElementEnabled atom instead.
2019-12-10 Fujii Hironori <Hironori.Fujii@sony.com>
[Win] Fix MSVC warning C4701: potentially uninitialized local variable 'x' used
https://bugs.webkit.org/show_bug.cgi?id=205052
Reviewed by Don Olmstead.
* Session.cpp:
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::computeElementLayout):
Zero-initialized local variables.
WebDriver: handle elements of type file in send keys command https://bugs.webkit.org/show_bug.cgi?id=188514 Reviewed by Brian Burg. Source/WebCore: Export symbols now used by WebKit::WebAutomationSessionProxy. * html/HTMLInputElement.h: Source/WebDriver: Handle the case of inpout element being a file upload in send keys command. * Capabilities.h: Add strictFileInteractability. * Session.cpp: (WebDriver::Session::elementIsFileUpload): Helper to check if the given element is a file upload and whether it's multiple or not. (WebDriver::Session::parseElementIsFileUploadResult): Parse the result of elementIsFileUpload(). (WebDriver::Session::elementClick): If the element is a file upload, fail with invalid argument error. (WebDriver::Session::setInputFileUploadFiles): Send setFilesForInputFileUpload message to the browser with the selected files. (WebDriver::Session::elementSendKeys): If the element is a file upload, call setInputFileUploadFiles() instead. Also handle the strictFileInteractability capability to decide whether to focus and check interactability on the input element or not. * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::parseCapabilities const): Handle strictFileInteractability. (WebDriver::WebDriverService::validatedCapabilities const): Ditto. (WebDriver::WebDriverService::matchCapabilities const): Ditto. (WebDriver::WebDriverService::createSession): Ditto. Source/WebKit: Add setFilesForInputFileUpload method to Automation. It's like setFilesToSelectForFileUpload, but it works differently, so I'm keeping both to not break safaridriver. The new one simply sends the file list to the web process to be set on the input element, instead of saving the file list, wait for the driver to trigger the open panel, intercept and complete the open panel request and send a dismiss open panel event to the driver. * UIProcess/Automation/Automation.json: Add setFilesForInputFileUpload. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::setFilesForInputFileUpload): Send SetFilesForInputFileUpload message to the web process. * UIProcess/Automation/WebAutomationSession.h: * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload): Create a FileList with the received paths and call HTMLInputElement::setFiles() on the given element. * WebProcess/Automation/WebAutomationSessionProxy.h: * WebProcess/Automation/WebAutomationSessionProxy.messages.in: Add SetFilesForInputFileUpload message. WebDriverTests: Remove expectations for tests that are now passing. * TestExpectations.json: Canonical link: https://commits.webkit.org/217995@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-03 10:03:32 +00:00
2019-12-03 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: handle elements of type file in send keys command
https://bugs.webkit.org/show_bug.cgi?id=188514
Reviewed by Brian Burg.
Handle the case of inpout element being a file upload in send keys command.
* Capabilities.h: Add strictFileInteractability.
* Session.cpp:
(WebDriver::Session::elementIsFileUpload): Helper to check if the given element is a file upload and whether
it's multiple or not.
(WebDriver::Session::parseElementIsFileUploadResult): Parse the result of elementIsFileUpload().
(WebDriver::Session::elementClick): If the element is a file upload, fail with invalid argument error.
(WebDriver::Session::setInputFileUploadFiles): Send setFilesForInputFileUpload message to the browser with the
selected files.
(WebDriver::Session::elementSendKeys): If the element is a file upload, call setInputFileUploadFiles()
instead. Also handle the strictFileInteractability capability to decide whether to focus and check
interactability on the input element or not.
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::parseCapabilities const): Handle strictFileInteractability.
(WebDriver::WebDriverService::validatedCapabilities const): Ditto.
(WebDriver::WebDriverService::matchCapabilities const): Ditto.
(WebDriver::WebDriverService::createSession): Ditto.
2019-12-03 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: most of the clear tests are failing
https://bugs.webkit.org/show_bug.cgi?id=180404
Reviewed by Brian Burg.
Implement the element clear command following the spec.
https://w3c.github.io/webdriver/#element-clear
* Session.cpp:
(WebDriver::Session::elementIsEditable): Helper function to check if the element is editable.
(WebDriver::Session::elementClear): Check if the element is editable and interactable before executing the clear atom.
* Session.h:
2019-11-22 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK/WPE debug build after r252770
Just remove the ASSERT instead, since it now always receive a newly created Ref.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::setupConnection):
2019-11-22 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK/WPE debug build after r252770
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::setupConnection):
[GTK][WPE] RemoteInspector: use sockets instead of DBus https://bugs.webkit.org/show_bug.cgi?id=204503 Reviewed by Žan Doberšek. Source/JavaScriptCore: It turns out DBus is event slower than expected. Using GSockets API we can simplify the code and make it a lot more efficient. This will drastically reduce the time to run WebDriver tests in the bots. * inspector/remote/RemoteInspector.h: * inspector/remote/glib/RemoteInspectorGlib.cpp: (Inspector::RemoteInspector::start): (Inspector::RemoteInspector::stopInternal): (Inspector::RemoteInspector::setupConnection): (Inspector::RemoteInspector::pushListingsNow): (Inspector::RemoteInspector::pushListingsSoon): (Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage): (Inspector::RemoteInspector::sendMessageToRemote): * inspector/remote/glib/RemoteInspectorServer.cpp: (Inspector::RemoteInspectorServer::~RemoteInspectorServer): (Inspector::RemoteInspectorServer::start): (Inspector::RemoteInspectorServer::incomingConnectionCallback): (Inspector::RemoteInspectorServer::incomingConnection): (Inspector::RemoteInspectorServer::setTargetList): (Inspector::RemoteInspectorServer::setupInspectorClient): (Inspector::RemoteInspectorServer::setup): (Inspector::RemoteInspectorServer::close): (Inspector::RemoteInspectorServer::connectionDidClose): (Inspector::RemoteInspectorServer::sendMessageToBackend): (Inspector::RemoteInspectorServer::sendMessageToFrontend): (Inspector::RemoteInspectorServer::startAutomationSession): * inspector/remote/glib/RemoteInspectorServer.h: (Inspector::RemoteInspectorServer::isRunning const): Source/WebDriver: Use GSockets API instead of DBus. * SessionHost.cpp: (WebDriver::SessionHost::sendCommandToBackend): * SessionHost.h: * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::~SessionHost): (WebDriver::SessionHost::isConnected const): (WebDriver::ConnectToBrowserAsyncData::ConnectToBrowserAsyncData): (WebDriver::SessionHost::launchBrowser): (WebDriver::SessionHost::connectToBrowser): (WebDriver::SessionHost::connectionDidClose): (WebDriver::SessionHost::setupConnection): (WebDriver::SessionHost::startAutomationSession): (WebDriver::SessionHost::didStartAutomationSession): (WebDriver::SessionHost::setTargetList): (WebDriver::SessionHost::sendMessageToBackend): * socket/SessionHostSocket.cpp: (WebDriver::SessionHost::sendMessageToBackend): Source/WebKit: Use GSockets API instead of DBus. * Platform/IPC/Connection.h: * SourcesGTK.txt: Remove GSocketMonitor that has been moved to WTF. * SourcesWPE.txt: Ditto. * UIProcess/glib/RemoteInspectorClient.cpp: (WebKit::RemoteInspectorClient::RemoteInspectorClient): (WebKit::RemoteInspectorClient::~RemoteInspectorClient): (WebKit::RemoteInspectorClient::setupConnection): (WebKit::RemoteInspectorClient::connectionDidClose): (WebKit::RemoteInspectorClient::inspect): (WebKit::RemoteInspectorClient::sendMessageToBackend): (WebKit::RemoteInspectorClient::closeFromFrontend): * UIProcess/glib/RemoteInspectorClient.h: Source/WTF: Add SocketConnection class. * wtf/PlatformGTK.cmake: * wtf/PlatformWPE.cmake: * wtf/glib/GSocketMonitor.cpp: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.cpp. (WTF::GSocketMonitor::start): * wtf/glib/GSocketMonitor.h: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.h. (WTF::GSocketMonitor::isActive const): * wtf/glib/GTypedefs.h: * wtf/glib/GUniquePtr.h: * wtf/glib/SocketConnection.cpp: Added. (WTF::SocketConnection::SocketConnection): (WTF::SocketConnection::~SocketConnection): (WTF::SocketConnection::read): (WTF::SocketConnection::readMessage): (WTF::SocketConnection::sendMessage): (WTF::SocketConnection::write): (WTF::SocketConnection::waitForSocketWritability): (WTF::SocketConnection::close): (WTF::SocketConnection::didClose): * wtf/glib/SocketConnection.h: Added. (WTF::SocketConnection::create): (WTF::SocketConnection::isClosed const): Tools: Update the unit tests to not use DBus. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Canonical link: https://commits.webkit.org/217749@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252770 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-22 14:22:34 +00:00
2019-11-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WPE] RemoteInspector: use sockets instead of DBus
https://bugs.webkit.org/show_bug.cgi?id=204503
Reviewed by Žan Doberšek.
Use GSockets API instead of DBus.
* SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend):
* SessionHost.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::~SessionHost):
(WebDriver::SessionHost::isConnected const):
(WebDriver::ConnectToBrowserAsyncData::ConnectToBrowserAsyncData):
(WebDriver::SessionHost::launchBrowser):
(WebDriver::SessionHost::connectToBrowser):
(WebDriver::SessionHost::connectionDidClose):
(WebDriver::SessionHost::setupConnection):
(WebDriver::SessionHost::startAutomationSession):
(WebDriver::SessionHost::didStartAutomationSession):
(WebDriver::SessionHost::setTargetList):
(WebDriver::SessionHost::sendMessageToBackend):
* socket/SessionHostSocket.cpp:
(WebDriver::SessionHost::sendMessageToBackend):
2019-11-13 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: duration can be undefined in pause actions
https://bugs.webkit.org/show_bug.cgi?id=204152
Reviewed by Carlos Alberto Lopez Perez.
Make duration optional in pause actions.
Fixes: imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[none]
imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[key]
imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[pointer]
* Session.cpp:
(WebDriver::Session::performActions):
* WebDriverService.cpp:
(WebDriver::processPauseAction):
2019-11-13 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: check the frameID parameter before running switch to frame command
https://bugs.webkit.org/show_bug.cgi?id=204150
Reviewed by Carlos Alberto Lopez Perez.
We should check it's either null, a number (unsigned sort) or an object referencing a web element.
Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[foo]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[True]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[value2]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[value3]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_out_of_bounds[-1]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_out_of_bounds[65536]
* Session.cpp:
(WebDriver::Session::switchToFrame): Remove the validation here. Also remove the case of being a frame name,
since that's not in the spec.
* WebDriverService.cpp:
(WebDriver::WebDriverService::switchToFrame): Check frameID type before calling Session::switchToFrame().
[GTK] WebDriver: implement new window command https://bugs.webkit.org/show_bug.cgi?id=203994 Reviewed by Carlos Alberto Lopez Perez. Source/WebDriver: * Session.cpp: (WebDriver::Session::newWindow): * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::newWindow): * WebDriverService.h: Source/WebKit: Add new API to support new window command. The WebKitAutomationSession::create-web-view signal can now receive a detail that can be "window" or "tab". Applications can use that to decide whether to add the new webview to a new window or tab. WebKitWebView has a new construct only property automation-presentation-type, which is an enum that can be either window or tab value. Appplications should use the new property when creating the web view for automation to indicate whether the web view was added to a new window or tab. * UIProcess/API/glib/WebKitAutomationSession.cpp: (webkit_automation_session_class_init): * UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewSetProperty): (webkitWebViewGetProperty): (webkit_web_view_class_init): (webkit_web_view_get_automation_presentation_type): * UIProcess/API/gtk/WebKitAutomationSession.h: * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: * UIProcess/API/wpe/WebKitWebView.h: * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: Tools: Add support for new window command to MiniBrowser and a test case to check the new API to unit tests. * MiniBrowser/gtk/BrowserWindow.c: (findActiveWindow): (browser_window_get_or_create_web_view_for_automation): (browser_window_create_web_view_in_new_tab_for_automation): * MiniBrowser/gtk/BrowserWindow.h: * MiniBrowser/gtk/main.c: (createWebViewForAutomationInWindowCallback): (createWebViewForAutomationInTabCallback): (automationStartedCallback): (createWebViewForAutomationCallback): Deleted. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: (testAutomationSessionRequestSession): Canonical link: https://commits.webkit.org/217411@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-12 08:12:40 +00:00
2019-11-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: implement new window command
https://bugs.webkit.org/show_bug.cgi?id=203994
Reviewed by Carlos Alberto Lopez Perez.
* Session.cpp:
(WebDriver::Session::newWindow):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::newWindow):
* WebDriverService.h:
WebDriver: implement proxy support https://bugs.webkit.org/show_bug.cgi?id=180408 Reviewed by Carlos Alberto Lopez Perez. Source/JavaScriptCore: Add optional Proxy struct to session capabilities. * inspector/remote/RemoteInspector.h: * inspector/remote/glib/RemoteInspectorServer.cpp: (Inspector::processSessionCapabilities): Source/WebDriver: Handle proxy object in capabilities. * Capabilities.h: Add Proxy struct. * WebDriverService.cpp: (WebDriver::deserializeProxy): Deserialize the proxy from capabilities. (WebDriver::WebDriverService::parseCapabilities const): Get the deserialized proxy. (WebDriver::WebDriverService::validatedCapabilities const): Ensure proxy object is valid. (WebDriver::WebDriverService::matchCapabilities const): Check proxy type is supported by the platform. (WebDriver::WebDriverService::createSession): Only set an empty proxy object in capabilities if we don't have a deserialized proxy. * WebDriverService.h: * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::buildSessionCapabilities const): Send the proxy settings to the browser. * glib/WebDriverServiceGLib.cpp: (WebDriver::WebDriverService::platformSupportProxyType const): Return false if proxy type is "pac". Source/WebKit: * UIProcess/API/glib/WebKitAutomationSession.cpp: (parseProxyCapabilities): Parse the proxy settings from capabilities. (webkitAutomationSessionCreate): Set the proxy settings received from capabilities. WebDriverTests: Unskip the tests that are now passing. * TestExpectations.json: Canonical link: https://commits.webkit.org/217382@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252323 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-11 15:16:16 +00:00
2019-11-11 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement proxy support
https://bugs.webkit.org/show_bug.cgi?id=180408
Reviewed by Carlos Alberto Lopez Perez.
Handle proxy object in capabilities.
* Capabilities.h: Add Proxy struct.
* WebDriverService.cpp:
(WebDriver::deserializeProxy): Deserialize the proxy from capabilities.
(WebDriver::WebDriverService::parseCapabilities const): Get the deserialized proxy.
(WebDriver::WebDriverService::validatedCapabilities const): Ensure proxy object is valid.
(WebDriver::WebDriverService::matchCapabilities const): Check proxy type is supported by the platform.
(WebDriver::WebDriverService::createSession): Only set an empty proxy object in capabilities if we don't have a
deserialized proxy.
* WebDriverService.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::buildSessionCapabilities const): Send the proxy settings to the browser.
* glib/WebDriverServiceGLib.cpp:
(WebDriver::WebDriverService::platformSupportProxyType const): Return false if proxy type is "pac".
2019-11-08 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement get page source command
https://bugs.webkit.org/show_bug.cgi?id=180399
Reviewed by Carlos Alberto Lopez Perez.
* Session.cpp:
(WebDriver::Session::getPageSource):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getPageSource):
* WebDriverService.h:
2019-11-07 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: correctly handle errors when focusing element before sending key events
https://bugs.webkit.org/show_bug.cgi?id=203945
Reviewed by Carlos Alberto Lopez Perez.
We are throwing an exception that is not correctly handled.
Fixes: imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_not_a_focusable_element
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_display_none
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_visibility_hidden
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_hidden
imported/w3c/webdriver/tests/element_send_keys/interactability.py::test_disabled
* Session.cpp:
(WebDriver::Session::elementSendKeys): Raise ElementNotInteractable error when element is not focusable.
[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): Canonical link: https://commits.webkit.org/214609@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-08-19 06:59:40 +00:00
2019-08-18 Yusuke Suzuki <ysuzuki@apple.com>
[WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part
https://bugs.webkit.org/show_bug.cgi?id=200620
Reviewed by Geoffrey Garen.
* WebDriverService.cpp:
(WebDriver::WebDriverService::connectToBrowser):
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::launchBrowser):
(WebDriver::SessionHost::sendMessageToBackend):
[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: Canonical link: https://commits.webkit.org/214537@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248762 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-08-16 06:53:36 +00:00
2019-08-15 Yusuke Suzuki <ysuzuki@apple.com>
[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.
* glib/SessionHostGlib.cpp:
2019-06-03 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r245567): [GTK][WPE] [2.25.1] WebKitWebDriver gets installed as WebDriver
https://bugs.webkit.org/show_bug.cgi?id=198480
Reviewed by Michael Catanzaro.
We are now using the WEBKIT_EXECUTABLE macro that uses target_OUTPUT_NAME variable, but we define
taget_Process_OUTPUT_NAME.
* PlatformGTK.cmake:
* PlatformWPE.cmake:
2019-05-31 Don Olmstead <don.olmstead@sony.com>
[CMake] Add WebKit::WTF target
https://bugs.webkit.org/show_bug.cgi?id=198400
Reviewed by Konstantin Tokarev.
Use the WebKit::WTF target.
* CMakeLists.txt:
[WinCairo] Build WebDriver https://bugs.webkit.org/show_bug.cgi?id=198056 Reviewed by Carlos Garcia Campos. .: Add ENABLE_WEBDRIVER as an experimental feature for WinCairo. * Source/cmake/OptionsWin.cmake: Source/WebDriver: Add the platform and source files to get WinCairo to compile a WebDriver executable. * CMakeLists.txt: * PlatformWin.cmake: Added. * Session.cpp: (WebDriver::Session::go): (WebDriver::Session::getCurrentURL): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::getTitle): (WebDriver::Session::switchToFrame): (WebDriver::Session::switchToParentFrame): (WebDriver::Session::setWindowRect): (WebDriver::Session::maximizeWindow): (WebDriver::Session::minimizeWindow): (WebDriver::Session::fullscreenWindow): (WebDriver::Session::findElements): (WebDriver::Session::getActiveElement): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::getElementProperty): (WebDriver::Session::getElementCSSValue): (WebDriver::Session::elementClick): (WebDriver::Session::elementClear): (WebDriver::Session::elementSendKeys): (WebDriver::Session::executeScript): (WebDriver::Session::getAllCookies): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::performActions): (WebDriver::Session::takeScreenshot): With nested lambdas MSVC believes the this pointer is for the enclosing lambda. Use a protectedThis in the enclosing lambda and then use protectedThis.copyRef() in the nested lambda. * socket/HTTPServerSocket.cpp: Added. (WebDriver::HTTPServer::listen): (WebDriver::HTTPServer::disconnect): Add stubs for HTTPServer when using a raw socket. * socket/SessionHostSocket.cpp: Added. (WebDriver::SessionHost::~SessionHost): (WebDriver::SessionHost::connectToBrowser): (WebDriver::SessionHost::isConnected const): (WebDriver::SessionHost::startAutomationSession): (WebDriver::SessionHost::sendMessageToBackend): Add stubs for SessionHost when using a raw socket. * win/WebDriverServiceWin.cpp: Added. (WebDriver::WebDriverService::platformCapabilities): (WebDriver::WebDriverService::platformCompareBrowserVersions): (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformMatchCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): Add stubs for WebDriverService on Windows. Canonical link: https://commits.webkit.org/212160@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245567 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-05-21 13:10:52 +00:00
2019-05-21 Don Olmstead <don.olmstead@sony.com>
[WinCairo] Build WebDriver
https://bugs.webkit.org/show_bug.cgi?id=198056
Reviewed by Carlos Garcia Campos.
Add the platform and source files to get WinCairo to compile a WebDriver executable.
* CMakeLists.txt:
* PlatformWin.cmake: Added.
* Session.cpp:
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::getActiveElement):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementClear):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::executeScript):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::takeScreenshot):
With nested lambdas MSVC believes the this pointer is for the enclosing lambda. Use a
protectedThis in the enclosing lambda and then use protectedThis.copyRef() in the nested
lambda.
* socket/HTTPServerSocket.cpp: Added.
(WebDriver::HTTPServer::listen):
(WebDriver::HTTPServer::disconnect):
Add stubs for HTTPServer when using a raw socket.
* socket/SessionHostSocket.cpp: Added.
(WebDriver::SessionHost::~SessionHost):
(WebDriver::SessionHost::connectToBrowser):
(WebDriver::SessionHost::isConnected const):
(WebDriver::SessionHost::startAutomationSession):
(WebDriver::SessionHost::sendMessageToBackend):
Add stubs for SessionHost when using a raw socket.
* win/WebDriverServiceWin.cpp: Added.
(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformCompareBrowserVersions):
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
Add stubs for WebDriverService on Windows.
[CMake] Use builtin FindICU https://bugs.webkit.org/show_bug.cgi?id=197934 Reviewed by Michael Catanzaro. .: Update CMake minimum required to 3.7. 3.7 has a FindICU module so the WebKit one is removed. For non-Apple ports this just requires adding individual components of ICU to find_package(ICU). For Apple ports the module does not work so the targets created in FindICU are mirrored in target/icu.cmake. * CMakeLists.txt: * Source/cmake/FindICU.cmake: Removed. * Source/cmake/OptionsAppleWin.cmake: * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsJSCOnly.cmake: * Source/cmake/OptionsMac.cmake: * Source/cmake/OptionsPlayStation.cmake: * Source/cmake/OptionsWPE.cmake: * Source/cmake/OptionsWin.cmake: * Source/cmake/OptionsWinCairo.cmake: * Source/cmake/target/icu.cmake: Added. Source/JavaScriptCore: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * CMakeLists.txt: * PlatformWin.cmake: Source/WebCore: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * CMakeLists.txt: * PlatformPlayStation.cmake: * PlatformWPE.cmake: Source/WebCore/PAL: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * pal/CMakeLists.txt: Source/WebDriver: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * PlatformWPE.cmake: Source/WebKit: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * CMakeLists.txt: Source/WebKitLegacy: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * CMakeLists.txt: * PlatformWin.cmake: Source/WTF: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. Use ICU:: targets which end up propagating to all consumers of WTF. * wtf/CMakeLists.txt: * wtf/PlatformPlayStation.cmake: Tools: Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. * TestWebKitAPI/PlatformMac.cmake: * TestWebKitAPI/PlatformPlayStation.cmake: * TestWebKitAPI/PlatformWin.cmake: * WebKitTestRunner/CMakeLists.txt: Canonical link: https://commits.webkit.org/212113@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-05-18 02:38:38 +00:00
2019-05-17 Don Olmstead <don.olmstead@sony.com>
[CMake] Use builtin FindICU
https://bugs.webkit.org/show_bug.cgi?id=197934
Reviewed by Michael Catanzaro.
Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
* PlatformWPE.cmake:
[CMake] JavaScriptCore derived sources should only be referenced inside JavaScriptCore https://bugs.webkit.org/show_bug.cgi?id=196742 Reviewed by Konstantin Tokarev. .: Migrate to using JavaScriptCore_DERIVED_SOURCES_DIR instead of DERIVED_SOURCES_JAVASCRIPTCORE_DIR to support moving the JavaScriptCore derived sources outside of a shared directory. This is in support of the target oriented design refactoring. WinCairo is explicitly overriding the value as a canary for this setup. Also move JavaScriptCore_SCRIPTS_DIR to WebKitFS to remove logic setting it in other projects. * Source/PlatformWin.cmake: * Source/cmake/OptionsAppleWin.cmake: * Source/cmake/OptionsWinCairo.cmake: * Source/cmake/WebKitFS.cmake: Source/JavaScriptCore: Migrate to using JavaScriptCore_DERIVED_SOURCES_DIR instead of DERIVED_SOURCES_JAVASCRIPTCORE_DIR to support moving the JavaScriptCore derived sources outside of a shared directory. Also use JavaScriptCore_DERIVED_SOURCES_DIR instead of DERIVED_SOUCES_DIR. * CMakeLists.txt: Source/WebCore: Don't set JavaScriptCore_SCRIPTS_DIR now that it is set within WebKitFS. * CMakeLists.txt: Source/WebDriver: Don't set JavaScriptCore_SCRIPTS_DIR now that it is set within WebKitFS. * CMakeLists.txt: Source/WebKit: Don't set JavaScriptCore_SCRIPTS_DIR now that it is set within WebKitFS. * CMakeLists.txt: * PlatformWin.cmake: Remove use of DERIVED_SOURCES_JAVASCRIPTCORE_DIR. Canonical link: https://commits.webkit.org/211153@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@244245 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-04-14 13:50:01 +00:00
2019-04-14 Don Olmstead <don.olmstead@sony.com>
[CMake] JavaScriptCore derived sources should only be referenced inside JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=196742
Reviewed by Konstantin Tokarev.
Don't set JavaScriptCore_SCRIPTS_DIR now that it is set within WebKitFS.
* CMakeLists.txt:
2019-04-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r243833.
https://bugs.webkit.org/show_bug.cgi?id=196645
This change breaks build of WPE and GTK ports (Requested by
annulen on #webkit).
Reverted changeset:
"[CMake][WTF] Mirror XCode header directories"
https://bugs.webkit.org/show_bug.cgi?id=191662
https://trac.webkit.org/changeset/243833
[CMake][WTF] Mirror XCode header directories https://bugs.webkit.org/show_bug.cgi?id=191662 Reviewed by Konstantin Tokarev. .: Add WTF_FRAMEWORK_HEADERS_DIR to place WTF headers into. Add frameworks/WTF.cmake which creates an interface target which will populate dependencies for consumers. This file is added here to support AppleWin internal builds which invoke CMake on each directory. * Source/cmake/WebKitFS.cmake: * Source/cmake/frameworks/WTF.cmake: Added. Source/JavaScriptCore: Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal builds. * CMakeLists.txt: * shell/CMakeLists.txt: Source/WebCore: Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal builds. * CMakeLists.txt: * PlatformWin.cmake: Source/WebDriver: Use WTFFramework as a dependency. * CMakeLists.txt: Source/WebKit: Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal builds. * CMakeLists.txt: Source/WebKitLegacy: Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal builds. * CMakeLists.txt: * PlatformWin.cmake: Source/WebKitLegacy/win: * WebKitQuartzCoreAdditions/CMakeLists.txt: Source/WTF: Rename WTF forwarding header target to WTFFramework and update the install location to WTF_FRAMEWORK_HEADERS_DIR. * wtf/CMakeLists.txt: Tools: Use WTFFramework as a dependency and include frameworks/WTF.cmake for AppleWin internal builds. * CMakeLists.txt: * DumpRenderTree/CMakeLists.txt: * DumpRenderTree/PlatformWin.cmake: * MiniBrowser/win/CMakeLists.txt: * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformWin.cmake: * WebKitTestRunner/PlatformGTK.cmake: * WebKitTestRunner/PlatformWin.cmake: Canonical link: https://commits.webkit.org/210829@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-04-03 23:08:44 +00:00
2019-04-03 Don Olmstead <don.olmstead@sony.com>
[CMake][WTF] Mirror XCode header directories
https://bugs.webkit.org/show_bug.cgi?id=191662
Reviewed by Konstantin Tokarev.
Use WTFFramework as a dependency.
* CMakeLists.txt:
2019-03-04 Karl Leplat <karl.leplat_ext@softathome.com>
WebDriver: fix String not terminated with null caracter
https://bugs.webkit.org/show_bug.cgi?id=195274
Reviewed by Carlos Garcia Campos.
This has been detected by an exception returned by the function
evaluateJavaScriptFunction with the message :
[native code]: JS ERROR SyntaxError: Unexpected keyword 'function'. Expected ')' to end a compound expression.
keyword 'function' has been initialized with a string that come from char array, not a null-terminated string.
* Session.cpp:
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::elementClear):
2019-01-31 Zan Dobersek <zdobersek@igalia.com>
Unreviewed speculative WPE build fix.
* CMakeLists.txt: Include the WebKitCommon file, as is normally done in
standalone CMakeLists.txt files.
2019-01-31 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] WebDriver: race condition when session starts
https://bugs.webkit.org/show_bug.cgi?id=194086
Reviewed by Philippe Normand.
This is causing flakiness in the bots, I can only reproduce it locally when my CPUs are at 100%. The thing
is that sometimes we receive an empty target list right after the connection is established because
RemoteInspector::setClient() calls pushListingsSoon() before a target has been registered. Most of the times the
target is registered before the listing is pushed, but it can happen that when pushed, the listing is still
empty. After the target is registered an empty target list means the connection was lost, so we clear the
connection and target. We need to ensure we do that only after the target has been registered.
* glib/SessionHostGlib.cpp:
2019-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: POST commands require a valid parameters object
https://bugs.webkit.org/show_bug.cgi?id=193906
Reviewed by Michael Catanzaro.
We are not failing when http body is empty.
Fixes tests: imported/w3c/webdriver/tests/set_window_rect/set.py::test_null_parameter_value
imported/w3c/webdriver/tests/set_timeouts/set.py::test_null_parameter_value
* WebDriverService.cpp:
(WebDriver::WebDriverService::handleRequest):
2019-01-04 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: element click command should handle user prompts
https://bugs.webkit.org/show_bug.cgi?id=193139
Reviewed by Michael Catanzaro.
* Session.cpp:
(WebDriver::Session::elementClick): Handle user prompts.
2019-01-04 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] WebDriver: browser close not correctly detected on session close in some cases
https://bugs.webkit.org/show_bug.cgi?id=193104
Reviewed by Michael Catanzaro.
This happens when the dbus connection is closed right before the response to SendMessageToBackend message is
going to be sent. In that case, g_dbus_connection_call async ready handler generates an error before the close
signal is emitted. Then, the close commands try to handle the error checking if SessionHost::isConnected(), but
it still returns true, because the browser is still alive, but the dbus connection has been closed.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::isConnected const): Session is connected when launching or when dbus connection hasn't
been closed.
2018-12-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] WebDriver: dbusConnectionClosedCallback can be called after SessionHost has been deleted
https://bugs.webkit.org/show_bug.cgi?id=192976
Reviewed by Alejandro G. Castro.
Disconnect DBus connection signals using SessionHost as user data in SessionHost destructor.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::~SessionHost):
Use Optional::valueOr() instead of Optional::value_or() https://bugs.webkit.org/show_bug.cgi?id=192933 Reviewed by Geoffrey Garen. Source/JavaScriptCore: * inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: (Inspector::RemoteConnectionToTarget::setup): * inspector/remote/glib/RemoteConnectionToTargetGlib.cpp: (Inspector::RemoteConnectionToTarget::setup): * parser/SourceCodeKey.h: (JSC::SourceCodeKey::SourceCodeKey): * wasm/js/WebAssemblyModuleRecord.cpp: (JSC::WebAssemblyModuleRecord::link): Source/WebCore: * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: (WebCore::convert): (WebCore::ApplePayPaymentHandler::didAuthorizePayment): * Modules/encryptedmedia/MediaKeySession.cpp: (WebCore::MediaKeySession::load): * Modules/indexeddb/IDBDatabaseIdentifier.h: (WebCore::IDBDatabaseIdentifier::hash const): * Modules/indexeddb/IDBFactory.cpp: (WebCore::IDBFactory::open): * Modules/mediastream/MediaStreamTrack.cpp: (WebCore::MediaStreamTrack::applyConstraints): * Modules/mediastream/RTCDTMFSender.cpp: (WebCore::RTCDTMFSender::insertDTMF): * Modules/webdatabase/SQLTransaction.cpp: (WebCore::SQLTransaction::executeSql): * Modules/webvr/VRFrameData.cpp: (WebCore::VRFrameData::update): * animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSTransitionsForElement): * animation/DeclarativeAnimation.cpp: (WebCore::DeclarativeAnimation::cancel): (WebCore::DeclarativeAnimation::invalidateDOMEvents): * animation/KeyframeEffect.cpp: (WebCore::computeMissingKeyframeOffsets): (WebCore::KeyframeEffect::applyPendingAcceleratedActions): * animation/WebAnimation.cpp: (WebCore::WebAnimation::runPendingPlayTask): (WebCore::WebAnimation::runPendingPauseTask): * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::write): * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::generateKey): (WebCore::CryptoAlgorithmHMAC::importKey): * crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt): (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt): * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: (WebCore::CryptoKeyRSA::importSpki): (WebCore::CryptoKeyRSA::importPkcs8): * crypto/keys/CryptoKeyRSA.cpp: (WebCore::CryptoKeyRSA::importJwk): * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt): (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt): * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::importSpki): (WebCore::CryptoKeyRSA::importPkcs8): * css/CSSComputedStyleDeclaration.cpp: (WebCore::counterToCSSValue): * css/CSSFontFace.cpp: (WebCore::calculateItalicRange): * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::doubleValue const): * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::addRule): * css/DOMMatrix.cpp: (WebCore::DOMMatrix::rotateSelf): * css/DOMMatrixReadOnly.cpp: (WebCore::DOMMatrixReadOnly::validateAndFixup): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyValueCounter): * css/parser/MediaQueryParser.cpp: (WebCore::MediaQueryParser::commitMediaQuery): * dom/Document.h: (WebCore::Document::referrerPolicy const): * dom/Element.cpp: (WebCore::toScrollAlignment): * dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener): * dom/MutationObserver.cpp: (WebCore::MutationObserver::observe): * editing/cocoa/FontAttributeChangesCocoa.mm: (WebCore::FontChanges::platformFontFamilyNameForCSS const): * fileapi/File.cpp: (WebCore::File::File): * html/DOMTokenList.cpp: (WebCore::DOMTokenList::toggle): * html/HTMLOListElement.h: * html/ImageBitmap.cpp: (WebCore::croppedSourceRectangleWithFormatting): * html/canvas/CanvasPattern.cpp: (WebCore::CanvasPattern::setTransform): * html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::setTransform): (WebCore::CanvasRenderingContext2DBase::isPointInPathInternal): (WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal): * html/canvas/Path2D.cpp: (WebCore::Path2D::addPath): * inspector/InspectorCanvas.cpp: (WebCore::InspectorCanvas::buildAction): * inspector/InspectorFrontendHost.cpp: (WebCore::populateContextMenu): * layout/FormattingContext.cpp: (WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const): * layout/FormattingContextGeometry.cpp: (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry): (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry): (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry): (WebCore::Layout::FormattingContext::Geometry::complicatedCases): (WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin): (WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset): (WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedHorizontalMarginValue): (WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedVerticalMarginValue): * layout/FormattingContextQuirks.cpp: (WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight): * layout/MarginTypes.h: (WebCore::Layout::VerticalMargin::usedValues const): * layout/blockformatting/BlockFormattingContextGeometry.cpp: (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin): (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin): (WebCore::Layout::BlockFormattingContext::Geometry::instrinsicWidthConstraints): * layout/blockformatting/BlockFormattingContextQuirks.cpp: (WebCore::Layout::BlockFormattingContext::Quirks::stretchedHeight): * layout/displaytree/DisplayBox.h: (WebCore::Display::Box::width const): (WebCore::Display::Box::height const): (WebCore::Display::Box::contentBoxTop const): (WebCore::Display::Box::contentBoxLeft const): * layout/floats/FloatingContext.cpp: (WebCore::Layout::Iterator::set): * layout/inlineformatting/InlineFormattingContext.cpp: (WebCore::Layout::InlineFormattingContext::appendContentToLine const): (WebCore::Layout::InlineFormattingContext::placeInFlowPositionedChildren const): * loader/FrameLoader.cpp: (WebCore::FrameLoader::urlSelected): * loader/NavigationAction.cpp: * page/FrameView.cpp: (WebCore::FrameView::setLayoutViewportOverrideRect): (WebCore::FrameView::documentToAbsoluteScaleFactor const): (WebCore::FrameView::viewportSizeForCSSViewportUnits const): * page/Page.cpp: (WebCore::Page::setLowPowerModeEnabledOverrideForTesting): * page/SecurityOriginData.cpp: (WebCore::SecurityOriginData::databaseIdentifier const): * page/SecurityOriginData.h: (WebCore::SecurityOriginDataHash::hash): * page/SecurityOriginHash.h: (WebCore::SecurityOriginHash::hash): * page/ViewportConfiguration.cpp: (WebCore::ViewportConfiguration::setViewLayoutSize): * page/WindowFeatures.cpp: (WebCore::parseDialogFeatures): * page/animation/AnimationBase.cpp: (WebCore::AnimationBase::updateStateMachine): (WebCore::AnimationBase::fireAnimationEventsIfNeeded): (WebCore::AnimationBase::getTimeToNextEvent const): (WebCore::AnimationBase::freezeAtTime): (WebCore::AnimationBase::getElapsedTime const): * page/animation/CSSAnimationController.cpp: (WebCore::CSSAnimationControllerPrivate::updateAnimationTimer): * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::ResourceUsageThread::platformThreadBody): * page/linux/ResourceUsageThreadLinux.cpp: (WebCore::ResourceUsageThread::platformThreadBody): * platform/graphics/ComplexTextController.cpp: (WebCore::ComplexTextController::offsetForPosition): * platform/graphics/FontCache.h: (WebCore::FontDescriptionKey::computeHash const): * platform/graphics/FontCascade.cpp: (WebCore::FontCascade::drawText const): (WebCore::FontCascade::drawEmphasisMarks const): (WebCore::FontCascade::displayListForTextRun const): (WebCore::FontCascade::adjustSelectionRectForText const): (WebCore::FontCascade::codePath const): * platform/graphics/FontSelectionAlgorithm.cpp: (WebCore::FontSelectionAlgorithm::styleDistance const): * platform/graphics/FontSelectionAlgorithm.h: (WebCore::operator<<): (WebCore::FontSelectionSpecifiedCapabilities::computeWeight const): (WebCore::FontSelectionSpecifiedCapabilities::computeWidth const): (WebCore::FontSelectionSpecifiedCapabilities::computeSlope const): * platform/graphics/ShadowBlur.cpp: (WebCore::ShadowBlur::calculateLayerBoundingRect): * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp: (WebCore::WebCoreAVCFResourceLoader::startLoading): * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::naturalSize): * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::preparePlatformFont): * platform/graphics/filters/FETurbulence.cpp: (WebCore::FETurbulence::fillRegion const): * platform/graphics/gstreamer/GStreamerCommon.cpp: (WebCore::initializeGStreamer): * platform/graphics/texmap/TextureMapperLayer.cpp: (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica): (WebCore::TextureMapperLayer::replicaTransform): (WebCore::TextureMapperLayer::syncAnimations): * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::transformedVisibleRect): (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect): * platform/graphics/transforms/TransformState.cpp: (WebCore::TransformState::mappedPoint const): (WebCore::TransformState::mapQuad const): (WebCore::TransformState::flattenWithTransform): * platform/network/CacheValidation.cpp: (WebCore::computeCurrentAge): (WebCore::computeFreshnessLifetimeForHTTPFamily): * platform/network/NetworkStateNotifier.cpp: (WebCore::NetworkStateNotifier::onLine): * rendering/FloatingObjects.cpp: (WebCore::FindNextFloatLogicalBottomAdapter::nextLogicalBottom const): (WebCore::FindNextFloatLogicalBottomAdapter::nextShapeLogicalBottom const): * rendering/GridBaselineAlignment.cpp: (WebCore::GridBaselineAlignment::ascentForChild const): * rendering/GridTrackSizingAlgorithm.cpp: (WebCore::GridTrack::setGrowthLimit): (WebCore::GridTrackSizingAlgorithm::initialBaseSize const): (WebCore::GridTrackSizingAlgorithm::initialGrowthLimit const): (WebCore::GridTrackSizingAlgorithm::sizeTrackToFitNonSpanningItem): (WebCore::sortByGridTrackGrowthPotential): (WebCore::GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild const): (WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const): (WebCore::GridTrackSizingAlgorithm::initializeTrackSizes): * rendering/PaintInfo.h: (WebCore::PaintInfo::applyTransform): * rendering/RenderBox.cpp: (WebCore::RenderBox::computeLogicalHeight const): * rendering/RenderCounter.cpp: (WebCore::planCounter): * rendering/RenderDeprecatedFlexibleBox.cpp: (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::baselinePosition const): (WebCore::RenderFlexibleBox::marginBoxAscentForChild): (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): * rendering/RenderGrid.cpp: (WebCore::RenderGrid::gridGap const): (WebCore::RenderGrid::baselinePosition const): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayerByApplyingTransform): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItem): (WebCore::RenderListBox::listIndexIsVisible): * rendering/RenderMultiColumnSet.cpp: (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight const): * rendering/RenderTable.cpp: (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::cellBaselinePosition const): * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::firstLineBaseline const): * rendering/RenderText.cpp: (WebCore::RenderText::computePreferredLogicalWidths): (WebCore::RenderText::previousOffset const): (WebCore::RenderText::previousOffsetForBackwardDeletion const): (WebCore::RenderText::nextOffset const): (WebCore::RenderText::stringView const): * rendering/RenderView.cpp: (WebCore::RenderView::layout): * rendering/mathml/RenderMathMLBlock.cpp: (WebCore::RenderMathMLBlock::baselinePosition const): * rendering/mathml/RenderMathMLBlock.h: (WebCore::RenderMathMLBlock::ascentForChild): * rendering/style/GridPosition.cpp: (WebCore::GridPosition::max): * rendering/style/TextUnderlineOffset.h: (WebCore::TextUnderlineOffset::lengthOr const): * rendering/svg/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::nodeAtFloatPoint): * rendering/svg/RenderSVGForeignObject.cpp: (WebCore::RenderSVGForeignObject::nodeAtFloatPoint): * rendering/svg/RenderSVGImage.cpp: (WebCore::RenderSVGImage::nodeAtFloatPoint): * rendering/svg/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::hitTestClipContent): * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::nodeAtPoint): * rendering/svg/RenderSVGShape.cpp: (WebCore::RenderSVGShape::nodeAtFloatPoint): * rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::nodeAtFloatPoint): * rendering/svg/SVGRenderingContext.cpp: (WebCore::SVGRenderingContext::clipToImageBuffer): * svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::processGlyphElement): (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Source/WebDriver: * Session.cpp: (WebDriver::Session::handleUnexpectedAlertOpen): (WebDriver::Session::computeElementLayout): (WebDriver::Session::selectOptionElement): (WebDriver::builtAutomationCookie): (WebDriver::Session::takeScreenshot): * WebDriverService.cpp: (WebDriver::WebDriverService::sendResponse const): (WebDriver::WebDriverService::createSession): Source/WebKit: * Shared/API/c/WKSecurityOriginRef.cpp: (WKSecurityOriginGetPort): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/Cocoa/WKSecurityOrigin.mm: (-[WKSecurityOrigin port]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _cpuLimit]): * UIProcess/API/glib/WebKitSecurityOrigin.cpp: (webkit_security_origin_get_port): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseHandleWheelEvent): * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputKeyFrame::maximumDuration const): (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): (WebKit::WebAutomationSession::performInteractionSequence): * UIProcess/Automation/WebAutomationSessionMacros.h: * UIProcess/ServiceWorkerProcessProxy.cpp: (WebKit::ServiceWorkerProcessProxy::start): * UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::initTimeOutTimer): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::deviceScaleFactor const): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::viewportSizeForCSSViewportUnits const): * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: (WebKit::WebPopupMenuProxyGtk::activateItem): * UIProcess/mac/LegacySessionStateCoding.cpp: (WebKit::encodeFormDataElement): * WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::scheduleLoad): * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::convertFromPDFViewToRootView const): (WebKit::PDFPlugin::boundsOnScreen const): (WebKit::PDFPlugin::geometryDidChange): * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toFormData): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateVisibleContentRects): * WebProcess/WebPage/wpe/CompositingManager.cpp: (WebKit::CompositingManager::releaseConnectionFd): Source/WebKitLegacy/mac: * WebCoreSupport/WebSecurityOrigin.mm: (-[WebSecurityOrigin port]): Source/WebKitLegacy/win: * WebSecurityOrigin.cpp: (WebSecurityOrigin::port): Source/WTF: * wtf/Optional.h: (WTF::Optional<T::valueOr const): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::checkURL): (TestWebKitAPI::checkRelativeURL): (TestWebKitAPI::checkURLDifferences): (TestWebKitAPI::checkRelativeURLDifferences): * TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp: (TestWebKitAPI::checkURL): Canonical link: https://commits.webkit.org/207502@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239461 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-20 20:23:18 +00:00
2018-12-20 Chris Dumez <cdumez@apple.com>
Use Optional::valueOr() instead of Optional::value_or()
https://bugs.webkit.org/show_bug.cgi?id=192933
Reviewed by Geoffrey Garen.
* Session.cpp:
(WebDriver::Session::handleUnexpectedAlertOpen):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::selectOptionElement):
(WebDriver::builtAutomationCookie):
(WebDriver::Session::takeScreenshot):
* WebDriverService.cpp:
(WebDriver::WebDriverService::sendResponse const):
(WebDriver::WebDriverService::createSession):
2018-12-20 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: Session::findElements should handle user prompts
https://bugs.webkit.org/show_bug.cgi?id=192928
Reviewed by Michael Catanzaro.
All user prompt tests for commands using Session::findElements are failing because of this.
* Session.cpp:
(WebDriver::Session::findElements):
2018-12-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: tests in imported/w3c/webdriver/tests/element_clear/user_prompts.py are failing
https://bugs.webkit.org/show_bug.cgi?id=192927
Reviewed by Michael Catanzaro.
Handle user prompts in element clear command.
* Session.cpp:
(WebDriver::Session::elementClear):
wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from https://bugs.webkit.org/show_bug.cgi?id=192728 <rdar://problem/46746779> Reviewed by Geoff Garen. Source/JavaScriptCore: * API/*: * Scripts/*: * assembler/*: * b3/*: * bytecode/*: * bytecompiler/*: * debugger/*: * dfg/*: * ftl/*: * heap/*: * inspector/*: * jit/*: * llint/*: * parser/*: * runtime/*: * tools/*: * wasm/*: * yarr/*: Source/WebCore: * Modules/*: * animation/*: * bindings/*: * crypto/*: * css/*: * dom/*: * editing/*: * fileapi/*: * html/*: * inspector/*: * layout/*: * loader/*: * mathml/*: * page/*: * platform/*: * plugins/*: * rendering/*: * testing/*: * workers/*: * xml/*: Source/WebCore/PAL: * pal/*: Source/WebDriver: * : Source/WebKit: * NetworkProcess/*: * Platform/*: * Scripts/*: * Shared/*: * UIProcess/*: * WebProcess/*: Source/WebKitLegacy/mac: * DOM/*: * Plugins/*: * WebCoreSupport/*: * WebView/*: Source/WebKitLegacy/win: * Plugins/*: * WebCoreSupport/*: Source/WTF: Update optional's move-constructor and move-assignment operator to disengage the value being moved from. Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace. Based on patch by David Kilzer. * wtf/*: Tools: * DumpRenderTree/*: * MiniBrowser/*: * TestRunnerShared/*: * TestWebKitAPI/*: * WebGPUAPIStructure/*: * WebKitTestRunner/*: Canonical link: https://commits.webkit.org/207469@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239427 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-12-20 04:41:11 +00:00
2018-12-19 Chris Dumez <cdumez@apple.com>
wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
https://bugs.webkit.org/show_bug.cgi?id=192728
<rdar://problem/46746779>
Reviewed by Geoff Garen.
* :
[WebDriver] Fix clang warnings in Session.cpp https://bugs.webkit.org/show_bug.cgi?id=192077 Reviewed by Carlos Garcia Campos. * Session.cpp: (WebDriver::Session::dismissAndNotifyAlert): (WebDriver::Session::acceptAndNotifyAlert): (WebDriver::Session::reportUnexpectedAlertOpen): (WebDriver::Session::getCurrentURL): (WebDriver::Session::getTitle): (WebDriver::Session::getWindowHandle): (WebDriver::Session::getWindowHandles): (WebDriver::Session::getToplevelBrowsingContextRect): (WebDriver::Session::computeElementLayout): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::getElementProperty): (WebDriver::Session::getElementCSSValue): (WebDriver::Session::selectOptionElement): (WebDriver::Session::elementClick): (WebDriver::Session::elementClear): (WebDriver::Session::handleScriptResult): (WebDriver::Session::performMouseInteraction): (WebDriver::Session::performKeyboardInteractions): (WebDriver::Session::getAllCookies): (WebDriver::Session::getNamedCookie): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::performActions): (WebDriver::Session::releaseActions): (WebDriver::Session::dismissAlert): (WebDriver::Session::acceptAlert): (WebDriver::Session::getAlertText): (WebDriver::Session::sendAlertText): (WebDriver::Session::takeScreenshot): * WebDriverService.cpp: (WebDriver::WebDriverService::deleteSession): Canonical link: https://commits.webkit.org/206812@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-29 09:14:12 +00:00
2018-11-29 Tomas Popela <tpopela@redhat.com>
[WebDriver] Fix clang warnings in Session.cpp
https://bugs.webkit.org/show_bug.cgi?id=192077
Reviewed by Carlos Garcia Campos.
* Session.cpp:
(WebDriver::Session::dismissAndNotifyAlert):
(WebDriver::Session::acceptAndNotifyAlert):
(WebDriver::Session::reportUnexpectedAlertOpen):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::getTitle):
(WebDriver::Session::getWindowHandle):
(WebDriver::Session::getWindowHandles):
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::selectOptionElement):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementClear):
(WebDriver::Session::handleScriptResult):
(WebDriver::Session::performMouseInteraction):
(WebDriver::Session::performKeyboardInteractions):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::getNamedCookie):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::releaseActions):
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
(WebDriver::Session::takeScreenshot):
* WebDriverService.cpp:
(WebDriver::WebDriverService::deleteSession):
2018-11-02 Zan Dobersek <zdobersek@igalia.com>
[WPE] WebDriver: support validating and parsing the 'certificates' capability
https://bugs.webkit.org/show_bug.cgi?id=191014
Reviewed by Michael Catanzaro.
Adopt the same approach as in the GTK's WebDriverService implementation
for validating and parsing the 'certificates' WebDriver capability.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
2018-08-13 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: do not try to set the caret when focusing non text element in send keys command
https://bugs.webkit.org/show_bug.cgi?id=188515
Reviewed by Brian Burg.
It causes a type error exception.
* Session.cpp:
(WebDriver::Session::elementSendKeys):
2018-08-13 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: include all capabilities in the new session response
https://bugs.webkit.org/show_bug.cgi?id=188511
Reviewed by Brian Burg.
As expected by the tests, using the default values when the capability is not provided by the user.
* WebDriverService.cpp:
(WebDriver::WebDriverService::createSession):
2018-08-13 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: several element_send_keys tests are failing since added
https://bugs.webkit.org/show_bug.cgi?id=181644
Reviewed by Michael Catanzaro.
This is because we are implementing an old version of the spec that received a "value" parameter to send keys
command, instead of the "text" one.
14.3 Element Send Keys
https://w3c.github.io/webdriver/#element-send-keys
* Session.cpp:
(WebDriver::Session::virtualKeyForKey): Receive a single character instead of a sequence.
(WebDriver::Session::elementSendKeys): It now receives a String and passes every character to virtualKeyForKey.
(WebDriver::Session::performActions): Pass first character of sequence to virtualKeyForKey.
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::elementSendKeys): Get text as a String, instead of value as an array.
2018-08-12 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: do not handle prompts that appear while running scripts
https://bugs.webkit.org/show_bug.cgi?id=188468
Reviewed by Žan Doberšek.
This changed in the spec, we should just finish the script without handling the alert at all.
https://github.com/w3c/webdriver/commit/afb578090bc95718debeab6a6821da8d12b952c8
"If at any point during the algorithm a user prompt appears, abort all subsequent substeps of this algorithm,
and return success with data null."
https://w3c.github.io/webdriver/#dfn-execute-a-function-body
* Session.cpp:
(WebDriver::Session::executeScript):
2018-08-10 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WPE] WebDriver: do not use default browser arguments when browser binary has been provided
https://bugs.webkit.org/show_bug.cgi?id=188465
Reviewed by Žan Doberšek.
We only want to use --automation when no options or no browser binary is provided, because we fallback to
MiniBrowser and we know it needs --automation flag.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::launchBrowser): Handle the case of browser arguments being std::nullopt.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformParseCapabilities const): Initialize browser arguments to std:nullopt if
browser binary was provided.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformParseCapabilities const): Ditto.
2018-08-03 Ms2ger <Ms2ger@igalia.com>
Fix invalid optional access in WebDriver Session::createTopLevelBrowsingContext.
https://bugs.webkit.org/show_bug.cgi?id=188304
Reviewed by Brian Burg.
* Session.cpp:
(WebDriver::Session::createTopLevelBrowsingContext): remove incorrect value() call.
String(View) should have a splitAllowingEmptyEntries function instead of a flag parameter https://bugs.webkit.org/show_bug.cgi?id=187963 Reviewed by Alex Christensen. Source/JavaScriptCore: * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::dispatch): * jsc.cpp: (ModuleName::ModuleName): (resolvePath): * runtime/IntlObject.cpp: (JSC::canonicalizeLanguageTag): (JSC::removeUnicodeLocaleExtension): Update split/splitAllowingEmptyEntries usage. Source/WebCore: * Modules/applepay/cocoa/PaymentContactCocoa.mm: (WebCore::convert): * Modules/cache/DOMCache.cpp: (WebCore::hasResponseVaryStarHeaderValue): * Modules/cache/DOMCacheEngine.cpp: (WebCore::DOMCacheEngine::queryCacheMatch): * Modules/mediastream/PeerConnectionBackend.cpp: (WebCore::filterICECandidate): (WebCore::PeerConnectionBackend::filterSDP const): * Modules/websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::checkResponseHeaders): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::determineARIADropEffects): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::determineARIADropEffects): * accessibility/AccessibilityRenderObject.h: * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): * editing/cocoa/DataDetection.mm: (WebCore::DataDetection::shouldCancelDefaultAction): * editing/markup.cpp: (WebCore::fillContainerFromString): (WebCore::createFragmentFromText): * html/EmailInputType.cpp: (WebCore::EmailInputType::typeMismatchFor const): (WebCore::EmailInputType::sanitizeValue const): * html/HTMLInputElement.cpp: (WebCore::parseAcceptAttribute): * html/ValidationMessage.cpp: (WebCore::ValidationMessage::setMessageDOMAndStartTimer): * html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::compileShader): * inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::nodeForPath): * loader/FormSubmission.cpp: (WebCore::encodingFromAcceptCharset): * loader/ResourceTiming.cpp: (WebCore::passesTimingAllowCheck): * page/WindowFeatures.cpp: (WebCore::parseDisabledAdaptations): (WebCore::parseDialogFeaturesMap): * platform/URL.cpp: (WebCore::isIPv4Address): (WebCore::isIPv6Address): * platform/graphics/GLContext.cpp: (WebCore::GLContext::version): * platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::patternToFamilies): * platform/graphics/gstreamer/GStreamerCommon.cpp: (WebCore::extractGStreamerOptionsFromCommandLine): * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon): (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions): * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::fillSelectionData): * platform/gtk/SelectionData.cpp: (WebCore::SelectionData::setURIList): * platform/network/CacheValidation.cpp: (WebCore::collectVaryingRequestHeaders): * platform/network/HTTPParsers.cpp: (WebCore::filenameFromHTTPContentDisposition): (WebCore::parseXFrameOptionsHeader): (WebCore::parseAccessControlExposeHeadersAllowList): * platform/network/curl/CookieUtil.cpp: (WebCore::CookieUtil::parseCookieHeader): * platform/network/curl/CurlCacheEntry.cpp: (WebCore::CurlCacheEntry::loadResponseHeaders): * platform/network/curl/CurlCacheManager.cpp: (WebCore::CurlCacheManager::loadIndex): * platform/network/soup/CookieJarSoup.cpp: (WebCore::setCookiesFromDOM): * svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::parseAttribute): * svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::appendOS2Table): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::parseBeginOrEnd): * testing/MockCDMFactory.cpp: (WebCore::MockCDM::sanitizeResponse const): (WebCore::MockCDMInstance::updateLicense): Update split/splitAllowingEmptyEntries usage. Source/WebDriver: * WebDriverService.cpp: (WebDriver::WebDriverService::findCommand): * glib/WebDriverServiceGLib.cpp: (WebDriver::parseVersion): Update split/splitAllowingEmptyEntries usage. Source/WebKit: * NetworkProcess/cache/CacheStorageEngineCache.cpp: (WebKit::CacheStorage::updateVaryInformation): * NetworkProcess/capture/NetworkCaptureManager.cpp: (WebKit::NetworkCapture::Manager::fuzzyMatchURLs): * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::getPluginInfoFromPropertyLists): (WebKit::PluginVersion::parse): * Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp: (WebKit::NetscapePluginModule::parseMIMEDescription): * Shared/Plugins/unix/PluginSearchPath.cpp: (WebKit::pluginsDirectories): * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox): * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::fileCanBeAcceptedForUpload): * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: (WebKit::PluginProcessProxy::scanPlugin): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::isTransparentSilverlightBackgroundValue): Update split/splitAllowingEmptyEntries usage. Source/WebKitLegacy/win: * Plugins/PluginPackageWin.cpp: (WebCore::PluginPackage::fetchInfo): Update split/splitAllowingEmptyEntries usage. Source/WTF: * wtf/Assertions.cpp: Update split/splitAllowingEmptyEntries usage. * wtf/text/StringView.h: (WTF::StringView::splitAllowingEmptyEntries const): * wtf/text/WTFString.cpp: (WTF::String::splitInternal const): (WTF::String::split const): (WTF::String::splitAllowingEmptyEntries const): * wtf/text/WTFString.h: (WTF::String::split const): Introduce splitAllowingEmptyEntries instead of boolean or enum parameter. Tools: * TestWebKitAPI/Tests/WTF/WTFString.cpp: Add tests for String::split and String::splitAllowingEmptyEntries. * TestWebKitAPI/Tests/WTF/StringView.cpp: * WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader): Update split/splitAllowingEmptyEntries usage. Canonical link: https://commits.webkit.org/203220@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-07-26 22:00:03 +00:00
2018-07-26 Ross Kirsling <ross.kirsling@sony.com>
String(View) should have a splitAllowingEmptyEntries function instead of a flag parameter
https://bugs.webkit.org/show_bug.cgi?id=187963
Reviewed by Alex Christensen.
* WebDriverService.cpp:
(WebDriver::WebDriverService::findCommand):
* glib/WebDriverServiceGLib.cpp:
(WebDriver::parseVersion):
Update split/splitAllowingEmptyEntries usage.
2018-07-05 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WPE] Add --host option to WebDriver process
https://bugs.webkit.org/show_bug.cgi?id=187288
Reviewed by Žan Doberšek.
We currently allow to pass a port number and the server always listens for connections on localhost. We should
allow to optionally pass a host IP address to be able to use WebDriver remotely.
* HTTPServer.h:
* WebDriverService.cpp:
(WebDriver::printUsageStatement): Update usage to include --host option.
(WebDriver::WebDriverService::run): Parse --host option and pass it to HTTPServer::listen().
* soup/HTTPServerSoup.cpp:
(WebDriver::soupServerListen): Helper to call soup_server_listen_local(), soup_server_listen_all() or
soup_server_listen() depending on the given host.
(WebDriver::HTTPServer::listen): Use soupServerListen() helper.
2018-06-24 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix WebDriver tests after r233077.
WebDriver process is crashing because GVariant doesn't allow to pass a nullptr array when using @ modifier.
* SessionHost.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::buildSessionCapabilities const): Receive a GVariantBuilder and return true if there are
session capabilities.
(WebDriver::SessionHost::startAutomationSession): Remove the @ modifier and use a GVariantBuilder instead, or
nullptr if there aren't session capabilities.
Web Automation: key actions should support multiple pressed virtual keys https://bugs.webkit.org/show_bug.cgi?id=186899 <rdar://problem/38222248> Reviewed by Timothy Hatcher. Source/WebDriver: Adopt new protocol command argument types. * Session.cpp: (WebDriver::Session::performActions): Source/WebKit: This patch changes the protocol to allow multiple virtual keys per input source state. Chords like Cmd-Shift-A and Shift-F12 must be represented this way as they are encoded in the VirtualKey enum rather than as an ASCII char. * UIProcess/Automation/Automation.json: * UIProcess/Automation/SimulatedInputDispatcher.h: * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::simulateKeyboardInteraction): (WebKit::WebAutomationSession::performKeyboardInteractions): (WebKit::WebAutomationSession::performInteractionSequence): * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): * UIProcess/Automation/mac/WebAutomationSessionMac.mm: (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): Also clean up the signature of WebAutomationSession::platformSimulateKeyboardInteraction to use a variant instead of mutually exclusive optional values with different types. Canonical link: https://commits.webkit.org/202222@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-23 19:17:09 +00:00
2018-06-21 Brian Burg <bburg@apple.com>
Web Automation: key actions should support multiple pressed virtual keys
https://bugs.webkit.org/show_bug.cgi?id=186899
<rdar://problem/38222248>
Reviewed by Timothy Hatcher.
Adopt new protocol command argument types.
* Session.cpp:
(WebDriver::Session::performActions):
[WTF] Add user-defined literal for ASCIILiteral https://bugs.webkit.org/show_bug.cgi?id=186839 Reviewed by Darin Adler. Source/JavaScriptCore: * API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject<Parent>::staticFunctionGetter): (JSC::JSCallbackObject<Parent>::callbackGetter): * API/JSObjectRef.cpp: (JSObjectMakeFunctionWithCallback): * API/JSTypedArray.cpp: (JSObjectGetArrayBufferBytesPtr): * API/JSValue.mm: (valueToArray): (valueToDictionary): * API/ObjCCallbackFunction.mm: (JSC::objCCallbackFunctionCallAsFunction): (JSC::objCCallbackFunctionCallAsConstructor): (JSC::ObjCCallbackFunctionImpl::call): * API/glib/JSCCallbackFunction.cpp: (JSC::JSCCallbackFunction::call): (JSC::JSCCallbackFunction::construct): * API/glib/JSCContext.cpp: (jscContextJSValueToGValue): * API/glib/JSCValue.cpp: (jsc_value_object_define_property_accessor): (jscValueFunctionCreate): * builtins/BuiltinUtils.h: * bytecode/CodeBlock.cpp: (JSC::CodeBlock::nameForRegister): * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitEnumeration): (JSC::BytecodeGenerator::emitIteratorNext): (JSC::BytecodeGenerator::emitIteratorClose): (JSC::BytecodeGenerator::emitDelegateYield): * bytecompiler/NodesCodegen.cpp: (JSC::FunctionCallValueNode::emitBytecode): (JSC::PostfixNode::emitBytecode): (JSC::PrefixNode::emitBytecode): (JSC::AssignErrorNode::emitBytecode): (JSC::ForInNode::emitBytecode): (JSC::ForOfNode::emitBytecode): (JSC::ClassExprNode::emitBytecode): (JSC::ObjectPatternNode::bindValue const): * dfg/DFGDriver.cpp: (JSC::DFG::compileImpl): * dfg/DFGOperations.cpp: (JSC::DFG::newTypedArrayWithSize): * dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode): * inspector/ConsoleMessage.cpp: (Inspector::ConsoleMessage::addToFrontend): (Inspector::ConsoleMessage::clear): * inspector/ContentSearchUtilities.cpp: (Inspector::ContentSearchUtilities::findStylesheetSourceMapURL): * inspector/InjectedScript.cpp: (Inspector::InjectedScript::InjectedScript): (Inspector::InjectedScript::evaluate): (Inspector::InjectedScript::callFunctionOn): (Inspector::InjectedScript::evaluateOnCallFrame): (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::functionDetails): (Inspector::InjectedScript::getPreview): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::saveResult): (Inspector::InjectedScript::wrapCallFrames const): (Inspector::InjectedScript::wrapObject const): (Inspector::InjectedScript::wrapJSONString const): (Inspector::InjectedScript::wrapTable const): (Inspector::InjectedScript::previewValue const): (Inspector::InjectedScript::setExceptionValue): (Inspector::InjectedScript::clearExceptionValue): (Inspector::InjectedScript::findObjectById const): (Inspector::InjectedScript::inspectObject): (Inspector::InjectedScript::releaseObject): (Inspector::InjectedScript::releaseObjectGroup): * inspector/InjectedScriptBase.cpp: (Inspector::InjectedScriptBase::makeEvalCall): * inspector/InjectedScriptManager.cpp: (Inspector::InjectedScriptManager::injectedScriptForObjectId): * inspector/InjectedScriptModule.cpp: (Inspector::InjectedScriptModule::ensureInjected): * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::dispatch): (Inspector::BackendDispatcher::sendResponse): (Inspector::BackendDispatcher::sendPendingErrors): * inspector/JSGlobalObjectConsoleClient.cpp: (Inspector::JSGlobalObjectConsoleClient::profile): (Inspector::JSGlobalObjectConsoleClient::profileEnd): (Inspector::JSGlobalObjectConsoleClient::timeStamp): * inspector/JSGlobalObjectInspectorController.cpp: (Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace): * inspector/JSInjectedScriptHost.cpp: (Inspector::JSInjectedScriptHost::evaluateWithScopeExtension): (Inspector::JSInjectedScriptHost::subtype): (Inspector::JSInjectedScriptHost::getInternalProperties): * inspector/JSJavaScriptCallFrame.cpp: (Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension): (Inspector::JSJavaScriptCallFrame::type const): * inspector/ScriptArguments.cpp: (Inspector::ScriptArguments::getFirstArgumentAsString): * inspector/ScriptCallStackFactory.cpp: (Inspector::extractSourceInformationFromException): * inspector/agents/InspectorAgent.cpp: (Inspector::InspectorAgent::InspectorAgent): * inspector/agents/InspectorConsoleAgent.cpp: (Inspector::InspectorConsoleAgent::InspectorConsoleAgent): (Inspector::InspectorConsoleAgent::clearMessages): (Inspector::InspectorConsoleAgent::count): (Inspector::InspectorConsoleAgent::setLoggingChannelLevel): * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::InspectorDebuggerAgent::InspectorDebuggerAgent): (Inspector::InspectorDebuggerAgent::setAsyncStackTraceDepth): (Inspector::buildObjectForBreakpointCookie): (Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol): (Inspector::parseLocation): (Inspector::InspectorDebuggerAgent::setBreakpointByUrl): (Inspector::InspectorDebuggerAgent::setBreakpoint): (Inspector::InspectorDebuggerAgent::continueToLocation): (Inspector::InspectorDebuggerAgent::searchInContent): (Inspector::InspectorDebuggerAgent::getScriptSource): (Inspector::InspectorDebuggerAgent::getFunctionDetails): (Inspector::InspectorDebuggerAgent::resume): (Inspector::InspectorDebuggerAgent::setPauseOnExceptions): (Inspector::InspectorDebuggerAgent::evaluateOnCallFrame): (Inspector::InspectorDebuggerAgent::didParseSource): (Inspector::InspectorDebuggerAgent::assertPaused): * inspector/agents/InspectorHeapAgent.cpp: (Inspector::InspectorHeapAgent::InspectorHeapAgent): (Inspector::InspectorHeapAgent::nodeForHeapObjectIdentifier): (Inspector::InspectorHeapAgent::getPreview): (Inspector::InspectorHeapAgent::getRemoteObject): * inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::InspectorRuntimeAgent): (Inspector::InspectorRuntimeAgent::callFunctionOn): (Inspector::InspectorRuntimeAgent::getPreview): (Inspector::InspectorRuntimeAgent::getProperties): (Inspector::InspectorRuntimeAgent::getDisplayableProperties): (Inspector::InspectorRuntimeAgent::getCollectionEntries): (Inspector::InspectorRuntimeAgent::saveResult): (Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets): (Inspector::InspectorRuntimeAgent::getBasicBlocks): * inspector/agents/InspectorScriptProfilerAgent.cpp: (Inspector::InspectorScriptProfilerAgent::InspectorScriptProfilerAgent): * inspector/agents/JSGlobalObjectDebuggerAgent.cpp: (Inspector::JSGlobalObjectDebuggerAgent::injectedScriptForEval): * inspector/agents/JSGlobalObjectRuntimeAgent.cpp: (Inspector::JSGlobalObjectRuntimeAgent::injectedScriptForEval): * inspector/scripts/codegen/cpp_generator_templates.py: * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command): (ObjCBackendDispatcherImplementationGenerator._generate_conversions_for_command): * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: (ObjCFrontendDispatcherImplementationGenerator._generate_event): (ObjCFrontendDispatcherImplementationGenerator._generate_event_out_parameters): * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py: (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_objc_to_protocol_string): * 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/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/worker-supported-domains.json-result: * inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: * inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result: * interpreter/CallFrame.cpp: (JSC::CallFrame::friendlyFunctionName): * interpreter/Interpreter.cpp: (JSC::Interpreter::execute): * interpreter/StackVisitor.cpp: (JSC::StackVisitor::Frame::functionName const): (JSC::StackVisitor::Frame::sourceURL const): * jit/JIT.cpp: (JSC::JIT::doMainThreadPreparationBeforeCompile): * jit/JITOperations.cpp: * jsc.cpp: (resolvePath): (GlobalObject::moduleLoaderImportModule): (GlobalObject::moduleLoaderResolve): (functionDescribeArray): (functionRun): (functionLoad): (functionCheckSyntax): (functionDollarEvalScript): (functionDollarAgentStart): (functionDollarAgentReceiveBroadcast): (functionDollarAgentBroadcast): (functionTransferArrayBuffer): (functionLoadModule): (functionSamplingProfilerStackTraces): (functionAsyncTestStart): (functionWebAssemblyMemoryMode): (runWithOptions): * parser/Lexer.cpp: (JSC::Lexer<T>::invalidCharacterMessage const): (JSC::Lexer<T>::parseString): (JSC::Lexer<T>::parseComplexEscape): (JSC::Lexer<T>::parseStringSlowCase): (JSC::Lexer<T>::parseTemplateLiteral): (JSC::Lexer<T>::lex): * parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner): * parser/Parser.h: (JSC::Parser::setErrorMessage): * runtime/AbstractModuleRecord.cpp: (JSC::AbstractModuleRecord::finishCreation): * runtime/ArrayBuffer.cpp: (JSC::errorMesasgeForTransfer): * runtime/ArrayBufferSharingMode.h: (JSC::arrayBufferSharingModeName): * runtime/ArrayConstructor.cpp: (JSC::constructArrayWithSizeQuirk): (JSC::isArraySlowInline): * runtime/ArrayPrototype.cpp: (JSC::setLength): (JSC::shift): (JSC::unshift): (JSC::arrayProtoFuncPop): (JSC::arrayProtoFuncReverse): (JSC::arrayProtoFuncUnShift): * runtime/AtomicsObject.cpp: (JSC::atomicsFuncWait): (JSC::atomicsFuncWake): * runtime/BigIntConstructor.cpp: (JSC::BigIntConstructor::finishCreation): (JSC::toBigInt): (JSC::callBigIntConstructor): * runtime/BigIntObject.cpp: (JSC::BigIntObject::toStringName): * runtime/BigIntPrototype.cpp: (JSC::bigIntProtoFuncToString): (JSC::bigIntProtoFuncValueOf): * runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL): * runtime/ConsoleClient.cpp: (JSC::ConsoleClient::printConsoleMessageWithArguments): * runtime/ConsoleObject.cpp: (JSC::valueOrDefaultLabelString): (JSC::consoleProtoFuncTime): (JSC::consoleProtoFuncTimeEnd): * runtime/DatePrototype.cpp: (JSC::formatLocaleDate): (JSC::formateDateInstance): (JSC::DatePrototype::finishCreation): (JSC::dateProtoFuncToISOString): (JSC::dateProtoFuncToJSON): * runtime/Error.cpp: (JSC::createNotEnoughArgumentsError): (JSC::throwSyntaxError): (JSC::createTypeError): (JSC::createOutOfMemoryError): * runtime/Error.h: (JSC::throwVMError): * runtime/ErrorConstructor.cpp: (JSC::ErrorConstructor::finishCreation): * runtime/ErrorInstance.cpp: (JSC::ErrorInstance::sanitizedToString): * runtime/ErrorPrototype.cpp: (JSC::ErrorPrototype::finishCreation): (JSC::errorProtoFuncToString): * runtime/ExceptionFuzz.cpp: (JSC::doExceptionFuzzing): * runtime/ExceptionHelpers.cpp: (JSC::TerminatedExecutionError::defaultValue): (JSC::createStackOverflowError): (JSC::createNotAConstructorError): (JSC::createNotAFunctionError): (JSC::createNotAnObjectError): * runtime/GetterSetter.cpp: (JSC::callSetter): * runtime/IntlCollator.cpp: (JSC::sortLocaleData): (JSC::searchLocaleData): (JSC::IntlCollator::initializeCollator): (JSC::IntlCollator::compareStrings): (JSC::IntlCollator::usageString): (JSC::IntlCollator::sensitivityString): (JSC::IntlCollator::caseFirstString): (JSC::IntlCollator::resolvedOptions): * runtime/IntlCollator.h: * runtime/IntlCollatorConstructor.cpp: (JSC::IntlCollatorConstructor::finishCreation): * runtime/IntlCollatorPrototype.cpp: (JSC::IntlCollatorPrototypeGetterCompare): (JSC::IntlCollatorPrototypeFuncResolvedOptions): * runtime/IntlDateTimeFormat.cpp: (JSC::defaultTimeZone): (JSC::canonicalizeTimeZoneName): (JSC::IntlDTFInternal::localeData): (JSC::IntlDTFInternal::toDateTimeOptionsAnyDate): (JSC::IntlDateTimeFormat::initializeDateTimeFormat): (JSC::IntlDateTimeFormat::weekdayString): (JSC::IntlDateTimeFormat::eraString): (JSC::IntlDateTimeFormat::yearString): (JSC::IntlDateTimeFormat::monthString): (JSC::IntlDateTimeFormat::dayString): (JSC::IntlDateTimeFormat::hourString): (JSC::IntlDateTimeFormat::minuteString): (JSC::IntlDateTimeFormat::secondString): (JSC::IntlDateTimeFormat::timeZoneNameString): (JSC::IntlDateTimeFormat::resolvedOptions): (JSC::IntlDateTimeFormat::format): (JSC::IntlDateTimeFormat::partTypeString): (JSC::IntlDateTimeFormat::formatToParts): * runtime/IntlDateTimeFormat.h: * runtime/IntlDateTimeFormatConstructor.cpp: (JSC::IntlDateTimeFormatConstructor::finishCreation): * runtime/IntlDateTimeFormatPrototype.cpp: (JSC::IntlDateTimeFormatPrototypeGetterFormat): (JSC::IntlDateTimeFormatPrototypeFuncFormatToParts): (JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions): * runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::initializeNumberFormat): (JSC::IntlNumberFormat::formatNumber): (JSC::IntlNumberFormat::styleString): (JSC::IntlNumberFormat::currencyDisplayString): (JSC::IntlNumberFormat::resolvedOptions): (JSC::IntlNumberFormat::partTypeString): (JSC::IntlNumberFormat::formatToParts): * runtime/IntlNumberFormat.h: * runtime/IntlNumberFormatConstructor.cpp: (JSC::IntlNumberFormatConstructor::finishCreation): * runtime/IntlNumberFormatPrototype.cpp: (JSC::IntlNumberFormatPrototypeGetterFormat): (JSC::IntlNumberFormatPrototypeFuncFormatToParts): (JSC::IntlNumberFormatPrototypeFuncResolvedOptions): * runtime/IntlObject.cpp: (JSC::grandfatheredLangTag): (JSC::canonicalizeLocaleList): (JSC::resolveLocale): (JSC::supportedLocales): * runtime/IntlPluralRules.cpp: (JSC::IntlPluralRules::initializePluralRules): (JSC::IntlPluralRules::resolvedOptions): (JSC::IntlPluralRules::select): * runtime/IntlPluralRulesConstructor.cpp: (JSC::IntlPluralRulesConstructor::finishCreation): * runtime/IntlPluralRulesPrototype.cpp: (JSC::IntlPluralRulesPrototypeFuncSelect): (JSC::IntlPluralRulesPrototypeFuncResolvedOptions): * runtime/IteratorOperations.cpp: (JSC::iteratorNext): (JSC::iteratorClose): (JSC::hasIteratorMethod): (JSC::iteratorMethod): * runtime/JSArray.cpp: (JSC::JSArray::tryCreateUninitializedRestricted): (JSC::JSArray::defineOwnProperty): (JSC::JSArray::put): (JSC::JSArray::setLengthWithArrayStorage): (JSC::JSArray::appendMemcpy): (JSC::JSArray::pop): * runtime/JSArray.h: * runtime/JSArrayBufferConstructor.cpp: (JSC::JSArrayBufferConstructor::finishCreation): * runtime/JSArrayBufferPrototype.cpp: (JSC::arrayBufferProtoFuncSlice): (JSC::arrayBufferProtoGetterFuncByteLength): (JSC::sharedArrayBufferProtoGetterFuncByteLength): * runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::toStringName): * runtime/JSArrayInlines.h: (JSC::JSArray::pushInline): * runtime/JSBigInt.cpp: (JSC::JSBigInt::divide): (JSC::JSBigInt::remainder): (JSC::JSBigInt::toNumber const): * runtime/JSCJSValue.cpp: (JSC::JSValue::putToPrimitive): (JSC::JSValue::putToPrimitiveByIndex): (JSC::JSValue::toStringSlowCase const): * runtime/JSCJSValueInlines.h: (JSC::toPreferredPrimitiveType): * runtime/JSDataView.cpp: (JSC::JSDataView::create): (JSC::JSDataView::put): (JSC::JSDataView::defineOwnProperty): * runtime/JSDataViewPrototype.cpp: (JSC::getData): (JSC::setData): * runtime/JSFunction.cpp: (JSC::JSFunction::callerGetter): (JSC::JSFunction::put): (JSC::JSFunction::defineOwnProperty): * runtime/JSGenericTypedArrayView.h: * runtime/JSGenericTypedArrayViewConstructorInlines.h: (JSC::constructGenericTypedArrayViewWithArguments): (JSC::constructGenericTypedArrayView): * runtime/JSGenericTypedArrayViewInlines.h: (JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty): * runtime/JSGenericTypedArrayViewPrototypeFunctions.h: (JSC::speciesConstruct): (JSC::genericTypedArrayViewProtoFuncSet): (JSC::genericTypedArrayViewProtoFuncIndexOf): (JSC::genericTypedArrayViewProtoFuncLastIndexOf): (JSC::genericTypedArrayViewPrivateFuncSubarrayCreate): * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): * runtime/JSGlobalObjectDebuggable.cpp: (JSC::JSGlobalObjectDebuggable::name const): * runtime/JSGlobalObjectFunctions.cpp: (JSC::encode): (JSC::decode): (JSC::globalFuncProtoSetter): * runtime/JSGlobalObjectFunctions.h: * runtime/JSMap.cpp: (JSC::JSMap::toStringName): * runtime/JSModuleEnvironment.cpp: (JSC::JSModuleEnvironment::put): * runtime/JSModuleNamespaceObject.cpp: (JSC::JSModuleNamespaceObject::put): (JSC::JSModuleNamespaceObject::putByIndex): (JSC::JSModuleNamespaceObject::defineOwnProperty): * runtime/JSONObject.cpp: (JSC::Stringifier::appendStringifiedValue): (JSC::JSONProtoFuncParse): (JSC::JSONProtoFuncStringify): * runtime/JSObject.cpp: (JSC::getClassPropertyNames): (JSC::JSObject::calculatedClassName): (JSC::ordinarySetSlow): (JSC::JSObject::putInlineSlow): (JSC::JSObject::setPrototypeWithCycleCheck): (JSC::callToPrimitiveFunction): (JSC::JSObject::ordinaryToPrimitive const): (JSC::JSObject::defaultHasInstance): (JSC::JSObject::defineOwnIndexedProperty): (JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage): (JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage): (JSC::validateAndApplyPropertyDescriptor): * runtime/JSObject.h: * runtime/JSObjectInlines.h: (JSC::JSObject::putInlineForJSObject): * runtime/JSPromiseConstructor.cpp: (JSC::JSPromiseConstructor::finishCreation): * runtime/JSSet.cpp: (JSC::JSSet::toStringName): * runtime/JSSymbolTableObject.h: (JSC::symbolTablePut): * runtime/JSTypedArrayViewConstructor.cpp: (JSC::constructTypedArrayView): * runtime/JSTypedArrayViewPrototype.cpp: (JSC::typedArrayViewPrivateFuncLength): (JSC::typedArrayViewProtoFuncSet): (JSC::typedArrayViewProtoFuncCopyWithin): (JSC::typedArrayViewProtoFuncLastIndexOf): (JSC::typedArrayViewProtoFuncIndexOf): (JSC::typedArrayViewProtoFuncJoin): (JSC::typedArrayViewProtoGetterFuncBuffer): (JSC::typedArrayViewProtoGetterFuncLength): (JSC::typedArrayViewProtoGetterFuncByteLength): (JSC::typedArrayViewProtoGetterFuncByteOffset): (JSC::typedArrayViewProtoFuncReverse): (JSC::typedArrayViewPrivateFuncSubarrayCreate): (JSC::typedArrayViewProtoFuncSlice): (JSC::JSTypedArrayViewPrototype::finishCreation): * runtime/JSWeakMap.cpp: (JSC::JSWeakMap::toStringName): * runtime/JSWeakSet.cpp: (JSC::JSWeakSet::toStringName): * runtime/LiteralParser.cpp: (JSC::LiteralParser<CharType>::Lexer::lex): (JSC::LiteralParser<CharType>::Lexer::lexStringSlow): (JSC::LiteralParser<CharType>::Lexer::lexNumber): (JSC::LiteralParser<CharType>::parse): * runtime/LiteralParser.h: (JSC::LiteralParser::getErrorMessage): * runtime/Lookup.cpp: (JSC::reifyStaticAccessor): * runtime/Lookup.h: (JSC::putEntry): * runtime/MapPrototype.cpp: (JSC::getMap): * runtime/NullSetterFunction.cpp: (JSC::NullSetterFunctionInternal::callReturnUndefined): * runtime/NumberPrototype.cpp: (JSC::numberProtoFuncToExponential): (JSC::numberProtoFuncToFixed): (JSC::numberProtoFuncToPrecision): (JSC::extractToStringRadixArgument): * runtime/ObjectConstructor.cpp: (JSC::objectConstructorSetPrototypeOf): (JSC::objectConstructorAssign): (JSC::objectConstructorValues): (JSC::toPropertyDescriptor): (JSC::objectConstructorDefineProperty): (JSC::objectConstructorDefineProperties): (JSC::objectConstructorCreate): (JSC::objectConstructorSeal): (JSC::objectConstructorFreeze): * runtime/ObjectPrototype.cpp: (JSC::objectProtoFuncDefineGetter): (JSC::objectProtoFuncDefineSetter): * runtime/Operations.cpp: (JSC::jsAddSlowCase): * runtime/Operations.h: (JSC::jsSub): (JSC::jsMul): * runtime/ProgramExecutable.cpp: (JSC::ProgramExecutable::initializeGlobalProperties): * runtime/ProxyConstructor.cpp: (JSC::makeRevocableProxy): (JSC::proxyRevocableConstructorThrowError): (JSC::ProxyConstructor::finishCreation): (JSC::constructProxyObject): * runtime/ProxyObject.cpp: (JSC::ProxyObject::toStringName): (JSC::ProxyObject::finishCreation): (JSC::performProxyGet): (JSC::ProxyObject::performInternalMethodGetOwnProperty): (JSC::ProxyObject::performHasProperty): (JSC::ProxyObject::performPut): (JSC::performProxyCall): (JSC::performProxyConstruct): (JSC::ProxyObject::performDelete): (JSC::ProxyObject::performPreventExtensions): (JSC::ProxyObject::performIsExtensible): (JSC::ProxyObject::performDefineOwnProperty): (JSC::ProxyObject::performGetOwnPropertyNames): (JSC::ProxyObject::performSetPrototype): (JSC::ProxyObject::performGetPrototype): * runtime/ReflectObject.cpp: (JSC::reflectObjectConstruct): (JSC::reflectObjectDefineProperty): (JSC::reflectObjectGet): (JSC::reflectObjectGetOwnPropertyDescriptor): (JSC::reflectObjectGetPrototypeOf): (JSC::reflectObjectIsExtensible): (JSC::reflectObjectOwnKeys): (JSC::reflectObjectPreventExtensions): (JSC::reflectObjectSet): (JSC::reflectObjectSetPrototypeOf): * runtime/RegExpConstructor.cpp: (JSC::RegExpConstructor::finishCreation): (JSC::toFlags): * runtime/RegExpObject.cpp: (JSC::RegExpObject::defineOwnProperty): * runtime/RegExpObject.h: * runtime/RegExpPrototype.cpp: (JSC::regExpProtoFuncCompile): (JSC::regExpProtoGetterGlobal): (JSC::regExpProtoGetterIgnoreCase): (JSC::regExpProtoGetterMultiline): (JSC::regExpProtoGetterDotAll): (JSC::regExpProtoGetterSticky): (JSC::regExpProtoGetterUnicode): (JSC::regExpProtoGetterFlags): (JSC::regExpProtoGetterSourceInternal): (JSC::regExpProtoGetterSource): * runtime/RuntimeType.cpp: (JSC::runtimeTypeAsString): * runtime/SamplingProfiler.cpp: (JSC::SamplingProfiler::StackFrame::displayName): (JSC::SamplingProfiler::StackFrame::displayNameForJSONTests): * runtime/ScriptExecutable.cpp: (JSC::ScriptExecutable::prepareForExecutionImpl): * runtime/SetPrototype.cpp: (JSC::getSet): * runtime/SparseArrayValueMap.cpp: (JSC::SparseArrayValueMap::putEntry): (JSC::SparseArrayValueMap::putDirect): (JSC::SparseArrayEntry::put): * runtime/StackFrame.cpp: (JSC::StackFrame::sourceURL const): (JSC::StackFrame::functionName const): * runtime/StringConstructor.cpp: (JSC::stringFromCodePoint): * runtime/StringObject.cpp: (JSC::StringObject::put): (JSC::StringObject::putByIndex): * runtime/StringPrototype.cpp: (JSC::StringPrototype::finishCreation): (JSC::toLocaleCase): (JSC::stringProtoFuncNormalize): * runtime/Symbol.cpp: (JSC::Symbol::toNumber const): * runtime/SymbolConstructor.cpp: (JSC::symbolConstructorKeyFor): * runtime/SymbolObject.cpp: (JSC::SymbolObject::toStringName): * runtime/SymbolPrototype.cpp: (JSC::SymbolPrototype::finishCreation): * runtime/TypeSet.cpp: (JSC::TypeSet::dumpTypes const): (JSC::TypeSet::displayName const): (JSC::StructureShape::leastCommonAncestor): * runtime/TypeSet.h: (JSC::StructureShape::setConstructorName): * runtime/VM.cpp: (JSC::VM::dumpTypeProfilerData): * runtime/WeakMapPrototype.cpp: (JSC::getWeakMap): (JSC::protoFuncWeakMapSet): * runtime/WeakSetPrototype.cpp: (JSC::getWeakSet): (JSC::protoFuncWeakSetAdd): * tools/JSDollarVM.cpp: (WTF::DOMJITGetterComplex::DOMJITAttribute::slowCall): (WTF::DOMJITGetterComplex::customGetter): (JSC::functionSetImpureGetterDelegate): (JSC::functionCreateElement): (JSC::functionGetHiddenValue): (JSC::functionSetHiddenValue): (JSC::functionFindTypeForExpression): (JSC::functionReturnTypeFor): (JSC::functionLoadGetterFromGetterSetter): * wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::fail const): * wasm/WasmIndexOrName.cpp: (JSC::Wasm::makeString): * wasm/WasmParser.h: (JSC::Wasm::FailureHelper::makeString): (JSC::Wasm::Parser::fail const): * wasm/WasmPlan.cpp: (JSC::Wasm::Plan::tryRemoveContextAndCancelIfLast): * wasm/WasmValidate.cpp: (JSC::Wasm::Validate::fail const): * wasm/js/JSWebAssemblyCodeBlock.cpp: (JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock): * wasm/js/JSWebAssemblyHelpers.h: (JSC::toNonWrappingUint32): (JSC::getWasmBufferFromValue): * wasm/js/JSWebAssemblyInstance.cpp: (JSC::JSWebAssemblyInstance::create): * wasm/js/JSWebAssemblyMemory.cpp: (JSC::JSWebAssemblyMemory::grow): * wasm/js/WasmToJS.cpp: (JSC::Wasm::handleBadI64Use): * wasm/js/WebAssemblyCompileErrorConstructor.cpp: (JSC::WebAssemblyCompileErrorConstructor::finishCreation): * wasm/js/WebAssemblyInstanceConstructor.cpp: (JSC::constructJSWebAssemblyInstance): (JSC::WebAssemblyInstanceConstructor::finishCreation): * wasm/js/WebAssemblyInstancePrototype.cpp: (JSC::getInstance): * wasm/js/WebAssemblyLinkErrorConstructor.cpp: (JSC::WebAssemblyLinkErrorConstructor::finishCreation): * wasm/js/WebAssemblyMemoryConstructor.cpp: (JSC::constructJSWebAssemblyMemory): (JSC::WebAssemblyMemoryConstructor::finishCreation): * wasm/js/WebAssemblyMemoryPrototype.cpp: (JSC::getMemory): * wasm/js/WebAssemblyModuleConstructor.cpp: (JSC::webAssemblyModuleCustomSections): (JSC::webAssemblyModuleImports): (JSC::webAssemblyModuleExports): (JSC::WebAssemblyModuleConstructor::finishCreation): * wasm/js/WebAssemblyModuleRecord.cpp: (JSC::WebAssemblyModuleRecord::link): (JSC::dataSegmentFail): (JSC::WebAssemblyModuleRecord::evaluate): * wasm/js/WebAssemblyPrototype.cpp: (JSC::resolve): (JSC::webAssemblyInstantiateFunc): (JSC::webAssemblyInstantiateStreamingInternal): * wasm/js/WebAssemblyRuntimeErrorConstructor.cpp: (JSC::WebAssemblyRuntimeErrorConstructor::finishCreation): * wasm/js/WebAssemblyTableConstructor.cpp: (JSC::constructJSWebAssemblyTable): (JSC::WebAssemblyTableConstructor::finishCreation): * wasm/js/WebAssemblyTablePrototype.cpp: (JSC::getTable): (JSC::webAssemblyTableProtoFuncGrow): (JSC::webAssemblyTableProtoFuncGet): (JSC::webAssemblyTableProtoFuncSet): Source/WebCore: No behavior change. * Modules/applicationmanifest/ApplicationManifestParser.cpp: (WebCore::ApplicationManifestParser::parseManifest): (WebCore::ApplicationManifestParser::logManifestPropertyNotAString): (WebCore::ApplicationManifestParser::logManifestPropertyInvalidURL): (WebCore::ApplicationManifestParser::logDeveloperWarning): (WebCore::ApplicationManifestParser::parseStartURL): (WebCore::ApplicationManifestParser::parseDisplay): (WebCore::ApplicationManifestParser::parseName): (WebCore::ApplicationManifestParser::parseDescription): (WebCore::ApplicationManifestParser::parseShortName): (WebCore::ApplicationManifestParser::parseScope): * Modules/beacon/NavigatorBeacon.cpp: (WebCore::NavigatorBeacon::logError): (WebCore::NavigatorBeacon::sendBeacon): * Modules/cache/DOMCache.cpp: (WebCore::DOMCache::requestFromInfo): (WebCore::DOMCache::addAll): (WebCore::DOMCache::put): * Modules/cache/DOMCacheEngine.cpp: (WebCore::DOMCacheEngine::errorToException): * Modules/credentialmanagement/BasicCredential.cpp: (WebCore::BasicCredential::type const): * Modules/credentialmanagement/CredentialsContainer.cpp: (WebCore::CredentialsContainer::get): (WebCore::CredentialsContainer::store): (WebCore::CredentialsContainer::isCreate): (WebCore::CredentialsContainer::preventSilentAccess const): * Modules/entriesapi/DOMFileSystem.cpp: (WebCore::DOMFileSystem::root): (WebCore::validatePathIsExpectedType): (WebCore::resolveRelativeVirtualPath): (WebCore::DOMFileSystem::getEntry): * Modules/entriesapi/FileSystemDirectoryEntry.cpp: (WebCore::FileSystemDirectoryEntry::getEntry): * Modules/entriesapi/FileSystemDirectoryReader.cpp: (WebCore::FileSystemDirectoryReader::readEntries): * Modules/fetch/FetchBody.cpp: (WebCore::FetchBody::consumeAsStream): * Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::loadingFailed): * Modules/fetch/FetchBodyOwner.cpp: (WebCore::FetchBodyOwner::arrayBuffer): (WebCore::FetchBodyOwner::blob): (WebCore::FetchBodyOwner::consumeOnceLoadingFinished): (WebCore::FetchBodyOwner::formData): (WebCore::FetchBodyOwner::json): (WebCore::FetchBodyOwner::text): (WebCore::FetchBodyOwner::blobLoadingFailed): (WebCore::FetchBodyOwner::consumeBodyAsStream): * Modules/fetch/FetchHeaders.cpp: (WebCore::canWriteHeader): * Modules/fetch/FetchLoader.cpp: (WebCore::FetchLoader::startLoadingBlobURL): (WebCore::FetchLoader::start): * Modules/fetch/FetchRequest.cpp: (WebCore::setMethod): (WebCore::computeReferrer): (WebCore::buildOptions): (WebCore::FetchRequest::initializeOptions): (WebCore::FetchRequest::initializeWith): (WebCore::FetchRequest::setBody): (WebCore::FetchRequest::referrer const): (WebCore::FetchRequest::clone): * Modules/fetch/FetchResponse.cpp: (WebCore::FetchResponse::create): (WebCore::FetchResponse::redirect): (WebCore::FetchResponse::clone): (WebCore::FetchResponse::BodyLoader::didFail): * Modules/fetch/FetchResponse.h: * Modules/geolocation/GeoNotifier.cpp: (WebCore::GeoNotifier::timerFired): * Modules/geolocation/Geolocation.cpp: (WebCore::Geolocation::startRequest): (WebCore::Geolocation::requestUsesCachedPosition): (WebCore::Geolocation::makeCachedPositionCallbacks): (WebCore::Geolocation::setIsAllowed): (WebCore::Geolocation::cancelRequests): (WebCore::Geolocation::handlePendingPermissionNotifiers): * Modules/indexeddb/IDBCursor.cpp: (WebCore::IDBCursor::update): (WebCore::IDBCursor::advance): (WebCore::IDBCursor::continuePrimaryKey): (WebCore::IDBCursor::continueFunction): (WebCore::IDBCursor::deleteFunction): * Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::createObjectStore): (WebCore::IDBDatabase::transaction): (WebCore::IDBDatabase::deleteObjectStore): * Modules/indexeddb/IDBFactory.cpp: (WebCore::IDBFactory::open): (WebCore::IDBFactory::openInternal): (WebCore::IDBFactory::deleteDatabase): (WebCore::IDBFactory::cmp): * Modules/indexeddb/IDBIndex.cpp: (WebCore::IDBIndex::setName): (WebCore::IDBIndex::openCursor): (WebCore::IDBIndex::openKeyCursor): (WebCore::IDBIndex::count): (WebCore::IDBIndex::doCount): (WebCore::IDBIndex::get): (WebCore::IDBIndex::doGet): (WebCore::IDBIndex::getKey): (WebCore::IDBIndex::doGetKey): (WebCore::IDBIndex::getAll): (WebCore::IDBIndex::getAllKeys): * Modules/indexeddb/IDBKeyData.cpp: (WebCore::IDBKeyData::loggingString const): * Modules/indexeddb/IDBKeyRangeData.cpp: (WebCore::IDBKeyRangeData::loggingString const): * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::setName): (WebCore::IDBObjectStore::openCursor): (WebCore::IDBObjectStore::openKeyCursor): (WebCore::IDBObjectStore::get): (WebCore::IDBObjectStore::getKey): (WebCore::IDBObjectStore::putOrAdd): (WebCore::IDBObjectStore::doDelete): (WebCore::IDBObjectStore::deleteFunction): (WebCore::IDBObjectStore::clear): (WebCore::IDBObjectStore::createIndex): (WebCore::IDBObjectStore::index): (WebCore::IDBObjectStore::deleteIndex): (WebCore::IDBObjectStore::count): (WebCore::IDBObjectStore::doCount): (WebCore::IDBObjectStore::getAll): (WebCore::IDBObjectStore::getAllKeys): * Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::result const): (WebCore:: const): (WebCore::IDBRequest::uncaughtExceptionInEventHandler): * Modules/indexeddb/IDBTransaction.cpp: (WebCore::IDBTransaction::objectStore): (WebCore::IDBTransaction::abort): (WebCore::IDBTransaction::putOrAddOnServer): * Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::performGetAllDatabaseNames): * Modules/indexeddb/server/MemoryIDBBackingStore.cpp: (WebCore::IDBServer::MemoryIDBBackingStore::deleteRange): (WebCore::IDBServer::MemoryIDBBackingStore::addRecord): (WebCore::IDBServer::MemoryIDBBackingStore::getRecord): (WebCore::IDBServer::MemoryIDBBackingStore::getAllRecords): (WebCore::IDBServer::MemoryIDBBackingStore::getIndexRecord): (WebCore::IDBServer::MemoryIDBBackingStore::getCount): (WebCore::IDBServer::MemoryIDBBackingStore::openCursor): (WebCore::IDBServer::MemoryIDBBackingStore::iterateCursor): * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: (WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo): (WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo): (WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromEncodedFilename): (WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo): (WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction): (WebCore::IDBServer::SQLiteIDBBackingStore::abortTransaction): (WebCore::IDBServer::SQLiteIDBBackingStore::commitTransaction): (WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore): (WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore): (WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore): (WebCore::IDBServer::SQLiteIDBBackingStore::createIndex): (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedHasIndexRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex): (WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex): (WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange): (WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::addRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::getRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords): (WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords): (WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord): (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey): (WebCore::IDBServer::SQLiteIDBBackingStore::getCount): (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue): (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue): (WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber): (WebCore::IDBServer::SQLiteIDBBackingStore::revertGeneratedKeyNumber): (WebCore::IDBServer::SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber): (WebCore::IDBServer::SQLiteIDBBackingStore::openCursor): (WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore): * Modules/indexeddb/server/SQLiteIDBTransaction.cpp: (WebCore::IDBServer::SQLiteIDBTransaction::begin): (WebCore::IDBServer::SQLiteIDBTransaction::commit): (WebCore::IDBServer::SQLiteIDBTransaction::abort): * Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore): (WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore): (WebCore::IDBServer::UniqueIDBDatabase::deleteIndex): (WebCore::IDBServer::UniqueIDBDatabase::renameIndex): (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction): (WebCore::IDBServer::UniqueIDBDatabase::abortTransaction): * Modules/indexeddb/shared/IDBError.h: (WebCore::IDBError::userDeleteError): * Modules/indexeddb/shared/IDBTransactionInfo.cpp: (WebCore::IDBTransactionInfo::loggingString const): * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): * Modules/mediastream/PeerConnectionBackend.cpp: (WebCore::PeerConnectionBackend::addIceCandidate): * Modules/mediastream/UserMediaRequest.cpp: (WebCore::UserMediaRequest::deny): * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::doSetLocalDescription): * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: (WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate): * Modules/paymentrequest/PaymentRequest.cpp: (WebCore::checkAndCanonicalizeTotal): (WebCore::PaymentRequest::create): * Modules/quota/DOMWindowQuota.cpp: (WebCore::DOMWindowQuota::webkitStorageInfo const): * Modules/webaudio/AudioBufferSourceNode.cpp: (WebCore::AudioBufferSourceNode::looping): (WebCore::AudioBufferSourceNode::setLooping): * Modules/webaudio/AudioNode.cpp: (WebCore::AudioNode::channelCountMode): (WebCore::AudioNode::channelInterpretation): * Modules/webaudio/MediaStreamAudioSource.cpp: (WebCore::MediaStreamAudioSource::MediaStreamAudioSource): * Modules/webauthn/AuthenticatorManager.cpp: (WebCore::AuthenticatorManagerInternal::produceClientDataJson): (WebCore::AuthenticatorManagerInternal::initTimeoutTimer): (WebCore::AuthenticatorManager::create const): (WebCore::AuthenticatorManager::discoverFromExternalSource const): (WebCore::AuthenticatorManager::isUserVerifyingPlatformAuthenticatorAvailable const): * Modules/webauthn/cocoa/LocalAuthenticator.mm: (WebCore::LocalAuthenticator::makeCredential): (WebCore::LocalAuthenticator::getAssertion): * Modules/webdatabase/DatabaseTracker.cpp: (WebCore::DatabaseTracker::usage): * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::connect): (WebCore::WebSocket::close): (WebCore::WebSocket::binaryType const): * Modules/websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::readStatusLine): (WebCore::WebSocketHandshake::readHTTPHeaders): (WebCore::WebSocketHandshake::checkResponseHeaders): * Modules/webvr/VRDisplay.cpp: (WebCore::VRDisplay::requestPresent): (WebCore::VRDisplay::exitPresent): * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::defaultLiveRegionStatusForRole): (WebCore::AccessibilityObject::invalidStatus const): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::textUnderElement const): * bindings/js/JSCustomElementInterface.cpp: (WebCore::constructCustomElementSynchronously): * bindings/js/JSCustomElementRegistryCustom.cpp: (WebCore::getCustomElementCallback): (WebCore::validateCustomElementNameAndThrowIfNeeded): (WebCore::JSCustomElementRegistry::define): * bindings/js/JSCustomXPathNSResolver.cpp: (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): * bindings/js/JSDOMConstructorBase.cpp: (WebCore::callThrowTypeError): * bindings/js/JSDOMConstructorBase.h: (WebCore::JSDOMConstructorBase::className): * bindings/js/JSDOMConstructorNotConstructable.h: (WebCore::JSDOMConstructorNotConstructable::callThrowTypeError): * bindings/js/JSDOMExceptionHandling.cpp: (WebCore::createDOMException): (WebCore::throwSequenceTypeError): (WebCore::throwNonFiniteTypeError): * bindings/js/JSDOMIterator.h: (WebCore::iteratorForEach): (WebCore::IteratorTraits>::next): * bindings/js/JSDOMWindowBase.cpp: (WebCore::isResponseCorrect): (WebCore::handleResponseOnStreamingAction): (WebCore::JSDOMWindowBase::compileStreaming): (WebCore::JSDOMWindowBase::instantiateStreaming): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::preventExtensions): (WebCore::JSDOMWindow::toStringName): * bindings/js/JSHTMLElementCustom.cpp: (WebCore::constructJSHTMLElement): * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::preventExtensions): (WebCore::JSLocation::toStringName): * bindings/js/JSReadableStreamPrivateConstructors.cpp: (WebCore::constructJSReadableStreamDefaultController): (WebCore::constructJSReadableByteStreamController): (WebCore::constructJSReadableStreamBYOBRequest): * bindings/js/JSRemoteDOMWindowCustom.cpp: (WebCore::JSRemoteDOMWindow::preventExtensions): (WebCore::JSRemoteDOMWindow::toStringName): * bindings/js/ReadableStreamDefaultController.cpp: (WebCore::ReadableStreamDefaultController::invoke): * bindings/js/ScriptModuleLoader.cpp: (WebCore::resolveModuleSpecifier): (WebCore::ScriptModuleLoader::resolve): (WebCore::ScriptModuleLoader::fetch): (WebCore::ScriptModuleLoader::evaluate): (WebCore::ScriptModuleLoader::importModule): (WebCore::ScriptModuleLoader::notifyFinished): * bindings/js/SerializedScriptValue.cpp: (WebCore::maybeThrowExceptionIfSerializationFailed): * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): * bindings/scripts/CodeGeneratorJS.pm: (GenerateDefaultValue): (GenerateConstructorHelperMethods): (GenerateCallTracer): * bindings/scripts/test/JS/JSInterfaceName.cpp: (WebCore::JSInterfaceNameConstructor::initializeProperties): * bindings/scripts/test/JS/JSMapLike.cpp: (WebCore::JSMapLikeConstructor::initializeProperties): * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: (WebCore::JSReadOnlyMapLikeConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: (WebCore::JSTestActiveDOMObjectConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestCEReactions.cpp: (WebCore::JSTestCEReactionsConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: (WebCore::JSTestCEReactionsStringifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestCallTracer.cpp: (WebCore::JSTestCallTracerConstructor::initializeProperties): (WebCore::jsTestCallTracerTestAttributeInterfaceGetter): (WebCore::setJSTestCallTracerTestAttributeInterfaceSetter): (WebCore::jsTestCallTracerTestAttributeSpecifiedGetter): (WebCore::setJSTestCallTracerTestAttributeSpecifiedSetter): (WebCore::jsTestCallTracerTestAttributeWithVariantGetter): (WebCore::setJSTestCallTracerTestAttributeWithVariantSetter): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationInterfaceBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationSpecifiedBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody): (WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody): * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: (WebCore::JSTestCallbackInterfaceConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: (WebCore::JSTestClassWithJSBuiltinConstructorConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: (WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestDOMJIT.cpp: (WebCore::JSTestDOMJITConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestEnabledBySetting.cpp: (WebCore::JSTestEnabledBySettingConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestEventConstructor.cpp: (WebCore::JSTestEventConstructorConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestEventTarget.cpp: (WebCore::JSTestEventTargetConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestException.cpp: (WebCore::JSTestExceptionConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: (WebCore::JSTestGenerateIsReachableConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestGlobalObject.cpp: (WebCore::JSTestGlobalObjectConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::JSTestIndexedSetterNoIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::JSTestIndexedSetterThrowingExceptionConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::JSTestIndexedSetterWithIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestInterface.cpp: (WebCore::JSTestInterfaceConstructor::construct): (WebCore::JSTestInterfaceConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: (WebCore::JSTestInterfaceLeadingUnderscoreConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestIterable.cpp: (WebCore::JSTestIterableConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: (WebCore::JSTestJSBuiltinConstructorConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: (WebCore::JSTestMediaQueryListListenerConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterNoIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::JSTestNamedAndIndexedSetterThrowingExceptionConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterWithIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: (WebCore::JSTestNamedConstructorConstructor::initializeProperties): (WebCore::JSTestNamedConstructorNamedConstructor::construct): (WebCore::JSTestNamedConstructorNamedConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: (WebCore::JSTestNamedDeleterNoIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: (WebCore::JSTestNamedDeleterThrowingExceptionConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: (WebCore::JSTestNamedDeleterWithIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: (WebCore::JSTestNamedDeleterWithIndexedGetterConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: (WebCore::JSTestNamedGetterCallWithConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: (WebCore::JSTestNamedGetterNoIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: (WebCore::JSTestNamedGetterWithIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::JSTestNamedSetterNoIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::JSTestNamedSetterThrowingExceptionConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::JSTestNamedSetterWithIdentifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetterConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetterAndSetterConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: (WebCore::JSTestNamedSetterWithOverrideBuiltinsConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: (WebCore::JSTestNamedSetterWithUnforgablePropertiesConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: (WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestNode.cpp: (WebCore::JSTestNodeConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::convertDictionary<TestObj::Dictionary>): (WebCore::JSTestObjConstructor::initializeProperties): (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody): * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: (WebCore::JSTestOverloadedConstructorsConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: (WebCore::JSTestOverloadedConstructorsWithSequenceConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: (WebCore::JSTestOverrideBuiltinsConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::JSTestPluginInterfaceConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: (WebCore::JSTestPromiseRejectionEventConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestSerialization.cpp: (WebCore::JSTestSerializationConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp: (WebCore::JSTestSerializationIndirectInheritanceConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: (WebCore::JSTestSerializationInheritConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: (WebCore::JSTestSerializationInheritFinalConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: (WebCore::JSTestSerializedScriptValueInterfaceConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifier.cpp: (WebCore::JSTestStringifierConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: (WebCore::JSTestStringifierAnonymousOperationConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: (WebCore::JSTestStringifierNamedOperationConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: (WebCore::JSTestStringifierOperationImplementedAsConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: (WebCore::JSTestStringifierOperationNamedToStringConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: (WebCore::JSTestStringifierReadOnlyAttributeConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: (WebCore::JSTestStringifierReadWriteAttributeConstructor::initializeProperties): * bindings/scripts/test/JS/JSTestTypedefs.cpp: (WebCore::JSTestTypedefsConstructor::initializeProperties): * bridge/c/c_instance.cpp: (JSC::Bindings::CInstance::invokeMethod): (JSC::Bindings::CInstance::invokeDefaultMethod): (JSC::Bindings::CInstance::invokeConstruct): (JSC::Bindings::CInstance::stringValue const): (JSC::Bindings::CInstance::toJSPrimitive const): * bridge/objc/objc_instance.mm: (ObjcInstance::invokeMethod): * bridge/objc/objc_runtime.mm: (JSC::Bindings::ObjcArray::setValueAt const): * contentextensions/ContentExtensionsBackend.cpp: (WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad): * crypto/SubtleCrypto.cpp: (WebCore::rejectWithException): (WebCore::SubtleCrypto::encrypt): (WebCore::SubtleCrypto::decrypt): (WebCore::SubtleCrypto::sign): (WebCore::SubtleCrypto::verify): (WebCore::SubtleCrypto::deriveKey): (WebCore::SubtleCrypto::deriveBits): (WebCore::SubtleCrypto::exportKey): (WebCore::SubtleCrypto::wrapKey): (WebCore::SubtleCrypto::unwrapKey): * crypto/keys/CryptoKeyEC.cpp: (WebCore::CryptoKeyEC::algorithm const): * css/CSSInheritedValue.cpp: (WebCore::CSSInheritedValue::customCSSText const): * css/CSSInitialValue.cpp: (WebCore::CSSInitialValue::customCSSText const): * css/CSSKeyframesRule.cpp: (WebCore::CSSKeyframesRule::insertRule): * css/CSSRevertValue.cpp: (WebCore::CSSRevertValue::customCSSText const): * css/CSSStyleSheet.h: * css/CSSUnsetValue.cpp: (WebCore::CSSUnsetValue::customCSSText const): * css/CSSValueList.cpp: (WebCore::CSSValueList::customCSSText const): * css/DOMMatrixReadOnly.cpp: (WebCore::DOMMatrixReadOnly::validateAndFixup): (WebCore::DOMMatrixReadOnly::toFloat32Array const): (WebCore::DOMMatrixReadOnly::toFloat64Array const): (WebCore::DOMMatrixReadOnly::toString const): * css/DeprecatedCSSOMValueList.cpp: (WebCore::DeprecatedCSSOMValueList::cssText const): * css/FontFace.cpp: (WebCore::FontFace::create): (WebCore::FontFace::unicodeRange const): (WebCore::FontFace::featureSettings const): * css/MediaQuery.cpp: (WebCore::MediaQuery::serialize const): * css/PropertySetCSSStyleDeclaration.cpp: (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority): * css/WebKitCSSMatrix.cpp: (WebCore::WebKitCSSMatrix::toString const): * css/parser/MediaQueryParser.cpp: (WebCore::MediaQueryParser::commitMediaQuery): * dom/CDATASection.cpp: (WebCore::CDATASection::nodeName const): * dom/Comment.cpp: (WebCore::Comment::nodeName const): * dom/DOMException.cpp: (WebCore::DOMException::description const): (WebCore::DOMException::create): * dom/DOMException.h: (WebCore::DOMException::name): (WebCore::DOMException::message): * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createHTMLDocument): * dom/DataTransfer.cpp: (WebCore::DataTransfer::DataTransfer): (WebCore::DataTransfer::types const): (WebCore::DataTransfer::createForInputEvent): (WebCore::DataTransfer::dropEffect const): (WebCore::DataTransfer::effectAllowed const): * dom/DataTransferItem.cpp: (WebCore::DataTransferItem::kind const): * dom/Document.cpp: (WebCore::Document::suggestedMIMEType const): (WebCore::Document::contentType const): (WebCore::Document::nodeName const): (WebCore::Document::writeln): (WebCore::Document::canNavigate): (WebCore::Document::designMode const): (WebCore::Document::requestFullScreenForElement): * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::nodeName const): * dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::createSheet): * dom/MouseEvent.cpp: (WebCore::MouseEvent::initMouseEventQuirk): * dom/ScriptElement.cpp: (WebCore::ScriptElement::requestModuleScript): * dom/ScriptElementCachedScriptFetcher.cpp: (WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const): * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::dispatchErrorEvent): * dom/ScriptedAnimationController.cpp: (WebCore::throttlingReasonsToString): * dom/Text.cpp: (WebCore::Text::nodeName const): * dom/TextEncoder.cpp: (WebCore::TextEncoder::encoding const): * dom/Traversal.cpp: (WebCore::NodeIteratorBase::acceptNode): * editing/EditCommand.cpp: (WebCore::inputTypeNameForEditingAction): * editing/Editing.cpp: (WebCore::createTabSpanElement): * editing/Editor.cpp: (WebCore::createDataTransferForClipboardEvent): * editing/EditorCommand.cpp: (WebCore::executeInsertBacktab): (WebCore::executeInsertLineBreak): (WebCore::executeInsertNewline): (WebCore::executeInsertTab): (WebCore::executeJustifyCenter): (WebCore::executeJustifyFull): (WebCore::executeJustifyLeft): (WebCore::executeJustifyRight): (WebCore::executeStrikethrough): (WebCore::executeSubscript): (WebCore::executeSuperscript): (WebCore::executeToggleBold): (WebCore::executeToggleItalic): (WebCore::executeUnderline): (WebCore::executeUnscript): (WebCore::stateBold): (WebCore::stateItalic): (WebCore::stateStrikethrough): (WebCore::stateSubscript): (WebCore::stateSuperscript): (WebCore::stateUnderline): (WebCore::stateJustifyCenter): (WebCore::stateJustifyFull): (WebCore::stateJustifyLeft): (WebCore::stateJustifyRight): (WebCore::Editor::Command::value const): * editing/SmartReplace.cpp: (WebCore::getSmartSet): * fileapi/FileCocoa.mm: (WebCore::File::computeNameAndContentTypeForReplacedFile): * html/BaseCheckableInputType.cpp: (WebCore::BaseCheckableInputType::saveFormControlState const): * html/BaseChooserOnlyDateAndTimeInputType.cpp: (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue): * html/ColorInputType.cpp: (WebCore::ColorInputType::fallbackValue const): * html/DOMFormData.cpp: (WebCore::DOMFormData::createFileEntry): * html/FTPDirectoryDocument.cpp: (WebCore::processFilesizeString): (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::relList const): (WebCore::HTMLAnchorElement::isSystemPreviewLink const): * html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::HTMLAppletElement): (WebCore::HTMLAppletElement::updateWidget): * html/HTMLCanvasElement.cpp: (WebCore::toEncodingMimeType): (WebCore::HTMLCanvasElement::toDataURL): (WebCore::HTMLCanvasElement::captureStream): * html/HTMLElement.cpp: (WebCore::HTMLElement::contentEditable const): * html/HTMLFormControlElement.cpp: (WebCore::shouldAutofocus): * html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::insertedByParser): * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::keytype const): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlayType const): (WebCore::stringForNetworkState): (WebCore::HTMLMediaElement::preload const): (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): * html/HTMLObjectElement.cpp: (WebCore::mapDataParamToSrc): * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::setReplacement): * html/ImageData.cpp: (WebCore::ImageData::create): * html/ImageDocument.cpp: (WebCore::ImageDocument::createDocumentStructure): * html/ImageInputType.cpp: (WebCore::ImageInputType::appendFormData const): * html/PluginDocument.cpp: (WebCore::PluginDocumentParser::createDocumentStructure): * html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::getExtension): (WebCore::WebGL2RenderingContext::getSupportedExtensions): (WebCore::WebGL2RenderingContext::getParameter): * html/canvas/WebGLCompressedTextureASTC.cpp: (WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC): (WebCore::WebGLCompressedTextureASTC::getSupportedProfiles): (WebCore::WebGLCompressedTextureASTC::supported): (WebCore::m_isLDRSupported): Deleted. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getExtension): (WebCore::WebGLRenderingContext::getSupportedExtensions): (WebCore::WebGLRenderingContext::getParameter): * html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create): (WebCore::WebGLRenderingContextBase::enableSupportedExtension): * html/canvas/WebGLRenderingContextBase.h: * html/canvas/WebGPUEnums.cpp: (WebCore::web3DCompareFunctionName): * html/parser/HTMLParserIdioms.cpp: (WebCore::parseCORSSettingsAttribute): * html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::initiatorFor): * html/parser/HTMLResourcePreloader.cpp: (WebCore::PreloadRequest::resourceRequest): * html/parser/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::insertPhoneNumberLink): * html/track/DataCue.cpp: (WebCore::DataCue::toJSONString const): * html/track/InbandGenericTextTrack.cpp: (WebCore::InbandGenericTextTrack::updateCueFromCueData): * html/track/TextTrackCue.cpp: (WebCore::TextTrackCue::toJSON const): * html/track/TextTrackCueGeneric.cpp: (WebCore::TextTrackCueGeneric::toJSONString const): * html/track/TrackBase.cpp: (WebCore::TrackBase::setLanguage): * html/track/VTTCue.cpp: (WebCore::VTTCue::toJSON const): * inspector/CommandLineAPIModule.cpp: (WebCore::CommandLineAPIModule::CommandLineAPIModule): * inspector/InspectorCanvas.cpp: (WebCore::InspectorCanvas::getCanvasContentAsDataURL): (WebCore::InspectorCanvas::indexForData): (WebCore::InspectorCanvas::buildInitialState): (WebCore::InspectorCanvas::buildArrayForCanvasGradient): (WebCore::InspectorCanvas::buildArrayForCanvasPattern): * inspector/InspectorFrontendClient.h: (WebCore::InspectorFrontendClient::debuggableType): * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::openInNewTab): * inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::userInterfaceLayoutDirection): (WebCore::InspectorFrontendHost::platform): (WebCore::InspectorFrontendHost::port): * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::setIndicating): (WebCore::InspectorOverlay::drawPaintRects): (WebCore::InspectorOverlay::drawRulers): (WebCore::appendPathSegment): * inspector/InspectorStyleSheet.h: (WebCore::InspectorCSSId::InspectorCSSId): * inspector/TimelineRecordFactory.cpp: (WebCore::TimelineRecordFactory::createGenericRecord): (WebCore::TimelineRecordFactory::createFunctionCallData): (WebCore::TimelineRecordFactory::createConsoleProfileData): (WebCore::TimelineRecordFactory::createProbeSampleData): (WebCore::TimelineRecordFactory::createEventDispatchData): (WebCore::TimelineRecordFactory::createGenericTimerData): (WebCore::TimelineRecordFactory::createTimerInstallData): (WebCore::TimelineRecordFactory::createEvaluateScriptData): (WebCore::TimelineRecordFactory::createTimeStampData): (WebCore::TimelineRecordFactory::createAnimationFrameData): (WebCore::TimelineRecordFactory::createPaintData): (WebCore::TimelineRecordFactory::appendLayoutRoot): * inspector/WebInjectedScriptHost.cpp: (WebCore::WebInjectedScriptHost::subtype): (WebCore::jsStringForPaymentRequestState): (WebCore::WebInjectedScriptHost::getInternalProperties): * inspector/agents/InspectorApplicationCacheAgent.cpp: (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent): * inspector/agents/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::InspectorCSSAgent): (WebCore::InspectorCSSAgent::getMatchedStylesForNode): (WebCore::InspectorCSSAgent::createStyleSheet): (WebCore::InspectorCSSAgent::addRule): (WebCore::InspectorCSSAgent::elementForId): (WebCore::InspectorCSSAgent::assertStyleSheetForId): * inspector/agents/InspectorCanvasAgent.cpp: (WebCore::InspectorCanvasAgent::InspectorCanvasAgent): (WebCore::InspectorCanvasAgent::requestNode): (WebCore::InspectorCanvasAgent::requestContent): (WebCore::InspectorCanvasAgent::resolveCanvasContext): (WebCore::InspectorCanvasAgent::startRecording): (WebCore::InspectorCanvasAgent::stopRecording): (WebCore::InspectorCanvasAgent::requestShaderSource): (WebCore::InspectorCanvasAgent::updateShader): (WebCore::InspectorCanvasAgent::setShaderProgramDisabled): (WebCore::InspectorCanvasAgent::setShaderProgramHighlighted): (WebCore::InspectorCanvasAgent::assertInspectorCanvas): (WebCore::InspectorCanvasAgent::assertInspectorProgram): * inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::InspectorDOMAgent): (WebCore::InspectorDOMAgent::assertNode): (WebCore::InspectorDOMAgent::assertDocument): (WebCore::InspectorDOMAgent::assertElement): (WebCore::InspectorDOMAgent::assertEditableNode): (WebCore::InspectorDOMAgent::assertEditableElement): (WebCore::InspectorDOMAgent::getDocument): (WebCore::InspectorDOMAgent::pushNodeToFrontend): (WebCore::InspectorDOMAgent::requestChildNodes): (WebCore::InspectorDOMAgent::querySelector): (WebCore::InspectorDOMAgent::querySelectorAll): (WebCore::InspectorDOMAgent::releaseBackendNodeIds): (WebCore::InspectorDOMAgent::setAttributesAsText): (WebCore::InspectorDOMAgent::removeNode): (WebCore::InspectorDOMAgent::setOuterHTML): (WebCore::InspectorDOMAgent::insertAdjacentHTML): (WebCore::InspectorDOMAgent::setNodeValue): (WebCore::InspectorDOMAgent::setEventListenerDisabled): (WebCore::InspectorDOMAgent::performSearch): (WebCore::InspectorDOMAgent::getSearchResults): (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): (WebCore::InspectorDOMAgent::highlightQuad): (WebCore::InspectorDOMAgent::highlightSelector): (WebCore::InspectorDOMAgent::highlightNode): (WebCore::InspectorDOMAgent::highlightNodeList): (WebCore::InspectorDOMAgent::moveTo): (WebCore::InspectorDOMAgent::focus): (WebCore::InspectorDOMAgent::setInspectedNode): (WebCore::InspectorDOMAgent::resolveNode): (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend): (WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend): * inspector/agents/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent): (WebCore::InspectorDOMDebuggerAgent::setBreakpoint): (WebCore::InspectorDOMDebuggerAgent::removeBreakpoint): (WebCore::domTypeName): (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): * inspector/agents/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent): (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): (WebCore::InspectorDOMStorageAgent::setDOMStorageItem): (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem): (WebCore::InspectorDOMStorageAgent::findStorageArea): * inspector/agents/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent): (WebCore::InspectorDatabaseAgent::getDatabaseTableNames): * inspector/agents/InspectorIndexedDBAgent.cpp: (WebCore::Inspector::idbKeyRangeFromKeyRange): (WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent): (WebCore::InspectorIndexedDBAgent::requestData): * inspector/agents/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent): (WebCore::InspectorLayerTreeAgent::layersForNode): (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): * inspector/agents/InspectorMemoryAgent.cpp: (WebCore::InspectorMemoryAgent::InspectorMemoryAgent): * inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::InspectorNetworkAgent): (WebCore::InspectorNetworkAgent::getResponseBody): (WebCore::InspectorNetworkAgent::loadResource): (WebCore::InspectorNetworkAgent::resolveWebSocket): (WebCore::InspectorNetworkAgent::createTextDecoder): (WebCore::InspectorNetworkAgent::searchInRequest): * inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::resourceContent): (WebCore::InspectorPageAgent::InspectorPageAgent): (WebCore::InspectorPageAgent::navigate): (WebCore::InspectorPageAgent::assertFrame): (WebCore::InspectorPageAgent::assertDocumentLoader): (WebCore::InspectorPageAgent::snapshotNode): (WebCore::InspectorPageAgent::snapshotRect): (WebCore::InspectorPageAgent::archive): * inspector/agents/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::InspectorTimelineAgent): (WebCore::InspectorTimelineAgent::setInstruments): (WebCore::InspectorTimelineAgent::startFromConsole): (WebCore::InspectorTimelineAgent::stopFromConsole): (WebCore::InspectorTimelineAgent::didCompleteRecordEntry): * inspector/agents/InspectorWorkerAgent.cpp: (WebCore::InspectorWorkerAgent::InspectorWorkerAgent): (WebCore::InspectorWorkerAgent::initialized): (WebCore::InspectorWorkerAgent::sendMessageToWorker): * inspector/agents/WebConsoleAgent.cpp: (WebCore::WebConsoleAgent::setLoggingChannelLevel): * inspector/agents/page/PageDebuggerAgent.cpp: (WebCore::PageDebuggerAgent::injectedScriptForEval): * inspector/agents/page/PageNetworkAgent.cpp: (WebCore::PageNetworkAgent::scriptExecutionContext): * inspector/agents/page/PageRuntimeAgent.cpp: (WebCore::PageRuntimeAgent::injectedScriptForEval): * inspector/agents/worker/ServiceWorkerAgent.cpp: (WebCore::ServiceWorkerAgent::ServiceWorkerAgent): * inspector/agents/worker/WorkerDebuggerAgent.cpp: (WebCore::WorkerDebuggerAgent::injectedScriptForEval): * inspector/agents/worker/WorkerRuntimeAgent.cpp: (WebCore::WorkerRuntimeAgent::injectedScriptForEval): * loader/ContentFilter.cpp: (WebCore::ContentFilter::handleProvisionalLoadFailure): * loader/CrossOriginAccessControl.cpp: (WebCore::passesAccessControlCheck): (WebCore::validatePreflightResponse): * loader/CrossOriginPreflightChecker.cpp: (WebCore::CrossOriginPreflightChecker::notifyFinished): (WebCore::CrossOriginPreflightChecker::doPreflight): * loader/DocumentLoader.cpp: (WebCore::isRemoteWebArchive): (WebCore::DocumentLoader::startIconLoading): * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::reportRedirectionWithBadScheme): (WebCore::DocumentThreadableLoader::reportContentSecurityPolicyError): (WebCore::DocumentThreadableLoader::reportCrossOriginResourceSharingError): (WebCore::DocumentThreadableLoader::reportIntegrityMetadataError): * loader/FormSubmission.cpp: (WebCore::FormSubmission::Attributes::parseEncodingType): * loader/FormSubmission.h: (WebCore::FormSubmission::Attributes::methodString): * loader/FrameLoader.cpp: (WebCore::FrameLoader::initForSynthesizedDocument): (WebCore::FrameLoader::loadURLIntoChildFrame): (WebCore::FrameLoader::defaultSubstituteDataForURL): (WebCore::FrameLoader::addHTTPUpgradeInsecureRequestsIfNeeded): (WebCore::FrameLoader::dispatchBeforeUnloadEvent): * loader/LinkLoader.cpp: (WebCore::LinkLoader::preconnectIfNeeded): * loader/NavigationScheduler.cpp: (WebCore::NavigationScheduler::scheduleLocationChange): * loader/PingLoader.cpp: (WebCore::PingLoader::sendViolationReport): * loader/ResourceLoadStatistics.cpp: (WebCore::ResourceLoadStatistics::primaryDomain): (WebCore::ResourceLoadStatistics::areDomainsAssociated): * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::loadDataURL): (WebCore::ResourceLoader::didBlockAuthenticationChallenge): * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal): (WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl): * loader/ThreadableLoader.cpp: (WebCore::ThreadableLoader::logError): * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::abort): (WebCore::ApplicationCacheGroup::didFinishLoadingEntry): (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::createFileURL): * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): * loader/archive/ArchiveFactory.cpp: (WebCore::createArchiveMIMETypesMap): * loader/cache/CachedResource.cpp: (WebCore::CachedResource::load): * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::canRequest): (WebCore::CachedResourceLoader::requestResource): * loader/cache/CachedResourceRequest.cpp: (WebCore::acceptHeaderValueFromType): (WebCore::CachedResourceRequest::updateAcceptEncodingHeader): * loader/cache/CachedScript.cpp: (WebCore::CachedScript::CachedScript): * loader/cache/MemoryCache.cpp: (WebCore::MemoryCache::getOriginsWithCache): * loader/soup/ResourceLoaderSoup.cpp: (WebCore::ResourceLoader::loadGResource): * page/DOMSelection.cpp: (WebCore::DOMSelection::type const): * page/DOMWindow.cpp: (WebCore::DOMWindow::close): (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::createWindow): * page/DebugPageOverlays.cpp: (WebCore::touchEventRegionColors): * page/DiagnosticLoggingKeys.cpp: (WebCore::DiagnosticLoggingKeys::mediaLoadedKey): (WebCore::DiagnosticLoggingKeys::mediaLoadingFailedKey): (WebCore::DiagnosticLoggingKeys::memoryCacheEntryDecisionKey): (WebCore::DiagnosticLoggingKeys::memoryCacheUsageKey): (WebCore::DiagnosticLoggingKeys::missingValidatorFieldsKey): (WebCore::DiagnosticLoggingKeys::pluginLoadedKey): (WebCore::DiagnosticLoggingKeys::pluginLoadingFailedKey): (WebCore::DiagnosticLoggingKeys::postPageBackgroundingCPUUsageKey): (WebCore::DiagnosticLoggingKeys::postPageBackgroundingMemoryUsageKey): (WebCore::DiagnosticLoggingKeys::pageHandlesWebGLContextLossKey): (WebCore::DiagnosticLoggingKeys::postPageLoadCPUUsageKey): (WebCore::DiagnosticLoggingKeys::postPageLoadMemoryUsageKey): (WebCore::DiagnosticLoggingKeys::provisionalLoadKey): (WebCore::DiagnosticLoggingKeys::pageContainsPluginKey): (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey): (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey): (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey): (WebCore::DiagnosticLoggingKeys::pageLoadedKey): (WebCore::DiagnosticLoggingKeys::playedKey): (WebCore::DiagnosticLoggingKeys::engineFailedToLoadKey): (WebCore::DiagnosticLoggingKeys::entryRightlyNotWarmedUpKey): (WebCore::DiagnosticLoggingKeys::entryWronglyNotWarmedUpKey): (WebCore::DiagnosticLoggingKeys::navigationKey): (WebCore::DiagnosticLoggingKeys::needsRevalidationKey): (WebCore::DiagnosticLoggingKeys::networkCacheKey): (WebCore::DiagnosticLoggingKeys::networkCacheFailureReasonKey): (WebCore::DiagnosticLoggingKeys::networkCacheUnusedReasonKey): (WebCore::DiagnosticLoggingKeys::networkCacheReuseFailureKey): (WebCore::DiagnosticLoggingKeys::networkKey): (WebCore::DiagnosticLoggingKeys::networkProcessCrashedKey): (WebCore::DiagnosticLoggingKeys::neverSeenBeforeKey): (WebCore::DiagnosticLoggingKeys::noKey): (WebCore::DiagnosticLoggingKeys::noCacheKey): (WebCore::DiagnosticLoggingKeys::noStoreKey): (WebCore::DiagnosticLoggingKeys::nonVisibleStateKey): (WebCore::DiagnosticLoggingKeys::notInMemoryCacheKey): (WebCore::DiagnosticLoggingKeys::pageCacheKey): (WebCore::DiagnosticLoggingKeys::pageCacheFailureKey): (WebCore::DiagnosticLoggingKeys::noDocumentLoaderKey): (WebCore::DiagnosticLoggingKeys::noLongerInCacheKey): (WebCore::DiagnosticLoggingKeys::otherKey): (WebCore::DiagnosticLoggingKeys::mainDocumentErrorKey): (WebCore::DiagnosticLoggingKeys::mainResourceKey): (WebCore::DiagnosticLoggingKeys::isErrorPageKey): (WebCore::DiagnosticLoggingKeys::isExpiredKey): (WebCore::DiagnosticLoggingKeys::isReloadIgnoringCacheDataKey): (WebCore::DiagnosticLoggingKeys::loadingKey): (WebCore::DiagnosticLoggingKeys::hasPluginsKey): (WebCore::DiagnosticLoggingKeys::httpsNoStoreKey): (WebCore::DiagnosticLoggingKeys::imageKey): (WebCore::DiagnosticLoggingKeys::inMemoryCacheKey): (WebCore::DiagnosticLoggingKeys::inactiveKey): (WebCore::DiagnosticLoggingKeys::internalErrorKey): (WebCore::DiagnosticLoggingKeys::invalidSessionIDKey): (WebCore::DiagnosticLoggingKeys::isAttachmentKey): (WebCore::DiagnosticLoggingKeys::isConditionalRequestKey): (WebCore::DiagnosticLoggingKeys::isDisabledKey): (WebCore::DiagnosticLoggingKeys::noCurrentHistoryItemKey): (WebCore::DiagnosticLoggingKeys::quirkRedirectComingKey): (WebCore::DiagnosticLoggingKeys::rawKey): (WebCore::DiagnosticLoggingKeys::redirectKey): (WebCore::DiagnosticLoggingKeys::isLoadingKey): (WebCore::DiagnosticLoggingKeys::documentLoaderStoppingKey): (WebCore::DiagnosticLoggingKeys::domainCausingCrashKey): (WebCore::DiagnosticLoggingKeys::domainCausingEnergyDrainKey): (WebCore::DiagnosticLoggingKeys::domainCausingJetsamKey): (WebCore::DiagnosticLoggingKeys::simulatedPageCrashKey): (WebCore::DiagnosticLoggingKeys::exceededActiveMemoryLimitKey): (WebCore::DiagnosticLoggingKeys::exceededInactiveMemoryLimitKey): (WebCore::DiagnosticLoggingKeys::exceededBackgroundCPULimitKey): (WebCore::DiagnosticLoggingKeys::domainVisitedKey): (WebCore::DiagnosticLoggingKeys::cannotSuspendActiveDOMObjectsKey): (WebCore::DiagnosticLoggingKeys::cpuUsageKey): (WebCore::DiagnosticLoggingKeys::createSharedBufferFailedKey): (WebCore::DiagnosticLoggingKeys::activeInForegroundTabKey): (WebCore::DiagnosticLoggingKeys::activeInBackgroundTabOnlyKey): (WebCore::DiagnosticLoggingKeys::applicationCacheKey): (WebCore::DiagnosticLoggingKeys::applicationManifestKey): (WebCore::DiagnosticLoggingKeys::audioKey): (WebCore::DiagnosticLoggingKeys::backNavigationDeltaKey): (WebCore::DiagnosticLoggingKeys::canCacheKey): (WebCore::DiagnosticLoggingKeys::cacheControlNoStoreKey): (WebCore::DiagnosticLoggingKeys::cachedResourceRevalidationKey): (WebCore::DiagnosticLoggingKeys::cachedResourceRevalidationReasonKey): (WebCore::DiagnosticLoggingKeys::deniedByClientKey): (WebCore::DiagnosticLoggingKeys::deviceMotionKey): (WebCore::DiagnosticLoggingKeys::deviceOrientationKey): (WebCore::DiagnosticLoggingKeys::diskCacheKey): (WebCore::DiagnosticLoggingKeys::diskCacheAfterValidationKey): (WebCore::DiagnosticLoggingKeys::reloadKey): (WebCore::DiagnosticLoggingKeys::replaceKey): (WebCore::DiagnosticLoggingKeys::retrievalRequestKey): (WebCore::DiagnosticLoggingKeys::resourceLoadedKey): (WebCore::DiagnosticLoggingKeys::resourceResponseSourceKey): (WebCore::DiagnosticLoggingKeys::retrievalKey): (WebCore::DiagnosticLoggingKeys::revalidatingKey): (WebCore::DiagnosticLoggingKeys::reloadFromOriginKey): (WebCore::DiagnosticLoggingKeys::reloadRevalidatingExpiredKey): (WebCore::DiagnosticLoggingKeys::sameLoadKey): (WebCore::DiagnosticLoggingKeys::scriptKey): (WebCore::DiagnosticLoggingKeys::serviceWorkerKey): (WebCore::DiagnosticLoggingKeys::streamingMedia): (WebCore::DiagnosticLoggingKeys::styleSheetKey): (WebCore::DiagnosticLoggingKeys::successfulSpeculativeWarmupWithRevalidationKey): (WebCore::DiagnosticLoggingKeys::successfulSpeculativeWarmupWithoutRevalidationKey): (WebCore::DiagnosticLoggingKeys::svgDocumentKey): (WebCore::DiagnosticLoggingKeys::synchronousMessageFailedKey): (WebCore::DiagnosticLoggingKeys::telemetryPageLoadKey): (WebCore::DiagnosticLoggingKeys::timedOutKey): (WebCore::DiagnosticLoggingKeys::canceledLessThan2SecondsKey): (WebCore::DiagnosticLoggingKeys::canceledLessThan5SecondsKey): (WebCore::DiagnosticLoggingKeys::canceledLessThan20SecondsKey): (WebCore::DiagnosticLoggingKeys::canceledMoreThan20SecondsKey): (WebCore::DiagnosticLoggingKeys::failedLessThan2SecondsKey): (WebCore::DiagnosticLoggingKeys::failedLessThan5SecondsKey): (WebCore::DiagnosticLoggingKeys::failedLessThan20SecondsKey): (WebCore::DiagnosticLoggingKeys::failedMoreThan20SecondsKey): (WebCore::DiagnosticLoggingKeys::occurredKey): (WebCore::DiagnosticLoggingKeys::succeededLessThan2SecondsKey): (WebCore::DiagnosticLoggingKeys::succeededLessThan5SecondsKey): (WebCore::DiagnosticLoggingKeys::succeededLessThan20SecondsKey): (WebCore::DiagnosticLoggingKeys::succeededMoreThan20SecondsKey): (WebCore::DiagnosticLoggingKeys::uncacheableStatusCodeKey): (WebCore::DiagnosticLoggingKeys::underMemoryPressureKey): (WebCore::DiagnosticLoggingKeys::unknownEntryRequestKey): (WebCore::DiagnosticLoggingKeys::unlikelyToReuseKey): (WebCore::DiagnosticLoggingKeys::unsupportedHTTPMethodKey): (WebCore::DiagnosticLoggingKeys::unsuspendableDOMObjectKey): (WebCore::DiagnosticLoggingKeys::unusedKey): (WebCore::DiagnosticLoggingKeys::unusedReasonCredentialSettingsKey): (WebCore::DiagnosticLoggingKeys::unusedReasonErrorKey): (WebCore::DiagnosticLoggingKeys::unusedReasonMustRevalidateNoValidatorKey): (WebCore::DiagnosticLoggingKeys::unusedReasonNoStoreKey): (WebCore::DiagnosticLoggingKeys::unusedReasonRedirectChainKey): (WebCore::DiagnosticLoggingKeys::unusedReasonReloadKey): (WebCore::DiagnosticLoggingKeys::unusedReasonTypeMismatchKey): (WebCore::DiagnosticLoggingKeys::usedKey): (WebCore::DiagnosticLoggingKeys::userZoomActionKey): (WebCore::DiagnosticLoggingKeys::varyingHeaderMismatchKey): (WebCore::DiagnosticLoggingKeys::videoKey): (WebCore::DiagnosticLoggingKeys::visibleNonActiveStateKey): (WebCore::DiagnosticLoggingKeys::visibleAndActiveStateKey): (WebCore::DiagnosticLoggingKeys::wastedSpeculativeWarmupWithRevalidationKey): (WebCore::DiagnosticLoggingKeys::wastedSpeculativeWarmupWithoutRevalidationKey): (WebCore::DiagnosticLoggingKeys::webViewKey): (WebCore::DiagnosticLoggingKeys::yesKey): (WebCore::DiagnosticLoggingKeys::expiredKey): (WebCore::DiagnosticLoggingKeys::fontKey): (WebCore::DiagnosticLoggingKeys::prunedDueToMemoryPressureKey): (WebCore::DiagnosticLoggingKeys::prunedDueToMaxSizeReached): (WebCore::DiagnosticLoggingKeys::prunedDueToProcessSuspended): (WebCore::WebCore::DiagnosticLoggingKeys::notHTTPFamilyKey): (WebCore::WebCore::DiagnosticLoggingKeys::webGLStateKey): (WebCore::DiagnosticLoggingKeys::memoryUsageToDiagnosticLoggingKey): (WebCore::DiagnosticLoggingKeys::foregroundCPUUsageToDiagnosticLoggingKey): (WebCore::DiagnosticLoggingKeys::backgroundCPUUsageToDiagnosticLoggingKey): (WebCore::DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey): * page/DisabledAdaptations.cpp: (WebCore::watchAdaptationName): * page/EventHandler.cpp: (WebCore::EventHandler::handlePasteGlobalSelection): (WebCore::convertDragOperationToDropZoneOperation): * page/EventSource.cpp: (WebCore::EventSource::EventSource): * page/History.cpp: (WebCore::History::stateObjectAdded): * page/NavigatorBase.cpp: (WebCore::NavigatorBase::appName): (WebCore::NavigatorBase::appCodeName): * page/Page.cpp: (WebCore::Page::logNavigation): * page/PageDebuggable.cpp: (WebCore::PageDebuggable::url const): * page/PageSerializer.cpp: (WebCore::PageSerializer::serializeCSSStyleSheet): * page/PerformanceMark.h: * page/PerformanceMeasure.h: * page/PerformanceObserver.cpp: (WebCore::PerformanceObserver::observe): * page/PerformanceResourceTiming.cpp: (WebCore::PerformanceResourceTiming::PerformanceResourceTiming): * page/PerformanceUserTiming.cpp: (WebCore::restrictedMarkFunction): * page/PointerLockController.cpp: (WebCore::PointerLockController::requestPointerLock): * page/PrintContext.cpp: (WebCore::PrintContext::pageProperty): * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::toString const): * page/SecurityOriginData.cpp: (WebCore::SecurityOriginData::toString const): (WebCore::SecurityOriginData::databaseIdentifier const): * page/cocoa/ResourceUsageOverlayCocoa.mm: (WebCore::gcTimerString): * page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::reportViolation const): (WebCore::ContentSecurityPolicy::reportUnsupportedDirective const): * page/linux/ResourceUsageOverlayLinux.cpp: (WebCore::cpuUsageString): (WebCore::gcTimerString): * platform/ContentType.cpp: (WebCore::ContentType::codecsParameter): (WebCore::ContentType::profilesParameter): * platform/Decimal.cpp: (WebCore::Decimal::toString const): * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes): (WebCore::typesForCommonExtension): (WebCore::initializeUnsupportedTextMIMETypes): (WebCore::MIMETypeRegistry::getNormalizedMIMEType): * platform/SchemeRegistry.cpp: (WebCore::SchemeRegistry::canServiceWorkersHandleURLScheme): * platform/URL.cpp: (WebCore::mimeTypeFromDataURL): * platform/UserAgentQuirks.cpp: (WebCore::UserAgentQuirks::stringForQuirk): * platform/cocoa/KeyEventCocoa.mm: (WebCore::keyForCharCode): * platform/cocoa/NetworkExtensionContentFilter.mm: (WebCore::NetworkExtensionContentFilter::unblockHandler const): * platform/cocoa/ParentalControlsContentFilter.mm: (WebCore::ParentalControlsContentFilter::unblockHandler const): * platform/cocoa/PasteboardCocoa.mm: (WebCore::Pasteboard::fileContentState): * platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::MacApplication::isSafari): (WebCore::MacApplication::isAppleMail): (WebCore::MacApplication::isIBooks): (WebCore::MacApplication::isITunes): (WebCore::MacApplication::isMicrosoftMessenger): (WebCore::MacApplication::isAdobeInstaller): (WebCore::MacApplication::isAOLInstantMessenger): (WebCore::MacApplication::isMicrosoftMyDay): (WebCore::MacApplication::isMicrosoftOutlook): (WebCore::MacApplication::isQuickenEssentials): (WebCore::MacApplication::isAperture): (WebCore::MacApplication::isVersions): (WebCore::MacApplication::isHRBlock): (WebCore::MacApplication::isIAdProducer): (WebCore::MacApplication::isSolidStateNetworksDownloader): (WebCore::IOSApplication::isMobileMail): (WebCore::IOSApplication::isMobileSafari): (WebCore::IOSApplication::isWebBookmarksD): (WebCore::IOSApplication::isDumpRenderTree): (WebCore::IOSApplication::isMobileStore): (WebCore::IOSApplication::isSpringBoard): (WebCore::IOSApplication::isWebApp): (WebCore::IOSApplication::isIBooks): (WebCore::IOSApplication::isIBooksStorytime): (WebCore::IOSApplication::isTheSecretSocietyHiddenMystery): (WebCore::IOSApplication::isCardiogram): (WebCore::IOSApplication::isNike): * platform/cocoa/UserAgentCocoa.mm: (WebCore::userAgentBundleVersion): * platform/gamepad/cocoa/GameControllerGamepad.mm: (WebCore::GameControllerGamepad::setupAsExtendedGamepad): (WebCore::GameControllerGamepad::setupAsGamepad): * platform/graphics/InbandTextTrackPrivateClient.h: (WebCore::GenericCueData::toJSONString const): * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::CDMFactoryFairPlayStreaming::supportsKeySystem): * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::isEqual): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::keySystem const): * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: (WebCore::CDMSessionAVContentKeySession::generateKeyRequest): * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: (WebCore::CDMSessionAVStreamSession::generateKeyRequest): * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::propertyIdToString): * platform/graphics/ca/TileController.cpp: (WebCore::TileController::tileGridContainerLayerName): (WebCore::TileController::zoomedOutTileGridContainerLayerName): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::toDataURL const): (WebCore::dataURL): * platform/graphics/cv/VideoTextureCopierCV.cpp: (WebCore::VideoTextureCopierCV::initializeContextObjects): (WebCore::VideoTextureCopierCV::initializeUVContextObjects): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): (WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered): * platform/graphics/iso/ISOVTTCue.cpp: (WebCore::ISOWebVTTCue::toJSONString const): * platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp: (Nicosia::PaintingEngineThreaded::PaintingEngineThreaded): * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions): * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: (WebCore::GraphicsContext3D::getUnmangledInfoLog): * platform/graphics/texmap/TextureMapperContextAttributes.cpp: (WebCore::TextureMapperContextAttributes::get): * platform/graphics/win/ImageBufferDirect2D.cpp: (WebCore::ImageBuffer::toDataURL const): (WebCore::ImageDataToDataURL): * platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::typesForLegacyUnsafeBindings): * platform/gtk/PasteboardHelper.cpp: * platform/gtk/PlatformKeyboardEventGtk.cpp: (WebCore::PlatformKeyboardEvent::keyValueForGdkKeyCode): (WebCore::PlatformKeyboardEvent::keyCodeForHardwareKeyCode): * platform/image-decoders/bmp/BMPImageDecoder.h: * platform/image-decoders/gif/GIFImageDecoder.h: * platform/image-decoders/ico/ICOImageDecoder.h: * platform/image-decoders/jpeg/JPEGImageDecoder.h: * platform/image-decoders/png/PNGImageDecoder.h: * platform/image-decoders/webp/WEBPImageDecoder.h: * platform/ios/Device.cpp: (WebCore::deviceName): * platform/ios/PasteboardIOS.mm: (WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType): * platform/ios/PlatformEventFactoryIOS.mm: (WebCore::keyForKeyEvent): (WebCore::codeForKeyEvent): * platform/ios/PlatformPasteboardIOS.mm: (WebCore::safeTypeForDOMToReadAndWriteForPlatformType): * platform/mac/PasteboardMac.mm: (WebCore::Pasteboard::read): (WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType): * platform/mac/PlatformEventFactoryMac.mm: (WebCore::keyForKeyEvent): (WebCore::codeForKeyEvent): * platform/mac/PlatformPasteboardMac.mm: (WebCore::safeTypeForDOMToReadAndWriteForPlatformType): * platform/mediastream/MediaConstraints.cpp: (WebCore::addDefaultVideoConstraints): * platform/mediastream/PeerMediaDescription.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::applyConstraints): * platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp: (WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): * platform/mock/MockRealtimeMediaSource.cpp: (WebCore::deviceMap): (WebCore::MockRealtimeMediaSource::audioDevices): (WebCore::MockRealtimeMediaSource::videoDevices): (WebCore::MockRealtimeMediaSource::displayDevices): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::drawText): * platform/network/BlobRegistryImpl.cpp: (WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles): * platform/network/DataURLDecoder.cpp: (WebCore::DataURLDecoder::parseMediaType): * platform/network/FormData.cpp: (WebCore::FormData::appendMultiPartFileValue): * platform/network/HTTPParsers.cpp: (WebCore::parseHTTPRequestLine): (WebCore::parseHTTPHeader): (WebCore::normalizeHTTPMethod): * platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::redirectedRequest const): * platform/network/ResourceRequestBase.h: (WebCore::ResourceRequestBase::ResourceRequestBase): * platform/network/curl/ResourceHandleCurl.cpp: (WebCore::ResourceHandle::handleDataURL): * platform/network/curl/SynchronousLoaderClientCurl.cpp: (WebCore::SynchronousLoaderClient::platformBadResponseError): * platform/network/win/DownloadBundleWin.cpp: (WebCore::DownloadBundle::fileExtension): * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::open): (WebCore::SQLiteDatabase::setFullsync): (WebCore::SQLiteDatabase::maximumSize): (WebCore::SQLiteDatabase::pageSize): (WebCore::SQLiteDatabase::freeSpaceSize): (WebCore::SQLiteDatabase::totalSize): (WebCore::SQLiteDatabase::clearAllTables): (WebCore::SQLiteDatabase::runVacuumCommand): (WebCore::SQLiteDatabase::runIncrementalVacuumCommand): (WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum): * platform/sql/SQLiteFileSystem.cpp: (WebCore::SQLiteFileSystem::deleteDatabaseFile): * platform/text/LocaleICU.cpp: (WebCore::LocaleICU::dateFormat): (WebCore::getFormatForSkeleton): * platform/text/LocaleNone.cpp: (WebCore::LocaleNone::dateFormat): (WebCore::LocaleNone::monthFormat): (WebCore::LocaleNone::shortMonthFormat): (WebCore::LocaleNone::timeFormat): (WebCore::LocaleNone::shortTimeFormat): (WebCore::LocaleNone::dateTimeFormatWithSeconds): (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): * platform/text/LocaleToScriptMappingDefault.cpp: (WebCore::scriptNameToCode): (WebCore::localeToScriptCodeForFontSelection): * platform/text/TextEncodingRegistry.cpp: (WebCore::defaultTextEncodingNameForSystemLanguage): * platform/win/FileSystemWin.cpp: (WebCore::FileSystem::bundleName): * platform/wpe/RenderThemeWPE.cpp: (WebCore::RenderThemeWPE::mediaControlsStyleSheet): * rendering/RenderMenuList.cpp: (RenderMenuList::setText): * rendering/RenderThemeIOS.mm: (WebCore::RenderThemeIOS::extraDefaultStyleSheet): * svg/SVGComponentTransferFunctionElement.h: (WebCore::SVGPropertyTraits<ComponentTransferType>::toString): * svg/SVGFEColorMatrixElement.h: (WebCore::SVGPropertyTraits<ColorMatrixType>::toString): * svg/SVGFECompositeElement.h: (WebCore::SVGPropertyTraits<CompositeOperationType>::toString): * svg/SVGFEConvolveMatrixElement.h: (WebCore::SVGPropertyTraits<EdgeModeType>::toString): * svg/SVGFEDisplacementMapElement.h: (WebCore::SVGPropertyTraits<ChannelSelectorType>::toString): * svg/SVGFEMorphologyElement.h: (WebCore::SVGPropertyTraits<MorphologyOperatorType>::toString): * svg/SVGFETurbulenceElement.h: (WebCore::SVGPropertyTraits<SVGStitchOptions>::toString): (WebCore::SVGPropertyTraits<TurbulenceType>::toString): * svg/SVGGradientElement.h: (WebCore::SVGPropertyTraits<SVGSpreadMethodType>::toString): * svg/SVGLocatable.cpp: (WebCore::SVGLocatable::getTransformToElement): * svg/SVGMarkerTypes.h: (WebCore::SVGPropertyTraits<SVGMarkerUnitsType>::toString): * svg/SVGMatrixValue.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement): (WebCore::SVGSVGElement::parseAttribute): * svg/SVGTextContentElement.h: (WebCore::SVGPropertyTraits<SVGLengthAdjustType>::toString): * svg/SVGTextPathElement.h: (WebCore::SVGPropertyTraits<SVGTextPathMethodType>::toString): (WebCore::SVGPropertyTraits<SVGTextPathSpacingType>::toString): * svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::appendCFFTable): * svg/SVGUnitTypes.h: (WebCore::SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::toString): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::toClipPath): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::filenameExtension const): * testing/InternalSettings.cpp: (WebCore::InternalSettings::userInterfaceDirectionPolicy): (WebCore::InternalSettings::systemLayoutDirection): * testing/Internals.cpp: (WebCore::Internals::areSVGAnimationsPaused const): (WebCore::Internals::accessKeyModifiers const): (WebCore::Internals::setMediaDeviceState): (WebCore::Internals::audioSessionCategory const): (WebCore::Internals::systemPreviewRelType): * testing/MockCDMFactory.cpp: (WebCore::MockCDM::sanitizeResponse const): (WebCore::MockCDMInstance::updateLicense): * testing/MockContentFilter.cpp: (WebCore::MockContentFilter::unblockRequestDeniedScript const): * testing/MockCredentialsMessenger.cpp: (WebCore::MockCredentialsMessenger::~MockCredentialsMessenger): (WebCore::MockCredentialsMessenger::makeCredential): (WebCore::MockCredentialsMessenger::getAssertion): * testing/MockPaymentCoordinator.cpp: (WebCore::MockPaymentCoordinator::showPaymentUI): * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::debuggerMode): * workers/WorkerScriptLoader.cpp: (WebCore::WorkerScriptLoader::loadSynchronously): (WebCore::WorkerScriptLoader::createResourceRequest): (WebCore::WorkerScriptLoader::didReceiveData): * workers/service/ExtendableEvent.cpp: (WebCore::ExtendableEvent::waitUntil): * workers/service/FetchEvent.cpp: (WebCore::FetchEvent::~FetchEvent): (WebCore::FetchEvent::respondWith): (WebCore::FetchEvent::promiseIsSettled): * workers/service/SWClientConnection.cpp: (WebCore::SWClientConnection::clearPendingJobs): * workers/service/ServiceWorker.cpp: (WebCore::ServiceWorker::postMessage): * workers/service/ServiceWorkerClients.cpp: (WebCore::ServiceWorkerClients::openWindow): (WebCore::ServiceWorkerClients::claim): * workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::addRegistration): (WebCore::ServiceWorkerContainer::getRegistration): (WebCore::ServiceWorkerContainer::startScriptFetchForJob): * workers/service/ServiceWorkerJob.cpp: (WebCore::ServiceWorkerJob::fetchScriptWithContext): (WebCore::ServiceWorkerJob::didReceiveResponse): * workers/service/ServiceWorkerRegistration.cpp: (WebCore::ServiceWorkerRegistration::update): * workers/service/ServiceWorkerWindowClient.cpp: (WebCore::ServiceWorkerWindowClient::focus): (WebCore::ServiceWorkerWindowClient::navigate): * workers/service/context/ServiceWorkerDebuggable.h: * workers/service/context/ServiceWorkerFetch.cpp: (WebCore::ServiceWorkerFetch::dispatchFetchEvent): * workers/service/server/RegistrationDatabase.cpp: (WebCore::RegistrationDatabase::doPushChanges): (WebCore::RegistrationDatabase::importRecords): * workers/service/server/SWServerJobQueue.cpp: (WebCore::SWServerJobQueue::runRegisterJob): (WebCore::SWServerJobQueue::runUnregisterJob): (WebCore::SWServerJobQueue::runUpdateJob): * xml/XMLErrors.cpp: (WebCore::createXHTMLParserErrorHeader): (WebCore::XMLErrors::insertErrorMessageBlock): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): (WebCore::XMLHttpRequest::responseMIMEType const): * xml/XMLTreeViewer.cpp: (WebCore::XMLTreeViewer::transformDocumentToTreeView): * xml/XPathPredicate.cpp: (WebCore::XPath::evaluatePredicate): * xml/XPathValue.cpp: (WebCore::XPath::Value::toString const): * xml/parser/CharacterReferenceParserInlines.h: (WebCore::consumeCharacterReference): Source/WebCore/PAL: * pal/unix/LoggingUnix.cpp: (PAL::logLevelString): Source/WebDriver: * CommandResult.cpp: (WebDriver::CommandResult::errorString const): * Session.cpp: (WebDriver::Session::webElementIdentifier): (WebDriver::Session::getTimeouts): (WebDriver::Session::createTopLevelBrowsingContext): (WebDriver::Session::handleUserPrompts): (WebDriver::Session::reportUnexpectedAlertOpen): (WebDriver::Session::go): (WebDriver::Session::getCurrentURL): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::getTitle): (WebDriver::Session::getWindowHandle): (WebDriver::Session::closeTopLevelBrowsingContext): (WebDriver::Session::switchToWindow): (WebDriver::Session::getWindowHandles): (WebDriver::Session::switchToFrame): (WebDriver::Session::switchToParentFrame): (WebDriver::Session::getToplevelBrowsingContextRect): (WebDriver::Session::setWindowRect): (WebDriver::Session::maximizeWindow): (WebDriver::Session::minimizeWindow): (WebDriver::Session::fullscreenWindow): (WebDriver::Session::computeElementLayout): (WebDriver::Session::findElements): (WebDriver::Session::getActiveElement): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::getElementProperty): (WebDriver::Session::getElementCSSValue): (WebDriver::Session::waitForNavigationToComplete): (WebDriver::Session::selectOptionElement): (WebDriver::Session::elementClear): (WebDriver::Session::virtualKeyForKeySequence): (WebDriver::Session::elementSendKeys): (WebDriver::Session::executeScript): (WebDriver::mouseButtonForAutomation): (WebDriver::Session::performMouseInteraction): (WebDriver::Session::performKeyboardInteractions): (WebDriver::parseAutomationCookie): (WebDriver::builtAutomationCookie): (WebDriver::serializeCookie): (WebDriver::Session::getAllCookies): (WebDriver::Session::getNamedCookie): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::performActions): (WebDriver::Session::releaseActions): (WebDriver::Session::dismissAlert): (WebDriver::Session::acceptAlert): (WebDriver::Session::getAlertText): (WebDriver::Session::sendAlertText): (WebDriver::Session::takeScreenshot): * SessionHost.cpp: (WebDriver::SessionHost::dispatchMessage): * WebDriverService.cpp: (WebDriver::WebDriverService::sendResponse const): (WebDriver::WebDriverService::parseCapabilities const): (WebDriver::WebDriverService::findSessionOrCompleteWithError): (WebDriver::WebDriverService::matchCapabilities const): (WebDriver::WebDriverService::processCapabilities const): (WebDriver::WebDriverService::createSession): (WebDriver::WebDriverService::deleteSession): (WebDriver::WebDriverService::status): (WebDriver::WebDriverService::go): (WebDriver::WebDriverService::setWindowRect): (WebDriver::WebDriverService::switchToWindow): (WebDriver::WebDriverService::switchToFrame): (WebDriver::findElementOrCompleteWithError): (WebDriver::findStrategyAndSelectorOrCompleteWithError): (WebDriver::WebDriverService::getElementAttribute): (WebDriver::WebDriverService::getElementProperty): (WebDriver::WebDriverService::getElementCSSValue): (WebDriver::WebDriverService::elementSendKeys): (WebDriver::findScriptAndArgumentsOrCompleteWithError): (WebDriver::WebDriverService::getNamedCookie): (WebDriver::deserializeCookie): (WebDriver::WebDriverService::addCookie): (WebDriver::WebDriverService::deleteCookie): (WebDriver::processPauseAction): (WebDriver::processNullAction): (WebDriver::processKeyAction): (WebDriver::processPointerAction): (WebDriver::processPointerParameters): (WebDriver::processInputActionSequence): (WebDriver::WebDriverService::performActions): (WebDriver::WebDriverService::sendAlertText): (WebDriver::WebDriverService::takeElementScreenshot): * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::sendMessageToBackend): * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): Source/WebKit: * NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): (WebKit::NetworkCORSPreflightChecker::wasBlocked): (WebKit::NetworkCORSPreflightChecker::cannotShowURL): * NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::suggestedFilename const): * NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::checkRedirection): (WebKit::NetworkLoadChecker::checkRequest): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::continueWillSendRequest): * NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::willPerformHTTPRedirection): (WebKit::PingLoad::didReceiveChallenge): (WebKit::PingLoad::timeoutTimerFired): * NetworkProcess/PreconnectTask.cpp: (WebKit::PreconnectTask::PreconnectTask): * NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::initialize): * NetworkProcess/cache/CacheStorageEngineCache.cpp: (WebKit::CacheStorage::Cache::toRecordInformation): * NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::cachesListFilename): (WebKit::CacheStorage::cachesOriginFilename): * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::initialize): (WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache): (WebKit::NetworkCache::Statistics::queryWasEverRequested): (WebKit::NetworkCache::Statistics::clear): (WebKit::NetworkCache::Statistics::addHashesToDatabase): (WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase): * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializer): * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData): * Shared/Plugins/Netscape/PluginInformation.cpp: (WebKit::pluginInformationBundleIdentifierKey): (WebKit::pluginInformationBundleVersionKey): (WebKit::pluginInformationBundleShortVersionKey): (WebKit::pluginInformationPathKey): (WebKit::pluginInformationDisplayNameKey): (WebKit::pluginInformationDefaultLoadPolicyKey): (WebKit::pluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey): (WebKit::pluginInformationHasSandboxProfileKey): (WebKit::pluginInformationFrameURLKey): (WebKit::pluginInformationMIMETypeKey): (WebKit::pluginInformationPageURLKey): (WebKit::pluginInformationPluginspageAttributeURLKey): (WebKit::pluginInformationPluginURLKey): (WebKit::plugInInformationReplacementObscuredKey): * Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebKeyboardEvent): * Shared/linux/WebMemorySamplerLinux.cpp: (WebKit::WebMemorySampler::sampleWebKit const): * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm: (debuggableTypeString): * UIProcess/API/glib/WebKitWebContext.cpp: (webkit_web_context_set_preferred_languages): * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): (WebKit::WebAutomationSession::addSingleCookie): (WebKit::WebAutomationSession::setSessionPermissions): (WebKit::WebAutomationSession::performMouseInteraction): (WebKit::WebAutomationSession::performKeyboardInteractions): (WebKit::WebAutomationSession::performInteractionSequence): * UIProcess/Automation/WebAutomationSession.h: * UIProcess/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::getLaunchOptions): * UIProcess/Cocoa/DownloadClient.mm: (WebKit::DownloadClient::didStart): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::selectorExceptionMap): * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: (WebKit::WebCredentialsMessengerProxy::makeCredential): (WebKit::WebCredentialsMessengerProxy::getAssertion): * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: (WebKit::PluginInfoStore::pluginsDirectories): * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: (WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk): * UIProcess/ServiceWorkerProcessProxy.cpp: (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): (WebKit::ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge): * UIProcess/UserMediaProcessManager.cpp: (WebKit::UserMediaProcessManager::willCreateMediaStream): (WebKit::UserMediaProcessManager::endedCaptureSession): * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::goToItem): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadHTMLString): (WebKit::WebPageProxy::loadPlainTextString): (WebKit::WebPageProxy::loadWebArchiveData): (WebKit::WebPageProxy::savePDFToFileInDownloadsFolder): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): * UIProcess/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData): * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: (WebKit::notifyPages): (WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView copyForWebView:]): (-[WKContentView cutForWebView:]): (-[WKContentView pasteForWebView:]): (-[WKContentView selectAllForWebView:]): (-[WKContentView deleteBackward]): (-[WKContentView _interpretKeyEvent:isCharEvent:]): * UIProcess/ios/WKLegacyPDFView.mm: (-[WKLegacyPDFView _URLForLinkAnnotation:]): * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::WebAutomationSessionProxy::elementForNodeHandle): (WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::connectionToServerLost): * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: (webkit_dom_document_get_ready_state): * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: (WebKit::uniqueWorldName): * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: (WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins): * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::pluginInfo): * WebProcess/Storage/ServiceWorkerClientFetch.cpp: (WebKit::ServiceWorkerClientFetch::validateResponse): (WebKit::ServiceWorkerClientFetch::didReceiveResponse): * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::searchWithGoogle): * WebProcess/WebCoreSupport/WebInspectorClient.cpp: (WebKit::WebInspectorClient::showPaintRect): * WebProcess/WebPage/RemoteWebInspectorUI.cpp: (WebKit::RemoteWebInspectorUI::initialize): (WebKit::RemoteWebInspectorUI::didSave): (WebKit::RemoteWebInspectorUI::didAppend): (WebKit::RemoteWebInspectorUI::frontendLoaded): * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::openInNewTab): * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::setDockSide): (WebKit::WebInspectorUI::setDockingUnavailable): (WebKit::WebInspectorUI::setIsVisible): (WebKit::WebInspectorUI::showConsole): (WebKit::WebInspectorUI::showResources): (WebKit::WebInspectorUI::showTimelines): (WebKit::WebInspectorUI::showMainResourceForFrame): (WebKit::WebInspectorUI::startPageProfiling): (WebKit::WebInspectorUI::stopPageProfiling): (WebKit::WebInspectorUI::startElementSelection): (WebKit::WebInspectorUI::stopElementSelection): (WebKit::WebInspectorUI::didSave): (WebKit::WebInspectorUI::didAppend): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadStringImpl): (WebKit::WebPage::loadAlternateHTMLString): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::computeAutocorrectionContext): * WebProcess/WebProcess.cpp: (WebKit::getWebCoreMemoryCacheStatistics): (WebKit::WebProcess::getWebCoreStatistics): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeProcessName): Source/WebKitLegacy: * Storage/StorageTracker.cpp: (WebKit::StorageTracker::syncFileSystemAndTrackerDatabase): * WebCoreSupport/PingHandle.h: Source/WebKitLegacy/mac: * DOM/ExceptionHandlers.mm: (raiseDOMErrorException): * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::invokeMethod): * Storage/WebDatabaseProvider.mm: (WebDatabaseProvider::indexedDatabaseDirectoryPath): Source/WebKitLegacy/win: * Plugins/PluginStream.cpp: (WebCore::PluginStream::startStream): * WebCoreSupport/WebContextMenuClient.cpp: (WebContextMenuClient::searchWithGoogle): Source/WTF: This patch adds user-defined literal for ASCIILiteral. We can create ASCIILiteral in the form of `"Hello World"_s`. And we remove public ASCIILiteral constructor. This change ensures that ASCIILiteral is created from literal. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/Indenter.h: (WTF::Indenter::Indenter): * wtf/Logger.h: (WTF::LogArgument::toString): * wtf/MediaTime.cpp: (WTF::toJSONStringInternal): (WTF::MediaTimeRange::toJSONString const): * wtf/linux/MemoryFootprintLinux.cpp: (WTF::memoryFootprint): * wtf/text/ASCIILiteral.cpp: Copied from Source/WebCore/css/CSSUnsetValue.cpp. (WTF::ASCIILiteral::dump const): * wtf/text/ASCIILiteral.h: Copied from Source/WTF/wtf/Indenter.h. (WTF::ASCIILiteral::operator const char* const): (WTF::ASCIILiteral::fromLiteralUnsafe): (WTF::ASCIILiteral::null): (WTF::ASCIILiteral::characters const): (WTF::ASCIILiteral::ASCIILiteral): (WTF::StringLiterals::operator _s): * wtf/text/WTFString.cpp: (asciiDebug): * wtf/text/WTFString.h: (WTF::operator==): (WTF::operator!=): (WTF::ASCIILiteral::ASCIILiteral): Deleted. (WTF::ASCIILiteral::operator const char*): Deleted. * wtf/unix/LanguageUnix.cpp: (WTF::platformLanguage): Tools: * TestWebKitAPI/Tests/WTF/StringOperators.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/WTFString.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/WorkerPool.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp: (TEST_F): * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/URL.cpp: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/ios/PreviewLoader.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/mac/GPUCommandQueue.mm: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/mac/GPUTest.h: * TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm: (-[MockContentFilterEnabler initWithCoder:]): * TestWebKitAPI/Tests/mac/ContentFiltering.mm: (TestWebKitAPI::loadAlternateTest): Canonical link: https://commits.webkit.org/202214@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-23 08:39:34 +00:00
2018-06-23 Yusuke Suzuki <utatane.tea@gmail.com>
[WTF] Add user-defined literal for ASCIILiteral
https://bugs.webkit.org/show_bug.cgi?id=186839
Reviewed by Darin Adler.
* CommandResult.cpp:
(WebDriver::CommandResult::errorString const):
* Session.cpp:
(WebDriver::Session::webElementIdentifier):
(WebDriver::Session::getTimeouts):
(WebDriver::Session::createTopLevelBrowsingContext):
(WebDriver::Session::handleUserPrompts):
(WebDriver::Session::reportUnexpectedAlertOpen):
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::getWindowHandle):
(WebDriver::Session::closeTopLevelBrowsingContext):
(WebDriver::Session::switchToWindow):
(WebDriver::Session::getWindowHandles):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::findElements):
(WebDriver::Session::getActiveElement):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::selectOptionElement):
(WebDriver::Session::elementClear):
(WebDriver::Session::virtualKeyForKeySequence):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::executeScript):
(WebDriver::mouseButtonForAutomation):
(WebDriver::Session::performMouseInteraction):
(WebDriver::Session::performKeyboardInteractions):
(WebDriver::parseAutomationCookie):
(WebDriver::builtAutomationCookie):
(WebDriver::serializeCookie):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::getNamedCookie):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::releaseActions):
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
(WebDriver::Session::takeScreenshot):
* SessionHost.cpp:
(WebDriver::SessionHost::dispatchMessage):
* WebDriverService.cpp:
(WebDriver::WebDriverService::sendResponse const):
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::createSession):
(WebDriver::WebDriverService::deleteSession):
(WebDriver::WebDriverService::status):
(WebDriver::WebDriverService::go):
(WebDriver::WebDriverService::setWindowRect):
(WebDriver::WebDriverService::switchToWindow):
(WebDriver::WebDriverService::switchToFrame):
(WebDriver::findElementOrCompleteWithError):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::WebDriverService::getElementAttribute):
(WebDriver::WebDriverService::getElementProperty):
(WebDriver::WebDriverService::getElementCSSValue):
(WebDriver::WebDriverService::elementSendKeys):
(WebDriver::findScriptAndArgumentsOrCompleteWithError):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::processPointerAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):
(WebDriver::WebDriverService::sendAlertText):
(WebDriver::WebDriverService::takeElementScreenshot):
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::sendMessageToBackend):
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
2018-06-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: use a dictionary for session capabilities in StartAutomationSession message
https://bugs.webkit.org/show_bug.cgi?id=186915
Reviewed by Žan Doberšek.
Instead of growing the message signature every time we add a new capability, use a dictionary a{sv} and simply add
new entries when new capabilities are added. This way we won't need to change the message signature anymore.
* SessionHost.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::buildSessionCapabilities const): Helper to build the session capabilities dictionary.
(WebDriver::SessionHost::startAutomationSession):
[GTK] WebDriver: allow applying host-specific TLS certificates for automated sessions https://bugs.webkit.org/show_bug.cgi?id=186884 Reviewed by Carlos Garcia Campos. Source/JavaScriptCore: Add a tuple array input parameter to the StartAutomationSession DBus message, representing a list of host-and-certificate pairs that have to be allowed for a given session. This array is then unpacked and used to fill out the certificates Vector object in the SessionCapabilities struct. * inspector/remote/RemoteInspector.h: Add a GLib-specific Vector of String pairs representing hosts and the certificate file paths. * inspector/remote/glib/RemoteInspectorServer.cpp: Source/WebDriver: Start handling the 'certificates' capability for the GTK+ port. This is a list of host-certificate pairs that should be marked as allowed for a given automation session. This object should be positioned inside the 'webkitgtk:browserOptions' dictionary in the capabilities JSON. * Capabilities.h: * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::startAutomationSession): Include any host-certificate pairs in the StartAutomationSession DBus message. * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformValidateCapability const): Properly validate the 'certificates' value, if present. (WebDriver::WebDriverService::platformParseCapabilities const): Properly parse the 'certificates' value, if present, and extract the host-certificate pairs. Source/WebKit: * UIProcess/API/glib/WebKitAutomationSession.cpp: (webkitAutomationSessionCreate): Handle any host-certificate pair that's been set for this session, creating a GTlsCertificate object through loading from the specified certificate path and marking that certificate as allowed for the specified host through the webkit_web_context_allow_tls_certificate_for_host() API. Canonical link: https://commits.webkit.org/202135@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233035 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-21 11:03:58 +00:00
2018-06-21 Zan Dobersek <zdobersek@igalia.com>
[GTK] WebDriver: allow applying host-specific TLS certificates for automated sessions
https://bugs.webkit.org/show_bug.cgi?id=186884
Reviewed by Carlos Garcia Campos.
Start handling the 'certificates' capability for the GTK+ port. This is
a list of host-certificate pairs that should be marked as allowed for a
given automation session. This object should be positioned inside the
'webkitgtk:browserOptions' dictionary in the capabilities JSON.
* Capabilities.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::startAutomationSession): Include any
host-certificate pairs in the StartAutomationSession DBus message.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
Properly validate the 'certificates' value, if present.
(WebDriver::WebDriverService::platformParseCapabilities const):
Properly parse the 'certificates' value, if present, and extract the
host-certificate pairs.
[GTK][WPE] WebDriver: handle acceptInsecureCertificates capability https://bugs.webkit.org/show_bug.cgi?id=186560 Reviewed by Brian Burg. Source/JavaScriptCore: Add SessionCapabilities struct to Client class and unify requestAutomationSession() methods into a single one that always receives the session capabilities. * inspector/remote/RemoteInspector.h: * inspector/remote/RemoteInspectorConstants.h: * inspector/remote/cocoa/RemoteInspectorCocoa.mm: (Inspector::RemoteInspector::receivedAutomationSessionRequestMessage): Move the parsing of mac capabilities from WebKit here and fill the SessionCapabilities instead. * inspector/remote/glib/RemoteInspectorGlib.cpp: (Inspector::RemoteInspector::requestAutomationSession): Pass SessionCapabilities to the client. * inspector/remote/glib/RemoteInspectorServer.cpp: (Inspector::RemoteInspectorServer::startAutomationSession): Process SessionCapabilities. * inspector/remote/glib/RemoteInspectorServer.h: Source/WebDriver: Send session capabilities as part of the StartAutomationSession message. For now only acceptInsecureCerts capability is sent. * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::startAutomationSession): * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformCapabilities): Remove default value of acceptInsecureCerts, since that's now handled by the browser. * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformCapabilities): Ditto. Source/WebKit: * UIProcess/API/glib/WebKitAutomationSession.cpp: (webkitAutomationSessionCreate): Check the acceptInsecureCertificates capability and set the TLS error policy in the WebContext accordingly if needed. * UIProcess/API/glib/WebKitAutomationSessionPrivate.h: * UIProcess/API/glib/WebKitWebContext.cpp: * UIProcess/Cocoa/AutomationClient.h: * UIProcess/Cocoa/AutomationClient.mm: (WebKit::AutomationClient::requestAutomationSession): Use SessionCapabilities to fill the session configuration. (WebKit::AutomationClient::requestAutomationSessionWithCapabilities): Deleted. Canonical link: https://commits.webkit.org/201942@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-14 07:23:40 +00:00
2018-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WPE] WebDriver: handle acceptInsecureCertificates capability
https://bugs.webkit.org/show_bug.cgi?id=186560
Reviewed by Brian Burg.
Send session capabilities as part of the StartAutomationSession message. For now only acceptInsecureCerts
capability is sent.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::startAutomationSession):
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformCapabilities): Remove default value of acceptInsecureCerts, since that's
now handled by the browser.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformCapabilities): Ditto.
[WPE] Add a MiniBrowser and use it to run WebDriver tests https://bugs.webkit.org/show_bug.cgi?id=186345 Reviewed by Žan Doberšek. .: Add an option to enable building the MiniBrowser. * Source/cmake/FindWaylandProtocols.cmake: Added. * Source/cmake/OptionsWPE.cmake: Source/WebDriver: Use MiniBrowser instead of dyz as the default WebDriver browser for WPE. * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformParseCapabilities const): Tools: Most of the code is based on dyz and gtk MiniBrowser. This patch adds a new internal library WPEToolingBackends, including the headless view backend and a new window backend to be used by the MiniBrowser. MiniBrowser can also run in headless mode, by using the headless backend instead of the window one, which will allow us to run the WebDriver tests in the bots. * CMakeLists.txt: * MiniBrowser/wpe/CMakeLists.txt: Added. * MiniBrowser/wpe/main.cpp: Added. (automationStartedCallback): (createViewBackend): (main): * Scripts/run-minibrowser: Remove WPE specific code. * Scripts/run-webdriver-tests: Add headless display-server option. * Scripts/webkitdirs.pm: (launcherName): Remove WPE specific code. * Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py: (WebDriverWPE.browser_name): Return MiniBrowser. (WebDriverWPE.browser_path): Return the path to the MiniBrowser in build dir. (WebDriverWPE.browser_args): Add --headless when running in headless mode. (WebDriverWPE.capabilities): Use the full browser path. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py: (WebDriverTestRunnerSelenium.collect_tests): Fix early return value. * TestWebKitAPI/PlatformWPE.cmake: Use WPEToolingBackends instead of HeadlessViewBackend. * TestWebKitAPI/PlatformWebView.h: Ditto. * TestWebKitAPI/glib/PlatformWPE.cmake: Ditto * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::createWebViewBackend): Ditto. * TestWebKitAPI/wpe/PlatformWebViewWPE.cpp: (TestWebKitAPI::PlatformWebView::initialize): Ditto. * WebKitTestRunner/PlatformWPE.cmake: Ditto. * WebKitTestRunner/PlatformWebView.h: Ditto. * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: (WTR::PlatformWebView::PlatformWebView): Ditto. * wpe/HeadlessViewBackend/CMakeLists.txt: Removed. * wpe/backends/CMakeLists.txt: Added. * wpe/backends/HeadlessViewBackend.cpp: Renamed from Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.cpp. (WPEToolingBackends::getEGLDisplay): (WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend): (WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend): (WPEToolingBackends::HeadlessViewBackend::createSnapshot): (WPEToolingBackends::HeadlessViewBackend::performUpdate): (WPEToolingBackends::HeadlessViewBackend::displayBuffer): * wpe/backends/HeadlessViewBackend.h: Renamed from Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.h. * wpe/backends/ViewBackend.cpp: Added. (WPEToolingBackends::ViewBackend::ViewBackend): (WPEToolingBackends::ViewBackend::~ViewBackend): (WPEToolingBackends::ViewBackend::initialize): (WPEToolingBackends::ViewBackend::setInputClient): (WPEToolingBackends::ViewBackend::backend const): (WPEToolingBackends::ViewBackend::dispatchInputPointerEvent): (WPEToolingBackends::ViewBackend::dispatchInputAxisEvent): (WPEToolingBackends::ViewBackend::dispatchInputKeyboardEvent): * wpe/backends/ViewBackend.h: Added. * wpe/backends/WindowViewBackend.cpp: Added. (WPEToolingBackends::WindowViewBackend::WindowViewBackend): (WPEToolingBackends::WindowViewBackend::~WindowViewBackend): (WPEToolingBackends::WindowViewBackend::displayBuffer): (WPEToolingBackends::WindowViewBackend::handleKeyEvent): * wpe/backends/WindowViewBackend.h: Added. * wpe/jhbuild.modules: Remove dyz and add wayland-protocols. Canonical link: https://commits.webkit.org/201827@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232670 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-11 06:43:14 +00:00
2018-06-10 Carlos Garcia Campos <cgarcia@igalia.com>
[WPE] Add a MiniBrowser and use it to run WebDriver tests
https://bugs.webkit.org/show_bug.cgi?id=186345
Reviewed by Žan Doberšek.
Use MiniBrowser instead of dyz as the default WebDriver browser for WPE.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformParseCapabilities const):
2018-06-04 Carlos Garcia Campos <cgarcia@igalia.com>
[WPE] WebDriver: stop making mandatory to provide a browser path if wpe:browserOptions is present in capabilities
https://bugs.webkit.org/show_bug.cgi?id=186264
Reviewed by Žan Doberšek.
Everything should be optional. Do not consider invalid to not provide a browser binary when wpe:browserOptions
is present.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformParseCapabilities const):
WebDriver: implement maximize, minimize and fullscreen window commands https://bugs.webkit.org/show_bug.cgi?id=180398 Reviewed by Brian Burg. Source/WebDriver: * CMakeLists.txt: Add EnterFullscreen.js to the build. * Session.cpp: (WebDriver::Session::maximizeWindow): (WebDriver::Session::minimizeWindow): (WebDriver::Session::fullscreenWindow): * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::maximizeWindow): (WebDriver::WebDriverService::minimizeWindow): (WebDriver::WebDriverService::fullscreenWindow): * WebDriverService.h: Source/WebKit: * UIProcess/API/APIAutomationSessionClient.h: (API::AutomationSessionClient::requestMaximizeWindowOfPage): Added to allow clients maximize the window. * UIProcess/API/glib/WebKitAutomationSession.cpp: * UIProcess/API/glib/WebKitWebViewPrivate.h: * UIProcess/API/gtk/WebKitWebViewGtk.cpp: (WindowStateEvent::WindowStateEvent): Struct to handle window state events. (WindowStateEvent::~WindowStateEvent): Complete the event. (WindowStateEvent::complete): Call the completion handler is not called already. (windowStateEventCallback): Handle window state event changes. (webkitWebViewMaximizeWindow): Try to maximize the window and wait for the event. (webkitWebViewMinimizeWindow): Try to minimize the window and wait for the event. (webkitWebViewRestoreWindow): Try to unmaximize or unminimize the window and wait for the event. * UIProcess/API/wpe/WebKitWebViewWPE.cpp: (webkitWebViewMaximizeWindow): (webkitWebViewMinimizeWindow): (webkitWebViewRestoreWindow): * UIProcess/Automation/Automation.json: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::maximizeWindowOfBrowsingContext): Exit fullscreen, restore the window and then maximize it. (WebKit::WebAutomationSession::maximizeWindowForPage): Ask the client to maximize the window of page. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/atoms/EnterFullscreen.js: (enterFullscreen): Return early if fullscreen is disabled or if window is already in fullscreen. Tools: * Scripts/webkitpy/port/xvfbdriver.py: (XvfbDriver._setup_environ_for_test): Set UNDER_XVFB environment variable when running under Xvfb. WebDriverTests: Remove expectations for tests that are passing now. * TestExpectations.json: Canonical link: https://commits.webkit.org/201384@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232150 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-24 08:54:37 +00:00
2018-05-24 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement maximize, minimize and fullscreen window commands
https://bugs.webkit.org/show_bug.cgi?id=180398
Reviewed by Brian Burg.
* CMakeLists.txt: Add EnterFullscreen.js to the build.
* Session.cpp:
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::maximizeWindow):
(WebDriver::WebDriverService::minimizeWindow):
(WebDriver::WebDriverService::fullscreenWindow):
* WebDriverService.h:
2018-05-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: implement AutomationSessionClient::didDisconnectFromRemote
https://bugs.webkit.org/show_bug.cgi?id=185866
Reviewed by Brian Burg.
Close the dbus connection when receiving an empty target list.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::setTargetList):
2018-05-21 Olivier Blin <olivier.blin@softathome.com>
[WPE][WebDriver] add ICU include dirs
https://bugs.webkit.org/show_bug.cgi?id=185824
Reviewed by Konstantin Tokarev.
WebDriver does not build in the WPE port when ICU headers are in a non-default directory.
* PlatformWPE.cmake: Add ICU include dirs
WebDriver: implement advance user interactions https://bugs.webkit.org/show_bug.cgi?id=174616 Reviewed by Brian Burg. Source/WebDriver: Add initial implementation of action commands. * Actions.h: Added. (WebDriver::Action::Action): * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): Handle MoveTargetOutOfBounds error. (WebDriver::CommandResult::httpStatusCode const): Ditto. (WebDriver::CommandResult::errorString const): Ditto. * CommandResult.h: * Session.cpp: (WebDriver::Session::webElementIdentifier): Helper to return the web element id. (WebDriver::Session::createElement): Use webElementIdentifier(). (WebDriver::Session::extractElementID): Ditto. (WebDriver::Session::virtualKeyForKeySequence): Add more kay codes includes in the spec. (WebDriver::mouseButtonForAutomation): Helper to get the mouse button string to pass to automation. (WebDriver::Session::performMouseInteraction): Use mouseButtonForAutomation(). (WebDriver::Session::getOrCreateInputSource): Ensure an input source for given id and add it to the active input sources. (WebDriver::Session::inputSourceState): Return the current input source state for the given id. (WebDriver::Session::computeInViewCenterPointOfElements): Get the in view center point for the list of elements given. (WebDriver::automationSourceType): Helper to get the input source type to pass to automation. (WebDriver::Session::performActions): Process the list of action by tick and generate a list of states to pass to automation. (WebDriver::Session::releaseActions): Reset input sources and state table and send a message to automation. * Session.h: * WebDriverService.cpp: (WebDriver::processPauseAction): (WebDriver::processNullAction): (WebDriver::processKeyAction): (WebDriver::actionMouseButton): (WebDriver::processPointerAction): (WebDriver::processPointerParameters): (WebDriver::processInputActionSequence): (WebDriver::WebDriverService::performActions): (WebDriver::WebDriverService::releaseActions): * WebDriverService.h: Source/WebKit: Handle origin in case of mouse move transitions. * UIProcess/Automation/Automation.json: Add MouseMoveOrigin enum and pass it as parameter of InputSourceState together with optional node handle. Also pass the frame handle to performInteractionSequence command to find the node in the current browsing context. * UIProcess/Automation/SimulatedInputDispatcher.cpp: (WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ensure we reset the location. (WebKit::SimulatedInputDispatcher::resolveLocation): Helper to resolve destination location based on current location and mouse move origin. (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Use resolveLocation() in mouse transitions. (WebKit::SimulatedInputDispatcher::run): Receive and save the frame ID. (WebKit::SimulatedInputDispatcher::finishDispatching): Reset the frame ID. * UIProcess/Automation/SimulatedInputDispatcher.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::computeElementLayout): Use even numbers for the callback ID to not conflict with viewportInViewCenterPointOfElement() callbacks. (WebKit::WebAutomationSession::didComputeElementLayout): Handle computeElementLayout() or viewportInViewCenterPointOfElement() requests by calling the right callback depending on whether the ID is odd or even number. (WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): Send ComputeElementLayout message to the WebProcess using odd numbers for the callback ID to not conflict with computeElementLayout() callbacks. (WebKit::WebAutomationSession::performInteractionSequence): Handle the mouse origin and element handle. (WebKit::WebAutomationSession::cancelInteractionSequence): Pass the frame ID to the input dispatcher. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/WebAutomationSessionMacros.h: WebDriverTests: Update test expectations. * TestExpectations.json: Canonical link: https://commits.webkit.org/200988@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-10 06:52:31 +00:00
2018-05-09 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement advance user interactions
https://bugs.webkit.org/show_bug.cgi?id=174616
Reviewed by Brian Burg.
Add initial implementation of action commands.
* Actions.h: Added.
(WebDriver::Action::Action):
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle MoveTargetOutOfBounds error.
(WebDriver::CommandResult::httpStatusCode const): Ditto.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::webElementIdentifier): Helper to return the web element id.
(WebDriver::Session::createElement): Use webElementIdentifier().
(WebDriver::Session::extractElementID): Ditto.
(WebDriver::Session::virtualKeyForKeySequence): Add more kay codes includes in the spec.
(WebDriver::mouseButtonForAutomation): Helper to get the mouse button string to pass to automation.
(WebDriver::Session::performMouseInteraction): Use mouseButtonForAutomation().
(WebDriver::Session::getOrCreateInputSource): Ensure an input source for given id and add it to the active input
sources.
(WebDriver::Session::inputSourceState): Return the current input source state for the given id.
(WebDriver::Session::computeInViewCenterPointOfElements): Get the in view center point for the list of elements given.
(WebDriver::automationSourceType): Helper to get the input source type to pass to automation.
(WebDriver::Session::performActions): Process the list of action by tick and generate a list of states to pass
to automation.
(WebDriver::Session::releaseActions): Reset input sources and state table and send a message to automation.
* Session.h:
* WebDriverService.cpp:
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::actionMouseButton):
(WebDriver::processPointerAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):
(WebDriver::WebDriverService::releaseActions):
* WebDriverService.h:
2018-03-05 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: Also ignore NoSuchwindow errors when waiting for navigation to complete
https://bugs.webkit.org/show_bug.cgi?id=183280
Reviewed by Brian Burg.
We currently ignore NoSuchFrame, but navigation or previous command might have closed the window too.
Fixes: imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testClickingOnAButtonThatClosesAnOpenWindowDoesNotCauseTheBrowserToHang
imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testCanCallGetWindowHandlesAfterClosingAWindow
* Session.cpp:
(WebDriver::Session::waitForNavigationToComplete): Ignore NoSuchWindow errors.
Web Automation: combine session commands to resize and move top-level browsing contexts https://bugs.webkit.org/show_bug.cgi?id=182749 <rdar://problem/37515170> Reviewed by Andy Estes. Source/WebDriver: The new command can take either size or origin. Just have one session command for use by endpoints. * Session.cpp: (WebDriver::Session::setWindowRect): (WebDriver::Session::moveToplevelBrowsingContextWindow): Deleted. (WebDriver::Session::resizeToplevelBrowsingContextWindow): Deleted. * Session.h: Source/WebKit: Since moving and resizing the window are both accomplished by setting the window frame, and the W3C WebDriver specification has a Get/Set Window Rect command, it's time to deduplicate these two methods which basically do the same thing. Adopt modern JSON::Value getters that return std::optional<float>. I have been trying to move the protocol over to this style wholesale, but it is probably easier to do this conversion in smaller pieces. And so, I have started to do so. This change is covered by existing WebDriver tests. * UIProcess/Automation/Automation.json: Add new command. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Added. (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): Deleted. (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): Deleted. * UIProcess/Automation/WebAutomationSession.h: Source/WTF: * wtf/JSONValues.h: add a getDouble() implementation that returns a std::optional<T> rather than using an out-parameter. I'd like to move more code to this style. Canonical link: https://commits.webkit.org/198738@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-02-21 04:13:42 +00:00
2018-02-14 Brian Burg <bburg@apple.com>
Web Automation: combine session commands to resize and move top-level browsing contexts
https://bugs.webkit.org/show_bug.cgi?id=182749
<rdar://problem/37515170>
Reviewed by Andy Estes.
The new command can take either size or origin. Just have one session command for use by endpoints.
* Session.cpp:
(WebDriver::Session::setWindowRect):
(WebDriver::Session::moveToplevelBrowsingContextWindow): Deleted.
(WebDriver::Session::resizeToplevelBrowsingContextWindow): Deleted.
* Session.h:
2018-01-30 Don Olmstead <don.olmstead@sony.com>
[CMake] Make WTF headers copies
https://bugs.webkit.org/show_bug.cgi?id=182274
Reviewed by Alex Christensen.
* CMakeLists.txt:
2018-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: evaluateJavaScriptFunction should return null when return value is undefined
https://bugs.webkit.org/show_bug.cgi?id=180350
Reviewed by Carlos Alberto Lopez Perez.
Stop handling the empty string as a special case of evaluateJavaScriptFunction result.
* Session.cpp:
(WebDriver::Session::executeScript):
2018-01-26 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: service hangs after a browser crash
https://bugs.webkit.org/show_bug.cgi?id=182170
Reviewed by Carlos Alberto Lopez Perez.
This is currently happening in the GTK+ debug bot. There's a test that makes the browser crash due to an assert,
hanging the whole process and preventing the rest of the tests from running. When the browser crashes, we
correctly handle the pending requests, by completing them with an error. However, if the client tries to send
another command we fail to send the message to the browser and the reply is never sent to the client. In the
case of the tests, delete session command is sent, but never gets a reply.
* Session.cpp:
(WebDriver::Session::isConnected const): Return whether the session is connected to the browser.
* Session.h:
* SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend): Pass the message ID to SessionHost::sendMessageToBackend().
* SessionHost.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::deleteSession): Ignore unknown errors if the session is no longer connected.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::sendMessageToBackend): Handle errors when sending the command by completing the request
with an error.
2018-01-26 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: timeouts value and cookie expiry should be limited to max safe integer
https://bugs.webkit.org/show_bug.cgi?id=182167
Reviewed by Žan Doberšek.
This changed recently in the spec, but our implementation was wrong in any case since we were limiting to
INT_MAX. Use valueAsNumberInRange() to ensure we get a valid double value in the given range, and then convert
to unsigned if it's a valid integer.
Fixes: imported/w3c/webdriver/tests/sessions/new_session/create_firstMatch.py::test_valid[timeouts-value10]
imported/w3c/webdriver/tests/sessions/new_session/create_alwaysMatch.py::test_valid[timeouts-value10]
* Session.h:
* WebDriverService.cpp:
(WebDriver::valueAsNumberInRange):
(WebDriver::unsignedValue):
(WebDriver::deserializeTimeouts):
(WebDriver::deserializeCookie):
WebDriver: test imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_browserName fails https://bugs.webkit.org/show_bug.cgi?id=181985 Reviewed by Carlos Alberto Lopez Perez. Source/WebDriver: The problem is that we are considering a failure when the browser name doesn't match the capabilities, instead of trying with the next merged capabilities. This is happening because when processing capabilities, we only match the ones that we know without having to launch the browser. Browser name and version are provided by the browser during the session initialization. This patch reworks the session creation to make it possible to try with the next merged capabilities when matching fails after the browser is launched. * Session.cpp: (WebDriver::Session::Session): Initialize timeouts from capabilities, because now we have the final capabilities here. (WebDriver::Session::id const): Return the session ID from the SessionHost, since it's now created there. (WebDriver::Session::createTopLevelBrowsingContext): Do not start the session, it has already been started a this point. (WebDriver::Session::createElement): Use id() instead of m_id. * Session.h: * SessionHost.h: (WebDriver::SessionHost::sessionID const): Return the session ID. * WebDriverService.cpp: (WebDriver::WebDriverService::matchCapabilities const): Remove the error handling, and return a boolean instead, since not mathing is not an error. (WebDriver::WebDriverService::processCapabilities const): Return a list of matched capabilities, instead of the JSON object corresponding to the first match. (WebDriver::WebDriverService::newSession): Use helper connectToBrowser(). (WebDriver::WebDriverService::connectToBrowser): Create a session host for the next merged capabilities and connect to the browser. (WebDriver::WebDriverService::createSession): Start a new automation session. If capabilities didn't match, start the process again calling connectToBrowser(), otherwise create the new session and top level. * WebDriverService.h: * glib/SessionHostGlib.cpp: (WebDriver::matchBrowserOptions): Helper to check browser options. (WebDriver::SessionHost::matchCapabilities): Use matchBrowserOptions() and return true or false instead of an optional error message. (WebDriver::SessionHost::startAutomationSession): Create the session ID here and notify the caller in case capabilities didn't match. (WebDriver::SessionHost::setTargetList): Notify that capabilities did match. * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformMatchCapability const): Make it return bool. * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformMatchCapability const): Ditto. WebDriverTests: Remove expectations for imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_browserName. * TestExpectations.json: Canonical link: https://commits.webkit.org/197938@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-25 13:52:40 +00:00
2018-01-25 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: test imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_browserName fails
https://bugs.webkit.org/show_bug.cgi?id=181985
Reviewed by Carlos Alberto Lopez Perez.
The problem is that we are considering a failure when the browser name doesn't match the capabilities, instead
of trying with the next merged capabilities. This is happening because when processing capabilities, we only
match the ones that we know without having to launch the browser. Browser name and version are provided by the
browser during the session initialization. This patch reworks the session creation to make it possible to try
with the next merged capabilities when matching fails after the browser is launched.
* Session.cpp:
(WebDriver::Session::Session): Initialize timeouts from capabilities, because now we have the final capabilities here.
(WebDriver::Session::id const): Return the session ID from the SessionHost, since it's now created there.
(WebDriver::Session::createTopLevelBrowsingContext): Do not start the session, it has already been started a
this point.
(WebDriver::Session::createElement): Use id() instead of m_id.
* Session.h:
* SessionHost.h:
(WebDriver::SessionHost::sessionID const): Return the session ID.
* WebDriverService.cpp:
(WebDriver::WebDriverService::matchCapabilities const): Remove the error handling, and return a boolean instead,
since not mathing is not an error.
(WebDriver::WebDriverService::processCapabilities const): Return a list of matched capabilities, instead of the
JSON object corresponding to the first match.
(WebDriver::WebDriverService::newSession): Use helper connectToBrowser().
(WebDriver::WebDriverService::connectToBrowser): Create a session host for the next merged capabilities and
connect to the browser.
(WebDriver::WebDriverService::createSession): Start a new automation session. If capabilities didn't match,
start the process again calling connectToBrowser(), otherwise create the new session and top level.
* WebDriverService.h:
* glib/SessionHostGlib.cpp:
(WebDriver::matchBrowserOptions): Helper to check browser options.
(WebDriver::SessionHost::matchCapabilities): Use matchBrowserOptions() and return true or false instead of an
optional error message.
(WebDriver::SessionHost::startAutomationSession): Create the session ID here and notify the caller in case
capabilities didn't match.
(WebDriver::SessionHost::setTargetList): Notify that capabilities did match.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformMatchCapability const): Make it return bool.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformMatchCapability const): Ditto.
2018-01-25 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: test imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_platformName fails
https://bugs.webkit.org/show_bug.cgi?id=181984
Reviewed by Carlos Alberto Lopez Perez.
Platform name is expected to be lower case, so do not compre ignoring case.
Fixes: imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_platformName
* WebDriverService.cpp:
(WebDriver::WebDriverService::matchCapabilities const):
2018-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: several tests in imported/w3c/webdriver/tests/sessions/new_session/merge.py are failing
https://bugs.webkit.org/show_bug.cgi?id=180407
Reviewed by Carlos Alberto Lopez Perez.
This is actually a bug in the spec, see https://github.com/w3c/webdriver/issues/1203. It seems the idea in any
case is that we should check all the firstMatch capabilities before matching them, and return if there's any
error.
* WebDriverService.cpp:
(WebDriver::WebDriverService::mergeCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):
2018-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: test imported/w3c/webdriver/tests/sessions/new_session/response.py::test_timeouts fails
https://bugs.webkit.org/show_bug.cgi?id=180412
Reviewed by Carlos Alberto Lopez Perez.
Include all missing capabilities in the new session response message.
Fixes: imported/w3c/webdriver/tests/sessions/new_session/response.py::test_resp_capabilites
imported/w3c/webdriver/tests/sessions/new_session/response.py::test_resp_data
imported/w3c/webdriver/tests/sessions/new_session/response.py::test_timeouts
* Session.h:
(WebDriver::Session::scriptTimeout const):
(WebDriver::Session::pageLoadTimeout const):
(WebDriver::Session::implicitWaitTimeout const):
* WebDriverService.cpp:
(WebDriver::WebDriverService::newSession):
2018-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: matched capabilities should include setWindowRect
https://bugs.webkit.org/show_bug.cgi?id=180411
Reviewed by Carlos Alberto Lopez Perez.
Handle setWindowRect in capabilities. It's always true for GTK and false for WPE.
* Capabilities.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::newSession):
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformCapabilities):
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformCapabilities):
2018-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: test imported/selenium/py/test/selenium/webdriver/common/api_example_tests.py::testChangeWindowSize fails
https://bugs.webkit.org/show_bug.cgi?id=181728
Reviewed by Sergio Villar Senin.
Due to a copy-paste error we are getting the window height using the width variable.
Fixes: imported/selenium/py/test/selenium/webdriver/common/api_example_tests.py::testChangeWindowSize
imported/selenium/py/test/selenium/webdriver/common/position_and_size_tests.py::testShouldScrollPageAndGetCoordinatesOfAnElementThatIsOutOfViewPort
imported/w3c/webdriver/tests/get_window_rect.py::test_payload
imported/w3c/webdriver/tests/set_window_rect.py::test_width_height_floats
imported/w3c/webdriver/tests/set_window_rect.py::test_height_width
imported/w3c/webdriver/tests/set_window_rect.py::test_height_width_larger_than_max
imported/w3c/webdriver/tests/contexts/resizing_and_positioning.py::test_window_resize
* Session.cpp:
(WebDriver::Session::getToplevelBrowsingContextRect):
2018-01-22 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement get element CSS value command
https://bugs.webkit.org/show_bug.cgi?id=181736
Reviewed by Carlos Alberto Lopez Perez.
13.4 Get Element CSS Value
https://w3c.github.io/webdriver/webdriver-spec.html#get-element-css-value
Fixes: imported/selenium/py/test/selenium/webdriver/common/rendered_webelement_tests.py::testShouldPickUpStyleOfAnElement
imported/selenium/py/test/selenium/webdriver/common/rendered_webelement_tests.py::testShouldAllowInheritedStylesToBeUsed
* Session.cpp:
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getElementCSSValue):
* WebDriverService.h:
2018-01-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: test imported/w3c/webdriver/tests/sessions/new_session/response.py is crashing in the bots
https://bugs.webkit.org/show_bug.cgi?id=181904
Reviewed by Carlos Alberto Lopez Perez.
Handle the case of failing to launch the browser. The test is actually failing because it's sending wrong
capabilities, the driver tries to fall back to the default driver, but since WebKit is not installed in the
bots, it fails to find the MiniBrowser. The test needs to be fixed, but we shouldn't crash when the browser
can't be spawned for whatever reason in any case. This patch handles that case and changes the boolean result of
connectToBrowser to be an optional error string instead. This way we can provide more detailed error message
when we reject the session creation because the browser failed to start.
* SessionHost.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::newSession):
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::connectToBrowser):
(WebDriver::ConnectToBrowserAsyncData::ConnectToBrowserAsyncData):
(WebDriver::SessionHost::launchBrowser):
(WebDriver::SessionHost::setupConnection):
2018-01-11 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement get timeouts command
https://bugs.webkit.org/show_bug.cgi?id=181524
Reviewed by Žan Doberšek.
8.4 Get Timeouts
https://w3c.github.io/webdriver/webdriver-spec.html#get-timeouts
Also simplify the way timeouts are handled in Session. Stop using Timeouts struct, because once the session is
created the timeouts are no longer optional, they have a default value. Use individual members instead that are
initialized to their default values on construction and only overriden by capabilities or set timeouts command.
Fixes: imported/w3c/webdriver/tests/sessions/get_timeouts.py::test_get_timeouts
imported/w3c/webdriver/tests/sessions/get_timeouts.py::test_get_default_timeouts
imported/w3c/webdriver/tests/sessions/get_timeouts.py::test_get_new_timeouts
* Session.cpp:
(WebDriver::Session::Session):
(WebDriver::Session::getTimeouts):
(WebDriver::Session::setTimeouts):
(WebDriver::Session::go):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::findElements):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::executeScript):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getTimeouts):
* WebDriverService.h:
WebDriver: deserializeTimeouts() shouldn't reject double timeout values https://bugs.webkit.org/show_bug.cgi?id=181473 Reviewed by Carlos Garcia Campos. With these changes, the following tests are fixed: imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldTimeoutIfScriptDoesNotInvokeCallbackWithLongTimeout imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldDetectPageLoadsWhileWaitingOnAnAsyncScriptAndReturnAnError imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldBeAbleToExecuteAsynchronousScripts imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldImplicitlyWaitForASingleElement imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldStillFailToFindAnElementWhenImplicitWaitsAreEnabled imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldReturnAfterFirstAttemptToFindOneAfterDisablingImplicitWaits imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldImplicitlyWaitUntilAtLeastOneElementIsFoundWhenSearchingForMany imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldStillFailToFindAnElemenstWhenImplicitWaitsAreEnabled imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldReturnAfterFirstAttemptToFindManyAfterDisablingImplicitWaits imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testShouldWaitOnlyAsLongAsTimeoutSpecifiedWhenImplicitWaitsAreSet The following two tests regress, and will be looked into separately: imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_invalid imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_invalid * WebDriverService.cpp: (WebDriver::integerValue): Helper function that retrieves an integer value from a given JSON::Value object, if possible. (WebDriver::deserializeTimeouts): Timeout JSON value has to be converted to an integer, which is allowed if the value is of either Integer or Double type. Helper integerValue() function retrieves the integer value, in addition to ensuring that possible double value that we convert to an integer is already in integer form to begin with. Canonical link: https://commits.webkit.org/197341@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-01-10 16:16:22 +00:00
2018-01-10 Zan Dobersek <zdobersek@igalia.com>
WebDriver: deserializeTimeouts() shouldn't reject double timeout values
https://bugs.webkit.org/show_bug.cgi?id=181473
Reviewed by Carlos Garcia Campos.
With these changes, the following tests are fixed:
imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldTimeoutIfScriptDoesNotInvokeCallbackWithLongTimeout
imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldDetectPageLoadsWhileWaitingOnAnAsyncScriptAndReturnAnError
imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldBeAbleToExecuteAsynchronousScripts
imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldImplicitlyWaitForASingleElement
imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldStillFailToFindAnElementWhenImplicitWaitsAreEnabled
imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldReturnAfterFirstAttemptToFindOneAfterDisablingImplicitWaits
imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldImplicitlyWaitUntilAtLeastOneElementIsFoundWhenSearchingForMany
imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldStillFailToFindAnElemenstWhenImplicitWaitsAreEnabled
imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldReturnAfterFirstAttemptToFindManyAfterDisablingImplicitWaits
imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong
imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong
imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testShouldWaitOnlyAsLongAsTimeoutSpecifiedWhenImplicitWaitsAreSet
The following two tests regress, and will be looked into separately:
imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_invalid
imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_invalid
* WebDriverService.cpp:
(WebDriver::integerValue): Helper function that retrieves an integer value
from a given JSON::Value object, if possible.
(WebDriver::deserializeTimeouts): Timeout JSON value has to be converted to
an integer, which is allowed if the value is of either Integer or Double type.
Helper integerValue() function retrieves the integer value, in addition to
ensuring that possible double value that we convert to an integer is already
in integer form to begin with.
2017-12-15 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: add support for accept/dismiss and notify unhandled prompt behavior
https://bugs.webkit.org/show_bug.cgi?id=179999
Reviewed by Carlos Alberto Lopez Perez.
They work as accept and dismiss, but unexpected alert open is still reported.
18. User Prompts
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-known-prompt-handling-approaches-table
* Capabilities.h: Add DismissAndNotify and AcceptAndNotify to UnhandledPromptBehavior enum.
* Session.cpp:
(WebDriver::Session::handleUnexpectedAlertOpen): Move default implementation to dismissAndNotifyAlert and
acceptAndNotifyAlert and use dismissAndNotifyAlert by default.
(WebDriver::Session::dismissAndNotifyAlert):
(WebDriver::Session::acceptAndNotifyAlert):
* Session.h:
* WebDriverService.cpp:
(WebDriver::deserializeUnhandledPromptBehavior): Handle accept/dismiss and notify.
(WebDriver::WebDriverService::newSession): Ditto.
2017-12-11 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: get active element should return no such element error when there isn't an active element
https://bugs.webkit.org/show_bug.cgi?id=180421
Reviewed by Brian Burg.
We currently return unknown error.
Fixes: imported/w3c/webdriver/tests/element_retrieval/get_active_element.py::test_missing_document_element
* Session.cpp:
(WebDriver::Session::getActiveElement):
2017-12-04 Brian Burg <bburg@apple.com>
Web Automation: add flag to preserve legacy page screenshot behavior
https://bugs.webkit.org/show_bug.cgi?id=180313
<rdar://problem/34379930>
Reviewed by Joseph Pecoraro.
Set the clipToViewport flag to true when sending Automation.takeScreenshot.
This preserves the current behavior for this driver implementation.
* Session.cpp:
(WebDriver::Session::takeScreenshot):
2017-12-04 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement element property command
https://bugs.webkit.org/show_bug.cgi?id=180244
Reviewed by Brian Burg.
13.3 Get Element Property
https://w3c.github.io/webdriver/webdriver-spec.html#get-element-property
Fixes: imported/w3c/webdriver/tests/state/get_element_property.py::test_no_browsing_context
imported/w3c/webdriver/tests/state/get_element_property.py::test_handle_prompt_dismiss
imported/w3c/webdriver/tests/state/get_element_property.py::test_handle_prompt_accept
imported/w3c/webdriver/tests/state/get_element_property.py::test_handle_prompt_missing_value
imported/w3c/webdriver/tests/state/get_element_property.py::test_element_stale
* Session.cpp:
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getElementProperty):
* WebDriverService.h:
WebDriver: handle user prompts shown while executing scripts https://bugs.webkit.org/show_bug.cgi?id=179979 Reviewed by Brian Burg. Source/WebDriver: 15.2 Executing Script https://w3c.github.io/webdriver/webdriver-spec.html#executing-script The rules to execute a function body are as follows. The algorithm will return success with the JSON representation of the function’s return value, or an error if the evaluation of the function results in a JavaScript exception being thrown or at any point during its execution an unhandled user prompt appears. If at any point during the algorithm a user prompt appears, the user prompt handler must be invoked. If its return value is an error, it must immediately return with that error and abort all subsequent substeps of this algorithm. This will be covered by new WPT tests that will be available after the next upgrade. * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): Handle UnexpectedAlertOpen internal error. * Session.cpp: (WebDriver::Session::handleUserPrompts): Move code to handleUnexpectedAlertOpen() and call it instead. (WebDriver::Session::handleUnexpectedAlertOpen): Code moved here to be used also by executeScript(). (WebDriver::Session::executeScript): In case of UnexpectedAlertOpen error, call handleUnexpectedAlertOpen(). * Session.h: Source/WebKit: * UIProcess/Automation/Automation.json: Add UnexpectedAlertOpen error. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::willShowJavaScriptDialog): Finish pending evaluateJavaScriptFunction operations with UnexpectedAlertOpen error. Canonical link: https://commits.webkit.org/196292@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-02 15:13:29 +00:00
2017-12-02 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: handle user prompts shown while executing scripts
https://bugs.webkit.org/show_bug.cgi?id=179979
Reviewed by Brian Burg.
15.2 Executing Script
https://w3c.github.io/webdriver/webdriver-spec.html#executing-script
The rules to execute a function body are as follows. The algorithm will return success with the JSON
representation of the functions return value, or an error if the evaluation of the function results in a
JavaScript exception being thrown or at any point during its execution an unhandled user prompt appears.
If at any point during the algorithm a user prompt appears, the user prompt handler must be invoked. If its
return value is an error, it must immediately return with that error and abort all subsequent substeps of this
algorithm.
This will be covered by new WPT tests that will be available after the next upgrade.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle UnexpectedAlertOpen internal error.
* Session.cpp:
(WebDriver::Session::handleUserPrompts): Move code to handleUnexpectedAlertOpen() and call it instead.
(WebDriver::Session::handleUnexpectedAlertOpen): Code moved here to be used also by executeScript().
(WebDriver::Session::executeScript): In case of UnexpectedAlertOpen error, call handleUnexpectedAlertOpen().
* Session.h:
2017-12-01 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement status command
https://bugs.webkit.org/show_bug.cgi?id=180133
Reviewed by Brian Burg.
8.3 Status
https://w3c.github.io/webdriver/webdriver-spec.html#status
Fixes: imported/w3c/webdriver/tests/sessions/status.py::test_get_status_no_session
imported/w3c/webdriver/tests/sessions/status.py::test_status_with_session_running_on_endpoint_node
* WebDriverService.cpp:
(WebDriver::WebDriverService::status):
* WebDriverService.h:
WebDriver: end point nodes are only allowed to have one session https://bugs.webkit.org/show_bug.cgi?id=180131 Reviewed by Brian Burg. We are currently keeping a map of sessions, but our service is always and end point node, so only one session can exist at a time. Make findSessionOrCompleteWithError() return a boolean instead, failing in case the sessionID parameter is not found or it doesn't match the current session. Replace the session map and active session pointer with a single session member and return SessionNotCreated error when new session command is received and there's an active session. 8. Sessions A remote end has an associated maximum active sessions (an integer) that defines the number of active sessions that are supported. This may be “unlimited” for intermediary nodes, but must be exactly one for a remote end that is an endpoint node. https://w3c.github.io/webdriver/webdriver-spec.html#dfn-maximum-active-sessions Fixes: imported/w3c/webdriver/tests/sessions/new_session/default_values.py::test_repeat_new_session * WebDriverService.cpp: (WebDriver::WebDriverService::findSessionOrCompleteWithError): (WebDriver::WebDriverService::newSession): (WebDriver::WebDriverService::deleteSession): (WebDriver::WebDriverService::status): (WebDriver::WebDriverService::setTimeouts): (WebDriver::WebDriverService::go): (WebDriver::WebDriverService::getCurrentURL): (WebDriver::WebDriverService::back): (WebDriver::WebDriverService::forward): (WebDriver::WebDriverService::refresh): (WebDriver::WebDriverService::getTitle): (WebDriver::WebDriverService::getWindowHandle): (WebDriver::WebDriverService::setWindowRect): (WebDriver::WebDriverService::closeWindow): (WebDriver::WebDriverService::switchToWindow): (WebDriver::WebDriverService::getWindowHandles): (WebDriver::WebDriverService::switchToFrame): (WebDriver::WebDriverService::switchToParentFrame): (WebDriver::findStrategyAndSelectorOrCompleteWithError): (WebDriver::WebDriverService::findElement): (WebDriver::WebDriverService::findElements): (WebDriver::WebDriverService::findElementFromElement): (WebDriver::WebDriverService::findElementsFromElement): (WebDriver::WebDriverService::getActiveElement): (WebDriver::WebDriverService::isElementSelected): (WebDriver::WebDriverService::getElementAttribute): (WebDriver::WebDriverService::getElementText): (WebDriver::WebDriverService::getElementTagName): (WebDriver::WebDriverService::getElementRect): (WebDriver::WebDriverService::isElementEnabled): (WebDriver::WebDriverService::isElementDisplayed): (WebDriver::WebDriverService::elementClick): (WebDriver::WebDriverService::elementClear): (WebDriver::WebDriverService::elementSendKeys): (WebDriver::findScriptAndArgumentsOrCompleteWithError): (WebDriver::WebDriverService::executeScript): (WebDriver::WebDriverService::executeAsyncScript): (WebDriver::WebDriverService::getAllCookies): (WebDriver::WebDriverService::getNamedCookie): (WebDriver::deserializeCookie): (WebDriver::WebDriverService::addCookie): (WebDriver::WebDriverService::deleteCookie): (WebDriver::WebDriverService::deleteAllCookies): (WebDriver::WebDriverService::dismissAlert): (WebDriver::WebDriverService::acceptAlert): (WebDriver::WebDriverService::getAlertText): (WebDriver::WebDriverService::sendAlertText): (WebDriver::WebDriverService::takeScreenshot): (WebDriver::WebDriverService::takeElementScreenshot): * WebDriverService.h: Canonical link: https://commits.webkit.org/196235@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-01 09:47:15 +00:00
2017-12-01 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: end point nodes are only allowed to have one session
https://bugs.webkit.org/show_bug.cgi?id=180131
Reviewed by Brian Burg.
We are currently keeping a map of sessions, but our service is always and end point node, so only one session
can exist at a time. Make findSessionOrCompleteWithError() return a boolean instead, failing in case the sessionID
parameter is not found or it doesn't match the current session. Replace the session map and active session
pointer with a single session member and return SessionNotCreated error when new session command is received and
there's an active session.
8. Sessions
A remote end has an associated maximum active sessions (an integer) that defines the number of active sessions
that are supported. This may be “unlimited” for intermediary nodes, but must be exactly one for a remote end
that is an endpoint node.
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-maximum-active-sessions
Fixes: imported/w3c/webdriver/tests/sessions/new_session/default_values.py::test_repeat_new_session
* WebDriverService.cpp:
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::deleteSession):
(WebDriver::WebDriverService::status):
(WebDriver::WebDriverService::setTimeouts):
(WebDriver::WebDriverService::go):
(WebDriver::WebDriverService::getCurrentURL):
(WebDriver::WebDriverService::back):
(WebDriver::WebDriverService::forward):
(WebDriver::WebDriverService::refresh):
(WebDriver::WebDriverService::getTitle):
(WebDriver::WebDriverService::getWindowHandle):
(WebDriver::WebDriverService::setWindowRect):
(WebDriver::WebDriverService::closeWindow):
(WebDriver::WebDriverService::switchToWindow):
(WebDriver::WebDriverService::getWindowHandles):
(WebDriver::WebDriverService::switchToFrame):
(WebDriver::WebDriverService::switchToParentFrame):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::WebDriverService::findElement):
(WebDriver::WebDriverService::findElements):
(WebDriver::WebDriverService::findElementFromElement):
(WebDriver::WebDriverService::findElementsFromElement):
(WebDriver::WebDriverService::getActiveElement):
(WebDriver::WebDriverService::isElementSelected):
(WebDriver::WebDriverService::getElementAttribute):
(WebDriver::WebDriverService::getElementText):
(WebDriver::WebDriverService::getElementTagName):
(WebDriver::WebDriverService::getElementRect):
(WebDriver::WebDriverService::isElementEnabled):
(WebDriver::WebDriverService::isElementDisplayed):
(WebDriver::WebDriverService::elementClick):
(WebDriver::WebDriverService::elementClear):
(WebDriver::WebDriverService::elementSendKeys):
(WebDriver::findScriptAndArgumentsOrCompleteWithError):
(WebDriver::WebDriverService::executeScript):
(WebDriver::WebDriverService::executeAsyncScript):
(WebDriver::WebDriverService::getAllCookies):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::WebDriverService::deleteAllCookies):
(WebDriver::WebDriverService::dismissAlert):
(WebDriver::WebDriverService::acceptAlert):
(WebDriver::WebDriverService::getAlertText):
(WebDriver::WebDriverService::sendAlertText):
(WebDriver::WebDriverService::takeScreenshot):
(WebDriver::WebDriverService::takeElementScreenshot):
* WebDriverService.h:
2017-11-30 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: locator strategy should be validated before trying to find elements
https://bugs.webkit.org/show_bug.cgi?id=180187
Reviewed by Carlos Alberto Lopez Perez.
We currently rely on the js atom to raise an exception in case the locator strategy is not valid, but in case of
find element from element, if the element doesn't exist we fail with stale element error instead of invalid
argument as expected. So, let's validate the strategies when parsing them, which would also avoid going to the
browser in cae of invalid strategy.
Fixes: imported/w3c/webdriver/tests/retrieval/find_element_from_element.py::test_invalid_using_argument[a]
* WebDriverService.cpp:
(WebDriver::isValidStrategy):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
2017-11-30 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: remove elementSubmit command
https://bugs.webkit.org/show_bug.cgi?id=180186
Reviewed by Carlos Alberto Lopez Perez.
It's not in the spec, we had it only because selenium used it, but now it uses execute_script with custom code
to implement submit, so we can just remove it.
* Session.cpp:
(WebDriver::Session::elementSubmit): Deleted.
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::elementSubmit): Deleted.
* WebDriverService.h:
Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h https://bugs.webkit.org/show_bug.cgi?id=173793 Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-11-14 Source/JavaScriptCore: Reviewed by Joseph Pecoraro. Based on patch by Brian Burg. * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * bindings/ScriptValue.cpp: (Inspector::jsToInspectorValue): (Inspector::toInspectorValue): (Deprecated::ScriptValue::toInspectorValue const): * bindings/ScriptValue.h: * inspector/AsyncStackTrace.cpp: * inspector/ConsoleMessage.cpp: * inspector/ContentSearchUtilities.cpp: * inspector/DeprecatedInspectorValues.cpp: Added. * inspector/DeprecatedInspectorValues.h: Added. Keep the old symbols around in JavaScriptCore so that builds with the public iOS SDK continue to work. These older SDKs include a version of WebInspector.framework that expects to find InspectorArray and other symbols in JavaScriptCore.framework. * inspector/InjectedScript.cpp: (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::functionDetails): (Inspector::InjectedScript::getPreview): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::saveResult): (Inspector::InjectedScript::wrapCallFrames const): (Inspector::InjectedScript::wrapObject const): (Inspector::InjectedScript::wrapTable const): (Inspector::InjectedScript::previewValue const): (Inspector::InjectedScript::setExceptionValue): (Inspector::InjectedScript::clearExceptionValue): (Inspector::InjectedScript::inspectObject): (Inspector::InjectedScript::releaseObject): * inspector/InjectedScriptBase.cpp: (Inspector::InjectedScriptBase::makeCall): (Inspector::InjectedScriptBase::makeEvalCall): * inspector/InjectedScriptBase.h: * inspector/InjectedScriptManager.cpp: (Inspector::InjectedScriptManager::injectedScriptForObjectId): * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::CallbackBase::sendSuccess): (Inspector::BackendDispatcher::dispatch): (Inspector::BackendDispatcher::sendResponse): (Inspector::BackendDispatcher::sendPendingErrors): (Inspector::BackendDispatcher::getPropertyValue): (Inspector::castToInteger): (Inspector::castToNumber): (Inspector::BackendDispatcher::getInteger): (Inspector::BackendDispatcher::getDouble): (Inspector::BackendDispatcher::getString): (Inspector::BackendDispatcher::getBoolean): (Inspector::BackendDispatcher::getObject): (Inspector::BackendDispatcher::getArray): (Inspector::BackendDispatcher::getValue): * inspector/InspectorBackendDispatcher.h: We need to keep around the sendResponse() variant with a parameter that has the InspectorObject type, as older WebInspector.framework versions expect this symbol to exist. Introduce a variant with arity 3 that can be used in TOT so as to avoid having two methods with the same name, arity, and different parameter types. When system WebInspector.framework is updated, we can remove the legacy method variant that uses the InspectorObject type. At that point, we can transition TOT to use the 2-arity variant, and delete the 3-arity variant when system WebInspector.framework is updated once more to use the 2-arity one. * inspector/InspectorProtocolTypes.h: (Inspector::Protocol::Array::openAccessors): (Inspector::Protocol::PrimitiveBindingTraits::assertValueHasExpectedType): (Inspector::Protocol::BindingTraits<Protocol::Array<T>>::runtimeCast): (Inspector::Protocol::BindingTraits<Protocol::Array<T>>::assertValueHasExpectedType): (Inspector::Protocol::BindingTraits<JSON::Value>::assertValueHasExpectedType): * inspector/ScriptCallFrame.cpp: * inspector/ScriptCallStack.cpp: * inspector/agents/InspectorAgent.cpp: (Inspector::InspectorAgent::inspect): * inspector/agents/InspectorAgent.h: * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::buildAssertPauseReason): (Inspector::buildCSPViolationPauseReason): (Inspector::InspectorDebuggerAgent::buildBreakpointPauseReason): (Inspector::InspectorDebuggerAgent::buildExceptionPauseReason): (Inspector::buildObjectForBreakpointCookie): (Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol): (Inspector::parseLocation): (Inspector::InspectorDebuggerAgent::setBreakpointByUrl): (Inspector::InspectorDebuggerAgent::setBreakpoint): (Inspector::InspectorDebuggerAgent::continueToLocation): (Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement): (Inspector::InspectorDebuggerAgent::didParseSource): (Inspector::InspectorDebuggerAgent::breakProgram): * inspector/agents/InspectorDebuggerAgent.h: * inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::callFunctionOn): (Inspector::InspectorRuntimeAgent::saveResult): (Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets): * inspector/agents/InspectorRuntimeAgent.h: * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator.generate_output): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: (CppFrontendDispatcherHeaderGenerator.generate_output): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (_generate_unchecked_setter_for_member): * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCBackendDispatcherImplementationGenerator.generate_output): (ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command): * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: (ObjCFrontendDispatcherImplementationGenerator.generate_output): (ObjCFrontendDispatcherImplementationGenerator._generate_event): (ObjCFrontendDispatcherImplementationGenerator._generate_event_out_parameters): * inspector/scripts/codegen/generate_objc_internal_header.py: (ObjCInternalHeaderGenerator.generate_output): * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: (ObjCProtocolTypesImplementationGenerator.generate_output): * inspector/scripts/codegen/generator.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/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/worker-supported-domains.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: Reviewed by Joseph Pecoraro. Based on patch by Brian Burg. * ForwardingHeaders/inspector/InspectorValues.h: Removed. * Modules/encryptedmedia/InitDataRegistry.cpp: (WebCore::extractKeyIDsKeyids): (WebCore::sanitizeKeyids): * html/parser/XSSAuditorDelegate.cpp: (WebCore::XSSAuditorDelegate::generateViolationReport): * inspector/CommandLineAPIHost.cpp: (WebCore::CommandLineAPIHost::inspect): * inspector/CommandLineAPIHost.h: * inspector/InspectorCanvas.cpp: (WebCore::InspectorCanvas::recordAction): (WebCore::InspectorCanvas::releaseData): (WebCore::InspectorCanvas::indexForData): (WebCore::buildArrayForVector): (WebCore::InspectorCanvas::buildInitialState): (WebCore::InspectorCanvas::buildAction): (WebCore::InspectorCanvas::buildArrayForCanvasGradient): (WebCore::InspectorCanvas::buildArrayForCanvasPattern): (WebCore::InspectorCanvas::buildArrayForImageData): (WebCore::InspectorCanvas::buildArrayForImageBitmap): * inspector/InspectorCanvas.h: * inspector/InspectorDatabaseResource.cpp: * inspector/InspectorOverlay.cpp: (WebCore::evaluateCommandInOverlay): (WebCore::InspectorOverlay::evaluateInOverlay): * inspector/InspectorOverlay.h: * inspector/InspectorShaderProgram.h: * inspector/InspectorStyleSheet.h: (WebCore::InspectorCSSId::InspectorCSSId): * inspector/TimelineRecordFactory.cpp: (WebCore::TimelineRecordFactory::createGenericRecord): (WebCore::TimelineRecordFactory::createFunctionCallData): (WebCore::TimelineRecordFactory::createConsoleProfileData): (WebCore::TimelineRecordFactory::createProbeSampleData): (WebCore::TimelineRecordFactory::createEventDispatchData): (WebCore::TimelineRecordFactory::createGenericTimerData): (WebCore::TimelineRecordFactory::createTimerInstallData): (WebCore::TimelineRecordFactory::createEvaluateScriptData): (WebCore::TimelineRecordFactory::createTimeStampData): (WebCore::TimelineRecordFactory::createAnimationFrameData): (WebCore::createQuad): (WebCore::TimelineRecordFactory::createPaintData): (WebCore::TimelineRecordFactory::appendLayoutRoot): * inspector/TimelineRecordFactory.h: * inspector/agents/InspectorApplicationCacheAgent.cpp: * inspector/agents/InspectorApplicationCacheAgent.h: * inspector/agents/InspectorCSSAgent.cpp: (WebCore::computePseudoClassMask): (WebCore::InspectorCSSAgent::setStyleText): (WebCore::InspectorCSSAgent::setRuleSelector): (WebCore::InspectorCSSAgent::forcePseudoState): * inspector/agents/InspectorCSSAgent.h: * inspector/agents/InspectorDOMAgent.cpp: (WebCore::parseColor): (WebCore::parseConfigColor): (WebCore::parseQuad): (WebCore::InspectorDOMAgent::performSearch): (WebCore::InspectorDOMAgent::setSearchingForNode): (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): (WebCore::InspectorDOMAgent::setInspectModeEnabled): (WebCore::InspectorDOMAgent::highlightRect): (WebCore::InspectorDOMAgent::highlightQuad): (WebCore::InspectorDOMAgent::innerHighlightQuad): (WebCore::InspectorDOMAgent::highlightSelector): (WebCore::InspectorDOMAgent::highlightNode): (WebCore::InspectorDOMAgent::highlightNodeList): (WebCore::InspectorDOMAgent::highlightFrame): * inspector/agents/InspectorDOMAgent.h: * inspector/agents/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent): (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest): * inspector/agents/InspectorDOMDebuggerAgent.h: * inspector/agents/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): (WebCore::InspectorDOMStorageAgent::setDOMStorageItem): (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem): (WebCore::InspectorDOMStorageAgent::findStorageArea): * inspector/agents/InspectorDOMStorageAgent.h: * inspector/agents/InspectorDatabaseAgent.cpp: * inspector/agents/InspectorIndexedDBAgent.cpp: (WebCore::Inspector::idbKeyFromInspectorObject): (WebCore::Inspector::idbKeyRangeFromKeyRange): (WebCore::InspectorIndexedDBAgent::requestData): * inspector/agents/InspectorIndexedDBAgent.h: * inspector/agents/InspectorNetworkAgent.cpp: (WebCore::buildObjectForHeaders): (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse): (WebCore::InspectorNetworkAgent::setExtraHTTPHeaders): * inspector/agents/InspectorNetworkAgent.h: * inspector/agents/InspectorPageAgent.cpp: * inspector/agents/InspectorPageAgent.h: * inspector/agents/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::setInstruments): (WebCore::InspectorTimelineAgent::internalStart): (WebCore::InspectorTimelineAgent::didInvalidateLayout): (WebCore::InspectorTimelineAgent::willLayout): (WebCore::InspectorTimelineAgent::didScheduleStyleRecalculation): (WebCore::InspectorTimelineAgent::willRecalculateStyle): (WebCore::InspectorTimelineAgent::willComposite): (WebCore::InspectorTimelineAgent::willPaint): (WebCore::InspectorTimelineAgent::addRecordToTimeline): (WebCore::InspectorTimelineAgent::setFrameIdentifier): (WebCore::InspectorTimelineAgent::appendRecord): (WebCore::InspectorTimelineAgent::sendEvent): (WebCore::InspectorTimelineAgent::createRecordEntry): (WebCore::InspectorTimelineAgent::pushCurrentRecord): * inspector/agents/InspectorTimelineAgent.h: * page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::reportViolation const): * platform/encryptedmedia/clearkey/CDMClearKey.cpp: (WebCore::parseJSONObject): (WebCore::parseLicenseFormat): (WebCore::parseLicenseReleaseAcknowledgementFormat): (WebCore::CDMInstanceClearKey::updateLicense): (WebCore::CDMInstanceClearKey::removeSessionData): * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::extractSinfData): * testing/Internals.cpp: Source/WebDriver: Reviewed by Joseph Pecoraro. * CMakeLists.txt: * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): * CommandResult.h: (WebDriver::CommandResult::success): (WebDriver::CommandResult::fail): (WebDriver::CommandResult::result const): (WebDriver::CommandResult::setAdditionalErrorData): (WebDriver::CommandResult::additionalErrorData const): * Session.cpp: (WebDriver::firstWindowHandleInResult): (WebDriver::Session::handleUserPrompts): (WebDriver::Session::reportUnexpectedAlertOpen): (WebDriver::Session::go): (WebDriver::Session::getCurrentURL): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::getTitle): (WebDriver::Session::getWindowHandle): (WebDriver::Session::closeTopLevelBrowsingContext): (WebDriver::Session::switchToWindow): (WebDriver::Session::getWindowHandles): (WebDriver::Session::switchToFrame): (WebDriver::Session::switchToParentFrame): (WebDriver::Session::getToplevelBrowsingContextRect): (WebDriver::Session::moveToplevelBrowsingContextWindow): (WebDriver::Session::resizeToplevelBrowsingContextWindow): (WebDriver::Session::createElement): (WebDriver::Session::extractElement): (WebDriver::Session::extractElementID): (WebDriver::Session::computeElementLayout): (WebDriver::Session::findElements): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::waitForNavigationToComplete): (WebDriver::Session::selectOptionElement): (WebDriver::Session::elementClick): (WebDriver::Session::elementClear): (WebDriver::Session::elementSendKeys): (WebDriver::Session::elementSubmit): (WebDriver::Session::handleScriptResult): (WebDriver::Session::executeScript): (WebDriver::Session::performMouseInteraction): (WebDriver::Session::performKeyboardInteractions): (WebDriver::parseAutomationCookie): (WebDriver::builtAutomationCookie): (WebDriver::serializeCookie): (WebDriver::Session::getAllCookies): (WebDriver::Session::getNamedCookie): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::dismissAlert): (WebDriver::Session::acceptAlert): (WebDriver::Session::getAlertText): (WebDriver::Session::sendAlertText): (WebDriver::Session::takeScreenshot): * Session.h: * SessionHost.cpp: (WebDriver::SessionHost::sendCommandToBackend): (WebDriver::SessionHost::dispatchMessage): * SessionHost.h: * WebDriverService.cpp: (WebDriver::WebDriverService::handleRequest): (WebDriver::WebDriverService::sendResponse const): (WebDriver::deserializeTimeouts): (WebDriver::WebDriverService::parseCapabilities const): (WebDriver::WebDriverService::findSessionOrCompleteWithError): (WebDriver::WebDriverService::validatedCapabilities const): (WebDriver::WebDriverService::mergeCapabilities const): (WebDriver::WebDriverService::matchCapabilities const): (WebDriver::WebDriverService::processCapabilities const): (WebDriver::WebDriverService::newSession): (WebDriver::WebDriverService::deleteSession): (WebDriver::WebDriverService::setTimeouts): (WebDriver::WebDriverService::go): (WebDriver::WebDriverService::getCurrentURL): (WebDriver::WebDriverService::back): (WebDriver::WebDriverService::forward): (WebDriver::WebDriverService::refresh): (WebDriver::WebDriverService::getTitle): (WebDriver::WebDriverService::getWindowHandle): (WebDriver::WebDriverService::getWindowRect): (WebDriver::valueAsNumberInRange): (WebDriver::WebDriverService::setWindowRect): (WebDriver::WebDriverService::closeWindow): (WebDriver::WebDriverService::switchToWindow): (WebDriver::WebDriverService::getWindowHandles): (WebDriver::WebDriverService::switchToFrame): (WebDriver::WebDriverService::switchToParentFrame): (WebDriver::findElementOrCompleteWithError): (WebDriver::findStrategyAndSelectorOrCompleteWithError): (WebDriver::WebDriverService::findElement): (WebDriver::WebDriverService::findElements): (WebDriver::WebDriverService::findElementFromElement): (WebDriver::WebDriverService::findElementsFromElement): (WebDriver::WebDriverService::isElementSelected): (WebDriver::WebDriverService::getElementAttribute): (WebDriver::WebDriverService::getElementText): (WebDriver::WebDriverService::getElementTagName): (WebDriver::WebDriverService::getElementRect): (WebDriver::WebDriverService::isElementEnabled): (WebDriver::WebDriverService::isElementDisplayed): (WebDriver::WebDriverService::elementClick): (WebDriver::WebDriverService::elementClear): (WebDriver::WebDriverService::elementSendKeys): (WebDriver::WebDriverService::elementSubmit): (WebDriver::findScriptAndArgumentsOrCompleteWithError): (WebDriver::WebDriverService::executeScript): (WebDriver::WebDriverService::executeAsyncScript): (WebDriver::WebDriverService::getAllCookies): (WebDriver::WebDriverService::getNamedCookie): (WebDriver::deserializeCookie): (WebDriver::WebDriverService::addCookie): (WebDriver::WebDriverService::deleteCookie): (WebDriver::WebDriverService::deleteAllCookies): (WebDriver::WebDriverService::dismissAlert): (WebDriver::WebDriverService::acceptAlert): (WebDriver::WebDriverService::getAlertText): (WebDriver::WebDriverService::sendAlertText): (WebDriver::WebDriverService::takeScreenshot): (WebDriver::WebDriverService::takeElementScreenshot): * WebDriverService.h: * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformMatchCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): * wpe/WebDriverServiceWPE.cpp: (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformMatchCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): Source/WebKit: Reviewed by Joseph Pecocaro. Based on patch by Brian Burg. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): (WebKit::WebAutomationSession::waitForNavigationToCompleteOnFrame): (WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout): (WebKit::WebAutomationSession::respondToPendingFrameNavigationCallbacksWithTimeout): (WebKit::WebAutomationSession::navigationOccurredForFrame): (WebKit::WebAutomationSession::documentLoadedForFrame): (WebKit::WebAutomationSession::inspectorFrontendLoaded): (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): (WebKit::WebAutomationSession::evaluateJavaScriptFunction): (WebKit::WebAutomationSession::setFilesToSelectForFileUpload): (WebKit::WebAutomationSession::addSingleCookie): (WebKit::WebAutomationSession::setSessionPermissions): (WebKit::WebAutomationSession::performMouseInteraction): (WebKit::WebAutomationSession::performKeyboardInteractions): * UIProcess/Automation/WebAutomationSession.h: Source/WTF: Reviewed by Joseph Pecoraro. Based on patch by Brian Burg. Move the implementation into WTF. Put the actual implementation inside namespace WTF::JSONImpl so that the symbols in libwtf start with the WTF prefix. Also provide a top-level JSON namespace so that clients can write JSON::Value. This is essentially a typedef for the entire WTF::JSONImpl namespace. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/JSONValues.cpp: Renamed from Source/JavaScriptCore/inspector/InspectorValues.cpp. (JSON::Value::null): (JSON::Value::create): (JSON::Value::asValue): (JSON::Value::asObject): (JSON::Value::asArray): (JSON::Value::parseJSON): (JSON::Value::toJSONString const): (JSON::Value::asBoolean const): (JSON::Value::asDouble const): (JSON::Value::asInteger const): (JSON::Value::asString const): (JSON::Value::writeJSON const): (JSON::Value::memoryCost const): (JSON::ObjectBase::~ObjectBase): (JSON::ObjectBase::asObject): (JSON::ObjectBase::openAccessors): (JSON::ObjectBase::memoryCost const): (JSON::ObjectBase::getBoolean const): (JSON::ObjectBase::getString const): (JSON::ObjectBase::getObject const): (JSON::ObjectBase::getArray const): (JSON::ObjectBase::getValue const): (JSON::ObjectBase::remove): (JSON::ObjectBase::writeJSON const): (JSON::ObjectBase::ObjectBase): (JSON::ArrayBase::~ArrayBase): (JSON::ArrayBase::asArray): (JSON::ArrayBase::writeJSON const): (JSON::ArrayBase::ArrayBase): (JSON::ArrayBase::get const): (JSON::Object::create): (JSON::Array::create): (JSON::ArrayBase::memoryCost const): * wtf/JSONValues.h: Renamed from Source/JavaScriptCore/inspector/InspectorValues.h. (JSON::ObjectBase::find): (JSON::ObjectBase::find const): (JSON::ObjectBase::setBoolean): (JSON::ObjectBase::setInteger): (JSON::ObjectBase::setDouble): (JSON::ObjectBase::setString): (JSON::ObjectBase::setValue): (JSON::ObjectBase::setObject): (JSON::ObjectBase::setArray): (JSON::ArrayBase::pushBoolean): (JSON::ArrayBase::pushInteger): (JSON::ArrayBase::pushDouble): (JSON::ArrayBase::pushString): (JSON::ArrayBase::pushValue): (JSON::ArrayBase::pushObject): (JSON::ArrayBase::pushArray): Tools: Reviewed by Joseph Pecoraro. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/JSONValue.cpp: Renamed from Tools/TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp. (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/196092@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225231 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-28 19:58:16 +00:00
2017-11-14 Carlos Garcia Campos <cgarcia@igalia.com>
Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h
https://bugs.webkit.org/show_bug.cgi?id=173793
Reviewed by Joseph Pecoraro.
* CMakeLists.txt:
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
* CommandResult.h:
(WebDriver::CommandResult::success):
(WebDriver::CommandResult::fail):
(WebDriver::CommandResult::result const):
(WebDriver::CommandResult::setAdditionalErrorData):
(WebDriver::CommandResult::additionalErrorData const):
* Session.cpp:
(WebDriver::firstWindowHandleInResult):
(WebDriver::Session::handleUserPrompts):
(WebDriver::Session::reportUnexpectedAlertOpen):
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::getWindowHandle):
(WebDriver::Session::closeTopLevelBrowsingContext):
(WebDriver::Session::switchToWindow):
(WebDriver::Session::getWindowHandles):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::moveToplevelBrowsingContextWindow):
(WebDriver::Session::resizeToplevelBrowsingContextWindow):
(WebDriver::Session::createElement):
(WebDriver::Session::extractElement):
(WebDriver::Session::extractElementID):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::selectOptionElement):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementClear):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::elementSubmit):
(WebDriver::Session::handleScriptResult):
(WebDriver::Session::executeScript):
(WebDriver::Session::performMouseInteraction):
(WebDriver::Session::performKeyboardInteractions):
(WebDriver::parseAutomationCookie):
(WebDriver::builtAutomationCookie):
(WebDriver::serializeCookie):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::getNamedCookie):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
(WebDriver::Session::takeScreenshot):
* Session.h:
* SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend):
(WebDriver::SessionHost::dispatchMessage):
* SessionHost.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::handleRequest):
(WebDriver::WebDriverService::sendResponse const):
(WebDriver::deserializeTimeouts):
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::mergeCapabilities const):
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::deleteSession):
(WebDriver::WebDriverService::setTimeouts):
(WebDriver::WebDriverService::go):
(WebDriver::WebDriverService::getCurrentURL):
(WebDriver::WebDriverService::back):
(WebDriver::WebDriverService::forward):
(WebDriver::WebDriverService::refresh):
(WebDriver::WebDriverService::getTitle):
(WebDriver::WebDriverService::getWindowHandle):
(WebDriver::WebDriverService::getWindowRect):
(WebDriver::valueAsNumberInRange):
(WebDriver::WebDriverService::setWindowRect):
(WebDriver::WebDriverService::closeWindow):
(WebDriver::WebDriverService::switchToWindow):
(WebDriver::WebDriverService::getWindowHandles):
(WebDriver::WebDriverService::switchToFrame):
(WebDriver::WebDriverService::switchToParentFrame):
(WebDriver::findElementOrCompleteWithError):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::WebDriverService::findElement):
(WebDriver::WebDriverService::findElements):
(WebDriver::WebDriverService::findElementFromElement):
(WebDriver::WebDriverService::findElementsFromElement):
(WebDriver::WebDriverService::isElementSelected):
(WebDriver::WebDriverService::getElementAttribute):
(WebDriver::WebDriverService::getElementText):
(WebDriver::WebDriverService::getElementTagName):
(WebDriver::WebDriverService::getElementRect):
(WebDriver::WebDriverService::isElementEnabled):
(WebDriver::WebDriverService::isElementDisplayed):
(WebDriver::WebDriverService::elementClick):
(WebDriver::WebDriverService::elementClear):
(WebDriver::WebDriverService::elementSendKeys):
(WebDriver::WebDriverService::elementSubmit):
(WebDriver::findScriptAndArgumentsOrCompleteWithError):
(WebDriver::WebDriverService::executeScript):
(WebDriver::WebDriverService::executeAsyncScript):
(WebDriver::WebDriverService::getAllCookies):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::WebDriverService::deleteAllCookies):
(WebDriver::WebDriverService::dismissAlert):
(WebDriver::WebDriverService::acceptAlert):
(WebDriver::WebDriverService::getAlertText):
(WebDriver::WebDriverService::sendAlertText):
(WebDriver::WebDriverService::takeScreenshot):
(WebDriver::WebDriverService::takeElementScreenshot):
* WebDriverService.h:
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
2017-11-28 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebDriver: stop making mandatory to provide a browser path if webkitgtk:browserOptions is present in capabilities
https://bugs.webkit.org/show_bug.cgi?id=180012
Reviewed by Carlos Alberto Lopez Perez.
Everything should be optional. We might want to disable overlay scrollbars, but still using the default browser,
for example, as I'm doing when running the selenium tests. We might also want to provide additional browser
arguments, but using the default browser.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const): Do not consider invalid to not provide a
browser binary when webkitgtk:browserOptions is present.
(WebDriver::WebDriverService::platformParseCapabilities const): Override default capabilities with the ones
provided.
2017-11-27 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: Implement get active element command
https://bugs.webkit.org/show_bug.cgi?id=180001
Reviewed by Brian Burg.
12.6 Get Active Element
https://w3c.github.io/webdriver/webdriver-spec.html#get-active-element
Fixes imported/w3c/webdriver/tests/element_retrieval/get_active_element.py.
* Session.cpp:
(WebDriver::Session::getActiveElement):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getActiveElement):
* WebDriverService.h:
2017-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: do not try to parse http body if method is not POST
https://bugs.webkit.org/show_bug.cgi?id=179918
Reviewed by Darin Adler.
As said in the spec:
5. If requests method is POST:
1. Let parse result be the result of parsing as JSON with requests body as the argument. If this process
throws an exception, return an error with error code invalid argument and jump back to step 1 in this
overall algorithm.
2. If parse result is not an Object, send an error with error code invalid argument and jump back to step 1
in this overall algorithm.
Otherwise, let parameters be parse result.
Otherwise, let parameters be null.
6.3 Processing Model
https://w3c.github.io/webdriver/webdriver-spec.html#processing-model
Now, w3c tests are sending null as body of delete session command (it used to be just empty), making it fail
with invalid argument error.
* WebDriverService.cpp:
(WebDriver::WebDriverService::findCommand):
(WebDriver::WebDriverService::handleRequest):
* WebDriverService.h:
2017-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: crash in Session::computeElementLayout when called without a current browsing context
https://bugs.webkit.org/show_bug.cgi?id=179917
Reviewed by Darin Adler.
In the case of computeElementLayout message, the frameHandle parameter is not optional, but we still need to
provide a valid value (empty string means the default frame) when m_currentBrowsingContext is std::nullopt. The
same applies to selectOptionElement.
* Session.cpp:
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::selectOptionElement):
[WPE] Add initial support for WebDriver https://bugs.webkit.org/show_bug.cgi?id=179727 Reviewed by Michael Catanzaro. .: Enable WebDriver by default in WPE. * Source/cmake/OptionsWPE.cmake: Source/WebDriver: Add WPE implementation for platform-specific methods. Move the version handling to a common file WebDriverServiceGLib.cpp. * Capabilities.h: * PlatformGTK.cmake: * PlatformWPE.cmake: * glib/WebDriverServiceGLib.cpp: Added. (WebDriver::parseVersion): (WebDriver::WebDriverService::platformCompareBrowserVersions): * gtk/WebDriverServiceGtk.cpp: * wpe/WebDriverServiceWPE.cpp: Copied from Source/WebDriver/gtk/WebDriverServiceGtk.cpp. (WebDriver::WebDriverService::platformCapabilities): (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformMatchCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): Tools: Make it possible to run WebDriver tests with WPE. * Scripts/run-webdriver-tests: Add --wpe alias for --platform=wpe. * Scripts/webkitpy/port/wpe.py: (WPEPort.__init__): Initialize _display_server from options. (WPEPort._driver_class): Use WaylandDriver when wayland is passed as display server option. * Scripts/webkitpy/webdriver_tests/webdriver_driver.py: (WebDriver.browser_env): Add virtual method to get the environment that should be used. * Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py: Copied from Tools/Scripts/webkitpy/webdriver_tests/webdriver_driver.py. (WebDriverWPE): (WebDriverWPE.__init__): (WebDriverWPE.binary_path): (WebDriverWPE.browser_name): (WebDriverWPE.capabilities): (WebDriverWPE.browser_env): * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: (WebDriverW3CExecutor.__init__): Update the environment with the one provided by the driver. * wpe/jhbuild.modules: Upgrade dyz to newer version that supports automation. Canonical link: https://commits.webkit.org/195790@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224913 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-16 12:48:22 +00:00
2017-11-15 Carlos Garcia Campos <cgarcia@igalia.com>
[WPE] Add initial support for WebDriver
https://bugs.webkit.org/show_bug.cgi?id=179727
Reviewed by Michael Catanzaro.
Add WPE implementation for platform-specific methods. Move the version handling to a common file
WebDriverServiceGLib.cpp.
* Capabilities.h:
* PlatformGTK.cmake:
* PlatformWPE.cmake:
* glib/WebDriverServiceGLib.cpp: Added.
(WebDriver::parseVersion):
(WebDriver::WebDriverService::platformCompareBrowserVersions):
* gtk/WebDriverServiceGtk.cpp:
* wpe/WebDriverServiceWPE.cpp: Copied from Source/WebDriver/gtk/WebDriverServiceGtk.cpp.
(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
2017-11-15 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r224863.
Introduced LayoutTest crashes on iOS Simulator.
Reverted changeset:
"Move JSONValues to WTF and convert uses of InspectorValues.h
to JSONValues.h"
https://bugs.webkit.org/show_bug.cgi?id=173793
https://trac.webkit.org/changeset/224863
Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h https://bugs.webkit.org/show_bug.cgi?id=173793 Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-11-14 Reviewed by Brian Burg. Source/JavaScriptCore: Based on patch by Brian Burg. * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * bindings/ScriptValue.cpp: (Inspector::jsToInspectorValue): (Inspector::toInspectorValue): (Deprecated::ScriptValue::toInspectorValue const): * bindings/ScriptValue.h: * inspector/AsyncStackTrace.cpp: * inspector/ConsoleMessage.cpp: * inspector/ContentSearchUtilities.cpp: * inspector/InjectedScript.cpp: (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::functionDetails): (Inspector::InjectedScript::getPreview): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::saveResult): (Inspector::InjectedScript::wrapCallFrames const): (Inspector::InjectedScript::wrapObject const): (Inspector::InjectedScript::wrapTable const): (Inspector::InjectedScript::previewValue const): (Inspector::InjectedScript::setExceptionValue): (Inspector::InjectedScript::clearExceptionValue): (Inspector::InjectedScript::inspectObject): (Inspector::InjectedScript::releaseObject): * inspector/InjectedScriptBase.cpp: (Inspector::InjectedScriptBase::makeCall): (Inspector::InjectedScriptBase::makeEvalCall): * inspector/InjectedScriptBase.h: * inspector/InjectedScriptManager.cpp: (Inspector::InjectedScriptManager::injectedScriptForObjectId): * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::CallbackBase::sendSuccess): (Inspector::BackendDispatcher::dispatch): (Inspector::BackendDispatcher::sendResponse): (Inspector::BackendDispatcher::sendPendingErrors): (Inspector::BackendDispatcher::getPropertyValue): (Inspector::castToInteger): (Inspector::castToNumber): (Inspector::BackendDispatcher::getInteger): (Inspector::BackendDispatcher::getDouble): (Inspector::BackendDispatcher::getString): (Inspector::BackendDispatcher::getBoolean): (Inspector::BackendDispatcher::getObject): (Inspector::BackendDispatcher::getArray): (Inspector::BackendDispatcher::getValue): * inspector/InspectorBackendDispatcher.h: * inspector/InspectorProtocolTypes.h: (Inspector::Protocol::Array::openAccessors): (Inspector::Protocol::PrimitiveBindingTraits::assertValueHasExpectedType): (Inspector::Protocol::BindingTraits<Protocol::Array<T>>::runtimeCast): (Inspector::Protocol::BindingTraits<Protocol::Array<T>>::assertValueHasExpectedType): (Inspector::Protocol::BindingTraits<JSON::Value>::assertValueHasExpectedType): * inspector/ScriptCallFrame.cpp: * inspector/ScriptCallStack.cpp: * inspector/agents/InspectorAgent.cpp: (Inspector::InspectorAgent::inspect): * inspector/agents/InspectorAgent.h: * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::buildAssertPauseReason): (Inspector::buildCSPViolationPauseReason): (Inspector::InspectorDebuggerAgent::buildBreakpointPauseReason): (Inspector::InspectorDebuggerAgent::buildExceptionPauseReason): (Inspector::buildObjectForBreakpointCookie): (Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol): (Inspector::parseLocation): (Inspector::InspectorDebuggerAgent::setBreakpointByUrl): (Inspector::InspectorDebuggerAgent::setBreakpoint): (Inspector::InspectorDebuggerAgent::continueToLocation): (Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement): (Inspector::InspectorDebuggerAgent::didParseSource): (Inspector::InspectorDebuggerAgent::breakProgram): * inspector/agents/InspectorDebuggerAgent.h: * inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::callFunctionOn): (Inspector::InspectorRuntimeAgent::saveResult): (Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets): * inspector/agents/InspectorRuntimeAgent.h: * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator.generate_output): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: (CppFrontendDispatcherHeaderGenerator.generate_output): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (_generate_unchecked_setter_for_member): * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCBackendDispatcherImplementationGenerator.generate_output): (ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command): * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: (ObjCFrontendDispatcherImplementationGenerator.generate_output): (ObjCFrontendDispatcherImplementationGenerator._generate_event): (ObjCFrontendDispatcherImplementationGenerator._generate_event_out_parameters): * inspector/scripts/codegen/generate_objc_internal_header.py: (ObjCInternalHeaderGenerator.generate_output): * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: (ObjCProtocolTypesImplementationGenerator.generate_output): * inspector/scripts/codegen/generator.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/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/worker-supported-domains.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: Based on patch by Brian Burg. * ForwardingHeaders/inspector/InspectorValues.h: Removed. * Modules/encryptedmedia/InitDataRegistry.cpp: (WebCore::extractKeyIDsKeyids): (WebCore::sanitizeKeyids): * html/parser/XSSAuditorDelegate.cpp: (WebCore::XSSAuditorDelegate::generateViolationReport): * inspector/CommandLineAPIHost.cpp: (WebCore::CommandLineAPIHost::inspect): * inspector/CommandLineAPIHost.h: * inspector/InspectorCanvas.cpp: (WebCore::InspectorCanvas::recordAction): (WebCore::InspectorCanvas::releaseData): (WebCore::InspectorCanvas::indexForData): (WebCore::buildArrayForVector): (WebCore::InspectorCanvas::buildInitialState): (WebCore::InspectorCanvas::buildAction): (WebCore::InspectorCanvas::buildArrayForCanvasGradient): (WebCore::InspectorCanvas::buildArrayForCanvasPattern): (WebCore::InspectorCanvas::buildArrayForImageData): (WebCore::InspectorCanvas::buildArrayForImageBitmap): * inspector/InspectorCanvas.h: * inspector/InspectorDatabaseResource.cpp: * inspector/InspectorOverlay.cpp: (WebCore::evaluateCommandInOverlay): (WebCore::InspectorOverlay::evaluateInOverlay): * inspector/InspectorOverlay.h: * inspector/InspectorShaderProgram.h: * inspector/InspectorStyleSheet.h: (WebCore::InspectorCSSId::InspectorCSSId): * inspector/TimelineRecordFactory.cpp: (WebCore::TimelineRecordFactory::createGenericRecord): (WebCore::TimelineRecordFactory::createFunctionCallData): (WebCore::TimelineRecordFactory::createConsoleProfileData): (WebCore::TimelineRecordFactory::createProbeSampleData): (WebCore::TimelineRecordFactory::createEventDispatchData): (WebCore::TimelineRecordFactory::createGenericTimerData): (WebCore::TimelineRecordFactory::createTimerInstallData): (WebCore::TimelineRecordFactory::createEvaluateScriptData): (WebCore::TimelineRecordFactory::createTimeStampData): (WebCore::TimelineRecordFactory::createAnimationFrameData): (WebCore::createQuad): (WebCore::TimelineRecordFactory::createPaintData): (WebCore::TimelineRecordFactory::appendLayoutRoot): * inspector/TimelineRecordFactory.h: * inspector/agents/InspectorApplicationCacheAgent.cpp: * inspector/agents/InspectorApplicationCacheAgent.h: * inspector/agents/InspectorCSSAgent.cpp: (WebCore::computePseudoClassMask): (WebCore::InspectorCSSAgent::setStyleText): (WebCore::InspectorCSSAgent::setRuleSelector): (WebCore::InspectorCSSAgent::forcePseudoState): * inspector/agents/InspectorCSSAgent.h: * inspector/agents/InspectorDOMAgent.cpp: (WebCore::parseColor): (WebCore::parseConfigColor): (WebCore::parseQuad): (WebCore::InspectorDOMAgent::performSearch): (WebCore::InspectorDOMAgent::setSearchingForNode): (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): (WebCore::InspectorDOMAgent::setInspectModeEnabled): (WebCore::InspectorDOMAgent::highlightRect): (WebCore::InspectorDOMAgent::highlightQuad): (WebCore::InspectorDOMAgent::innerHighlightQuad): (WebCore::InspectorDOMAgent::highlightSelector): (WebCore::InspectorDOMAgent::highlightNode): (WebCore::InspectorDOMAgent::highlightNodeList): (WebCore::InspectorDOMAgent::highlightFrame): * inspector/agents/InspectorDOMAgent.h: * inspector/agents/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent): (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest): * inspector/agents/InspectorDOMDebuggerAgent.h: * inspector/agents/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): (WebCore::InspectorDOMStorageAgent::setDOMStorageItem): (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem): (WebCore::InspectorDOMStorageAgent::findStorageArea): * inspector/agents/InspectorDOMStorageAgent.h: * inspector/agents/InspectorDatabaseAgent.cpp: * inspector/agents/InspectorIndexedDBAgent.cpp: (WebCore::Inspector::idbKeyFromInspectorObject): (WebCore::Inspector::idbKeyRangeFromKeyRange): (WebCore::InspectorIndexedDBAgent::requestData): * inspector/agents/InspectorIndexedDBAgent.h: * inspector/agents/InspectorNetworkAgent.cpp: (WebCore::buildObjectForHeaders): (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse): (WebCore::InspectorNetworkAgent::setExtraHTTPHeaders): * inspector/agents/InspectorNetworkAgent.h: * inspector/agents/InspectorPageAgent.cpp: * inspector/agents/InspectorPageAgent.h: * inspector/agents/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::setInstruments): (WebCore::InspectorTimelineAgent::internalStart): (WebCore::InspectorTimelineAgent::didInvalidateLayout): (WebCore::InspectorTimelineAgent::willLayout): (WebCore::InspectorTimelineAgent::didScheduleStyleRecalculation): (WebCore::InspectorTimelineAgent::willRecalculateStyle): (WebCore::InspectorTimelineAgent::willComposite): (WebCore::InspectorTimelineAgent::willPaint): (WebCore::InspectorTimelineAgent::addRecordToTimeline): (WebCore::InspectorTimelineAgent::setFrameIdentifier): (WebCore::InspectorTimelineAgent::appendRecord): (WebCore::InspectorTimelineAgent::sendEvent): (WebCore::InspectorTimelineAgent::createRecordEntry): (WebCore::InspectorTimelineAgent::pushCurrentRecord): * inspector/agents/InspectorTimelineAgent.h: * page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::reportViolation const): * platform/encryptedmedia/clearkey/CDMClearKey.cpp: (WebCore::parseJSONObject): (WebCore::parseLicenseFormat): (WebCore::parseLicenseReleaseAcknowledgementFormat): (WebCore::CDMInstanceClearKey::updateLicense): (WebCore::CDMInstanceClearKey::removeSessionData): * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::extractSinfData): * testing/Internals.cpp: Source/WebDriver: * CMakeLists.txt: * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): * CommandResult.h: (WebDriver::CommandResult::success): (WebDriver::CommandResult::fail): (WebDriver::CommandResult::result const): (WebDriver::CommandResult::setAdditionalErrorData): (WebDriver::CommandResult::additionalErrorData const): * Session.cpp: (WebDriver::firstWindowHandleInResult): (WebDriver::Session::handleUserPrompts): (WebDriver::Session::reportUnexpectedAlertOpen): (WebDriver::Session::go): (WebDriver::Session::getCurrentURL): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::getTitle): (WebDriver::Session::getWindowHandle): (WebDriver::Session::closeTopLevelBrowsingContext): (WebDriver::Session::switchToWindow): (WebDriver::Session::getWindowHandles): (WebDriver::Session::switchToFrame): (WebDriver::Session::switchToParentFrame): (WebDriver::Session::getToplevelBrowsingContextRect): (WebDriver::Session::moveToplevelBrowsingContextWindow): (WebDriver::Session::resizeToplevelBrowsingContextWindow): (WebDriver::Session::createElement): (WebDriver::Session::extractElement): (WebDriver::Session::extractElementID): (WebDriver::Session::computeElementLayout): (WebDriver::Session::findElements): (WebDriver::Session::isElementSelected): (WebDriver::Session::getElementText): (WebDriver::Session::getElementTagName): (WebDriver::Session::getElementRect): (WebDriver::Session::isElementEnabled): (WebDriver::Session::isElementDisplayed): (WebDriver::Session::getElementAttribute): (WebDriver::Session::waitForNavigationToComplete): (WebDriver::Session::selectOptionElement): (WebDriver::Session::elementClick): (WebDriver::Session::elementClear): (WebDriver::Session::elementSendKeys): (WebDriver::Session::elementSubmit): (WebDriver::Session::handleScriptResult): (WebDriver::Session::executeScript): (WebDriver::Session::performMouseInteraction): (WebDriver::Session::performKeyboardInteractions): (WebDriver::parseAutomationCookie): (WebDriver::builtAutomationCookie): (WebDriver::serializeCookie): (WebDriver::Session::getAllCookies): (WebDriver::Session::getNamedCookie): (WebDriver::Session::addCookie): (WebDriver::Session::deleteCookie): (WebDriver::Session::deleteAllCookies): (WebDriver::Session::dismissAlert): (WebDriver::Session::acceptAlert): (WebDriver::Session::getAlertText): (WebDriver::Session::sendAlertText): (WebDriver::Session::takeScreenshot): * Session.h: * SessionHost.cpp: (WebDriver::SessionHost::sendCommandToBackend): (WebDriver::SessionHost::dispatchMessage): * SessionHost.h: * WebDriverService.cpp: (WebDriver::WebDriverService::handleRequest): (WebDriver::WebDriverService::sendResponse const): (WebDriver::deserializeTimeouts): (WebDriver::WebDriverService::parseCapabilities const): (WebDriver::WebDriverService::findSessionOrCompleteWithError): (WebDriver::WebDriverService::validatedCapabilities const): (WebDriver::WebDriverService::mergeCapabilities const): (WebDriver::WebDriverService::matchCapabilities const): (WebDriver::WebDriverService::processCapabilities const): (WebDriver::WebDriverService::newSession): (WebDriver::WebDriverService::deleteSession): (WebDriver::WebDriverService::setTimeouts): (WebDriver::WebDriverService::go): (WebDriver::WebDriverService::getCurrentURL): (WebDriver::WebDriverService::back): (WebDriver::WebDriverService::forward): (WebDriver::WebDriverService::refresh): (WebDriver::WebDriverService::getTitle): (WebDriver::WebDriverService::getWindowHandle): (WebDriver::WebDriverService::getWindowRect): (WebDriver::valueAsNumberInRange): (WebDriver::WebDriverService::setWindowRect): (WebDriver::WebDriverService::closeWindow): (WebDriver::WebDriverService::switchToWindow): (WebDriver::WebDriverService::getWindowHandles): (WebDriver::WebDriverService::switchToFrame): (WebDriver::WebDriverService::switchToParentFrame): (WebDriver::findElementOrCompleteWithError): (WebDriver::findStrategyAndSelectorOrCompleteWithError): (WebDriver::WebDriverService::findElement): (WebDriver::WebDriverService::findElements): (WebDriver::WebDriverService::findElementFromElement): (WebDriver::WebDriverService::findElementsFromElement): (WebDriver::WebDriverService::isElementSelected): (WebDriver::WebDriverService::getElementAttribute): (WebDriver::WebDriverService::getElementText): (WebDriver::WebDriverService::getElementTagName): (WebDriver::WebDriverService::getElementRect): (WebDriver::WebDriverService::isElementEnabled): (WebDriver::WebDriverService::isElementDisplayed): (WebDriver::WebDriverService::elementClick): (WebDriver::WebDriverService::elementClear): (WebDriver::WebDriverService::elementSendKeys): (WebDriver::WebDriverService::elementSubmit): (WebDriver::findScriptAndArgumentsOrCompleteWithError): (WebDriver::WebDriverService::executeScript): (WebDriver::WebDriverService::executeAsyncScript): (WebDriver::WebDriverService::getAllCookies): (WebDriver::WebDriverService::getNamedCookie): (WebDriver::deserializeCookie): (WebDriver::WebDriverService::addCookie): (WebDriver::WebDriverService::deleteCookie): (WebDriver::WebDriverService::deleteAllCookies): (WebDriver::WebDriverService::dismissAlert): (WebDriver::WebDriverService::acceptAlert): (WebDriver::WebDriverService::getAlertText): (WebDriver::WebDriverService::sendAlertText): (WebDriver::WebDriverService::takeScreenshot): (WebDriver::WebDriverService::takeElementScreenshot): * WebDriverService.h: * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformValidateCapability const): (WebDriver::WebDriverService::platformMatchCapability const): (WebDriver::WebDriverService::platformParseCapabilities const): Source/WebKit: Based on patch by Brian Burg. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): (WebKit::WebAutomationSession::waitForNavigationToCompleteOnFrame): (WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout): (WebKit::WebAutomationSession::respondToPendingFrameNavigationCallbacksWithTimeout): (WebKit::WebAutomationSession::navigationOccurredForFrame): (WebKit::WebAutomationSession::documentLoadedForFrame): (WebKit::WebAutomationSession::inspectorFrontendLoaded): (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): (WebKit::WebAutomationSession::evaluateJavaScriptFunction): (WebKit::WebAutomationSession::setFilesToSelectForFileUpload): (WebKit::WebAutomationSession::addSingleCookie): (WebKit::WebAutomationSession::setSessionPermissions): (WebKit::WebAutomationSession::performMouseInteraction): (WebKit::WebAutomationSession::performKeyboardInteractions): * UIProcess/Automation/WebAutomationSession.h: Source/WTF: * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/JSONValues.cpp: Renamed from Source/JavaScriptCore/inspector/InspectorValues.cpp. (JSON::Value::null): (JSON::Value::create): (JSON::Value::asValue): (JSON::Value::asObject): (JSON::Value::asArray): (JSON::Value::parseJSON): (JSON::Value::toJSONString const): (JSON::Value::asBoolean const): (JSON::Value::asDouble const): (JSON::Value::asInteger const): (JSON::Value::asString const): (JSON::Value::writeJSON const): (JSON::Value::memoryCost const): (JSON::ObjectBase::~ObjectBase): (JSON::ObjectBase::asObject): (JSON::ObjectBase::openAccessors): (JSON::ObjectBase::memoryCost const): (JSON::ObjectBase::getBoolean const): (JSON::ObjectBase::getString const): (JSON::ObjectBase::getObject const): (JSON::ObjectBase::getArray const): (JSON::ObjectBase::getValue const): (JSON::ObjectBase::remove): (JSON::ObjectBase::writeJSON const): (JSON::ObjectBase::ObjectBase): (JSON::ArrayBase::~ArrayBase): (JSON::ArrayBase::asArray): (JSON::ArrayBase::writeJSON const): (JSON::ArrayBase::ArrayBase): (JSON::ArrayBase::get const): (JSON::Object::create): (JSON::Array::create): (JSON::ArrayBase::memoryCost const): * wtf/JSONValues.h: Renamed from Source/JavaScriptCore/inspector/InspectorValues.h. (JSON::ObjectBase::find): (JSON::ObjectBase::find const): (JSON::ObjectBase::setBoolean): (JSON::ObjectBase::setInteger): (JSON::ObjectBase::setDouble): (JSON::ObjectBase::setString): (JSON::ObjectBase::setValue): (JSON::ObjectBase::setObject): (JSON::ObjectBase::setArray): (JSON::ArrayBase::pushBoolean): (JSON::ArrayBase::pushInteger): (JSON::ArrayBase::pushDouble): (JSON::ArrayBase::pushString): (JSON::ArrayBase::pushValue): (JSON::ArrayBase::pushObject): (JSON::ArrayBase::pushArray): Tools: * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/JSONValue.cpp: Renamed from Tools/TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp. (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/195744@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224863 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-15 00:43:32 +00:00
2017-11-14 Carlos Garcia Campos <cgarcia@igalia.com>
Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h
https://bugs.webkit.org/show_bug.cgi?id=173793
Reviewed by Brian Burg.
* CMakeLists.txt:
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
* CommandResult.h:
(WebDriver::CommandResult::success):
(WebDriver::CommandResult::fail):
(WebDriver::CommandResult::result const):
(WebDriver::CommandResult::setAdditionalErrorData):
(WebDriver::CommandResult::additionalErrorData const):
* Session.cpp:
(WebDriver::firstWindowHandleInResult):
(WebDriver::Session::handleUserPrompts):
(WebDriver::Session::reportUnexpectedAlertOpen):
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::getWindowHandle):
(WebDriver::Session::closeTopLevelBrowsingContext):
(WebDriver::Session::switchToWindow):
(WebDriver::Session::getWindowHandles):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::moveToplevelBrowsingContextWindow):
(WebDriver::Session::resizeToplevelBrowsingContextWindow):
(WebDriver::Session::createElement):
(WebDriver::Session::extractElement):
(WebDriver::Session::extractElementID):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::selectOptionElement):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementClear):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::elementSubmit):
(WebDriver::Session::handleScriptResult):
(WebDriver::Session::executeScript):
(WebDriver::Session::performMouseInteraction):
(WebDriver::Session::performKeyboardInteractions):
(WebDriver::parseAutomationCookie):
(WebDriver::builtAutomationCookie):
(WebDriver::serializeCookie):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::getNamedCookie):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
(WebDriver::Session::takeScreenshot):
* Session.h:
* SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend):
(WebDriver::SessionHost::dispatchMessage):
* SessionHost.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::handleRequest):
(WebDriver::WebDriverService::sendResponse const):
(WebDriver::deserializeTimeouts):
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::mergeCapabilities const):
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::deleteSession):
(WebDriver::WebDriverService::setTimeouts):
(WebDriver::WebDriverService::go):
(WebDriver::WebDriverService::getCurrentURL):
(WebDriver::WebDriverService::back):
(WebDriver::WebDriverService::forward):
(WebDriver::WebDriverService::refresh):
(WebDriver::WebDriverService::getTitle):
(WebDriver::WebDriverService::getWindowHandle):
(WebDriver::WebDriverService::getWindowRect):
(WebDriver::valueAsNumberInRange):
(WebDriver::WebDriverService::setWindowRect):
(WebDriver::WebDriverService::closeWindow):
(WebDriver::WebDriverService::switchToWindow):
(WebDriver::WebDriverService::getWindowHandles):
(WebDriver::WebDriverService::switchToFrame):
(WebDriver::WebDriverService::switchToParentFrame):
(WebDriver::findElementOrCompleteWithError):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::WebDriverService::findElement):
(WebDriver::WebDriverService::findElements):
(WebDriver::WebDriverService::findElementFromElement):
(WebDriver::WebDriverService::findElementsFromElement):
(WebDriver::WebDriverService::isElementSelected):
(WebDriver::WebDriverService::getElementAttribute):
(WebDriver::WebDriverService::getElementText):
(WebDriver::WebDriverService::getElementTagName):
(WebDriver::WebDriverService::getElementRect):
(WebDriver::WebDriverService::isElementEnabled):
(WebDriver::WebDriverService::isElementDisplayed):
(WebDriver::WebDriverService::elementClick):
(WebDriver::WebDriverService::elementClear):
(WebDriver::WebDriverService::elementSendKeys):
(WebDriver::WebDriverService::elementSubmit):
(WebDriver::findScriptAndArgumentsOrCompleteWithError):
(WebDriver::WebDriverService::executeScript):
(WebDriver::WebDriverService::executeAsyncScript):
(WebDriver::WebDriverService::getAllCookies):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::WebDriverService::deleteAllCookies):
(WebDriver::WebDriverService::dismissAlert):
(WebDriver::WebDriverService::acceptAlert):
(WebDriver::WebDriverService::getAlertText):
(WebDriver::WebDriverService::sendAlertText):
(WebDriver::WebDriverService::takeScreenshot):
(WebDriver::WebDriverService::takeElementScreenshot):
* WebDriverService.h:
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
(WebDriver::WebDriverService::platformMatchCapability const):
(WebDriver::WebDriverService::platformParseCapabilities const):
Web Automation: inViewCenterPoint should not include topContentInset when computed in viewport coordinates https://bugs.webkit.org/show_bug.cgi?id=179129 <rdar://problem/35297038> Reviewed by Simon Fraser. Source/WebCore: Add or export some helpers needed to compute element layout for WebDriver. * dom/Element.h: Export the non-DOM version of getClientBounds(). * page/FrameView.h: * page/FrameView.cpp: (WebCore::FrameView::clientToDocumentRect const): Added. This does the same thing as clientToDocumentPoint. Export it, too. Source/WebDriver: Adjust code to use the proper coordinate system when requesting element layout. * Session.cpp: (WebDriver::Session::computeElementLayout): Source/WebKit: When computing the in view center point per W3C specification, the top content inset is inadvertently added back in when converting to the root view coordinate system. This patch reworks the protocol command so that it explicitly requests a coordinate system, with options for "Page" (root / contents), "LayoutViewport", and "VisualViewport". The latter is not implemented in this patch, since it is intended for use on iOS someday. * UIProcess/Automation/Automation.json: Change usesViewport to CoordinateSystem. Add a new coordinate system enum type and use it. Fix relevant comments for Automation.computElementLayout. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::protocolStringToCoordinateSystem): (WebKit::WebAutomationSession::computeElementLayout): Parse the requested coordinate system and send it in the message to the web process. * WebKit.xcodeproj/project.pbxproj: * WebProcess/Automation/WebAutomationSessionProxy.messages.in: * WebProcess/Automation/WebAutomationSessionProxy.h: * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::WebAutomationSessionProxy::computeElementLayout): Rework the implementation. Get the element bounds and in-view center point in client coordinates and convert back to root view coordinates for CoordinateSystem::Page. Canonical link: https://commits.webkit.org/195674@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-11-13 23:21:31 +00:00
2017-11-07 Brian Burg <bburg@apple.com>
Web Automation: inViewCenterPoint should not include topContentInset when computed in viewport coordinates
https://bugs.webkit.org/show_bug.cgi?id=179129
<rdar://problem/35297038>
Reviewed by Simon Fraser.
Adjust code to use the proper coordinate system when requesting element layout.
* Session.cpp:
(WebDriver::Session::computeElementLayout):
2017-11-09 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: WebDriverService::matchCapabilities should follow the spec
https://bugs.webkit.org/show_bug.cgi?id=179371
Reviewed by Brian Burg.
The returned object should contain all the entries mentioned in the spec, not only the ones already present in
the passed in capabilities object.
7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-matching-capabilities
* WebDriverService.cpp:
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):
* WebDriverService.h:
2017-11-09 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: capabilities with null value shouldn't be added to the validated capabilities object
https://bugs.webkit.org/show_bug.cgi?id=179369
Reviewed by Brian Burg.
"4. If deserialized is not null, set a property on result with name name and value deserialized."
7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-validate-capabilities
Fixes: imported/w3c/webdriver/tests/sessions/new_session/create_firstMatch.py::test_valid[platformName-None]
* WebDriverService.cpp:
(WebDriver::WebDriverService::validatedCapabilities const):
2017-10-27 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: unknown capabilities should produce an InvalidArgument error when validating capabilities
https://bugs.webkit.org/show_bug.cgi?id=178868
Reviewed by Brian Burg.
7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-validate-capabilities
Fixes: imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_extensions
* WebDriverService.cpp:
(WebDriver::WebDriverService::validatedCapabilities const):
2017-10-27 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: deserializeTimeouts should fail if the value is not integer
https://bugs.webkit.org/show_bug.cgi?id=178866
Reviewed by Brian Burg.
If value is not an integer, or it is less than 0 or greater than 2^64 1, return error with error code invalid
argument.
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-deserialize-as-a-timeout
Fixes: imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_values[timeouts-value59-body0]
imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_values[timeouts-value59-body1]
* WebDriverService.cpp:
(WebDriver::deserializeTimeouts):
2017-10-27 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: failing to process capabilities should produce InvalidArgument error not SessionNotCreated
https://bugs.webkit.org/show_bug.cgi?id=178864
Reviewed by Brian Burg.
Fixes most of the tests in imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py.
7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#processing-capabilities
* WebDriverService.cpp:
(WebDriver::WebDriverService::processCapabilities const):
Replace copyKeysToVector/copyValuesToVector with copyToVector(map.keys())/copyToVector(map.values()) https://bugs.webkit.org/show_bug.cgi?id=178102 Patch by Sam Weinig <sam@webkit.org> on 2017-10-10 Reviewed by Tim Horton. Source/JavaScriptCore: * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::InspectorDebuggerAgent::clearInspectorBreakpointState): Source/WebCore: * Modules/geolocation/Geolocation.cpp: (WebCore::Geolocation::Watchers::getNotifiersVector const): * Modules/indexeddb/IDBTransaction.cpp: (WebCore::IDBTransaction::connectionClosedFromServer): * Modules/indexeddb/client/IDBConnectionProxy.cpp: (WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost): * Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete): * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::getTracks const): * bindings/js/ScriptController.cpp: (WebCore::ScriptController::windowProxies): * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::item const): * dom/Document.cpp: (WebCore::Document::prepareForDestruction): * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::removeMarkers): * inspector/InspectorWorkerAgent.cpp: (WebCore::InspectorWorkerAgent::disconnectFromAllWorkerInspectorProxies): * inspector/NetworkResourcesData.cpp: * loader/DocumentLoader.cpp: (WebCore::cancelAll): (WebCore::setAllDefersLoading): (WebCore::areAllLoadersPageCacheAcceptable): * loader/cache/MemoryCache.cpp: (WebCore::MemoryCache::forEachSessionResource): * loader/mac/DocumentLoaderMac.cpp: (WebCore::scheduleAll): (WebCore::unscheduleAll): * page/ResourceUsageThread.cpp: (WebCore::ResourceUsageThread::notifyObservers): * platform/mediastream/MediaStreamPrivate.cpp: (WebCore::MediaStreamPrivate::tracks const): Replace copyKeysToVector / copyValuesToVector with copyToVector(map.keys()) / copyToVector(map.values()) Source/WebDriver: * SessionHost.cpp: (WebDriver::SessionHost::inspectorDisconnected): Source/WebKit: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::didClose): * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: (WebKit::dumpChangedLayers): * UIProcess/API/glib/WebKitWebContext.cpp: (webkitWebContextInvalidateCustomProtocolRequests): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseContainerForall): * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: (-[WKWebViewContentProviderRegistry _mimeTypesWithCustomContentProviders]): * UIProcess/GenericCallback.h: (WebKit::invalidateCallbackMap): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::didClose): (WebKit::WebProcessProxy::didBecomeUnresponsive): (WebKit::WebProcessProxy::didBecomeResponsive): (WebKit::WebProcessProxy::willChangeIsResponsive): (WebKit::WebProcessProxy::didChangeIsResponsive): (WebKit::WebProcessProxy::disconnectFramesFromPage): (WebKit::WebProcessProxy::frameCountInPage const): (WebKit::WebProcessProxy::requestTermination): * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::invalidate): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::stopAllStreams): * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::cancelAllStreams): * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: (WebKit::RemoteLayerTreeContext::buildTransaction): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didClose): Source/WebKitLegacy: * WebCoreSupport/WebResourceLoadScheduler.cpp: (WebResourceLoadScheduler::servePendingRequests): Source/WebKitLegacy/mac: * History/WebHistory.mm: (-[WebHistoryPrivate rebuildHistoryByDayIfNeeded:]): * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::stopAllStreams): * WebCoreSupport/WebUserMediaClient.mm: (WebUserMediaClient::pageDestroyed): Source/WTF: * wtf/HashMap.h: (WTF::copyKeysToVector): Deleted. (WTF::copyValuesToVector): Deleted. Remove copyKeysToVector and copyValuesToVector which are no longer used. Canonical link: https://commits.webkit.org/194392@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-10 22:13:07 +00:00
2017-10-10 Sam Weinig <sam@webkit.org>
Replace copyKeysToVector/copyValuesToVector with copyToVector(map.keys())/copyToVector(map.values())
https://bugs.webkit.org/show_bug.cgi?id=178102
Reviewed by Tim Horton.
* SessionHost.cpp:
(WebDriver::SessionHost::inspectorDisconnected):
2017-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: HTTP status code is not correct for some of the errors
https://bugs.webkit.org/show_bug.cgi?id=177354
Reviewed by Brian Burg.
I think this changed in the spec at some point. The thing is that no such alert, frame and window and stale
element reference errors should return 404 instead of 400.
https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors
* CommandResult.cpp:
(WebDriver::CommandResult::httpStatusCode const):
WebDriver: Implement commands to get and set the window rect https://bugs.webkit.org/show_bug.cgi?id=177134 Reviewed by Brian Burg. We are currently implementing the selenium legacy ones, we should implement the w3c ones instead. https://w3c.github.io/webdriver/webdriver-spec.html#resizing-and-positioning-windows * Session.cpp: (WebDriver::Session::getToplevelBrowsingContextRect): Helper to get the window rect. This is used by both get and set window rect commands. (WebDriver::Session::moveToplevelBrowsingContextwindow): Helper to ask automation to move the window. (WebDriver::Session::resizeToplevelBrowsingContextwindow): Helper to ask automation to resize the window. (WebDriver::Session::getWindowRect): Handle prompts and then call getToplevelBrowsingContextRect(). (WebDriver::Session::setWindowRect): Handle prompts and then move and resize the window according to the given parameters and finish the operation calling getToplevelBrowsingContextRect(). * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::getWindowRect): Ask the session to get the window rect. (WebDriver::valueAsNumberInRange): Helper to check a value is a valid number in the given range. (WebDriver::WebDriverService::setWindowRect): Get and check size and position from parameters and then ask the session to set the window rect. * WebDriverService.h: Canonical link: https://commits.webkit.org/193571@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-20 06:32:35 +00:00
2017-09-19 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: Implement commands to get and set the window rect
https://bugs.webkit.org/show_bug.cgi?id=177134
Reviewed by Brian Burg.
We are currently implementing the selenium legacy ones, we should implement the w3c ones instead.
https://w3c.github.io/webdriver/webdriver-spec.html#resizing-and-positioning-windows
* Session.cpp:
(WebDriver::Session::getToplevelBrowsingContextRect): Helper to get the window rect. This is used by both get
and set window rect commands.
(WebDriver::Session::moveToplevelBrowsingContextwindow): Helper to ask automation to move the window.
(WebDriver::Session::resizeToplevelBrowsingContextwindow): Helper to ask automation to resize the window.
(WebDriver::Session::getWindowRect): Handle prompts and then call getToplevelBrowsingContextRect().
(WebDriver::Session::setWindowRect): Handle prompts and then move and resize the window according to the given
parameters and finish the operation calling getToplevelBrowsingContextRect().
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getWindowRect): Ask the session to get the window rect.
(WebDriver::valueAsNumberInRange): Helper to check a value is a valid number in the given range.
(WebDriver::WebDriverService::setWindowRect): Get and check size and position from parameters and then ask the
session to set the window rect.
* WebDriverService.h:
2017-09-19 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: wrong response in case of errors
https://bugs.webkit.org/show_bug.cgi?id=177127
Reviewed by Brian Burg.
I misunderstood the spec when I implemented this, so we either return a "value" key with the result in case of
success or the error object as the body in case of error. We should always add a "value" key to the body and set
it with either the result or the error object.
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-send-an-error
* WebDriverService.cpp:
(WebDriver::WebDriverService::sendResponse const):
2017-09-18 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: wrong key name for capabilities in new session response
https://bugs.webkit.org/show_bug.cgi?id=177074
Reviewed by Brian Burg.
We are using "value", it should be "capabilities".
https://w3c.github.io/webdriver/webdriver-spec.html#new-session
* WebDriverService.cpp:
(WebDriver::WebDriverService::newSession):
2017-09-18 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: HTTP responses should include Cache-Control header with no-cache value
https://bugs.webkit.org/show_bug.cgi?id=177073
Reviewed by Sergio Villar Senin.
6.3 Processing Model.
Set the responses header with name and value with the following values:
Content-Type "application/json; charset=utf-8"
Cache-Control "no-cache"
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-send-a-response
We were setting the Content-Type, but not the Cache-Control. This is checked by all WPT WebDriver tests.
* soup/HTTPServerSoup.cpp:
(WebDriver::HTTPServer::listen): Add Cache-Control header.
[CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit https://bugs.webkit.org/show_bug.cgi?id=174558 Reviewed by Alex Christensen. .: * CMakeLists.txt: * Source/PlatformGTK.cmake: * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsWPE.cmake: * Source/cmake/WebKitCommon.cmake: * Source/cmake/WebKitFS.cmake: Source/WebDriver: * CMakeLists.txt: Source/WebKit: * CMakeLists.txt: * PlatformGTK.cmake: * PlatformMac.cmake: * PlatformWPE.cmake: * PlatformWin.cmake: * Shared/gtk/WebKitWaylandProtocol.xml: Renamed from Source/WebKit/Shared/gtk/WebKit2WaylandProtocol.xml. * UIProcess/gtk/WaylandCompositor.cpp: * WebProcess/gtk/WaylandCompositorDisplay.cpp: Source/WebKitLegacy: With help from Stephan Szabo, thanks! * CMakeLists.txt: * PlatformMac.cmake: * PlatformWin.cmake: Tools: With help from Stephan Szabo, thanks! * DumpRenderTree/PlatformMac.cmake: * DumpRenderTree/PlatformWin.cmake: * DumpRenderTree/win/AccessibilityControllerWin.cpp: * DumpRenderTree/win/DRTDesktopNotificationPresenter.h: * DumpRenderTree/win/DumpRenderTree.cpp: * DumpRenderTree/win/EditingDelegate.h: * DumpRenderTree/win/EventSender.cpp: * DumpRenderTree/win/FrameLoadDelegate.cpp: * DumpRenderTree/win/FrameLoadDelegate.h: * DumpRenderTree/win/GCControllerWin.cpp: * DumpRenderTree/win/HistoryDelegate.cpp: * DumpRenderTree/win/HistoryDelegate.h: * DumpRenderTree/win/PolicyDelegate.h: * DumpRenderTree/win/ResourceLoadDelegate.cpp: * DumpRenderTree/win/ResourceLoadDelegate.h: * DumpRenderTree/win/TestRunnerWin.cpp: * DumpRenderTree/win/TextInputControllerWin.cpp: * DumpRenderTree/win/UIDelegate.cpp: * DumpRenderTree/win/UIDelegate.h: * DumpRenderTree/win/WorkQueueItemWin.cpp: * MiniBrowser/gtk/CMakeLists.txt: * MiniBrowser/mac/CMakeLists.txt: * MiniBrowser/win/AccessibilityDelegate.cpp: * MiniBrowser/win/AccessibilityDelegate.h: * MiniBrowser/win/CMakeLists.txt: * MiniBrowser/win/Common.cpp: * MiniBrowser/win/DOMDefaultImpl.h: * MiniBrowser/win/MiniBrowser.cpp: * MiniBrowser/win/MiniBrowser.h: * MiniBrowser/win/MiniBrowserWebHost.cpp: * MiniBrowser/win/MiniBrowserWebHost.h: * MiniBrowser/win/PageLoadTestClient.h: * MiniBrowser/win/PrintWebUIDelegate.cpp: * MiniBrowser/win/PrintWebUIDelegate.h: * MiniBrowser/win/ResourceLoadDelegate.cpp: * MiniBrowser/win/ResourceLoadDelegate.h: * MiniBrowser/win/WebDownloadDelegate.h: * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/PlatformWPE.cmake: * TestWebKitAPI/PlatformWin.cmake: * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp: * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp: * TestWebKitAPI/glib/CMakeLists.txt: * WebKitTestRunner/CMakeLists.txt: * WebKitTestRunner/PlatformGTK.cmake: * WebKitTestRunner/PlatformWPE.cmake: Canonical link: https://commits.webkit.org/193516@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-19 00:29:31 +00:00
2017-09-18 Michael Catanzaro <mcatanzaro@igalia.com>
[CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
https://bugs.webkit.org/show_bug.cgi?id=174558
Reviewed by Alex Christensen.
* CMakeLists.txt:
WTF: use Forward.h when appropriate instead of Vector.h https://bugs.webkit.org/show_bug.cgi?id=176984 Reviewed by Saam Barati. There's no need to include Vector.h when Forward.h will suffice. All we need is to move the template default parameters from Vector, and then the forward declaration can be used in so many new places: if a header only takes Vector by reference, rvalue reference, pointer, returns any of these, or has them as members then the header doesn't need to see the definition because the declaration will suffice. Source/JavaScriptCore: * bytecode/HandlerInfo.h: * heap/GCIncomingRefCounted.h: * heap/GCSegmentedArray.h: * wasm/js/JSWebAssemblyModule.h: Source/WebCore: * Modules/entriesapi/FileSystemEntriesCallback.h: * Modules/indexeddb/IDBEventDispatcher.h: * Modules/indexeddb/IDBFactory.h: * Modules/indexeddb/client/IDBConnectionProxy.h: * Modules/indexeddb/server/IDBConnectionToClientDelegate.h: * Modules/webdatabase/DatabaseTask.h: * Modules/websockets/WebSocketChannelClient.h: * contentextensions/CombinedURLFilters.h: * crypto/SerializedCryptoKeyWrap.h: * css/InspectorCSSOMWrappers.h: * css/PageRuleCollector.h: * css/parser/CSSParserTokenRange.h: * dom/DocumentTouch.h: * dom/MutationCallback.h: * editing/EditingStyle.h: * editing/SpellChecker.h: * editing/markup.h: * fileapi/ThreadableBlobRegistry.h: * html/FileListCreator.h: * inspector/WebHeapAgent.h: * loader/ContentFilter.cpp: (WebCore::ContentFilter::ContentFilter): * loader/ContentFilter.h: * loader/CookieJar.h: * loader/FrameLoaderClient.h: * loader/LoaderStrategy.h: * loader/SubframeLoader.h: * page/ChromeClient.h: * page/FrameSnapshotting.h: * page/IntersectionObserverCallback.h: * page/PageSerializer.h: * page/UserContentURLPattern.h: * page/scrolling/AxisScrollSnapOffsets.h: * page/win/FrameWin.h: * platform/CookiesStrategy.h: * platform/KeyedCoding.h: * platform/PasteboardStrategy.h: * platform/SSLKeyGenerator.h: * platform/ScrollableArea.h: * platform/encryptedmedia/CDMFactory.h: * platform/gamepad/EmptyGamepadProvider.cpp: * platform/gamepad/GamepadProvider.h: * platform/gamepad/GamepadProviderClient.h: * platform/gamepad/PlatformGamepad.h: * platform/graphics/GeometryUtilities.cpp: * platform/graphics/GeometryUtilities.h: * platform/graphics/Icon.h: * platform/graphics/LayoutRect.h: * platform/graphics/Path.h: * platform/graphics/WOFFFileFormat.h: * platform/graphics/avfoundation/MediaSampleAVFObjC.h: * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.h: * platform/graphics/ca/PlatformCAAnimation.h: * platform/graphics/ca/win/PlatformCALayerWinInternal.h: * platform/graphics/opentype/OpenTypeMathData.h: * platform/image-encoders/JPEGImageEncoder.h: * platform/image-encoders/PNGImageEncoder.h: * platform/network/BlobRegistry.h: * platform/network/HTTPParsers.h: * platform/network/PlatformCookieJar.h: * platform/network/cf/DownloadBundle.h: * platform/network/curl/CurlCacheEntry.h: * platform/network/curl/DownloadBundle.h: * platform/text/LineEnding.h: * platform/text/QuotedPrintable.cpp: * platform/text/QuotedPrintable.h: * rendering/FlexibleBoxAlgorithm.h: * rendering/style/QuotesData.h: * rendering/svg/SVGSubpathData.h: * storage/StorageEventDispatcher.h: * style/StyleInvalidator.h: * style/StyleRelations.h: * svg/SVGAltGlyphDefElement.h: * svg/SVGAltGlyphItemElement.h: Source/WebDriver: * Session.h: Source/WebKit: * Scripts/webkit/LegacyMessages-expected.h: * Scripts/webkit/Messages-expected.h: * Shared/API/APIData.h: * UIProcess/API/APIContextMenuClient.h: * UIProcess/API/APIFormClient.h: * UIProcess/API/APIHTTPCookieStore.h: * UIProcess/API/APINotificationProvider.h: * UIProcess/API/glib/WebKitNotificationProvider.h: * UIProcess/Notifications/WebNotificationProvider.h: * UIProcess/TextCheckerCompletion.h: * UIProcess/WebCookieManagerProxy.h: * UIProcess/WebOpenPanelResultListenerProxy.h: * UIProcess/WebPasteboardProxy.h: * UIProcess/WebPopupMenuProxy.h: * UIProcess/WebTextCheckerClient.h: * WebProcess/Cookies/WebCookieManager.h: * WebProcess/Gamepad/WebGamepadProvider.h: * WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h: * WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h: * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: * WebProcess/InjectedBundle/APIInjectedBundleFormClient.h: * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: * WebProcess/Network/webrtc/WebRTCMonitor.h: * WebProcess/Network/webrtc/WebRTCResolver.h: * WebProcess/WebPage/DrawingArea.h: * WebProcess/WebPage/WebOpenPanelResultListener.h: Source/WTF: * wtf/Forward.h: * wtf/Vector.h: * wtf/text/StringVector.h: Canonical link: https://commits.webkit.org/193435@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222113 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-15 21:28:55 +00:00
2017-09-15 JF Bastien <jfbastien@apple.com>
WTF: use Forward.h when appropriate instead of Vector.h
https://bugs.webkit.org/show_bug.cgi?id=176984
Reviewed by Saam Barati.
There's no need to include Vector.h when Forward.h will suffice. All we need is to move the template default parameters from Vector, and then the forward declaration can be used in so many new places: if a header only takes Vector by reference, rvalue reference, pointer, returns any of these, or has them as members then the header doesn't need to see the definition because the declaration will suffice.
* Session.h:
2017-09-09 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: ensure we close all windows handles when closing the session
https://bugs.webkit.org/show_bug.cgi?id=176508
Reviewed by Brian Burg.
The spec says that when closing the session all top level browsing contexts should be closed. We are currently
checking if we have an active top level browsing context and then we try to close it before trying with the
rest. It can happen that we are in an inconsistent state, for example if the current top level browsing context
has been closed by JavaScript or another action and the user didn't switch to another one before closing the
session. In such case, closing the session will fail with NoSuchwindow and any other window open will not be
closed. It's safer to always ask for all window handles and close them, which is what the spec says too.
* Session.cpp:
(WebDriver::firstWindowHandleInResult): Helper class to get the first window handle in the result array.
(WebDriver::Session::closeAllToplevelBrowsingContexts): Use firstWindowHandleInResult().
(WebDriver::Session::close): Close the current top level browsing context and get all window handles to close
them all if needed.
WebDriver: implement screen capture commands https://bugs.webkit.org/show_bug.cgi?id=174615 Reviewed by Brian Burg. Source/WebDriver: Implement takeScreenshot and takeElementScreenshot commands. 19. Screen Capture. https://w3c.github.io/webdriver/webdriver-spec.html#screen-capture * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): Handle ScreenshotError protocol error. (WebDriver::CommandResult::httpStatusCode const): Add UnableToCaptureScreen. (WebDriver::CommandResult::errorString const): Ditto. * CommandResult.h: * Session.cpp: (WebDriver::Session::takeScreenshot): * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::takeScreenshot): (WebDriver::WebDriverService::takeElementScreenshot): * WebDriverService.h: Source/WebKit: Extend takeScreenshot command to optionally take a screenshot of an element. When no element is provided, the screenshot is taken from the page visible area. * PlatformGTK.cmake: Add WebAutomationSessionCairo.cpp to compilation. * PlatformWPE.cmake: Ditto. * UIProcess/Automation/Automation.json: Add ScreenshotError and several optional parameters to takeScreenshot. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::takeScreenshot): Receive optional frame, node and scrollIntoView that are checked and passed to the web process. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp: Added. (WebKit::WebAutomationSession::platformGetBase64EncodedPNGData): Cairo implementation. * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::snapshotRectForScreenshot): Helper to get the rectangle to be used for a screenshot. (WebKit::WebAutomationSessionProxy::takeScreenshot): If a node handle is provided take the snapshot using the element rectangle, otherwise use the page visible content rectangle. * WebProcess/Automation/WebAutomationSessionProxy.h: * WebProcess/Automation/WebAutomationSessionProxy.messages.in: Update TakeSnapshot message. Canonical link: https://commits.webkit.org/192690@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221255 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-28 13:55:10 +00:00
2017-08-28 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement screen capture commands
https://bugs.webkit.org/show_bug.cgi?id=174615
Reviewed by Brian Burg.
Implement takeScreenshot and takeElementScreenshot commands.
19. Screen Capture.
https://w3c.github.io/webdriver/webdriver-spec.html#screen-capture
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle ScreenshotError protocol error.
(WebDriver::CommandResult::httpStatusCode const): Add UnableToCaptureScreen.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::takeScreenshot):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::takeScreenshot):
(WebDriver::WebDriverService::takeElementScreenshot):
* WebDriverService.h:
2017-08-28 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement cookies commands
https://bugs.webkit.org/show_bug.cgi?id=174613
Reviewed by Brian Burg.
Add cookies commands.
16. Cookies.
https://w3c.github.io/webdriver/webdriver-spec.html#cookies
* CommandResult.cpp:
(WebDriver::CommandResult::httpStatusCode const): Add NoSuchCookie error.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::parseAutomationCookie): Parse JSON cookie object returned by automation and convert it to a Cookie struct.
(WebDriver::builtAutomationCookie): Build a JSON cookie object as expected by automation from a Cookie struct.
(WebDriver::serializeCookie): Serialize a Cookie struct into a JSON cookie object according to the WebDriver spec.
(WebDriver::Session::getAllCookies):
(WebDriver::Session::getNamedCookie):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getAllCookies):
(WebDriver::WebDriverService::getNamedCookie):
(WebDriver::deserializeCookie):
(WebDriver::WebDriverService::addCookie):
(WebDriver::WebDriverService::deleteCookie):
(WebDriver::WebDriverService::deleteAllCookies):
* WebDriverService.h:
WebDriver: fix return value of close window command https://bugs.webkit.org/show_bug.cgi?id=174861 Reviewed by Brian Burg. We are currently returning null, but we should return the list of window handles, and try to close the session if there aren't more window handles. 10.2 Close Window https://w3c.github.io/webdriver/webdriver-spec.html#close-window 3. If there are no more open top-level browsing contexts, then try to close the session. 4. Return the result of running the remote end steps for the Get Window Handles command. * Session.cpp: (WebDriver::Session::closeAllToplevelBrowsingContexts): Helper function to close the given toplevel browsing context and the next one if there are more. (WebDriver::Session::close): Call closeAllToplevelBrowsingContexts() to delete all toplevel browsing contexts of the session. (WebDriver::Session::closeTopLevelBrowsingContext): Close the given toplevel browsing context and call getWindowHandles() when done. (WebDriver::Session::closeWindow): Call closeTopLevelBrowsingContext() passing the current toplevel browsing context. (WebDriver::Session::getWindowHandles): Remove the early return, this command doesn't depend on a current toplevel browsing context. * Session.h: * SessionHost.h: * WebDriverService.cpp: (WebDriver::WebDriverService::run): Disconnect the server when main loop quits. (WebDriver::WebDriverService::deleteSession): Do not fail if the given session is not active. (WebDriver::WebDriverService::closeWindow): Remove the session if the closed window was the last one. * WebDriverService.h: Remove unused quit() method. * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::isConnected): Return whether host is connected to a browser instance. (WebDriver::SessionHost::dbusConnectionClosedCallback): Delete m_browser. Canonical link: https://commits.webkit.org/192294@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-16 11:38:22 +00:00
2017-07-28 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: fix return value of close window command
https://bugs.webkit.org/show_bug.cgi?id=174861
Reviewed by Brian Burg.
We are currently returning null, but we should return the list of window handles, and try to close the session
if there aren't more window handles.
10.2 Close Window
https://w3c.github.io/webdriver/webdriver-spec.html#close-window
3. If there are no more open top-level browsing contexts, then try to close the session.
4. Return the result of running the remote end steps for the Get Window Handles command.
* Session.cpp:
(WebDriver::Session::closeAllToplevelBrowsingContexts): Helper function to close the given toplevel browsing
context and the next one if there are more.
(WebDriver::Session::close): Call closeAllToplevelBrowsingContexts() to delete all toplevel browsing contexts of
the session.
(WebDriver::Session::closeTopLevelBrowsingContext): Close the given toplevel browsing context and call
getWindowHandles() when done.
(WebDriver::Session::closeWindow): Call closeTopLevelBrowsingContext() passing the current toplevel browsing context.
(WebDriver::Session::getWindowHandles): Remove the early return, this command doesn't depend on a current
toplevel browsing context.
* Session.h:
* SessionHost.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::run): Disconnect the server when main loop quits.
(WebDriver::WebDriverService::deleteSession): Do not fail if the given session is not active.
(WebDriver::WebDriverService::closeWindow): Remove the session if the closed window was the last one.
* WebDriverService.h: Remove unused quit() method.
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::isConnected): Return whether host is connected to a browser instance.
(WebDriver::SessionHost::dbusConnectionClosedCallback): Delete m_browser.
WebDriver: handle click events on option elements https://bugs.webkit.org/show_bug.cgi?id=174710 <rdar://problem/33459305> Reviewed by Brian Burg. Source/WebCore: Export WebCore symbols required by WebKit layer. * html/HTMLOptGroupElement.h: * html/HTMLOptionElement.h: Source/WebDriver: Option elements are considered as a special case by the specification. When clicking an option element, we should get its container and use it when scrolling into view and calculating in-view center point instead of the option element itself. Then, we should not emulate a click, but change the selected status of the option element like if it were done by a user action, firing the corresponding events. Now we check whether the element is an option to call selectOptionElement() or performMouseInteraction(). This fixes more than 20 selenium tests. * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): Handle ElementNotSelectable protocol error. (WebDriver::CommandResult::httpStatusCode const): Add ElementNotSelectable. (WebDriver::CommandResult::errorString const): Ditto. * CommandResult.h: * Session.cpp: (WebDriver::Session::selectOptionElement): Ask automation to select the given option element. (WebDriver::Session::elementClick): Call selectOptionElement() or performMouseInteraction() depending on whether the element is an option or not. * Session.h: Source/WebKit: Add selectOptionElement method to automation to select an option element according to the WebDriver specification. 14.1 Element Click. https://w3c.github.io/webdriver/webdriver-spec.html#element-click * UIProcess/Automation/Automation.json: Add selectOptionElement method and ElementNotSelectable error. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::selectOptionElement):Send SelectOptionElement message to the web process. (WebKit::WebAutomationSession::didSelectOptionElement): Notify the driver. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/WebAutomationSession.messages.in: Add DidSelectOptionElement message. * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::elementContainer): Helper to get the container of an element according to the spec. (WebKit::WebAutomationSessionProxy::computeElementLayout): Use the container element to scroll the view and compute the in-view center point. (WebKit::WebAutomationSessionProxy::selectOptionElement): Use HTMLSelectElement::optionSelectedByUser(). * WebProcess/Automation/WebAutomationSessionProxy.h: * WebProcess/Automation/WebAutomationSessionProxy.messages.in: Add SelectOptionElement message. Canonical link: https://commits.webkit.org/192255@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220740 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-15 07:03:13 +00:00
2017-08-14 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: handle click events on option elements
https://bugs.webkit.org/show_bug.cgi?id=174710
<rdar://problem/33459305>
Reviewed by Brian Burg.
Option elements are considered as a special case by the specification. When clicking an option element, we
should get its container and use it when scrolling into view and calculating in-view center point instead of the
option element itself. Then, we should not emulate a click, but change the selected status of the option element
like if it were done by a user action, firing the corresponding events. Now we check whether the element is an
option to call selectOptionElement() or performMouseInteraction().
This fixes more than 20 selenium tests.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle ElementNotSelectable protocol error.
(WebDriver::CommandResult::httpStatusCode const): Add ElementNotSelectable.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::selectOptionElement): Ask automation to select the given option element.
(WebDriver::Session::elementClick): Call selectOptionElement() or performMouseInteraction() depending on whether
the element is an option or not.
* Session.h:
2017-08-11 Carlos Alberto Lopez Perez <clopez@igalia.com>
Fix build warning in WebDriverService.h
https://bugs.webkit.org/show_bug.cgi?id=166682
Unreviewed build fix.
* WebDriverService.h: Fixes the warning: class 'Capabilities' was previously declared as a struct [-Wmismatched-tags]
2017-08-08 Michael Catanzaro <mcatanzaro@igalia.com>
Unreviewed, fix Ubuntu LTS build
https://bugs.webkit.org/show_bug.cgi?id=174490
* glib/SessionHostGlib.cpp:
[CMake] Properly test if compiler supports compiler flags https://bugs.webkit.org/show_bug.cgi?id=174490 Reviewed by Konstantin Tokarev. .: This turned out to be a massive pain. I didn't want to merely check options before using them: I also wanted to organize the code to avoid setting similar flags in different places. Right now we set a bunch of global flags in OptionsCommon.cmake, and a bunch more flags in WEBKIT_SET_EXTRA_COMPILER_FLAGS on a per-target basis. Setting flags per-target seems better in general, e.g. because it makes it very easy to disable warnings for particular ThirdParty targets. But it turns out that all the flags set on a per-target basis get passed to both the C compiler and the C++ compiler, so it's impossible to pass C++-only flags there. That's terrible. It's possible to make the flags language-conditional using generator expressions, but that doesn't work for the Visual Studio backend, so we would have to drop support for that (not going to happen). The CMake documentation suggests that C and C++ files ought to be built in separate targets to avoid this. It's a mess, basically. So I've wound up removing WEBKIT_SET_EXTRA_COMPILER_FLAGS and adding most of those flags to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS instead. Really the only disadvantage of this is we now have to suppress individual warnings when building ANGLESupport in WebCore. That's not the end of the world. The only remaining useful feature of WEBKIT_SET_EXTRA_COMPILER_FLAGS was to add -fPIC to static library targets, but turns out CMake does that for us if we just set the variable CMAKE_POSITION_INDEPENDENT_CODE, so we can get rid of it completely. Of course there are also macros for setting target-specific compiler flags, which we frequently need in order to suppress specific warnings, particularly warnings coming from third-party libraries like ANGLE and gtest. But remember the footgun: these macros will test the flag against only one compiler, but must work with both C and C++ compilers unless the build target exclusively contains targets built with just one of those compilers. Yuck. * CMakeLists.txt: * Source/CMakeLists.txt: * Source/PlatformGTK.cmake: * Source/cmake/OptionsCommon.cmake: * Source/cmake/WebKitCommon.cmake: * Source/cmake/WebKitCompilerFlags.cmake: Added. * Source/cmake/WebKitMacros.cmake: Source/JavaScriptCore: * API/tests/PingPongStackOverflowTest.cpp: (testPingPongStackOverflow): * API/tests/testapi.c: * b3/testb3.cpp: (JSC::B3::testPatchpointLotsOfLateAnys): Source/ThirdParty: * brotli/CMakeLists.txt: * gtest/CMakeLists.txt: * woff2/CMakeLists.txt: * xdgmime/CMakeLists.txt: Source/WebCore: * CMakeLists.txt: * PlatformGTK.cmake: * PlatformWPE.cmake: Source/WebDriver: * WebDriverService.cpp: (WebDriver::WebDriverService::run): * glib/SessionHostGlib.cpp: Source/WebKit: * CMakeLists.txt: * PlatformGTK.cmake: Source/WTF: * wtf/Compiler.h: Tools: * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: * MiniBrowser/gtk/CMakeLists.txt: * TestRunnerShared/Bindings/JSWrapper.cpp: (WTR::JSWrapper::initialize): * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp: (TestWebKitAPI::CheckedArithmeticTester::run): * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: (formControlsAssociatedCallback): * TestWebKitAPI/glib/CMakeLists.txt: * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::getResourcesDir): * WebKitTestRunner/CMakeLists.txt: * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: (WTR::menuItemClickCallback): (WTR::staticConvertMenuItemToType): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setUseDashboardCompatibilityMode): * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: (WTR::AccessibilityNotificationHandler::disconnectAccessibilityCallbacks): * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::helpText const): (WTR::AccessibilityUIElement::attributedStringForRange): * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: (WTR::EventSenderProxy::updateTouchPoint): (WTR::EventSenderProxy::releaseTouchPoint): Canonical link: https://commits.webkit.org/192040@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220403 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-08 15:03:48 +00:00
2017-08-08 Michael Catanzaro <mcatanzaro@igalia.com>
[CMake] Properly test if compiler supports compiler flags
https://bugs.webkit.org/show_bug.cgi?id=174490
Reviewed by Konstantin Tokarev.
* WebDriverService.cpp:
(WebDriver::WebDriverService::run):
* glib/SessionHostGlib.cpp:
Web Automation: setUserInputForCurrentJavaScriptPrompt should fail if current dialog is not a prompt https://bugs.webkit.org/show_bug.cgi?id=175261 Reviewed by Brian Burg. Source/WebDriver: * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): Handle ElementNotInteractable protocol error. Source/WebKit: According to the spec, send alert text command should fail if the current dialog is not a prompt. This patch adds JavaScriptDialogType enum to API::AutomationSessionClient and a new virtual method to ask the client about the type of the current dialog. WebAutomationSession::setUserInputForCurrentJavaScriptPrompt() uses the new client method to check the type of the current dialog and fail in case it's not a prompt. Cocoa needs an implementation, for now it always returns Prompt as the type to keep compatibility. 18.4 Send Alert Text. https://w3c.github.io/webdriver/webdriver-spec.html#send-alert-text This fixes selenium test testSettingTheValueOfAnAlertThrows. * UIProcess/API/APIAutomationSessionClient.h: (API::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): * UIProcess/API/glib/WebKitAutomationSession.cpp: * UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewGetCurrentScriptDialogType): * UIProcess/API/glib/WebKitWebViewPrivate.h: * UIProcess/Automation/Automation.json: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt): * UIProcess/Cocoa/AutomationSessionClient.h: * UIProcess/Cocoa/AutomationSessionClient.mm: (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): Canonical link: https://commits.webkit.org/192031@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220394 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-08 08:29:19 +00:00
2017-08-07 Carlos Garcia Campos <cgarcia@igalia.com>
Web Automation: setUserInputForCurrentJavaScriptPrompt should fail if current dialog is not a prompt
https://bugs.webkit.org/show_bug.cgi?id=175261
Reviewed by Brian Burg.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle ElementNotInteractable protocol error.
WebDriver: implement unhandled prompt behavior https://bugs.webkit.org/show_bug.cgi?id=175184 Reviewed by Brian Burg. Handle user prompts before running some of the commands according to the specification. * Capabilities.h: Add UnhandledPromptBehavior capability. * CommandResult.cpp: (WebDriver::CommandResult::httpStatusCode const): Add UnexpectedAlertOpen error. (WebDriver::CommandResult::errorString const): Ditto. * CommandResult.h: (WebDriver::CommandResult::setAdditonalErrorData): New method to set an additional data object that will be sent as part of the result error message. (WebDriver::CommandResult::additionalErrorData const): Return the additional data object. * Session.cpp: (WebDriver::Session::handleUserPrompts): Check if there's an active JavaScript dialog and deal with it depeding on the unhandled prompt behavior. (WebDriver::Session::reportUnexpectedAlertOpen): Generate an error message with UnexpectedAlertOpen error and including the alert text as additional error data. (WebDriver::Session::go): Handle user prompts before running the command. (WebDriver::Session::getCurrentURL): Ditto. (WebDriver::Session::back): Ditto. (WebDriver::Session::forward): Ditto. (WebDriver::Session::refresh): Ditto. (WebDriver::Session::getTitle): Ditto. (WebDriver::Session::closeWindow): Ditto. (WebDriver::Session::switchToFrame): Ditto. (WebDriver::Session::switchToParentFrame): Ditto. (WebDriver::Session::isElementSelected): Ditto. (WebDriver::Session::getElementText): Ditto. (WebDriver::Session::getElementTagName): Ditto. (WebDriver::Session::getElementRect): Ditto. (WebDriver::Session::isElementEnabled): Ditto. (WebDriver::Session::isElementDisplayed): Ditto. (WebDriver::Session::getElementAttribute): Ditto. (WebDriver::Session::elementSendKeys): Ditto. (WebDriver::Session::elementSubmit): Ditto. (WebDriver::Session::executeScript): Ditto. * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::sendResponse const): Send data object as part of the result error message if present. (WebDriver::deserializeUnhandledPromptBehavior): (WebDriver::WebDriverService::parseCapabilities const): (WebDriver::WebDriverService::validatedCapabilities const): (WebDriver::WebDriverService::newSession): Canonical link: https://commits.webkit.org/192027@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-08 06:43:25 +00:00
2017-08-07 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement unhandled prompt behavior
https://bugs.webkit.org/show_bug.cgi?id=175184
Reviewed by Brian Burg.
Handle user prompts before running some of the commands according to the specification.
* Capabilities.h: Add UnhandledPromptBehavior capability.
* CommandResult.cpp:
(WebDriver::CommandResult::httpStatusCode const): Add UnexpectedAlertOpen error.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
(WebDriver::CommandResult::setAdditonalErrorData): New method to set an additional data object that will be sent
as part of the result error message.
(WebDriver::CommandResult::additionalErrorData const): Return the additional data object.
* Session.cpp:
(WebDriver::Session::handleUserPrompts): Check if there's an active JavaScript dialog and deal with it depeding
on the unhandled prompt behavior.
(WebDriver::Session::reportUnexpectedAlertOpen): Generate an error message with UnexpectedAlertOpen error and
including the alert text as additional error data.
(WebDriver::Session::go): Handle user prompts before running the command.
(WebDriver::Session::getCurrentURL): Ditto.
(WebDriver::Session::back): Ditto.
(WebDriver::Session::forward): Ditto.
(WebDriver::Session::refresh): Ditto.
(WebDriver::Session::getTitle): Ditto.
(WebDriver::Session::closeWindow): Ditto.
(WebDriver::Session::switchToFrame): Ditto.
(WebDriver::Session::switchToParentFrame): Ditto.
(WebDriver::Session::isElementSelected): Ditto.
(WebDriver::Session::getElementText): Ditto.
(WebDriver::Session::getElementTagName): Ditto.
(WebDriver::Session::getElementRect): Ditto.
(WebDriver::Session::isElementEnabled): Ditto.
(WebDriver::Session::isElementDisplayed): Ditto.
(WebDriver::Session::getElementAttribute): Ditto.
(WebDriver::Session::elementSendKeys): Ditto.
(WebDriver::Session::elementSubmit): Ditto.
(WebDriver::Session::executeScript): Ditto.
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::sendResponse const): Send data object as part of the result error message if present.
(WebDriver::deserializeUnhandledPromptBehavior):
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::newSession):
2017-08-07 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement user prompt commands
https://bugs.webkit.org/show_bug.cgi?id=174614
Reviewed by Brian Burg.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle NoJavaScriptDialog protocol error.
(WebDriver::CommandResult::httpStatusCode const): Add NoSuchAlert.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::dismissAlert):
(WebDriver::WebDriverService::acceptAlert):
(WebDriver::WebDriverService::getAlertText):
(WebDriver::WebDriverService::sendAlertText):
* WebDriverService.h:
[GTK][WPE] Add API to provide browser information required by automation https://bugs.webkit.org/show_bug.cgi?id=175130 Source/JavaScriptCore: Reviewed by Brian Burg. Add browserName and browserVersion to RemoteInspector::Client::Capabilities and virtual methods to the Client to get them. * inspector/remote/RemoteInspector.cpp: (Inspector::RemoteInspector::updateClientCapabilities): Update also browserName and browserVersion. * inspector/remote/RemoteInspector.h: * inspector/remote/glib/RemoteInspectorGlib.cpp: (Inspector::RemoteInspector::requestAutomationSession): Call updateClientCapabilities() after the session is requested to ensure they are updated before StartAutomationSession reply is sent. * inspector/remote/glib/RemoteInspectorServer.cpp: Add browserName and browserVersion as return values of StartAutomationSession mesasage. Source/WebDriver: Reviewed by Brian Burg. * Session.cpp: (WebDriver::Session::createTopLevelBrowsingContext): Check if startAutomationSession and complete the command with error in that case. * SessionHost.h: * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::matchCapabilities): Match the capabilities that are known only after the browser has been launched. (WebDriver::SessionHost::startAutomationSession): Handle the StartAutomationSession response, extracting the capabilities and calling matchCapabilities() to match them. (WebDriver::SessionHost::setTargetList): Return early if the session was rejected before due to invalid capabilities. Source/WebKit: Reviewed by Michael Catanzaro. When a new automation session is started, the web driver receives some required capabilities from the client, like browser name and version. The session should be rejected if those required capabilities don't match with the actual browser that is launched. We don't know that information in WebKit, so we need to add API so that users can provide it when a new session request is made. This patch adds boxed object WebKitApplicationInfo that can be used to set the application name and version. This object can be set to a WebKitAutomationSession when WebKitWebContext::automation-started signal is emitted. * PlatformGTK.cmake: * PlatformWPE.cmake: * UIProcess/API/glib/WebKitApplicationInfo.cpp: Added. (webkit_application_info_new): (webkit_application_info_ref): (webkit_application_info_unref): (webkit_application_info_set_name): (webkit_application_info_get_name): (webkit_application_info_set_version): (webkit_application_info_get_version): * UIProcess/API/glib/WebKitAutomationSession.cpp: (webkitAutomationSessionDispose): (webkit_automation_session_class_init): (webkitAutomationSessionGetBrowserName): (webkitAutomationSessionGetBrowserVersion): (webkit_automation_session_set_application_info): (webkit_automation_session_get_application_info): * UIProcess/API/glib/WebKitAutomationSessionPrivate.h: * UIProcess/API/glib/WebKitWebContext.cpp: * UIProcess/API/gtk/WebKitApplicationInfo.h: Added. * UIProcess/API/gtk/WebKitAutomationSession.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: * UIProcess/API/gtk/webkit2.h: * UIProcess/API/wpe/WebKitApplicationInfo.h: Added. * UIProcess/API/wpe/WebKitAutomationSession.h: * UIProcess/API/wpe/webkit.h: Tools: Reviewed by Michael Catanzaro. * MiniBrowser/gtk/main.c: (automationStartedCallback): Set browser information when a new automation session is started. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: (testAutomationSessionApplicationInfo): (beforeAll): Canonical link: https://commits.webkit.org/191985@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-07 06:06:34 +00:00
2017-08-05 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WPE] Add API to provide browser information required by automation
https://bugs.webkit.org/show_bug.cgi?id=175130
Reviewed by Brian Burg.
* Session.cpp:
(WebDriver::Session::createTopLevelBrowsingContext): Check if startAutomationSession and complete the command
with error in that case.
* SessionHost.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::matchCapabilities): Match the capabilities that are known only after the browser has
been launched.
(WebDriver::SessionHost::startAutomationSession): Handle the StartAutomationSession response, extracting the
capabilities and calling matchCapabilities() to match them.
(WebDriver::SessionHost::setTargetList): Return early if the session was rejected before due to invalid
capabilities.
WebDriver: Implement page load strategy https://bugs.webkit.org/show_bug.cgi?id=175183 Reviewed by Brian Burg. Source/WebDriver: Validate and parse page load strategy when processing capabilities. * Capabilities.h: * Session.cpp: (WebDriver::Session::pageLoadStrategyString const): Helper to get the page load strategy as a String to be passed to Automation. (WebDriver::Session::go): Pass page load strategy if present. (WebDriver::Session::back): Ditto. (WebDriver::Session::forward): Ditto. (WebDriver::Session::refresh): Ditto. (WebDriver::Session::waitForNavigationToComplete): Ditto. * Session.h: * WebDriverService.cpp: (WebDriver::deserializePageLoadStrategy): (WebDriver::WebDriverService::parseCapabilities const): (WebDriver::WebDriverService::validatedCapabilities const): (WebDriver::WebDriverService::newSession): Source/WebKit: Split pending navigation maps into normal and eager, and use one or the other depending on the received page load strategy. We need to keep different maps for every page load strategy because every command could use a different strategy. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::waitForNavigationToComplete): Extract page load strategy from parameter and pass it to waitForNavigationToCompleteOnPage() and waitForNavigationToCompleteOnFrame(). (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): Return early if page load strategy is none. Otherwise at the pening callback to the normal or eager map depeding on the page load straegy. (WebKit::WebAutomationSession::waitForNavigationToCompleteOnFrame): Ditto. (WebKit::respondToPendingNavigationCallbacksWithTimeout): Helper to send pening navigation callback in case of timeout failure. (WebKit::WebAutomationSession::loadTimerFired): Call finishPendingNavigationsWithTimeoutFailure() with all the maps. (WebKit::WebAutomationSession::navigateBrowsingContext): Extract page load strategy from parameter and pass it to waitForNavigationToCompleteOnPage(). (WebKit::WebAutomationSession::goBackInBrowsingContext): Ditto. (WebKit::WebAutomationSession::goForwardInBrowsingContext): Ditto. (WebKit::WebAutomationSession::reloadBrowsingContext): Ditto. (WebKit::WebAutomationSession::navigationOccurredForFrame): Use the normal maps. (WebKit::WebAutomationSession::documentLoadedForFrame): Stop timeout timer and dispatch eager pending navigations. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): Notify the automation session. Canonical link: https://commits.webkit.org/191973@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-05 11:14:34 +00:00
2017-08-05 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: Implement page load strategy
https://bugs.webkit.org/show_bug.cgi?id=175183
Reviewed by Brian Burg.
Validate and parse page load strategy when processing capabilities.
* Capabilities.h:
* Session.cpp:
(WebDriver::Session::pageLoadStrategyString const): Helper to get the page load strategy as a String to be
passed to Automation.
(WebDriver::Session::go): Pass page load strategy if present.
(WebDriver::Session::back): Ditto.
(WebDriver::Session::forward): Ditto.
(WebDriver::Session::refresh): Ditto.
(WebDriver::Session::waitForNavigationToComplete): Ditto.
* Session.h:
* WebDriverService.cpp:
(WebDriver::deserializePageLoadStrategy):
(WebDriver::WebDriverService::parseCapabilities const):
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::newSession):
2017-08-05 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Try to fix build with clang after r220315.
* WebDriverService.cpp:
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::mergeCapabilities const):
WebDriver: properly handle capabilities and process firstMatch too https://bugs.webkit.org/show_bug.cgi?id=174618 Reviewed by Brian Burg. Implement processing of capabilities following the spec. This patch adds validation, merging and matching of capabilities. 7.2 Processing Capabilities. https://w3c.github.io/webdriver/webdriver-spec.html#processing-capabilities * Capabilities.h: Make all capabilities optional and move Timeouts struct here. * Session.h: * WebDriverService.cpp: (WebDriver::deserializeTimeouts): Helper to extract timeouts from JSON object. (WebDriver::WebDriverService::parseCapabilities const): At this point capabilities have already been validated, so we just need to get them without checking the value type. (WebDriver::WebDriverService::validatedCapabilities const): Validate the given capabilities, ensuring types of values are the expected one. (WebDriver::WebDriverService::mergeCapabilities const): Merge the alwaysMatch and firstMatch capabilities into a single object ensuring that the same capability is not in both. (WebDriver::WebDriverService::matchCapabilities const): Try to match the merged capabilities againt the platform expected capabilities. (WebDriver::WebDriverService::processCapabilities const): Validate, merge and match the capabilities. (WebDriver::WebDriverService::newSession): Use processCapabilities(). Also initialize the timeouts from capabilities and add all capabilities to the command result. (WebDriver::WebDriverService::setTimeouts): Use deserializeTimeouts(). * WebDriverService.h: * glib/SessionHostGlib.cpp: (WebDriver::SessionHost::launchBrowser): Updated to properly access the capabilities that are now optional. (WebDriver::SessionHost::startAutomationSession): Add FIXME. * gtk/WebDriverServiceGtk.cpp: (WebDriver::WebDriverService::platformCapabilities): Return the Capabilities with the known required ones filled. (WebDriver::WebDriverService::platformValidateCapability const): Validate webkitgtk:browserOptions. (WebDriver::WebDriverService::platformMatchCapability const): This does nothing for now. (WebDriver::WebDriverService::platformCompareBrowserVersions): Compare the given browser versions. (WebDriver::WebDriverService::platformParseCapabilities const): Updated now that capabilites have already been validated before. Canonical link: https://commits.webkit.org/191971@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-05 09:27:15 +00:00
2017-08-05 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: properly handle capabilities and process firstMatch too
https://bugs.webkit.org/show_bug.cgi?id=174618
Reviewed by Brian Burg.
Implement processing of capabilities following the spec. This patch adds validation, merging and matching of
capabilities.
7.2 Processing Capabilities.
https://w3c.github.io/webdriver/webdriver-spec.html#processing-capabilities
* Capabilities.h: Make all capabilities optional and move Timeouts struct here.
* Session.h:
* WebDriverService.cpp:
(WebDriver::deserializeTimeouts): Helper to extract timeouts from JSON object.
(WebDriver::WebDriverService::parseCapabilities const): At this point capabilities have already been validated,
so we just need to get them without checking the value type.
(WebDriver::WebDriverService::validatedCapabilities const): Validate the given capabilities, ensuring types of
values are the expected one.
(WebDriver::WebDriverService::mergeCapabilities const): Merge the alwaysMatch and firstMatch capabilities into a
single object ensuring that the same capability is not in both.
(WebDriver::WebDriverService::matchCapabilities const): Try to match the merged capabilities againt the platform
expected capabilities.
(WebDriver::WebDriverService::processCapabilities const): Validate, merge and match the capabilities.
(WebDriver::WebDriverService::newSession): Use processCapabilities(). Also initialize the timeouts from
capabilities and add all capabilities to the command result.
(WebDriver::WebDriverService::setTimeouts): Use deserializeTimeouts().
* WebDriverService.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::launchBrowser): Updated to properly access the capabilities that are now optional.
(WebDriver::SessionHost::startAutomationSession): Add FIXME.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformCapabilities): Return the Capabilities with the known required ones filled.
(WebDriver::WebDriverService::platformValidateCapability const): Validate webkitgtk:browserOptions.
(WebDriver::WebDriverService::platformMatchCapability const): This does nothing for now.
(WebDriver::WebDriverService::platformCompareBrowserVersions): Compare the given browser versions.
(WebDriver::WebDriverService::platformParseCapabilities const): Updated now that capabilites have already been
validated before.
WebDriver: use in-view center point for clicks instead of bounding box center point https://bugs.webkit.org/show_bug.cgi?id=174863 Reviewed by Simon Fraser. Source/WebCore: Make DOMRect, and FloatPoint::narrowPrecision() available to WebKit layer. Also add FrameView::clientToDocumentPoint(). * WebCore.xcodeproj/project.pbxproj: * dom/Element.h: * page/FrameView.h: * platform/graphics/FloatPoint.h: Source/WebDriver: The center of the element bounding box is not always part of the element, like in multiline links, for example. 11.1 Element Interactability. https://www.w3.org/TR/webdriver/#dfn-in-view-center-point * CommandResult.cpp: (WebDriver::CommandResult::httpStatusCode): Add ElementClickIntercepted and ElementNotInteractable errors. (WebDriver::CommandResult::errorString): Ditto. * CommandResult.h: Ditto. * Session.cpp: (WebDriver::Session::computeElementLayout): Get the in-view center point and isObscured from the result too. (WebDriver::Session::getElementRect): Ignore in-view center point and isObscured. (WebDriver::Session::elementClick): Fail in case the element is not interactable or is obscured. * Session.h: Source/WebKit: Change computeElementLayout to also return the in-view center point and whether it's obscured by another element. * UIProcess/Automation/Automation.json: Add optional inViewCenterPoint to the result and isObscured. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::didComputeElementLayout): Handle inViewCenterPoint and isObscured. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/Automation/WebAutomationSession.messages.in: * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::elementInViewClientCenterPoint): Get the client in-view center point and whether it's obscured according to the spec. (WebKit::WebAutomationSessionProxy::computeElementLayout): Pass inViewCenterPoint and isObscured to DidComputeElementLayout message. Canonical link: https://commits.webkit.org/191970@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-05 08:11:11 +00:00
2017-08-05 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: use in-view center point for clicks instead of bounding box center point
https://bugs.webkit.org/show_bug.cgi?id=174863
Reviewed by Simon Fraser.
The center of the element bounding box is not always part of the element, like in multiline links, for example.
11.1 Element Interactability.
https://www.w3.org/TR/webdriver/#dfn-in-view-center-point
* CommandResult.cpp:
(WebDriver::CommandResult::httpStatusCode): Add ElementClickIntercepted and ElementNotInteractable errors.
(WebDriver::CommandResult::errorString): Ditto.
* CommandResult.h: Ditto.
* Session.cpp:
(WebDriver::Session::computeElementLayout): Get the in-view center point and isObscured from the result too.
(WebDriver::Session::getElementRect): Ignore in-view center point and isObscured.
(WebDriver::Session::elementClick): Fail in case the element is not interactable or is obscured.
* Session.h:
2017-08-01 Michael Catanzaro <mcatanzaro@igalia.com>
[CMake] WebKitFS.cmake depends on options set in Option cmake files that are included later
https://bugs.webkit.org/show_bug.cgi?id=174855
Reviewed by Carlos Garcia Campos.
Don't create derived sources directory here anymore.
* PlatformGTK.cmake:
2017-07-26 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK distcheck.
Ensure WebDriver derived sources directory is created, WebKitFS.cmake is useless for this.
* PlatformGTK.cmake:
2017-07-24 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: rename m_browsingContext as m_currentBrowsingContext in Session
https://bugs.webkit.org/show_bug.cgi?id=174783
Reviewed by Brian Burg.
We have m_toplevelBrowsingContext and m_browsingContext, which is confusing. m_browsingContext is actually the
current browsing context, and the spec also refers to it as the current browsing context, so better use
m_currentBrowsingContext.
* Session.cpp:
(WebDriver::Session::switchToTopLevelBrowsingContext):
(WebDriver::Session::switchToBrowsingContext):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::elementClear):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::elementSubmit):
(WebDriver::Session::executeScript):
* Session.h:
WebDriver: implement page load timeout https://bugs.webkit.org/show_bug.cgi?id=174672 Reviewed by Brian Burg. Source/WebDriver: Handle timeout errors and pass the page load timeout to waitForNavigationToComplete and all other navigation commands. Also fix the setTimeouts command that was still using the legacy name of the page load timeout, instead of the one in the spec. 8. Sessions https://www.w3.org/TR/webdriver/#dfn-session-page-load-timeout * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): (WebDriver::CommandResult::httpStatusCode): (WebDriver::CommandResult::errorString): * CommandResult.h: * Session.cpp: (WebDriver::Session::go): (WebDriver::Session::back): (WebDriver::Session::forward): (WebDriver::Session::refresh): (WebDriver::Session::waitForNavigationToComplete): * WebDriverService.cpp: (WebDriver::WebDriverService::setTimeouts): Source/WebKit: Always start a timer when waiting for a navigation to complete. When the timer fires, pending callbacks for navigations are removed and invoked with a timeout error. If navigation completes before the timer is fired, then the timer is stopped. All navigation commands now receive the page load strategy and timeout as optional parameters, when not provided the default timeout (300 seconds) is used. * UIProcess/Automation/Automation.json: * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::WebAutomationSession): (WebKit::WebAutomationSession::waitForNavigationToComplete): (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): (WebKit::WebAutomationSession::waitForNavigationToCompleteOnFrame): (WebKit::WebAutomationSession::loadTimerFired): (WebKit::WebAutomationSession::navigateBrowsingContext): (WebKit::WebAutomationSession::goBackInBrowsingContext): (WebKit::WebAutomationSession::goForwardInBrowsingContext): (WebKit::WebAutomationSession::reloadBrowsingContext): (WebKit::WebAutomationSession::navigationOccurredForFrame): * UIProcess/Automation/WebAutomationSession.h: Canonical link: https://commits.webkit.org/191582@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-24 05:58:46 +00:00
2017-07-20 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: implement page load timeout
https://bugs.webkit.org/show_bug.cgi?id=174672
Reviewed by Brian Burg.
Handle timeout errors and pass the page load timeout to waitForNavigationToComplete and all other navigation
commands. Also fix the setTimeouts command that was still using the legacy name of the page load timeout,
instead of the one in the spec.
8. Sessions
https://www.w3.org/TR/webdriver/#dfn-session-page-load-timeout
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
(WebDriver::CommandResult::httpStatusCode):
(WebDriver::CommandResult::errorString):
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::go):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::waitForNavigationToComplete):
* WebDriverService.cpp:
(WebDriver::WebDriverService::setTimeouts):
WebDriver: wait until navigation is complete before running new commands and after a click https://bugs.webkit.org/show_bug.cgi?id=174670 Reviewed by Brian Burg. Source/WebDriver: We are already waiting for navigation to complete after navigation commands (go, back, forward, refresh), but the spec says we should always wait before executing a new command and also after a click. This is causing test testShouldBeAbleToNavigateBackInTheBrowserHistoryInPresenceOfIframes to sometimes fail, because it does .click() + .title and expects the title to tbe the one of the page loaded by the click. Since the load happens very fast, the test usually passes, but in a real case with a slower load, the title of the previous page will be returned most of the times. 6.3 Processing Model. Step 7. Wait for navigation to complete. If this returns an error return its value and jump to step 1 in this overall algorithm, otherwise continue. https://www.w3.org/TR/webdriver/#processing-model 14.1 Element Click. Step 10. If the click causes navigation: 1. Run the post-navigation checks and return its value if it is an error. 2. Try to wait for navigation to complete. https://www.w3.org/TR/webdriver/#element-click * Session.cpp: (WebDriver::Session::waitForNavigationToComplete): Send waitForNavigationToComplete message to the browser to wait for any pending navigation of current browsing context to complete. (WebDriver::Session::elementClick): Call waitForNavigationToComplete() after the click. * Session.h: * WebDriverService.cpp: (WebDriver::WebDriverService::go): Wait for navigations to complete before running the command. (WebDriver::WebDriverService::getCurrentURL): Ditto. (WebDriver::WebDriverService::back): Ditto. (WebDriver::WebDriverService::forward): Ditto. (WebDriver::WebDriverService::refresh): Ditto. (WebDriver::WebDriverService::getTitle): Ditto. (WebDriver::WebDriverService::switchToFrame): Ditto. (WebDriver::WebDriverService::switchToParentFrame): Ditto. (WebDriver::WebDriverService::findElement): Ditto. (WebDriver::WebDriverService::findElements): Ditto. (WebDriver::WebDriverService::executeScript): Ditto. (WebDriver::WebDriverService::executeAsyncScript): Ditto. Source/WebKit: Add waitForNavigationToComplete method to Automation to allow WebDriver to wait for pending navigations to complete. The new method already receives page load strategy and timeout, but they are not implemented yet. * UIProcess/Automation/Automation.json: Add waitForNavigationToComplete method and PageLoadStrategy new type. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::waitForNavigationToComplete): Call waitForNavigationToCompleteOnPage or waitForNavigationToCompleteOnFrame depending on whether the current borwsing context is the main frame or not. (WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage): Check if there's an ongoing load for the page, and wait for it to complete if needed. (WebKit::WebAutomationSession::waitForNavigationToCompleteOnFrame): Check if there's an ongoing load for the frame, and wait for it to complete if needed. (WebKit::WebAutomationSession::navigateBrowsingContext): Use waitForNavigationToCompleteOnPage() now. (WebKit::WebAutomationSession::goBackInBrowsingContext): Ditto. (WebKit::WebAutomationSession::goForwardInBrowsingContext): Ditto. (WebKit::WebAutomationSession::reloadBrowsingContext): Ditto. (WebKit::WebAutomationSession::navigationOccurredForFrame): Renamed since it now receives the notification for all the frames. Complete page operations if it's a main frame, or frame operations otherwise. * UIProcess/Automation/WebAutomationSession.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFinishLoadForFrame): Notify about all frames, not only the main one. (WebKit::WebPageProxy::didFailLoadForFrame): Ditto. (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): Ditto. Canonical link: https://commits.webkit.org/191531@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219722 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-21 09:50:49 +00:00
2017-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: wait until navigation is complete before running new commands and after a click
https://bugs.webkit.org/show_bug.cgi?id=174670
Reviewed by Brian Burg.
We are already waiting for navigation to complete after navigation commands (go, back, forward, refresh), but
the spec says we should always wait before executing a new command and also after a click. This is causing test
testShouldBeAbleToNavigateBackInTheBrowserHistoryInPresenceOfIframes to sometimes fail, because it does .click()
+ .title and expects the title to tbe the one of the page loaded by the click. Since the load happens very fast,
the test usually passes, but in a real case with a slower load, the title of the previous page will be returned
most of the times.
6.3 Processing Model. Step 7. Wait for navigation to complete. If this returns an error return its value and
jump to step 1 in this overall algorithm, otherwise continue.
https://www.w3.org/TR/webdriver/#processing-model
14.1 Element Click. Step 10. If the click causes navigation: 1. Run the post-navigation checks and return its
value if it is an error. 2. Try to wait for navigation to complete.
https://www.w3.org/TR/webdriver/#element-click
* Session.cpp:
(WebDriver::Session::waitForNavigationToComplete): Send waitForNavigationToComplete message to the browser to
wait for any pending navigation of current browsing context to complete.
(WebDriver::Session::elementClick): Call waitForNavigationToComplete() after the click.
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::go): Wait for navigations to complete before running the command.
(WebDriver::WebDriverService::getCurrentURL): Ditto.
(WebDriver::WebDriverService::back): Ditto.
(WebDriver::WebDriverService::forward): Ditto.
(WebDriver::WebDriverService::refresh): Ditto.
(WebDriver::WebDriverService::getTitle): Ditto.
(WebDriver::WebDriverService::switchToFrame): Ditto.
(WebDriver::WebDriverService::switchToParentFrame): Ditto.
(WebDriver::WebDriverService::findElement): Ditto.
(WebDriver::WebDriverService::findElements): Ditto.
(WebDriver::WebDriverService::executeScript): Ditto.
(WebDriver::WebDriverService::executeAsyncScript): Ditto.
2017-07-21 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: correctly handle main frame handles
https://bugs.webkit.org/show_bug.cgi?id=174668
Reviewed by Brian Burg.
When I switched to use std::optional instead of empty strings for the browsing contexts in WebDriver, I forgot
that automation uses empty string for frames to refer to the main frame. We should handle that case, because we
are currently considering empty strings as valid browsing context. It's not a big deal because Automation
converts back the empty string received to the main frame, though. We should also ensure we close the current
browsing context when switching to a new top level browsing context. This patch adds to helper private methods
to switch browsing contexts that deal with the special cases.
* Session.cpp:
(WebDriver::Session::close):
(WebDriver::Session::switchToTopLevelBrowsingContext):
(WebDriver::Session::switchToBrowsingContext):
(WebDriver::Session::createTopLevelBrowsingContext):
(WebDriver::Session::go):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::switchToWindow):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
* Session.h:
WebDriver: handle invalid selector errors https://bugs.webkit.org/show_bug.cgi?id=174619 Reviewed by Brian Burg. Source/WebDriver: Add InvalidSelector error and handle it in case of protocol server error. * CommandResult.cpp: (WebDriver::CommandResult::CommandResult): (WebDriver::CommandResult::httpStatusCode): (WebDriver::CommandResult::errorString): * CommandResult.h: Source/WebKit: We are currently handling only XPathException and only when it's an invalid expression. In the xpath case, the spec also says "If any item in result is not an element return an error with error code invalid selector.", so we should also handle TYPE_ERR (The expression could not be converted to return the specified type.). However, since the spec says "or other error", I think we can simplify this and simply throw InvalidSelector inside the catch, without checking any specific error. This is causing 14 failures in selenium tests. §12. Element Retrieval. Step 6: If a DOMException, SyntaxError, XPathException, or other error occurs during the execution of the element location strategy, return error invalid selector. https://www.w3.org/TR/webdriver/#dfn-find * UIProcess/Automation/Automation.json: Add InvalidSelector error. * UIProcess/Automation/atoms/FindNodes.js: (tryToFindNode): Raise InvalidSelector in case of error. * WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidSelector exceptions. Canonical link: https://commits.webkit.org/191463@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-19 06:11:50 +00:00
2017-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
WebDriver: handle invalid selector errors
https://bugs.webkit.org/show_bug.cgi?id=174619
Reviewed by Brian Burg.
Add InvalidSelector error and handle it in case of protocol server error.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
(WebDriver::CommandResult::httpStatusCode):
(WebDriver::CommandResult::errorString):
* CommandResult.h:
2017-07-18 Carlos Alberto Lopez Perez <clopez@igalia.com>
[GTK] Fix build with Clang after r219605.
https://bugs.webkit.org/show_bug.cgi?id=166682
Unreviewed build fix.
Clang-3.8 complains with the following error:
non-constant-expression cannot be narrowed from type 'gboolean' (aka 'int') to 'bool' in initializer list [-Wc++11-narrowing]
* glib/SessionHostGlib.cpp: insert an explicit cast to silence this issue.
Add initial implementation of WebDriver process to run the HTTP server https://bugs.webkit.org/show_bug.cgi?id=166682 Reviewed by Brian Burg. .: Enable WebDriver in the GTK port by default. * Source/CMakeLists.txt: * Source/cmake/OptionsGTK.cmake: * Source/cmake/WebKitFS.cmake: * Source/cmake/WebKitFeatures.cmake: Source/WebDriver: Add WebDriver process that runs the HTTP server and implements an initial set of commands. Most of the code is cross-platform, only the HTTP server implementation, the code to launch the browser and the communication with the remote inspector requires platform specific code. This patch includes the GTK port implementation, using libsoup for the HTTP server, and GLib for launching the browser and communicating with the remote inspector. This implementation follows the w3c spec (https://www.w3.org/TR/webdriver) as close as possible, but using the official selenium python tests as reference. * CMakeLists.txt: Added. * Capabilities.h: Added. * CommandResult.cpp: Added. * CommandResult.h: Added. * HTTPServer.cpp: Added. * HTTPServer.h: Added. * PlatformGTK.cmake: Added. * Session.cpp: Added. * Session.h: Added. * SessionHost.cpp: Added. * SessionHost.h: Added. * WebDriverMain.cpp: Added. * WebDriverService.cpp: Added. * WebDriverService.h: Added. * config.h: Added. * glib/SessionHostGlib.cpp: Added. * gtk/WebDriverServiceGtk.cpp: Added. * soup/HTTPServerSoup.cpp: Added. Canonical link: https://commits.webkit.org/191418@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219605 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-18 07:20:33 +00:00
2017-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
Add initial implementation of WebDriver process to run the HTTP server
https://bugs.webkit.org/show_bug.cgi?id=166682
Reviewed by Brian Burg.
Add WebDriver process that runs the HTTP server and implements an initial set of commands. Most of the code is
cross-platform, only the HTTP server implementation, the code to launch the browser and the communication with
the remote inspector requires platform specific code. This patch includes the GTK port implementation, using
libsoup for the HTTP server, and GLib for launching the browser and communicating with the remote
inspector. This implementation follows the w3c spec (https://www.w3.org/TR/webdriver) as close as possible, but
using the official selenium python tests as reference.
* CMakeLists.txt: Added.
* Capabilities.h: Added.
* CommandResult.cpp: Added.
* CommandResult.h: Added.
* HTTPServer.cpp: Added.
* HTTPServer.h: Added.
* PlatformGTK.cmake: Added.
* Session.cpp: Added.
* Session.h: Added.
* SessionHost.cpp: Added.
* SessionHost.h: Added.
* WebDriverMain.cpp: Added.
* WebDriverService.cpp: Added.
* WebDriverService.h: Added.
* config.h: Added.
* glib/SessionHostGlib.cpp: Added.
* gtk/WebDriverServiceGtk.cpp: Added.
* soup/HTTPServerSoup.cpp: Added.