日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

谷歌瀏覽器的源碼分析(15)

系統 1996 0
上一次說到發送命令給瀏覽器對象打開網頁顯示,但還沒有分析它是怎么實現的,現在就來分析這方面的內容,如下:

#001 ? void Browser::ExecuteCommand(int id) {

#002 ??? if (!IsCommandEnabled(id)) {

#003 ????? NOTREACHED() << id;

#004 ????? return;

#005 ??? }

#006 ??? // This might happen during QMU testing.

#007 ??? if (!GetSelectedTabContents())

#008 ????? return;

#009 ?

#010 ??? switch (id) {

#011 ????? case IDC_BACK:

#012 ??????? UserMetrics::RecordAction(L"Back", profile_);

#013 ??????? GoBack();

#014 ??????? break;

#015 ???????

#016 ? ?????? ...

#017 ???????

#018 ???????

#019 ???????? case IDC_OPENURL:

#020 ??????? UserMetrics::RecordAction(L"LoadURL", profile_);

#021 ??????? {

#022 ????????? LocationBarView* lbv = GetLocationBarView();

#023 ????????? if (lbv) {

#024 ??????????? OpenURL(GURL(lbv->location_input()), lbv->disposition(),

#025 ??????????????????? lbv->transition());

#026 ????????? } else {

#027 ??????????? OpenURL(GURL(), CURRENT_TAB, PageTransition::TYPED);

#028 ????????? }

#029 ??????? }

#030 ??????? break;

#031 ?

?

可以看到這段代碼,第 19 行就是處理打開網頁的命令處理,當然在這個函數里不僅僅處理打開網頁的連接命令,還有很多其它的命令,目前先分析這個命令的代碼。

20 行里先記錄當前執行的動作。

22 行里查找到當前顯示 BAR 窗口。

如果找到 LocationBarView 窗口,就把當前的輸入連接生成 GURL 對象,從窗口獲取顯示位置,傳送的類型。否則,就是使用空的連接,并打開當前頁面。

?

下面再來分析函數 OpenURL 的實現,它是調用 TabContentsDelegate 類里的 OpenURL 函數:

#001 ??? virtual void OpenURL(const GURL& url,

#002 ???????????????????????? WindowOpenDisposition disposition,

#003 ???????????????????????? PageTransition::Type transition) {

#004 ????? OpenURLFromTab(NULL, url, disposition, transition, std::string());

#005 ??? }

?

在這個函數繼續調用 OpenURLFromTab 函數來實現打開網頁的功能,這個函數比較復雜,下一次再來分析它。

谷歌瀏覽器的源碼分析(15)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 双牌县| 阳高县| 陵川县| 米易县| 罗定市| 东安县| 同德县| 凉山| 霍邱县| 简阳市| 特克斯县| 贵德县| 镇巴县| 新邵县| 横峰县| 九江县| 宕昌县| 黑水县| 阿拉善盟| 渭源县| 定陶县| 昭苏县| 临湘市| 河源市| 武平县| 梁河县| 郸城县| 三穗县| 霸州市| 上饶县| 利津县| 平阳县| 青田县| 巫山县| 昂仁县| 上栗县| 台东县| 广饶县| 庄浪县| 福清市| 大邑县|