zoukankan      html  css  js  c++  java
  • webkit的documentloader状态转换分析

    三态:policy provisional committed

    FrameLoader::loadWithDocumentLoader将触发导航裁决,调用setPolicyDocumentLoader(loader), 进入policy 状态,

    导航裁决通过后,FrameLoader::continueLoadAfterNavigationPolicy将被调用,即Policy后的继续加载,

        setProvisionalDocumentLoader(m_policyDocumentLoader.get());   //设置ProvisionalDocumentLoader

       setState(FrameStateProvisional);//continueLoadAfterNavigationPolicy将FrameLoader对象的状态转换为“FrameStateProvisional”,

        setPolicyDocumentLoader(0);//删除PolicyDocumentLoader

    并在下一步的continueLoadAfterWillSubmitForm函数中调用DocumentLoader::startLoadingMainResource开始主资源加载。startLoadingMainResource中将创建MainResourceLoader对象。

        --> FrameLoader::load // load 函数1

              --> FrameLoader::load // oad函数2, 此处创建一个 DocumentLoader 对象

                    --> FrameLoader::load(newDocumentLoader) // load函数3,

                          -->FrameLoader::loadWithDocumentLoader

                               -->FrameLoader::setPolicyDocumentLoader(loader); // loader 即那个新DocumentLoader 对象, 担当PolicyDocumentLoader

                               -->PolicyChecker::checkNavigationPolicy // 导航裁决? 并传人回调函数callContinueLoadAfterNavigationPolicy

        * 导航裁决后的处理FrameLoader::callContinueLoadAfterNavigationPolicy

        -->FrameLoader::callContinueLoadAfterNavigationPolicy

             -->FrameLoader::continueLoadAfterNavigationPolicy

                 -->FrameLoader::setProvisionalDocumentLoader(m_policyDocumentLoader.get()); // 那个新DocumentLoader对象又担当ProvisionalDocumentLoader

                 -->FrameLoader::setState(FrameStateProvisional); // 转变为FrameStateProvisional状态

                 -->FrameLoader::setPolicyDocumentLoader(0); // 清除PolicyDocumentLoader,以上3行完成状态切换

  • 相关阅读:
    Android Bitmap 载入与像素操作
    java poi读取excel公式,返回计算值(转)
    模块化Java简介
    java模式
    java—三大框架详解,其发展过程及掌握的Java技术慨括
    java设计模式、框架、架构、平台之间的关系
    POI 怎么设置Excel整列的CellStyle啊
    POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
    POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
    ActiveX插件的Z-Index属性无效问题解决
  • 原文地址:https://www.cnblogs.com/zhangjiaquan/p/3295493.html
Copyright © 2011-2022 走看看