• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            string

            string
            posts - 27, comments - 177, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            WebKit

            Posted on 2008-11-17 22:06 djx_zh 閱讀(1652) 評論(2)  編輯 收藏 引用


            1。main(...): 調用CoCreateInstance生成WebView對象gWebView
                    HRESULT hr = CoCreateInstance(CLSID_WebView, 0, CLSCTX_ALL, IID_IWebView, (void**)&gWebView);
            2。main(...):   調用gWebView::initWithFrame 生成繪圖窗口。
                  hr = gWebView->initWithFrame(clientRect, 0, 0);
            3。WebView對象:包含指向WebFrame 和Page對象的指針。WebView的初始化大部分在initWithFrame函數中,WebView構造函數負責靜態成員的構造及少量簡單成員變量的初值。
            4。WebView::initWithFrame(...):
                  4.1 首先生成繪圖窗口:
                         m_viewWindow = CreateWindowEx(0, kWebViewWindowClassName, 0, WS_CHILD | WS_CLIPCHILDREN,
                    frame.left, frame.top, frame.right - frame.left, frame.bottom - frame.top, m_hostWindow, 0, gInstance, 0);
                  4.2  生成 WebCore::Page對象
                       m_page = new Page(new WebChromeClient(this), new WebContextMenuClient(this), new WebEditorClient(this), new WebDragClient(this), new WebInspectorClient(this));
                  4.3 生成WebFrame 對象
                       WebFrame* webFrame = WebFrame::createInstance();
                  4.4 生成WebFrame::Frame (d->frame)對象
                       RefPtr<Frame> coreFrame = webFrame->init(this, m_page, 0);
                       同時 WebView的WebFrame指針賦值:  m_mainFrame = webFrame;
                 4.5 WebFrame::Frame 對象初始化
                       coreFrame->init();
            5。(4.2) Page() :
            6。(4.3) WebFrame::createInstance() :
            7。(4.4) WebFrame::init() :
            8。(4.5)Frame::init():


            FrameLoader::begin() :create document;

            frameLoader::write, Document::write  :  call tokenizer->write(...) 調用tokenizer進行分析

            tokenizer::write() : 分析出token后, 調用 n = parser->parseToken(&currToken); 生成node,并插入到以document為根的樹中。

            Feedback

            # re: WebKit  回復  更多評論   

            2008-12-17 16:51 by cc_hltt
            好文章,頂一下。

            # re: WebKit  回復  更多評論   

            2009-07-07 14:59 by windyrobin
            不錯,非常感謝!
            综合人妻久久一区二区精品| 久久99国产精品久久久 | 精品久久久久久无码专区| 无码国内精品久久人妻| 久久国产精品成人免费| 色99久久久久高潮综合影院| 久久久久久精品免费看SSS| 久久亚洲AV成人出白浆无码国产| 久久国产精品久久久| 伊人 久久 精品| 99热精品久久只有精品| 亚洲欧洲日产国码无码久久99| 国产呻吟久久久久久久92| 久久人人爽人人爽人人片AV不| 国内精品久久久久久野外| 久久综合亚洲色HEZYO社区| 88久久精品无码一区二区毛片| 偷窥少妇久久久久久久久| 激情综合色综合久久综合| 久久久久亚洲AV无码麻豆| 国产69精品久久久久APP下载 | 香蕉久久夜色精品国产小说| 久久亚洲国产最新网站| 国产成人精品久久亚洲| 狠狠狠色丁香婷婷综合久久五月| 精品久久久无码人妻中文字幕| 久久亚洲2019中文字幕| 国内精品久久久久久久久电影网| 久久Av无码精品人妻系列 | 久久99国产精品成人欧美| 国产成人精品久久免费动漫 | 久久精品国产99久久久古代| 久久强奷乱码老熟女| 九九热久久免费视频| 久久久精品久久久久久| 久久无码一区二区三区少妇| 国产激情久久久久影院老熟女| 国产精品伦理久久久久久 | 无码精品久久一区二区三区| 少妇被又大又粗又爽毛片久久黑人| 久久精品无码一区二区三区免费|