从JAVA来,
static JNINativeMethod gBrowserFrameNativeMethods[] = {"nativeLoadUrl", "(Ljava/lang/String;Ljava/util/Map;)V",
(void*) LoadUrl },
@WebCoreFrameBridge.cpp
pFrame->loader()->load(request, false);
load>>load>>load>>
loadWithDocumentLoader(newDocumentLoader, type, 0); @FrameLoader.cpp
continueAfterNavigationPolicy@FrameLoader.cpp
FrameLoader::continueLoadAfterWillSubmitForm()
DocumentLoader::startLoadingMainResource(unsigned long identifier)
m_mainResourceLoader->load(m_request, m_substituteData)
MainResourceLoader::loadNow(ResourceRequest& r)
MainResourceLoader::handleDataLoadSoon(const ResourceRequest& r)
MainResourceLoader::handleDataLoadNow(MainResourceLoaderTimer*)
MainResourceLoader::didReceiveResponse(const ResourceResponse& r)
MainResourceLoader::callContinueAfterContentPolicy(void* argument, PolicyAction policy)
continueAfterContentPolicy(policy, m_response);
MainResourceLoader::didReceiveData()
ResourceLoader::addData()
文件资源下载到buffer的流程
期间需要CFNetWork网络接口
webkit2/webprocess/downloads/
startDownload@DownloadManager.cpp
webkit2/webprocess/downloads/cfnet
Download::start@DownloadCFNet.cpp
CFURLDownloadStart(m_download.get());