ZBLOG

How many “Delegates”? A URLRequest informs the consumer of important events for a request using two main interfaces: the URLRequest::Delegate interface and the NetworkDelegate interface. The URLRequest::Delegate interface consists of a small set ...

“委托”代表的数量是多少?

一个URLRequest通过两个主要接口向使用者通报重要事件:URLRequest::Delegate接口和NetworkDelegate接口。

URLRequest::Delegate接口由一小组回调函数组成,用于让嵌入式设备驱动请求前进。NetworkDelegate是由所有请求共享的由URLRequestContext指向的对象,并包括对应于大部分URLRequest::Delegate回调函数的回调以及其他各种方法。

网络服务和Mojo 网络服务位于//services/network/,封装了//net/对象,并为Chrome的其余部分提供跨进程网络API及其实现。网络服务使用“network”这个名称空间来定义其所有类。它提供的Mojo接口在network::mojom命名空间中。Mojo是Chrome的IPC层。一般来说,在使用者的过程中有一个mojo::Remotenetwork::mojom::Foo代理对象,同时也实现了network::mojom::Foo接口。当调用代理对象的方法时,它会通过Mojo IPC通道将调用及其参数传递给网络服务中的network::mojom::Foo接口的实现(通常是命名为network::Foo的类),该实现可能在另一个进程、使用者过程中的另一个线程,甚至是使用者过程中的同一线程中运行。

network::NetworkService对象是单例对象,用于创建所有其他网络服务对象。它主要用于创建network::NetworkContexts,每个NetworkContext都拥有自己独立的URLRequestContext。Chrome有许多不同的NetworkContext,因为通常需要针对不同类型的请求(根据发出请求的内容)分别保留cookie、缓存和套接字池等状态。以下是Chrome使用的主要NetworkContext:

系统NetworkContext由Chrome的SystemNetworkContextManager创建和拥有,用于与特定用户或配置文件无关联的请求。它没有磁盘存储,因此在每次浏览器重新启动时会丢失所有状态,如cookie。它也没有内存中的http缓存。SystemNetworkContextManager还设置全局网络服务首选项。 每个Chrome配置文件(包括隐身配置文件)都有自己的NetworkContext。除了隐身和来宾配置文件之外,这些上下文将信息存储在它们自己的磁盘存储器中,其中包括cookie和HTTP缓存等内容。每个NetworkContext都是由浏览器进程中的一个StoragePartition对象拥有并由Profile的ProfileNetworkContextService创建。 在支持应用程序的平台上,每个配置文件都有一个适用于该配置文件上安装的每个应用程序的NetworkContext。与主NetworkContext一样,这些可能具有磁盘数据,具体取决于配置文件和应用程序。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=941

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?