Firefox在哪里确定在URL栏中键入的单词将被转换为搜索



我试图在Firefox源代码中找到一个区域,在用户点击回车键后,在url栏中输入的单词会被识别为输入到默认搜索引擎。例如,如果我键入firefox,它会弹出搜索结果。我找不到这种逻辑发生在哪里。

我这样跟踪,从searchbar对enter的调用开始,然后更深入地跟踪url和沿途传递的任何其他uri。

  1. gURLBar.handleCommand
  2. openUILinkIn
  3. openLinkIn
  4. gBrowser.loadURIWithFlags

因此,在loadURIWithFlags之前修改函数openLinkIn来做一个console.log,我们看到url到目前为止仍然是搜索词。

  1. gBrowser.CurrentBrowser.loadURIWithFlags
  2. _加载带有标志的URI
  3. gBrowser.webNavigation.loadURIWithOptions->[[native code]

因此,我通过注入这些函数进行跟踪,我发现在它调用本地代码之前,它正在传递一个仍然是搜索词的uri,这令人难以置信,我当时认为(在传递到本地代码之前)它已经找到了默认的搜索引擎提交url,然后传递给它。我错过什么了吗?

不,我认为你的分析是正确的——浏览器实际上导航到了带有搜索关键字的URL。然后内容进程再次发送Browser:URIFixup消息,并触发gKeywordURIFixup函数。这就是关键字被解析的地方。是的,在Mozilla开始研究进程分离之前,事情曾经简单得多。

最新更新