chrome里面的about Scheme

来源:互联网 发布:ec软件下载2016 编辑:程序博客网 时间:2024/06/05 19:29

对about Scheme进行处理的地方:

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

// staticvoid 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-internals,about:tcmalloc,about:gpu 可以了解很多chrome的细节。
image

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

url_constants.cc