chrome裏面的about Scheme

對about Scheme進行處理的地方:

D:/project/chrome/src/src/chrome/browser/browser_url_handler.cc的void BrowserURLHandler::InitURLHandlers()函數

// static
void BrowserURLHandler::InitURLHandlers() {
  if (!url_handlers_.empty())
    return;

  // Visual Studio 2010 has problems converting NULL to the null pointer for
  // std::pair.  See http://connect.microsoft.com/VisualStudio/feedback/details/520043/error-converting-from-null-to-a-pointer-type-in-std-pair
  // It will work if we pass nullptr.
#if defined(_MSC_VER) && _MSC_VER >= 1600
  URLHandler null_handler = nullptr;
#else
  URLHandler null_handler = NULL;
#endif

  // Add the default URL handlers.
  url_handlers_.push_back(
      HandlerPair(&ExtensionWebUI::HandleChromeURLOverride, null_handler));
  // about:
  url_handlers_.push_back(HandlerPair(&WillHandleBrowserAboutURL,
                                      null_handler));
  // chrome: & friends.
  url_handlers_.push_back(HandlerPair(&HandleWebUI, null_handler));
  // view-source:
  url_handlers_.push_back(HandlerPair(&HandleViewSource, &ReverseViewSource));
}

D:/project/chrome/src/src/chrome/browser/browser_about_handler.cc 的bool WillHandleBrowserAboutURL(GURL* url, Profile* profile)

 

WillHandleBrowserAboutURL
其中通過about:about可以看到所有支持的about Scheme。about:net-internalsabout:tcmallocabout:gpu 可以瞭解很多chrome的細節。
image

這些about scheme的定義在D:/project/chrome/src/src/chrome/common/url_constants.cc :

url_constants.cc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章