zoukankan      html  css  js  c++  java
  • WebKit(Blink分支)各组件的创建与逻辑关系

    从render_view_impl.cc開始说起。

    1.     方法RenderViewImpl::Initialize中有:

    WebLocalFrame* web_frame = WebLocalFrame::create(main_render_frame_.get()); 

    这里会创建WebLocalFrame对象。

    之后有webwidget_ = WebView::create(this); 这里会创建WebViewImpl对象。且后面将两者关联起来。

    2. 我们来先来看看WebLocalFrame::create

        1. WebLocalFrameImpl的构造函数中,创建FrameLoaderClientImpl对象。


    3. WebViewImpl的创建

    WebViewImpl在创建中,会创建Page对象。

    一个WebViewImpl相应一个Page。


    4.WebViewImpl的setMainFrame

         这里的调用逻辑例如以下:

    WebViewImpl::setMainFrame
    WebLocalFrameImpl::initializeCoreFrame
    LocalFrame::LocalFrame

    在LocalFrame的构造函数中。会创建FrameLoader对象和ScriptController对象

    4. Document对象及相关逻辑

    FrameLoader::init()和   FrameLoader::startLoad函数中,创建了多个DocumentLoader对象。

      

    RawResource::didAddClient
    DocumentLoader::dataReceived
    DocumentLoader::commitData
    DocumentLoader::ensureWriter
    DocumentLoader::createWriterFor
    (LocalDOMWindow::create)
    LocalDOMWindow::installNewDocument
    LocalDOMWindow::createDocument
    Document::Document

    5.归纳

        1. LocalFrame主要处理逻辑,含有FrameView对象,用于处理内容显示。FrameView继承ScrollViewArea类,故,FrameView内容可超过屏幕。

          (未完待续)     



  • 相关阅读:
    删除表
    删除表格的行或者列
    给word中的表格增加行或者列
    向word中插入表格
    设置图片的对齐方式
    day19作业
    Python入门day19——叠加多个装饰器、yield、三元表达式、生成式、函数的递归调用
    day18作业
    Python入门day18——有参装饰器
    Python入门day18——迭代器生成器
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6764076.html
Copyright © 2011-2022 走看看