chromium 启动renderer进程

文件名:content/browser/renderer_host/render_view_host_impl.cc

函数:

RenderViewHostImpl::RenderViewHostImpl(

    FrameTree* frame_tree,

    SiteInstanceGroup* group,

    const StoragePartitionConfig& storage_partition_config,

    std::unique_ptr<RenderWidgetHostImpl> widget,

    RenderViewHostDelegate* delegate,

    int32_t routing_id,

    int32_t main_frame_routing_id,

    bool has_initialized_audio_host,

    scoped_refptr<BrowsingContextState> main_browsing_context_state,

    CreateRenderViewHostCase create_case)

    : render_widget_host_(std::move(widget)),

      delegate_(delegate),

      render_view_host_map_id_(frame_tree->GetRenderViewHostMapId(group)),

      site_instance_group_(group->GetWeakPtrToAllowDangling()),

      storage_partition_config_(storage_partition_config),

      routing_id_(routing_id),

      main_frame_routing_id_(main_frame_routing_id),

      frame_tree_(frame_tree),

      main_browsing_context_state_(

          main_browsing_context_state

              ? std::make_optional(main_browsing_context_state->GetSafeRef())

              : std::nullopt),

      is_speculative_(create_case == CreateRenderViewHostCase::kSpeculative) {

  TRACE_EVENT("navigation", "RenderViewHostImpl::RenderViewHostImpl",

              ChromeTrackEvent::kRenderViewHost, *this);

  TRACE_EVENT_BEGIN("navigation", "RenderViewHost",

                    perfetto::Track::FromPointer(this),

                    "render_view_host_when_created", this);

  DCHECK(delegate_);

  DCHECK_NE(GetRoutingID(), render_widget_host_->GetRoutingID());

  PerProcessRenderViewHostSet::GetOrCreateForProcess(GetProcess())

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Chromium进程启动顺序主要包括:初始化过程、处理消息过程、绘制过程和渲染过程。初始化过程中,Chromium会载入配置文件、建立内核进程、建立渲染进程等。然后进入处理消息过程,Chromium会接收来自浏览器内核和渲染进程的消息并处理。接着开始绘制过程,Chromium会将网页内容绘制到屏幕上,而最后一步是渲染过程,在这个过程中,Chromium会将绘制好的内容展示在浏览器中。 ### 回答2: Chromium是一种开放源代码的网页浏览器,其进程启动顺序可以简单分为以下几个步骤: 1. 主进程启动:当用户双击打开Chromium浏览器时,系统会首先启动进程。主进程负责管理其他相关进程,如浏览器标签、插件管理、窗口调度等。 2. 渲染进程启动:在主进程启动之后,当用户打开一个新的网页或者标签时,主进程启动一个渲染进程来处理该网页的渲染和交互。 3. GPU进程启动:在有需要的情况下,主进程还会启动GPU进程,用于处理与图形相关的任务,如3D渲染、视频播放等。 4. 插件进程启动:当用户访问需要插件支持的网页时(如Flash),主进程启动相应的插件进程,用于加载和运行插件,以提供相应的功能和特性。 总的来说,Chromium进程启动顺序可以概括为主进程启动,然后根据用户的操作和需要,逐渐启动渲染进程、GPU进程和插件进程等。这种进程启动方式可以提高浏览器的稳定性和安全性,同时也能更好地利用系统资源。 ### 回答3: Chromium 进程启动顺序可以简要概括为以下几个步骤: 1. 启动浏览器进程:当用户双击 Chromium 可执行文件或创建一个新的浏览器窗口时,浏览器进程会被启动。该进程负责管理整个浏览器的生命周期和资源分配。 2. 建立渲染进程:在浏览器进程中,每个标签页或独立窗口将启动一个独立的渲染进程。渲染进程负责处理网页的渲染、脚本执行和用户交互等任务。为了提高安全性和稳定性,每个渲染进程都被隔离在自己的沙盒环境中。 3. 创建网络进程:网络进程负责处理网络请求,包括下载网页内容、JavaScript、CSS、图像等资源。当浏览器需要进行网络通信时,这个进程会被启动。 4. 启动 GPU 进程:GPU 进程是用于加速图形渲染的,它与浏览器进程和渲染进程进行通信,处理与图像相关的任务。 5. 建立插件进程:如果页面中包含 Flash 或其他插件,每个插件都将在单独的插件进程中运行。这种隔离可以防止插件的问题影响到整个浏览器的稳定性。 总结起来,Chromium 进程启动顺序是先启动浏览器进程,然后根据需要分别建立渲染进程、网络进程、GPU 进程和插件进程。这种多进程架构的设计使得 Chromium 在安全性和稳定性方面表现出色,并能够提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值