Webkit分析传入的url到真正网络模块发起加载请求

时间:2021-05-19 22:24:31
WebCore:: ResourceHandle::start()
>>d->m_job = new QNetworkReplyHandler(this, QNetworkReplyHandler::AsynchronousLoad, d->m_defersLoading);
  真正的加载交由平台Port完成,针对Request创建一个异步的加载处理


WebCore:: ResourceHandle::create()
>>对于blob://xxx的特殊处理
>>创建ResouceHandle的入口API,具体实现将委托平台化(qtnetwork,libcurl等)


WebCore::MainResourceLoader::loadNow(ResourceRequest)

WebCore::MainResourceLoader::load(ResourceRequest,SubstituteData)


WebCore::DocumentLoader:: startLoadingMainResource(unsigned long identifier=7)


WebCore::FrameLoader::continueLoadAfterWillSubmitForm()

WebCore::FrameLoader::continueLoadAfterNavigationPolicy(ResourceRequest,formState,shouldContinue)
WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy()


WebCore::PolicyCallback::call(bool shouldContinue=true)

WebCore::PolicyChecker::continueAfterNavigationPolicy
WebCore::FrameLoaderClientQt::callPolicyFunction()
WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction()
WebCore::PolicyChecker::checkNavigationPolicy(ResourceRequest,DocumentLoader * loader)


WebCore::FrameLoader::loadWithDocumentLoader(DocumentLoader * loader,FrameLoadType type=FrameLoadTypeSame)


WebCore::FrameLoader::load(DocumentLoader * newDocumentLoader)

WebCore::FrameLoader::load(request,substituteData,lockHistory=false)
WebCore::FrameLoader::load(const WebCore::ResourceRequest & request={...}, bool lockHistory=false)
QWebFrame::load()
QWebView::load()
WebView::loadUrl(const QUrl & url={...})