Android Browser 笔记 (四)

本文深入探讨了JAVA语言中JNINativeMethod在WebKit框架中的具体实现,包括如何加载URL、资源下载流程及与CFNetWork网络接口的交互。详细分析了WebKit框架下资源加载、导航政策执行以及文件资源下载的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 从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());

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值