Move URL from WebCore to WTF
https://bugs.webkit.org/show_bug.cgi?id=190234

Patch by Alex Christensen <achristensen@webkit.org> on 2018-11-30
Reviewed by Keith Miller.

Source/WebCore:

A URL is a low-level concept that does not depend on other classes in WebCore.
We are starting to use URLs in JavaScriptCore for modules.
I need URL and URLParser in a place with fewer dependencies for rdar://problem/44119696

* Modules/applepay/ApplePaySession.h:
* Modules/applepay/ApplePayValidateMerchantEvent.h:
* Modules/applepay/PaymentCoordinator.cpp:
* Modules/applepay/PaymentCoordinator.h:
* Modules/applepay/PaymentCoordinatorClient.h:
* Modules/applepay/PaymentSession.h:
* Modules/applicationmanifest/ApplicationManifest.h:
* Modules/beacon/NavigatorBeacon.cpp:
* Modules/cache/DOMCache.cpp:
* Modules/fetch/FetchLoader.h:
* Modules/mediasession/MediaSessionMetadata.h:
* Modules/mediasource/MediaSourceRegistry.cpp:
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediastream/MediaStream.cpp:
* Modules/mediastream/MediaStreamRegistry.cpp:
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:
* Modules/notifications/Notification.h:
* Modules/paymentrequest/MerchantValidationEvent.h:
* Modules/paymentrequest/PaymentRequest.h:
* Modules/plugins/PluginReplacement.h:
* Modules/webaudio/AudioContext.h:
* Modules/websockets/ThreadableWebSocketChannel.h:
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocketHandshake.cpp:
* Modules/websockets/WebSocketHandshake.h:
* Modules/websockets/WorkerThreadableWebSocketChannel.h:
* PlatformMac.cmake:
* PlatformWin.cmake:
* Sources.txt:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/CachedModuleScriptLoader.h:
* bindings/js/CachedScriptFetcher.h:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* bindings/js/ScriptController.h:
* bindings/js/ScriptModuleLoader.h:
* bindings/js/ScriptSourceCode.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSInterfaceName.cpp:
* bindings/scripts/test/JS/JSMapLike.cpp:
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCEReactions.cpp:
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
* bindings/scripts/test/JS/JSTestCallTracer.cpp:
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
* bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
* bindings/scripts/test/JS/JSTestIterable.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestPluginInterface.cpp:
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
* bindings/scripts/test/JS/JSTestSerialization.cpp:
* bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
* bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestStringifier.cpp:
* bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
* bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
* bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
* bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
* bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
* bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForPingLoad):
(WebCore::ContentExtensions::applyBlockedStatusToRequest):
* contentextensions/ContentExtensionsBackend.h:
* css/CSSValue.h:
* css/StyleProperties.h:
* css/StyleResolver.h:
* css/StyleSheet.h:
* css/StyleSheetContents.h:
* css/parser/CSSParserContext.h:
(WebCore::CSSParserContextHash::hash):
(WTF::HashTraits<WebCore::CSSParserContext>::constructDeletedValue):
* css/parser/CSSParserIdioms.h:
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::setDataFromItemList):
* dom/Document.cpp:
(WebCore::Document::setURL):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::completeURL const):
(WebCore::Document::ensureTemplateDocument):
* dom/Document.h:
(WebCore::Document::urlForBindings const):
* dom/Element.cpp:
(WebCore::Element::isJavaScriptURLAttribute const):
* dom/InlineStyleSheetOwner.cpp:
(WebCore::parserContextForElement):
* dom/Node.cpp:
(WebCore::Node::baseURI const):
* dom/Node.h:
* dom/ScriptElement.h:
* dom/ScriptExecutionContext.h:
* dom/SecurityContext.h:
* editing/Editor.cpp:
(WebCore::Editor::pasteboardWriterURL):
* editing/Editor.h:
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
* editing/cocoa/DataDetection.h:
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::userVisibleString):
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::replaceRichContentWithAttachments):
(WebCore::WebContentReader::readWebArchive):
* editing/mac/EditorMac.mm:
(WebCore::Editor::plainTextFromPasteboard):
(WebCore::Editor::writeImageToPasteboard):
* editing/markup.cpp:
(WebCore::removeSubresourceURLAttributes):
(WebCore::createFragmentFromMarkup):
* editing/markup.h:
* fileapi/AsyncFileStream.cpp:
* fileapi/AsyncFileStream.h:
* fileapi/Blob.h:
* fileapi/BlobURL.cpp:
* fileapi/BlobURL.h:
* fileapi/File.h:
* fileapi/FileReaderLoader.h:
* fileapi/ThreadableBlobRegistry.h:
* history/CachedFrame.h:
* history/HistoryItem.h:
* html/DOMURL.cpp:
(WebCore::DOMURL::create):
* html/DOMURL.h:
* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::archiveResourceURL):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::isURLAllowed const):
(WebCore::HTMLFrameElementBase::openURL):
(WebCore::HTMLFrameElementBase::setLocation):
* html/HTMLInputElement.h:
* html/HTMLLinkElement.h:
* html/HTMLMediaElement.cpp:
(WTF::LogArgument<URL>::toString):
(WTF::LogArgument<WebCore::URL>::toString): Deleted.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
* html/ImageBitmap.h:
* html/MediaFragmentURIParser.h:
* html/PublicURLManager.cpp:
* html/PublicURLManager.h:
* html/URLInputType.cpp:
* html/URLRegistry.h:
* html/URLSearchParams.cpp:
(WebCore::URLSearchParams::URLSearchParams):
(WebCore::URLSearchParams::toString const):
(WebCore::URLSearchParams::updateURL):
(WebCore::URLSearchParams::updateFromAssociatedURL):
* html/URLUtils.h:
(WebCore::URLUtils<T>::setHost):
(WebCore::URLUtils<T>::setPort):
* html/canvas/CanvasRenderingContext.cpp:
* html/canvas/CanvasRenderingContext.h:
* html/parser/HTMLParserIdioms.cpp:
* html/parser/XSSAuditor.cpp:
(WebCore::semicolonSeparatedValueContainsJavaScriptURL):
(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::filterObjectToken):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::filterEmbedToken):
(WebCore::XSSAuditor::filterFormToken):
(WebCore::XSSAuditor::filterInputToken):
(WebCore::XSSAuditor::filterButtonToken):
(WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
(WebCore::XSSAuditor::isLikelySafeResource):
* html/parser/XSSAuditor.h:
* html/parser/XSSAuditorDelegate.h:
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::openInNewTab):
* inspector/InspectorInstrumentation.h:
* inspector/agents/InspectorNetworkAgent.cpp:
* inspector/agents/InspectorNetworkAgent.h:
* inspector/agents/InspectorPageAgent.h:
* inspector/agents/InspectorWorkerAgent.h:
* loader/ApplicationManifestLoader.h:
* loader/CookieJar.h:
* loader/CrossOriginAccessControl.h:
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::maybeLoadEmpty):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::serverRedirectSourceForHistory const):
* loader/DocumentWriter.h:
* loader/FormSubmission.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::createWindow):
* loader/FrameLoaderClient.h:
* loader/HistoryController.cpp:
(WebCore::HistoryController::currentItemShouldBeReplaced const):
(WebCore::HistoryController::initializeItem):
* loader/LinkLoader.h:
* loader/LoadTiming.h:
* loader/LoaderStrategy.h:
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::checkFormForMixedContent const):
* loader/MixedContentChecker.h:
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::shouldScheduleNavigation const):
* loader/NavigationScheduler.h:
* loader/PingLoader.h:
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
* loader/ResourceLoadInfo.h:
* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
* loader/ResourceLoadObserver.h:
* loader/ResourceLoadStatistics.h:
* loader/ResourceLoader.h:
* loader/ResourceTiming.h:
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame):
* loader/SubframeLoader.h:
* loader/SubstituteData.h:
* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/ApplicationCacheHost.h:
* loader/appcache/ApplicationCacheStorage.cpp:
* loader/appcache/ApplicationCacheStorage.h:
* loader/appcache/ManifestParser.cpp:
* loader/appcache/ManifestParser.h:
* loader/archive/ArchiveResourceCollection.h:
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createFromSelection):
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedStyleSheetClient.h:
* loader/cache/MemoryCache.h:
* loader/icon/IconLoader.h:
* loader/mac/LoaderNSURLExtras.mm:
* page/CaptionUserPreferencesMediaAF.cpp:
* page/ChromeClient.h:
* page/ClientOrigin.h:
* page/ContextMenuClient.h:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::isInsecureScriptAccess):
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* page/DragController.h:
* page/EventSource.h:
* page/Frame.h:
* page/FrameView.h:
* page/History.h:
* page/Location.cpp:
(WebCore::Location::url const):
(WebCore::Location::reload):
* page/Location.h:
* page/Page.h:
* page/PageSerializer.h:
* page/Performance.h:
* page/PerformanceResourceTiming.cpp:
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::create):
* page/SecurityOrigin.h:
* page/SecurityOriginData.h:
* page/SecurityOriginHash.h:
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::shouldInheritSecurityOriginFromOwner):
* page/SecurityPolicy.h:
* page/SettingsBase.h:
* page/ShareData.h:
* page/SocketProvider.h:
* page/UserContentProvider.h:
* page/UserContentURLPattern.cpp:
* page/UserContentURLPattern.h:
* page/UserScript.h:
* page/UserStyleSheet.h:
* page/VisitedLinkStore.h:
* page/csp/ContentSecurityPolicy.h:
* page/csp/ContentSecurityPolicyClient.h:
* page/csp/ContentSecurityPolicyDirectiveList.h:
* page/csp/ContentSecurityPolicySource.cpp:
(WebCore::ContentSecurityPolicySource::portMatches const):
* page/csp/ContentSecurityPolicySource.h:
* page/csp/ContentSecurityPolicySourceList.cpp:
* page/csp/ContentSecurityPolicySourceList.h:
* page/csp/ContentSecurityPolicySourceListDirective.cpp:
* platform/ContentFilterUnblockHandler.h:
* platform/ContextMenuItem.h:
* platform/Cookie.h:
* platform/CookiesStrategy.h:
* platform/DragData.h:
* platform/DragImage.h:
* platform/FileStream.h:
* platform/LinkIcon.h:
* platform/Pasteboard.cpp:
(WebCore::Pasteboard::canExposeURLToDOMWhenPasteboardContainsFiles):
* platform/Pasteboard.h:
* platform/PasteboardStrategy.h:
* platform/PasteboardWriterData.cpp:
(WebCore::PasteboardWriterData::setURLData):
(WebCore::PasteboardWriterData::setURL): Deleted.
* platform/PasteboardWriterData.h:
* platform/PlatformPasteboard.h:
* platform/PromisedAttachmentInfo.h:
* platform/SSLKeyGenerator.h:
* platform/SchemeRegistry.cpp:
(WebCore::SchemeRegistry::isBuiltinScheme):
* platform/SharedBuffer.h:
* platform/SharedStringHash.cpp:
* platform/SharedStringHash.h:
* platform/SourcesSoup.txt:
* platform/UserAgent.h:
* platform/UserAgentQuirks.cpp:
* platform/UserAgentQuirks.h:
* platform/cocoa/NetworkExtensionContentFilter.h:
* platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::willSendRequest):
* platform/glib/SSLKeyGeneratorGLib.cpp: Copied from Source/WebCore/page/ShareData.h.
(WebCore::getSupportedKeySizes):
(WebCore::signedPublicKeyAndChallengeString):
* platform/glib/UserAgentGLib.cpp:
* platform/graphics/GraphicsContext.h:
* platform/graphics/Image.cpp:
* platform/graphics/Image.h:
* platform/graphics/ImageObserver.h:
* platform/graphics/ImageSource.cpp:
* platform/graphics/ImageSource.h:
* platform/graphics/MediaPlayer.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/cg/GraphicsContextCG.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcSetUri):
* platform/graphics/iso/ISOVTTCue.cpp:
* platform/graphics/win/GraphicsContextDirect2D.cpp:
* platform/gtk/DragImageGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PlatformPasteboardGtk.cpp:
* platform/gtk/SelectionData.h:
* platform/ios/PasteboardIOS.mm:
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write):
* platform/ios/QuickLook.h:
* platform/mac/DragDataMac.mm:
(WebCore::DragData::asPlainText const):
* platform/mac/DragImageMac.mm:
* platform/mac/FileSystemMac.mm:
(WebCore::FileSystem::setMetadataURL):
* platform/mac/PasteboardMac.mm:
* platform/mac/PasteboardWriter.mm:
(WebCore::createPasteboardWriter):
* platform/mac/PlatformPasteboardMac.mm:
* platform/mac/PublicSuffixMac.mm:
(WebCore::decodeHostName):
* platform/mac/SSLKeyGeneratorMac.mm:
* platform/mac/WebCoreNSURLExtras.h:
* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::isArmenianLookalikeCharacter): Deleted.
(WebCore::isArmenianScriptCharacter): Deleted.
(WebCore::isASCIIDigitOrValidHostCharacter): Deleted.
(WebCore::isLookalikeCharacter): Deleted.
(WebCore::whiteListIDNScript): Deleted.
(WebCore::readIDNScriptWhiteListFile): Deleted.
(WebCore::allCharactersInIDNScriptWhiteList): Deleted.
(WebCore::isSecondLevelDomainNameAllowedByTLDRules): Deleted.
(WebCore::isRussianDomainNameCharacter): Deleted.
(WebCore::allCharactersAllowedByTLDRules): Deleted.
(WebCore::mapHostNameWithRange): Deleted.
(WebCore::hostNameNeedsDecodingWithRange): Deleted.
(WebCore::hostNameNeedsEncodingWithRange): Deleted.
(WebCore::decodeHostNameWithRange): Deleted.
(WebCore::encodeHostNameWithRange): Deleted.
(WebCore::decodeHostName): Deleted.
(WebCore::encodeHostName): Deleted.
(WebCore::collectRangesThatNeedMapping): Deleted.
(WebCore::collectRangesThatNeedEncoding): Deleted.
(WebCore::collectRangesThatNeedDecoding): Deleted.
(WebCore::applyHostNameFunctionToMailToURLString): Deleted.
(WebCore::applyHostNameFunctionToURLString): Deleted.
(WebCore::mapHostNames): Deleted.
(WebCore::stringByTrimmingWhitespace): Deleted.
(WebCore::URLByTruncatingOneCharacterBeforeComponent): Deleted.
(WebCore::URLByRemovingResourceSpecifier): Deleted.
(WebCore::URLWithData): Deleted.
(WebCore::dataWithUserTypedString): Deleted.
(WebCore::URLWithUserTypedString): Deleted.
(WebCore::URLWithUserTypedStringDeprecated): Deleted.
(WebCore::hasQuestionMarkOnlyQueryString): Deleted.
(WebCore::dataForURLComponentType): Deleted.
(WebCore::URLByRemovingComponentAndSubsequentCharacter): Deleted.
(WebCore::URLByRemovingUserInfo): Deleted.
(WebCore::originalURLData): Deleted.
(WebCore::createStringWithEscapedUnsafeCharacters): Deleted.
(WebCore::userVisibleString): Deleted.
(WebCore::isUserVisibleURL): Deleted.
(WebCore::rangeOfURLScheme): Deleted.
(WebCore::looksLikeAbsoluteURL): Deleted.
* platform/mediastream/MediaEndpointConfiguration.h:
* platform/network/BlobPart.h:
* platform/network/BlobRegistry.h:
* platform/network/BlobRegistryImpl.h:
* platform/network/BlobResourceHandle.cpp:
* platform/network/CookieRequestHeaderFieldProxy.h:
* platform/network/CredentialStorage.cpp:
* platform/network/CredentialStorage.h:
* platform/network/DataURLDecoder.cpp:
* platform/network/DataURLDecoder.h:
* platform/network/FormData.h:
* platform/network/ProxyServer.h:
* platform/network/ResourceErrorBase.h:
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::didReceiveResponse):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::redirectedRequest const):
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceResponseBase.h:
* platform/network/SocketStreamHandle.h:
* platform/network/cf/DNSResolveQueueCFNet.cpp:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
* platform/network/cf/ProxyServerCFNet.cpp:
* platform/network/cf/ResourceErrorCF.cpp:
* platform/network/cocoa/NetworkStorageSessionCocoa.mm:
* platform/network/curl/CookieJarCurlDatabase.cpp: Added.
(WebCore::cookiesForSession):
(WebCore::CookieJarCurlDatabase::setCookiesFromDOM const):
(WebCore::CookieJarCurlDatabase::setCookiesFromHTTPResponse const):
(WebCore::CookieJarCurlDatabase::cookiesForDOM const):
(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const):
(WebCore::CookieJarCurlDatabase::cookiesEnabled const):
(WebCore::CookieJarCurlDatabase::getRawCookies const):
(WebCore::CookieJarCurlDatabase::deleteCookie const):
(WebCore::CookieJarCurlDatabase::getHostnamesWithCookies const):
(WebCore::CookieJarCurlDatabase::deleteCookiesForHostnames const):
(WebCore::CookieJarCurlDatabase::deleteAllCookies const):
(WebCore::CookieJarCurlDatabase::deleteAllCookiesModifiedSince const):
* platform/network/curl/CookieJarDB.cpp:
* platform/network/curl/CookieUtil.h:
* platform/network/curl/CurlContext.h:
* platform/network/curl/CurlProxySettings.h:
* platform/network/curl/CurlResponse.h:
* platform/network/curl/NetworkStorageSessionCurl.cpp:
* platform/network/curl/ProxyServerCurl.cpp:
* platform/network/curl/SocketStreamHandleImplCurl.cpp:
* platform/network/mac/ResourceErrorMac.mm:
* platform/network/soup/NetworkStorageSessionSoup.cpp:
* platform/network/soup/ProxyServerSoup.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
* platform/network/soup/ResourceRequest.h:
* platform/network/soup/ResourceRequestSoup.cpp:
* platform/network/soup/SocketStreamHandleImplSoup.cpp:
* platform/network/soup/SoupNetworkSession.cpp:
* platform/network/soup/SoupNetworkSession.h:
* platform/text/TextEncoding.h:
* platform/win/BString.cpp:
* platform/win/BString.h:
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::markupToCFHTML):
* platform/win/ClipboardUtilitiesWin.h:
* platform/win/DragImageWin.cpp:
* platform/win/PasteboardWin.cpp:
* plugins/PluginData.h:
* rendering/HitTestResult.h:
* rendering/RenderAttachment.cpp:
* svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::sourceURI const):
* svg/SVGURIReference.cpp:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.h:
* svg/graphics/SVGImageForContainer.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
* testing/Internals.mm:
(WebCore::Internals::userVisibleString):
* testing/MockContentFilter.cpp:
(WebCore::MockContentFilter::willSendRequest):
* testing/MockPaymentCoordinator.cpp:
* testing/js/WebCoreTestSupport.cpp:
* workers/AbstractWorker.h:
* workers/WorkerGlobalScope.h:
* workers/WorkerGlobalScopeProxy.h:
* workers/WorkerInspectorProxy.h:
* workers/WorkerLocation.h:
* workers/WorkerScriptLoader.h:
* workers/WorkerThread.cpp:
* workers/WorkerThread.h:
* workers/service/ServiceWorker.h:
* workers/service/ServiceWorkerClientData.h:
* workers/service/ServiceWorkerContainer.cpp:
* workers/service/ServiceWorkerContextData.h:
* workers/service/ServiceWorkerData.h:
* workers/service/ServiceWorkerJobData.h:
* workers/service/ServiceWorkerRegistrationKey.cpp:
* workers/service/ServiceWorkerRegistrationKey.h:
(WTF::HashTraits<WebCore::ServiceWorkerRegistrationKey>::constructDeletedValue):
* worklets/WorkletGlobalScope.h:
* xml/XMLHttpRequest.h:

Source/WebKit:

* NetworkProcess/Cookies/WebCookieManager.cpp:
* NetworkProcess/Cookies/WebCookieManager.h:
* NetworkProcess/Cookies/WebCookieManager.messages.in:
* NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm:
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::publishDownloadProgress):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::publishProgress):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::publishProgress):
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURL):
(WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
(WebKit::NetworkBlobRegistry::unregisterBlobURL):
(WebKit::NetworkBlobRegistry::blobSize):
(WebKit::NetworkBlobRegistry::filesInBlob):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::didReceiveResponse):
* NetworkProcess/NetworkDataTaskBlob.cpp:
* NetworkProcess/NetworkLoadChecker.h:
(WebKit::NetworkLoadChecker::setContentExtensionController):
(WebKit::NetworkLoadChecker::url const):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::writeBlobToFilePath):
(WebKit::NetworkProcess::publishDownloadProgress):
(WebKit::NetworkProcess::preconnectTo):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoadParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::logBlockedCookieInformation):
(WebKit::logCookieInformationInternal):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/NetworkSocketStream.cpp:
(WebKit::NetworkSocketStream::create):
* NetworkProcess/NetworkSocketStream.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::retrieveRecords):
* NetworkProcess/cache/CacheStorageEngine.h:
* NetworkProcess/cache/CacheStorageEngineCache.h:
* NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::retrieveRecords):
* NetworkProcess/cache/CacheStorageEngineConnection.h:
* NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
(WebKit::NetworkCache::Statistics::recordRevalidationSuccess):
* NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
(WebKit::NetworkCache::SubresourceInfo::firstPartyForCookies const):
* NetworkProcess/capture/NetworkCaptureEvent.cpp:
(WebKit::NetworkCapture::Request::operator WebCore::ResourceRequest const):
(WebKit::NetworkCapture::Response::operator WebCore::ResourceResponse const):
(WebKit::NetworkCapture::Error::operator WebCore::ResourceError const):
* NetworkProcess/capture/NetworkCaptureManager.cpp:
(WebKit::NetworkCapture::Manager::findBestFuzzyMatch):
(WebKit::NetworkCapture::Manager::fuzzyMatchURLs):
(WebKit::NetworkCapture::Manager::urlIdentifyingCommonDomain):
* NetworkProcess/capture/NetworkCaptureManager.h:
* NetworkProcess/capture/NetworkCaptureResource.cpp:
(WebKit::NetworkCapture::Resource::url):
(WebKit::NetworkCapture::Resource::queryParameters):
* NetworkProcess/capture/NetworkCaptureResource.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::openCFURLRef):
(WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error):
* Shared/API/APIURL.h:
(API::URL::create):
(API::URL::equals):
(API::URL::URL):
(API::URL::url const):
(API::URL::parseURLIfNecessary const):
* Shared/API/APIUserContentURLPattern.h:
(API::UserContentURLPattern::matchesURL const):
* Shared/API/c/WKURLRequest.cpp:
* Shared/API/c/WKURLResponse.cpp:
* Shared/API/c/cf/WKURLCF.mm:
(WKURLCreateWithCFURL):
(WKURLCopyCFURL):
* Shared/API/glib/WebKitURIRequest.cpp:
* Shared/API/glib/WebKitURIResponse.cpp:
* Shared/APIWebArchiveResource.mm:
(API::WebArchiveResource::WebArchiveResource):
* Shared/AssistedNodeInformation.h:
* Shared/Cocoa/WKNSURLExtras.mm:
(-[NSURL _web_originalDataAsWTFString]):
(): Deleted.
* Shared/SessionState.h:
* Shared/WebBackForwardListItem.cpp:
(WebKit::WebBackForwardListItem::itemIsInSameDocument const):
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
* Shared/WebErrors.h:
* Shared/WebHitTestResultData.cpp:
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::encode):
(IPC::decode):
* Shared/gtk/WebErrorsGtk.cpp:
* Shared/ios/InteractionInformationAtPosition.h:
* UIProcess/API/APIHTTPCookieStore.h:
* UIProcess/API/APINavigation.cpp:
(API::Navigation::appendRedirectionURL):
* UIProcess/API/APINavigation.h:
(API::Navigation::takeRedirectChain):
* UIProcess/API/APINavigationAction.h:
* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::signedPublicKeyAndChallengeString):
(API::NavigationClient::contentRuleListNotification):
(API::NavigationClient::webGLLoadPolicy const):
(API::NavigationClient::resolveWebGLLoadPolicy const):
* UIProcess/API/APIUIClient.h:
(API::UIClient::saveDataToFileInDownloadsFolder):
* UIProcess/API/APIUserScript.cpp:
(API::UserScript::generateUniqueURL):
* UIProcess/API/APIUserScript.h:
* UIProcess/API/APIUserStyleSheet.cpp:
(API::UserStyleSheet::generateUniqueURL):
* UIProcess/API/APIUserStyleSheet.h:
* UIProcess/API/C/WKOpenPanelResultListener.cpp:
(filePathsFromFileURLs):
* UIProcess/API/C/WKPage.cpp:
(WKPageLoadPlainTextStringWithUserData):
(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
* UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
* UIProcess/API/Cocoa/WKUserScript.mm:
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _showSafeBrowsingWarning:completionHandler:]):
(-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]):
(-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
* UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifest initWithCoder:]):
(+[_WKApplicationManifest applicationManifestFromJSON:manifestURL:documentURL:]):
* UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]):
* UIProcess/API/glib/IconDatabase.cpp:
* UIProcess/API/glib/WebKitCookieManager.cpp:
(webkit_cookie_manager_get_cookies):
* UIProcess/API/glib/WebKitFileChooserRequest.cpp:
* UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(webkit_security_origin_new_for_uri):
* UIProcess/API/glib/WebKitUIClient.cpp:
* UIProcess/API/glib/WebKitURISchemeRequest.cpp:
* UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_load_plain_text):
* UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::validateMerchant):
* UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentRequest):
* UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
* UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::domainByAddingDotPrefixIfNeeded):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
* UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::didFinish):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::webGLLoadPolicy const):
(WebKit::NavigationState::NavigationClient::resolveWebGLLoadPolicy const):
(WebKit::NavigationState::NavigationClient::contentRuleListNotification):
(WebKit::NavigationState::NavigationClient::willPerformClientRedirect):
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect):
(WebKit::NavigationState::NavigationClient::signedPublicKeyAndChallengeString):
* UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Copied from Source/WebKit/WebProcess/Network/WebSocketProvider.h.
(WebKit::SafeBrowsingResult::SafeBrowsingResult):
* UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:
(WebKit::reportAnErrorURL):
(WebKit::malwareDetailsURL):
(WebKit::safeBrowsingDetailsText):
(WebKit::SafeBrowsingWarning::SafeBrowsingWarning):
* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(-[_WKPreviewControllerDataSource finish:]):
(WebKit::SystemPreviewController::finish):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::saveDataToFileInDownloadsFolder):
(WebKit::requestUserMediaAuthorizationForDevices):
(WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin):
* UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:
(-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):
* UIProcess/Cocoa/WKSafeBrowsingWarning.h:
* UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
(-[WKSafeBrowsingWarning initWithFrame:safeBrowsingWarning:completionHandler:]):
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::showSafeBrowsingWarning):
(WebKit::WebViewImpl::writeToURLForFilePromiseProvider):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::publishProgress):
* UIProcess/Downloads/DownloadProxy.h:
(WebKit::DownloadProxy::setRedirectChain):
(WebKit::DownloadProxy::redirectChain const):
* UIProcess/FrameLoadState.cpp:
(WebKit::FrameLoadState::didStartProvisionalLoad):
(WebKit::FrameLoadState::didReceiveServerRedirectForProvisionalLoad):
(WebKit::FrameLoadState::didSameDocumentNotification):
(WebKit::FrameLoadState::setUnreachableURL):
* UIProcess/FrameLoadState.h:
(WebKit::FrameLoadState::url const):
(WebKit::FrameLoadState::setURL):
(WebKit::FrameLoadState::provisionalURL const):
(WebKit::FrameLoadState::unreachableURL const):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::writeBlobToFilePath):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/PageClient.h:
(WebKit::PageClient::showSafeBrowsingWarning):
* UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::hasOnlySecureContent):
* UIProcess/Plugins/PluginInfoStore.cpp:
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
* UIProcess/SafeBrowsingResult.h: Copied from Source/WebKit/UIProcess/SystemPreviewController.h.
(WebKit::SafeBrowsingResult::create):
(WebKit::SafeBrowsingResult::url const):
(WebKit::SafeBrowsingResult::provider const):
(WebKit::SafeBrowsingResult::isPhishing const):
(WebKit::SafeBrowsingResult::isMalware const):
(WebKit::SafeBrowsingResult::isUnwantedSoftware const):
(WebKit::SafeBrowsingResult::isKnownToBeUnsafe const):
* UIProcess/SafeBrowsingWarning.h:
(WebKit::SafeBrowsingWarning::create):
* UIProcess/SuspendedPageProxy.cpp:
* UIProcess/SystemPreviewController.h:
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::url const):
(WebKit::WebFrameProxy::provisionalURL const):
(WebKit::WebFrameProxy::unreachableURL const):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebOpenPanelResultListenerProxy.cpp:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadDataWithNavigation):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didChangeProvisionalURLForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::contentRuleListNotification):
(WebKit::WebPageProxy::processDidTerminate):
(WebKit::WebPageProxy::signedPublicKeyAndChallengeString):
(WebKit::WebPageProxy::setURLSchemeHandlerForScheme):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::tryPrewarmWithDomainInformation):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode):
(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/ios/DragDropInteractionState.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showSafeBrowsingWarning):
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
* UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
* UIProcess/ios/WKLegacyPDFView.mm:
(-[WKLegacyPDFView actionSheetAssistant:shareElementWithURL:rect:]):
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]):
* UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _updateLocationInfo]):
* UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::decodeLegacySessionState):
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::showSafeBrowsingWarning):
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
* UIProcess/win/WebInspectorProxyWin.cpp:
* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::showPaymentUI):
(WebKit::WebPaymentCoordinator::validateMerchant):
* WebProcess/ApplePay/WebPaymentCoordinator.h:
* WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::doRetrieveRecords):
* WebProcess/Cache/WebCacheStorageConnection.h:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerFileBlobURL):
* WebProcess/FileAPI/BlobRegistryProxy.h:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
(API::InjectedBundle::PageLoaderClient::willLoadDataRequest):
(API::InjectedBundle::PageLoaderClient::userAgentForURL const):
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameAllowsFollowingLink):
(WKBundleFrameCopySuggestedFilenameForResourceWithURL):
(WKBundleFrameCopyMIMETypeForResourceWithURL):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageHasLocalDataForURL):
* WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.cpp:
(convertToUTF8String):
* WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.h:
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::preconnectTo):
* WebProcess/Network/WebLoaderStrategy.h:
* WebProcess/Network/WebSocketProvider.h:
* WebProcess/Network/WebSocketStream.cpp:
(WebKit::WebSocketStream::WebSocketStream):
* WebProcess/Network/WebSocketStream.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/NetscapePluginStream.h:
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::clickedLink):
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginController.h:
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performURLRequest):
(WebKit::PluginView::performJavaScriptURLRequest):
* WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::webVisiblePluginInfo):
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/Storage/WebSWClientConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::signedPublicKeyAndChallengeString const):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebContextMenuClient.h:
* WebProcess/WebCoreSupport/WebDragClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::readURLFromPasteboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteDragImage):
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
* WebProcess/WebPage/VisitedLinkTableController.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::allowsFollowingLink const):
* WebProcess/WebPage/WebFrame.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadURLInFrame):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::dumpHistoryForTesting):
(WebKit::WebPage::sendCSPViolationReport):
(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::frameURL const):
* WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::sendPrewarmInformation):
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::activePagesOrigins):

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
* WebCoreSupport/WebResourceLoadScheduler.h:

Source/WebKitLegacy/mac:

* DOM/DOMAttr.mm:
* DOM/DOMBlob.mm:
* DOM/DOMCSSCharsetRule.mm:
* DOM/DOMCSSImportRule.mm:
* DOM/DOMCSSMediaRule.mm:
* DOM/DOMCSSPageRule.mm:
* DOM/DOMCSSPrimitiveValue.mm:
* DOM/DOMCSSRule.mm:
* DOM/DOMCSSStyleDeclaration.mm:
* DOM/DOMCSSStyleRule.mm:
* DOM/DOMCSSStyleSheet.mm:
* DOM/DOMCSSValue.mm:
* DOM/DOMCharacterData.mm:
* DOM/DOMCounter.mm:
* DOM/DOMDocument.mm:
* DOM/DOMDocumentFragment.mm:
* DOM/DOMDocumentType.mm:
* DOM/DOMEvent.mm:
* DOM/DOMFile.mm:
* DOM/DOMHTMLAnchorElement.mm:
* DOM/DOMHTMLAppletElement.mm:
* DOM/DOMHTMLAreaElement.mm:
* DOM/DOMHTMLBRElement.mm:
* DOM/DOMHTMLBaseElement.mm:
* DOM/DOMHTMLBaseFontElement.mm:
* DOM/DOMHTMLBodyElement.mm:
* DOM/DOMHTMLButtonElement.mm:
* DOM/DOMHTMLCanvasElement.mm:
* DOM/DOMHTMLCollection.mm:
* DOM/DOMHTMLDivElement.mm:
* DOM/DOMHTMLDocument.mm:
* DOM/DOMHTMLElement.mm:
* DOM/DOMHTMLEmbedElement.mm:
* DOM/DOMHTMLFieldSetElement.mm:
* DOM/DOMHTMLFontElement.mm:
* DOM/DOMHTMLFormElement.mm:
* DOM/DOMHTMLFrameElement.mm:
* DOM/DOMHTMLFrameSetElement.mm:
* DOM/DOMHTMLHRElement.mm:
* DOM/DOMHTMLHeadElement.mm:
* DOM/DOMHTMLHeadingElement.mm:
* DOM/DOMHTMLHtmlElement.mm:
* DOM/DOMHTMLIFrameElement.mm:
* DOM/DOMHTMLImageElement.mm:
* DOM/DOMHTMLInputElement.mm:
* DOM/DOMHTMLLIElement.mm:
* DOM/DOMHTMLLabelElement.mm:
* DOM/DOMHTMLLegendElement.mm:
* DOM/DOMHTMLLinkElement.mm:
* DOM/DOMHTMLMapElement.mm:
* DOM/DOMHTMLMarqueeElement.mm:
* DOM/DOMHTMLMediaElement.mm:
* DOM/DOMHTMLMetaElement.mm:
* DOM/DOMHTMLModElement.mm:
* DOM/DOMHTMLOListElement.mm:
* DOM/DOMHTMLObjectElement.mm:
* DOM/DOMHTMLOptGroupElement.mm:
* DOM/DOMHTMLOptionElement.mm:
* DOM/DOMHTMLOptionsCollection.mm:
* DOM/DOMHTMLParagraphElement.mm:
* DOM/DOMHTMLParamElement.mm:
* DOM/DOMHTMLQuoteElement.mm:
* DOM/DOMHTMLScriptElement.mm:
* DOM/DOMHTMLSelectElement.mm:
* DOM/DOMHTMLStyleElement.mm:
* DOM/DOMHTMLTableCaptionElement.mm:
* DOM/DOMHTMLTableCellElement.mm:
* DOM/DOMHTMLTableColElement.mm:
* DOM/DOMHTMLTableElement.mm:
* DOM/DOMHTMLTableRowElement.mm:
* DOM/DOMHTMLTableSectionElement.mm:
* DOM/DOMHTMLTitleElement.mm:
* DOM/DOMHTMLUListElement.mm:
* DOM/DOMHTMLVideoElement.mm:
* DOM/DOMKeyboardEvent.mm:
* DOM/DOMMediaList.mm:
* DOM/DOMMouseEvent.mm:
* DOM/DOMMutationEvent.mm:
* DOM/DOMNamedNodeMap.mm:
* DOM/DOMProcessingInstruction.mm:
* DOM/DOMRange.mm:
* DOM/DOMStyleSheet.mm:
* DOM/DOMText.mm:
* DOM/DOMTextEvent.mm:
* DOM/DOMTokenList.mm:
* DOM/DOMUIEvent.mm:
* DOM/DOMXPathResult.mm:
* History/WebHistoryItem.mm:
* Misc/WebNSURLExtras.mm:
(-[NSURL _web_userVisibleString]):
(-[NSURL _web_URLByRemovingUserInfo]):
(-[NSURL _web_dataForURLComponentType:]):
(-[NSURL _web_schemeData]):
(-[NSURL _web_hostData]):
* Misc/WebUserContentURLPattern.mm:
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
* Plugins/WebNetscapePluginStream.h:
(WebNetscapePluginStream::setRequestURL):
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::signedPublicKeyAndChallengeString const):
* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebContextMenuClient.mm:
* WebCoreSupport/WebDragClient.h:
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::updateGlobalHistory):
* WebCoreSupport/WebPaymentCoordinatorClient.h:
* WebCoreSupport/WebPaymentCoordinatorClient.mm:
(WebPaymentCoordinatorClient::showPaymentUI):
* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::readURLFromPasteboard):
* WebCoreSupport/WebPluginInfoProvider.h:
* WebCoreSupport/WebPluginInfoProvider.mm:
(WebPluginInfoProvider::webVisiblePluginInfo):
* WebCoreSupport/WebSecurityOrigin.mm:
* WebCoreSupport/WebVisitedLinkStore.h:
* WebView/WebDataSource.mm:
* WebView/WebFrame.mm:
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _defaultAnimationController]):
* WebView/WebPDFView.mm:
* WebView/WebScriptDebugger.mm:
* WebView/WebViewInternal.h:

Source/WebKitLegacy/win:

* MarshallingHelpers.cpp:
* MarshallingHelpers.h:
* Plugins/PluginDatabase.cpp:
* Plugins/PluginDatabase.h:
* Plugins/PluginDatabaseWin.cpp:
* Plugins/PluginStream.h:
* Plugins/PluginView.h:
* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
* WebCoreSupport/WebDesktopNotificationsDelegate.h:
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPluginInfoProvider.cpp:
(WebPluginInfoProvider::webVisiblePluginInfo):
* WebCoreSupport/WebPluginInfoProvider.h:
* WebCoreSupport/WebVisitedLinkStore.h:
* WebDataSource.cpp:
* WebDownload.h:
* WebElementPropertyBag.cpp:
* WebFrame.h:
* WebHistory.cpp:
* WebHistory.h:
* WebHistoryItem.cpp:
* WebResource.cpp:
(WebResource::WebResource):
* WebResource.h:
* WebSecurityOrigin.cpp:
* WebURLResponse.cpp:
(WebURLResponse::createInstance):
* WebUserContentURLPattern.cpp:
* WebView.h:

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/Forward.h:
* wtf/PlatformGTK.cmake:
* wtf/PlatformMac.cmake:
* wtf/PlatformWPE.cmake:
* wtf/PlatformWin.cmake:
* wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
(WTF::URL::protocolIs):
* wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
* wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
(WTF::URLHash::hash):
(WTF::URLHash::equal):
* wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
(WTF::URLParser::isInUserInfoEncodeSet):
(WTF::URLParser::parseAuthority):
* wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
(WTF::URLParser::URLParser):
(WTF::URLParser::result):
* wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
* wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
* wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
* wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
* wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
(WTF::isArmenianLookalikeCharacter):
(WTF::isArmenianScriptCharacter):
(WTF::isASCIIDigitOrValidHostCharacter):
(WTF::isLookalikeCharacter):
(WTF::whiteListIDNScript):
(WTF::readIDNScriptWhiteListFile):
(WTF::allCharactersInIDNScriptWhiteList):
(WTF::isSecondLevelDomainNameAllowedByTLDRules):
(WTF::isRussianDomainNameCharacter):
(WTF::allCharactersAllowedByTLDRules):
(WTF::mapHostNameWithRange):
(WTF::hostNameNeedsDecodingWithRange):
(WTF::hostNameNeedsEncodingWithRange):
(WTF::decodeHostNameWithRange):
(WTF::encodeHostNameWithRange):
(WTF::decodeHostName):
(WTF::encodeHostName):
(WTF::collectRangesThatNeedMapping):
(WTF::collectRangesThatNeedEncoding):
(WTF::collectRangesThatNeedDecoding):
(WTF::applyHostNameFunctionToMailToURLString):
(WTF::applyHostNameFunctionToURLString):
(WTF::mapHostNames):
(WTF::stringByTrimmingWhitespace):
(WTF::URLByTruncatingOneCharacterBeforeComponent):
(WTF::URLByRemovingResourceSpecifier):
(WTF::URLWithData):
(WTF::dataWithUserTypedString):
(WTF::URLWithUserTypedString):
(WTF::URLWithUserTypedStringDeprecated):
(WTF::hasQuestionMarkOnlyQueryString):
(WTF::dataForURLComponentType):
(WTF::URLByRemovingComponentAndSubsequentCharacter):
(WTF::URLByRemovingUserInfo):
(WTF::originalURLData):
(WTF::createStringWithEscapedUnsafeCharacters):
(WTF::userVisibleString):
(WTF::isUserVisibleURL):
(WTF::rangeOfURLScheme):
(WTF::looksLikeAbsoluteURL):
* wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
(WTF::URL::URL):
(WTF::URL::createCFURL const):
* wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
* wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
* TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
* TestWebKitAPI/Tests/WebCore/URL.cpp:
(TestWebKitAPI::createURL):
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::checkURL):
(TestWebKitAPI::checkRelativeURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::checkRelativeURLDifferences):
* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
* TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:
* TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
(TestWebKitAPI::originalDataAsString):
(TestWebKitAPI::userVisibleString):
(TestWebKitAPI::literalURL):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:
(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:
(literalURL):
* TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
* TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.mm:
(-[LoadInvalidURLWebFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
* TestWebKitAPI/Tests/mac/SSLKeyGenerator.mm:
* TestWebKitAPI/win/PlatformUtilitiesWin.cpp:
(TestWebKitAPI::Util::createURLForResource):
* lldb/lldb_webkit.py:
(__lldb_init_module):
(WTFURL_SummaryProvider):
(WTFURLProvider):
(WebCoreURL_SummaryProvider): Deleted.
(WebCoreURLProvider): Deleted.
(WebCoreURLProvider.__init__): Deleted.
(WebCoreURLProvider.to_string): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@238771 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/loader/ApplicationManifestLoader.h b/Source/WebCore/loader/ApplicationManifestLoader.h
index 8b6431a..1b0f760 100644
--- a/Source/WebCore/loader/ApplicationManifestLoader.h
+++ b/Source/WebCore/loader/ApplicationManifestLoader.h
@@ -30,8 +30,8 @@
 #include "ApplicationManifest.h"
 #include "CachedRawResourceClient.h"
 #include "CachedResourceHandle.h"
-#include "URL.h"
 #include <wtf/Noncopyable.h>
+#include <wtf/URL.h>
 
 namespace WebCore {
 
diff --git a/Source/WebCore/loader/CookieJar.h b/Source/WebCore/loader/CookieJar.h
index 5fa705d..b9b9f37 100644
--- a/Source/WebCore/loader/CookieJar.h
+++ b/Source/WebCore/loader/CookieJar.h
@@ -31,7 +31,6 @@
 namespace WebCore {
 
 class Document;
-class URL;
 struct Cookie;
 struct CookieRequestHeaderFieldProxy;
 
diff --git a/Source/WebCore/loader/CrossOriginAccessControl.h b/Source/WebCore/loader/CrossOriginAccessControl.h
index d2b09bd..2af3d4a 100644
--- a/Source/WebCore/loader/CrossOriginAccessControl.h
+++ b/Source/WebCore/loader/CrossOriginAccessControl.h
@@ -40,7 +40,6 @@
 class ResourceRequest;
 class ResourceResponse;
 class SecurityOrigin;
-class URL;
 
 struct ResourceLoaderOptions;
 
diff --git a/Source/WebCore/loader/CrossOriginPreflightResultCache.h b/Source/WebCore/loader/CrossOriginPreflightResultCache.h
index dc07130..965de6f 100644
--- a/Source/WebCore/loader/CrossOriginPreflightResultCache.h
+++ b/Source/WebCore/loader/CrossOriginPreflightResultCache.h
@@ -27,9 +27,9 @@
 #pragma once
 
 #include "StoredCredentialsPolicy.h"
-#include "URLHash.h"
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
+#include <wtf/URLHash.h>
 #include <wtf/text/StringHash.h>
 
 namespace WebCore {
diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp
index 2c320ae..f6ffb13 100644
--- a/Source/WebCore/loader/DocumentLoader.cpp
+++ b/Source/WebCore/loader/DocumentLoader.cpp
@@ -636,7 +636,7 @@
         switch (shouldContinue) {
         case ShouldContinue::ForSuspension:
             // We handle suspension by navigating forward to about:blank, which leaves us setup to navigate back to resume.
-            request = { blankURL() };
+            request = { WTF::blankURL() };
             break;
         case ShouldContinue::No:
             stopLoadingForPolicyChange();
@@ -1682,7 +1682,7 @@
         return false;
 
     if (m_request.url().isEmpty() && !frameLoader()->stateMachine().creatingInitialEmptyDocument()) {
-        m_request.setURL(blankURL());
+        m_request.setURL(WTF::blankURL());
         if (isLoadingMainResource())
             frameLoader()->client().dispatchDidChangeProvisionalURL();
     }
diff --git a/Source/WebCore/loader/DocumentLoader.h b/Source/WebCore/loader/DocumentLoader.h
index ec3acab..a62ff44 100644
--- a/Source/WebCore/loader/DocumentLoader.h
+++ b/Source/WebCore/loader/DocumentLoader.h
@@ -236,7 +236,7 @@
     String clientRedirectDestinationForHistory() const { return urlForHistory(); }
     void setClientRedirectSourceForHistory(const String& clientRedirectSourceForHistory) { m_clientRedirectSourceForHistory = clientRedirectSourceForHistory; }
     
-    String serverRedirectSourceForHistory() const { return (urlForHistory() == url() || url() == blankURL()) ? String() : urlForHistory().string(); } // null if no server redirect occurred.
+    String serverRedirectSourceForHistory() const { return (urlForHistory() == url() || url() == WTF::blankURL()) ? String() : urlForHistory().string(); } // null if no server redirect occurred.
     String serverRedirectDestinationForHistory() const { return url(); }
 
     bool didCreateGlobalHistoryEntry() const { return m_didCreateGlobalHistoryEntry; }
diff --git a/Source/WebCore/loader/DocumentWriter.h b/Source/WebCore/loader/DocumentWriter.h
index 385fb64..3048c59 100644
--- a/Source/WebCore/loader/DocumentWriter.h
+++ b/Source/WebCore/loader/DocumentWriter.h
@@ -28,7 +28,7 @@
 
 #pragma once
 
-#include "URL.h"
+#include <wtf/URL.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
diff --git a/Source/WebCore/loader/FormSubmission.h b/Source/WebCore/loader/FormSubmission.h
index 4cdf48b..f9accf1 100644
--- a/Source/WebCore/loader/FormSubmission.h
+++ b/Source/WebCore/loader/FormSubmission.h
@@ -32,7 +32,7 @@
 
 #include "FormState.h"
 #include "FrameLoaderTypes.h"
-#include "URL.h"
+#include <wtf/URL.h>
 
 namespace WebCore {
 
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index bb95ab7..0d25554 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -119,13 +119,13 @@
 #include "SubframeLoader.h"
 #include "SubresourceLoader.h"
 #include "TextResourceDecoder.h"
-#include "URL.h"
 #include "UserContentController.h"
 #include "UserGestureIndicator.h"
 #include "WindowFeatures.h"
 #include "XMLDocumentParser.h"
 #include <dom/ScriptDisallowedScope.h>
 #include <wtf/CompletionHandler.h>
+#include <wtf/URL.h>
 #include <wtf/Ref.h>
 #include <wtf/SetForScope.h>
 #include <wtf/StdLibExtras.h>
@@ -423,7 +423,7 @@
         return;
     }
 
-    if (protocolIsJavaScript(submission->action())) {
+    if (WTF::protocolIsJavaScript(submission->action())) {
         if (!m_frame.document()->contentSecurityPolicy()->allowFormAction(URL(submission->action())))
             return;
         m_isExecutingJavaScriptFormAction = true;
@@ -701,7 +701,7 @@
     if (!parseHTTPRefresh(documentLoader.response().httpHeaderField(HTTPHeaderName::Refresh), delay, urlString))
         return;
     auto completedURL = urlString.isEmpty() ? document.url() : document.completeURL(urlString);
-    if (!protocolIsJavaScript(completedURL))
+    if (!WTF::protocolIsJavaScript(completedURL))
         m_frame.navigationScheduler().scheduleRedirect(document, delay, completedURL);
     else {
         auto message = "Refused to refresh " + document.url().stringCenterEllipsizedToLength() + " to a javascript: URL";
@@ -1555,7 +1555,7 @@
 
     // Only the first iframe navigation or the first iframe navigation after about:blank should be reported.
     // https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface
-    if (m_shouldReportResourceTimingToParentFrame && !m_previousURL.isNull() && m_previousURL != blankURL())
+    if (m_shouldReportResourceTimingToParentFrame && !m_previousURL.isNull() && m_previousURL != WTF::blankURL())
         m_shouldReportResourceTimingToParentFrame = false;
 
     // Log main frame navigation types.
@@ -3372,7 +3372,7 @@
             // For example, using a Back/Forward load to load about blank would cause the current HistoryItem's url to be
             // overwritten with 'about:blank', which we do not want.
             m_loadType = FrameLoadType::Standard;
-            m_provisionalDocumentLoader->willContinueMainResourceLoadAfterRedirect({ blankURL() });
+            m_provisionalDocumentLoader->willContinueMainResourceLoadAfterRedirect({ WTF::blankURL() });
         }
 
         m_provisionalDocumentLoader->startLoadingMainResource(shouldContinue);
@@ -3924,7 +3924,7 @@
     created = false;
 
     // FIXME: Provide line number information with respect to the opener's document.
-    if (protocolIsJavaScript(request.resourceRequest().url()) && !openerFrame.document()->contentSecurityPolicy()->allowJavaScriptURLs(openerFrame.document()->url(), { }))
+    if (WTF::protocolIsJavaScript(request.resourceRequest().url()) && !openerFrame.document()->contentSecurityPolicy()->allowJavaScriptURLs(openerFrame.document()->url(), { }))
         return nullptr;
 
     if (!request.frameName().isEmpty() && !equalIgnoringASCIICase(request.frameName(), "_blank")) {
diff --git a/Source/WebCore/loader/FrameLoaderClient.h b/Source/WebCore/loader/FrameLoaderClient.h
index 99c382a..679d773 100644
--- a/Source/WebCore/loader/FrameLoaderClient.h
+++ b/Source/WebCore/loader/FrameLoaderClient.h
@@ -100,7 +100,6 @@
 class SecurityOrigin;
 class SharedBuffer;
 class SubstituteData;
-class URL;
 class Widget;
 
 enum class LockBackForwardList : bool;
diff --git a/Source/WebCore/loader/HistoryController.cpp b/Source/WebCore/loader/HistoryController.cpp
index 76c94b2..5f38cda 100644
--- a/Source/WebCore/loader/HistoryController.cpp
+++ b/Source/WebCore/loader/HistoryController.cpp
@@ -613,7 +613,7 @@
     //  "If the browsing context's session history contains only one Document,
     //   and that was the about:blank Document created when the browsing context
     //   was created, then the navigation must be done with replacement enabled."
-    return m_currentItem && !m_previousItem && equalIgnoringASCIICase(m_currentItem->urlString(), blankURL());
+    return m_currentItem && !m_previousItem && equalIgnoringASCIICase(m_currentItem->urlString(), WTF::blankURL());
 }
 
 void HistoryController::clearPreviousItem()
@@ -652,9 +652,9 @@
     // Later we may want to learn to live with nil for URL.
     // See bug 3368236 and related bugs for more information.
     if (url.isEmpty()) 
-        url = blankURL();
+        url = WTF::blankURL();
     if (originalURL.isEmpty())
-        originalURL = blankURL();
+        originalURL = WTF::blankURL();
     
     StringWithDirection title = documentLoader->title();
 
diff --git a/Source/WebCore/loader/LinkLoader.h b/Source/WebCore/loader/LinkLoader.h
index 01d1efc..54d7223 100644
--- a/Source/WebCore/loader/LinkLoader.h
+++ b/Source/WebCore/loader/LinkLoader.h
@@ -41,7 +41,6 @@
 namespace WebCore {
 
 class Document;
-class URL;
 class LinkPreloadResourceClient;
 
 struct LinkRelAttribute;
diff --git a/Source/WebCore/loader/LoadTiming.h b/Source/WebCore/loader/LoadTiming.h
index 73f9ef9..fea7c41 100644
--- a/Source/WebCore/loader/LoadTiming.h
+++ b/Source/WebCore/loader/LoadTiming.h
@@ -25,13 +25,12 @@
 
 #pragma once
 
+#include <wtf/Forward.h>
 #include <wtf/MonotonicTime.h>
 #include <wtf/WallTime.h>
 
 namespace WebCore {
 
-class URL;
-
 class LoadTiming {
 public:
     Seconds secondsSinceStartTime(MonotonicTime) const;
diff --git a/Source/WebCore/loader/LoaderStrategy.h b/Source/WebCore/loader/LoaderStrategy.h
index 596782c..285e680 100644
--- a/Source/WebCore/loader/LoaderStrategy.h
+++ b/Source/WebCore/loader/LoaderStrategy.h
@@ -51,7 +51,6 @@
 class SecurityOrigin;
 class SharedBuffer;
 class SubresourceLoader;
-class URL;
 
 struct FetchOptions;
 
diff --git a/Source/WebCore/loader/MixedContentChecker.cpp b/Source/WebCore/loader/MixedContentChecker.cpp
index 050cb79..fade01b 100644
--- a/Source/WebCore/loader/MixedContentChecker.cpp
+++ b/Source/WebCore/loader/MixedContentChecker.cpp
@@ -108,7 +108,7 @@
 {
     // Unconditionally allow javascript: URLs as form actions as some pages do this and it does not introduce
     // a mixed content issue.
-    if (protocolIsJavaScript(url))
+    if (WTF::protocolIsJavaScript(url))
         return;
 
     if (!isMixedContent(securityOrigin, url))
diff --git a/Source/WebCore/loader/MixedContentChecker.h b/Source/WebCore/loader/MixedContentChecker.h
index a26a857..5fdfff8 100644
--- a/Source/WebCore/loader/MixedContentChecker.h
+++ b/Source/WebCore/loader/MixedContentChecker.h
@@ -37,7 +37,6 @@
 
 class Frame;
 class FrameLoaderClient;
-class URL;
 class SecurityOrigin;
 
 class MixedContentChecker {
diff --git a/Source/WebCore/loader/NavigationScheduler.cpp b/Source/WebCore/loader/NavigationScheduler.cpp
index 8ecc143..617dedb 100644
--- a/Source/WebCore/loader/NavigationScheduler.cpp
+++ b/Source/WebCore/loader/NavigationScheduler.cpp
@@ -366,7 +366,7 @@
 {
     if (!shouldScheduleNavigation())
         return false;
-    if (protocolIsJavaScript(url))
+    if (WTF::protocolIsJavaScript(url))
         return true;
     return NavigationDisabler::isNavigationAllowed(m_frame);
 }
diff --git a/Source/WebCore/loader/NavigationScheduler.h b/Source/WebCore/loader/NavigationScheduler.h
index 53ef558..b97d986 100644
--- a/Source/WebCore/loader/NavigationScheduler.h
+++ b/Source/WebCore/loader/NavigationScheduler.h
@@ -41,7 +41,6 @@
 class Frame;
 class ScheduledNavigation;
 class SecurityOrigin;
-class URL;
 
 enum class NewLoadInProgress : bool { No, Yes };
     
diff --git a/Source/WebCore/loader/PingLoader.h b/Source/WebCore/loader/PingLoader.h
index 15489dc..6deef45 100644
--- a/Source/WebCore/loader/PingLoader.h
+++ b/Source/WebCore/loader/PingLoader.h
@@ -40,7 +40,6 @@
 class FormData;
 class Frame;
 class HTTPHeaderMap;
-class URL;
 class ResourceRequest;
 
 enum class ViolationReportType {
diff --git a/Source/WebCore/loader/PolicyChecker.cpp b/Source/WebCore/loader/PolicyChecker.cpp
index b866272..5759fee 100644
--- a/Source/WebCore/loader/PolicyChecker.cpp
+++ b/Source/WebCore/loader/PolicyChecker.cpp
@@ -183,7 +183,7 @@
         case PolicyAction::Ignore:
             return function({ }, nullptr, ShouldContinue::No);
         case PolicyAction::Suspend:
-            return function({ blankURL() }, nullptr, ShouldContinue::ForSuspension);
+            return function({ WTF::blankURL() }, nullptr, ShouldContinue::ForSuspension);
         case PolicyAction::Use:
             if (!m_frame.loader().client().canHandleRequest(request)) {
                 handleUnimplementablePolicy(m_frame.loader().client().cannotShowURLError(request));
diff --git a/Source/WebCore/loader/ResourceLoadInfo.h b/Source/WebCore/loader/ResourceLoadInfo.h
index 9b6330e..1c123d0 100644
--- a/Source/WebCore/loader/ResourceLoadInfo.h
+++ b/Source/WebCore/loader/ResourceLoadInfo.h
@@ -26,7 +26,7 @@
 #pragma once
 
 #include "CachedResource.h"
-#include "URL.h"
+#include <wtf/URL.h>
 
 namespace WebCore {
 
diff --git a/Source/WebCore/loader/ResourceLoadObserver.cpp b/Source/WebCore/loader/ResourceLoadObserver.cpp
index 95d6595..ca36005 100644
--- a/Source/WebCore/loader/ResourceLoadObserver.cpp
+++ b/Source/WebCore/loader/ResourceLoadObserver.cpp
@@ -40,7 +40,7 @@
 #include "ScriptExecutionContext.h"
 #include "SecurityOrigin.h"
 #include "Settings.h"
-#include "URL.h"
+#include <wtf/URL.h>
 
 namespace WebCore {
 
@@ -224,7 +224,7 @@
     auto openerPrimaryDomain = primaryDomain(openerUrl);
     if (domainInNeedOfStorageAccess != openerPrimaryDomain
         && !openerDocument.hasRequestedPageSpecificStorageAccessWithUserInteraction(domainInNeedOfStorageAccess)
-        && !equalIgnoringASCIICase(openerUrl.string(), blankURL())) {
+        && !equalIgnoringASCIICase(openerUrl.string(), WTF::blankURL())) {
         m_requestStorageAccessUnderOpenerCallback(domainInNeedOfStorageAccess, openerPageID, openerPrimaryDomain);
         // Remember user interaction-based requests since they don't need to be repeated.
         openerDocument.setHasRequestedPageSpecificStorageAccessWithUserInteraction(domainInNeedOfStorageAccess);
diff --git a/Source/WebCore/loader/ResourceLoadObserver.h b/Source/WebCore/loader/ResourceLoadObserver.h
index ae2cae2..2abfc50 100644
--- a/Source/WebCore/loader/ResourceLoadObserver.h
+++ b/Source/WebCore/loader/ResourceLoadObserver.h
@@ -47,7 +47,6 @@
 class ResourceRequest;
 class ResourceResponse;
 class ScriptExecutionContext;
-class URL;
 
 struct ResourceLoadStatistics;
 
diff --git a/Source/WebCore/loader/ResourceLoadStatistics.h b/Source/WebCore/loader/ResourceLoadStatistics.h
index f2f0962..11fc63c 100644
--- a/Source/WebCore/loader/ResourceLoadStatistics.h
+++ b/Source/WebCore/loader/ResourceLoadStatistics.h
@@ -26,10 +26,10 @@
 #pragma once
 
 #include "CanvasActivityRecord.h"
-#include "URL.h"
 #include <wtf/HashCountedSet.h>
 #include <wtf/HashSet.h>
 #include <wtf/OptionSet.h>
+#include <wtf/URL.h>
 #include <wtf/WallTime.h>
 #include <wtf/text/StringHash.h>
 #include <wtf/text/WTFString.h>
diff --git a/Source/WebCore/loader/ResourceLoader.h b/Source/WebCore/loader/ResourceLoader.h
index 7119310..c4d7927 100644
--- a/Source/WebCore/loader/ResourceLoader.h
+++ b/Source/WebCore/loader/ResourceLoader.h
@@ -52,7 +52,6 @@
 class FrameLoader;
 class NetworkLoadMetrics;
 class PreviewLoader;
-class URL;
 
 class ResourceLoader : public RefCounted<ResourceLoader>, protected ResourceHandleClient {
 public:
diff --git a/Source/WebCore/loader/ResourceTiming.h b/Source/WebCore/loader/ResourceTiming.h
index 6c9acb1..7ef8dbc 100644
--- a/Source/WebCore/loader/ResourceTiming.h
+++ b/Source/WebCore/loader/ResourceTiming.h
@@ -28,7 +28,7 @@
 #include "LoadTiming.h"
 #include "NetworkLoadMetrics.h"
 #include "ServerTiming.h"
-#include "URL.h"
+#include <wtf/URL.h>
 
 namespace WebCore {
 
diff --git a/Source/WebCore/loader/SubframeLoader.cpp b/Source/WebCore/loader/SubframeLoader.cpp
index 71384d0..78ce7c1 100644
--- a/Source/WebCore/loader/SubframeLoader.cpp
+++ b/Source/WebCore/loader/SubframeLoader.cpp
@@ -77,14 +77,14 @@
     // Support for <frame src="javascript:string">
     URL scriptURL;
     URL url;
-    if (protocolIsJavaScript(urlString)) {
+    if (WTF::protocolIsJavaScript(urlString)) {
         scriptURL = completeURL(urlString); // completeURL() encodes the URL.
-        url = blankURL();
+        url = WTF::blankURL();
     } else
         url = completeURL(urlString);
 
     if (shouldConvertInvalidURLsToBlank() && !url.isValid())
-        url = blankURL();
+        url = WTF::blankURL();
 
     bool hasExistingFrame = ownerElement.contentFrame();
     Frame* frame = loadOrRedirectSubframe(ownerElement, url, frameName, lockHistory, lockBackForwardList);
@@ -94,7 +94,7 @@
     // If we create a new subframe then an empty document is loaded into it synchronously and may
     // cause script execution (say, via a DOM load event handler) that can do anything, including
     // navigating the subframe. We only want to evaluate scriptURL if the frame has not been navigated.
-    bool canExecuteScript = hasExistingFrame || (frame->loader().documentLoader() && frame->loader().documentLoader()->originalURL() == blankURL());
+    bool canExecuteScript = hasExistingFrame || (frame->loader().documentLoader() && frame->loader().documentLoader()->originalURL() == WTF::blankURL());
     if (!scriptURL.isEmpty() && canExecuteScript && ownerElement.isURLAllowed(scriptURL))
         frame->script().executeIfJavaScriptURL(scriptURL);
 
diff --git a/Source/WebCore/loader/SubframeLoader.h b/Source/WebCore/loader/SubframeLoader.h
index 4896d62..2caae9c 100644
--- a/Source/WebCore/loader/SubframeLoader.h
+++ b/Source/WebCore/loader/SubframeLoader.h
@@ -45,7 +45,6 @@
 class HTMLMediaElement;
 class HTMLPlugInImageElement;
 class IntSize;
-class URL;
 class Widget;
 
 // This is a slight misnomer. It handles the higher level logic of loading both subframes and plugins.
diff --git a/Source/WebCore/loader/SubstituteData.h b/Source/WebCore/loader/SubstituteData.h
index f101351..7056321 100644
--- a/Source/WebCore/loader/SubstituteData.h
+++ b/Source/WebCore/loader/SubstituteData.h
@@ -27,8 +27,8 @@
 
 #include "ResourceResponse.h"
 #include "SharedBuffer.h"
-#include "URL.h"
 #include <wtf/RefPtr.h>
+#include <wtf/URL.h>
 
 namespace WebCore {
 
diff --git a/Source/WebCore/loader/appcache/ApplicationCache.h b/Source/WebCore/loader/appcache/ApplicationCache.h
index 5df5f60..61317b5 100644
--- a/Source/WebCore/loader/appcache/ApplicationCache.h
+++ b/Source/WebCore/loader/appcache/ApplicationCache.h
@@ -33,7 +33,6 @@
 class ApplicationCacheGroup;
 class ApplicationCacheResource;
 class ResourceRequest;
-class URL;
 
 using FallbackURLVector = Vector<std::pair<URL, URL>>;
 
diff --git a/Source/WebCore/loader/appcache/ApplicationCacheGroup.h b/Source/WebCore/loader/appcache/ApplicationCacheGroup.h
index abaa73e..47d8934 100644
--- a/Source/WebCore/loader/appcache/ApplicationCacheGroup.h
+++ b/Source/WebCore/loader/appcache/ApplicationCacheGroup.h
@@ -27,10 +27,10 @@
 
 #include "ApplicationCacheResourceLoader.h"
 #include "DOMApplicationCache.h"
-#include "URL.h"
 #include <wtf/Noncopyable.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
+#include <wtf/URL.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
diff --git a/Source/WebCore/loader/appcache/ApplicationCacheHost.h b/Source/WebCore/loader/appcache/ApplicationCacheHost.h
index f2fb1f7..0d130a4 100644
--- a/Source/WebCore/loader/appcache/ApplicationCacheHost.h
+++ b/Source/WebCore/loader/appcache/ApplicationCacheHost.h
@@ -31,8 +31,8 @@
 
 #pragma once
 
-#include "URL.h"
 #include <wtf/Deque.h>
+#include <wtf/URL.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
diff --git a/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp b/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp
index 81c2321..040d8b7 100644
--- a/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp
+++ b/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp
@@ -36,8 +36,8 @@
 #include "SQLiteTransaction.h"
 #include "SecurityOrigin.h"
 #include "SecurityOriginData.h"
-#include "URL.h"
 #include <wtf/StdLibExtras.h>
+#include <wtf/URL.h>
 #include <wtf/UUID.h>
 #include <wtf/text/CString.h>
 #include <wtf/text/StringBuilder.h>
diff --git a/Source/WebCore/loader/appcache/ApplicationCacheStorage.h b/Source/WebCore/loader/appcache/ApplicationCacheStorage.h
index 48cbf88..68c361e 100644
--- a/Source/WebCore/loader/appcache/ApplicationCacheStorage.h
+++ b/Source/WebCore/loader/appcache/ApplicationCacheStorage.h
@@ -38,7 +38,6 @@
 class ApplicationCacheGroup;
 class ApplicationCacheHost;
 class ApplicationCacheResource;
-class URL;
 class SecurityOrigin;
 class SharedBuffer;
 template<typename> class StorageIDJournal;
diff --git a/Source/WebCore/loader/appcache/ManifestParser.cpp b/Source/WebCore/loader/appcache/ManifestParser.cpp
index cb48158..84469f8 100644
--- a/Source/WebCore/loader/appcache/ManifestParser.cpp
+++ b/Source/WebCore/loader/appcache/ManifestParser.cpp
@@ -27,7 +27,7 @@
 #include "ManifestParser.h"
 
 #include "TextResourceDecoder.h"
-#include "URL.h"
+#include <wtf/URL.h>
 #include <wtf/text/StringView.h>
 #include <wtf/unicode/CharacterNames.h>
 
diff --git a/Source/WebCore/loader/appcache/ManifestParser.h b/Source/WebCore/loader/appcache/ManifestParser.h
index e781089..8fe40a6 100644
--- a/Source/WebCore/loader/appcache/ManifestParser.h
+++ b/Source/WebCore/loader/appcache/ManifestParser.h
@@ -30,8 +30,6 @@
 
 namespace WebCore {
 
-class URL;
-
 struct Manifest {
     Vector<URL> onlineWhitelistedURLs;
     HashSet<String> explicitURLs;
diff --git a/Source/WebCore/loader/archive/ArchiveResourceCollection.h b/Source/WebCore/loader/archive/ArchiveResourceCollection.h
index 37df68b..e460b69 100644
--- a/Source/WebCore/loader/archive/ArchiveResourceCollection.h
+++ b/Source/WebCore/loader/archive/ArchiveResourceCollection.h
@@ -37,7 +37,6 @@
 
 class Archive;
 class ArchiveResource;
-class URL;
 
 class ArchiveResourceCollection {
     WTF_MAKE_NONCOPYABLE(ArchiveResourceCollection);
diff --git a/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp b/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
index 861e399..a33a186 100644
--- a/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
+++ b/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
@@ -45,7 +45,6 @@
 #include "HTMLNames.h"
 #include "HTMLObjectElement.h"
 #include "Image.h"
-#include "URLHash.h"
 #include "Logging.h"
 #include "MemoryCache.h"
 #include "Page.h"
@@ -57,6 +56,7 @@
 #include "markup.h"
 #include <wtf/ListHashSet.h>
 #include <wtf/RetainPtr.h>
+#include <wtf/URLHash.h>
 #include <wtf/text/StringBuilder.h>
 #include <wtf/text/CString.h>
 
@@ -611,7 +611,7 @@
     // Wrap the frameset document in an iframe so it can be pasted into
     // another document (which will have a body or frameset of its own). 
     String iframeMarkup = "<iframe frameborder=\"no\" marginwidth=\"0\" marginheight=\"0\" width=\"98%%\" height=\"98%%\" src=\"" + frame->loader().documentLoader()->response().url().string() + "\"></iframe>";
-    auto iframeResource = ArchiveResource::create(utf8Buffer(iframeMarkup), blankURL(), "text/html", "UTF-8", String());
+    auto iframeResource = ArchiveResource::create(utf8Buffer(iframeMarkup), WTF::blankURL(), "text/html", "UTF-8", String());
 
     Vector<Ref<LegacyWebArchive>> subframeArchives;
     subframeArchives.reserveInitialCapacity(1);
diff --git a/Source/WebCore/loader/cache/CachedResource.cpp b/Source/WebCore/loader/cache/CachedResource.cpp
index 5e1e3f1..8f5dd20 100644
--- a/Source/WebCore/loader/cache/CachedResource.cpp
+++ b/Source/WebCore/loader/cache/CachedResource.cpp
@@ -47,11 +47,11 @@
 #include "SchemeRegistry.h"
 #include "SecurityOrigin.h"
 #include "SubresourceLoader.h"
-#include "URL.h"
 #include <wtf/CompletionHandler.h>
 #include <wtf/MathExtras.h>
 #include <wtf/RefCountedLeakCounter.h>
 #include <wtf/StdLibExtras.h>
+#include <wtf/URL.h>
 #include <wtf/Vector.h>
 #include <wtf/text/CString.h>
 
diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.h b/Source/WebCore/loader/cache/CachedResourceLoader.h
index 0777b17..10f69c6 100644
--- a/Source/WebCore/loader/cache/CachedResourceLoader.h
+++ b/Source/WebCore/loader/cache/CachedResourceLoader.h
@@ -57,7 +57,6 @@
 class Frame;
 class ImageLoader;
 class Settings;
-class URL;
 
 template <typename T>
 using ResourceErrorOr = Expected<T, ResourceError>;
diff --git a/Source/WebCore/loader/cache/CachedStyleSheetClient.h b/Source/WebCore/loader/cache/CachedStyleSheetClient.h
index df46be2..38bb199 100644
--- a/Source/WebCore/loader/cache/CachedStyleSheetClient.h
+++ b/Source/WebCore/loader/cache/CachedStyleSheetClient.h
@@ -31,7 +31,6 @@
 namespace WebCore {
 
 class CachedCSSStyleSheet;
-class URL;
 
 class CachedStyleSheetClient : public CachedResourceClient {
 public:
diff --git a/Source/WebCore/loader/cache/MemoryCache.h b/Source/WebCore/loader/cache/MemoryCache.h
index d716798..2fcbd31 100644
--- a/Source/WebCore/loader/cache/MemoryCache.h
+++ b/Source/WebCore/loader/cache/MemoryCache.h
@@ -41,7 +41,6 @@
 namespace WebCore  {
 
 class CachedResource;
-class URL;
 class ResourceRequest;
 class ResourceResponse;
 class ScriptExecutionContext;
diff --git a/Source/WebCore/loader/icon/IconLoader.h b/Source/WebCore/loader/icon/IconLoader.h
index 6aa5537..34a0f32 100644
--- a/Source/WebCore/loader/icon/IconLoader.h
+++ b/Source/WebCore/loader/icon/IconLoader.h
@@ -27,9 +27,9 @@
 
 #include "CachedRawResourceClient.h"
 #include "CachedResourceHandle.h"
-#include "URL.h"
 #include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
+#include <wtf/URL.h>
 
 namespace WebCore {
 
diff --git a/Source/WebCore/loader/mac/LoaderNSURLExtras.mm b/Source/WebCore/loader/mac/LoaderNSURLExtras.mm
index f910ed5..cbe0004 100644
--- a/Source/WebCore/loader/mac/LoaderNSURLExtras.mm
+++ b/Source/WebCore/loader/mac/LoaderNSURLExtras.mm
@@ -30,11 +30,11 @@
 #import "config.h"
 #import "LoaderNSURLExtras.h"
 
-#import <wtf/Assertions.h>
-#import <wtf/Vector.h>
-#import "URL.h"
 #import "LocalizedStrings.h"
 #import "MIMETypeRegistry.h"
+#import <wtf/Assertions.h>
+#import <wtf/URL.h>
+#import <wtf/Vector.h>
 #import <wtf/text/WTFString.h>
 
 using namespace WebCore;