Firefox和Chrome浏览器中DataTransfer.effectAllowed的内部实现

4
我目前正在学习 MDN 上的 HTML5 拖放 API,对了解 DataTransfer.effectAllowed 在 Firefox 和 Chrome 浏览器中的实现很感兴趣。
因为两个浏览器的源代码都很庞大,对于不熟悉源代码的人来说,找到他们所需的确切内容是一项困难的任务,所以我想知道是否有人可以分享他们在搜索源代码时的经验/策略?
1个回答

4
我不确定Chrome是否可行,但我会尝试使用Mozilla Firefox。尽管Firefox的代码库很大,但它可以使用两个不同的引擎进行搜索:SearchfoxDXR。两者都很好,并且具有不同的优缺点。
Searchfox: - 它速度快; - 可以通过查找符号/实现来轻松跟踪代码,并从那里继续深入挖掘代码。
DXR: - 更加灵活; - 不会自动渲染RST文件(对我来说这是一个优点:D)。
现在,回到你的问题,让我们使用searchfox查找DataTranfer.effectAllowed
  1. 在左侧的搜索框中输入“effectAllowed”。
  2. 这会显示一堆东西,包括JS和C++。第二个结果来自于“dom/events/DataTransfer.h”,可能是你要找的内容。
  3. 通过在右上角的框中输入“*.cpp”来将搜索限制为“.cpp”文件。
  4. 第二个结果将来自于“dom/events/DataTransfer.cpp”,这正是实现所在的地方。请参见此处

从那里开始,取决于你要找什么,你可以继续调查。希望这能帮到你 :)

更新:搜索Chromium源代码的步骤

原来Chromium也有类似的服务用于搜索代码库。步骤也非常相似!

  1. 访问https://cs.chromium.org/
  2. 在页面中央的搜索框中输入EffectAllowed
  3. 您将看到一个下拉菜单,选择setEffectAllowed (in blink::DataTransfer),它是带有.cc实现文件的那个。
  4. 浏览到这里并尽情享受!

感谢@Dexter列出了您采取的步骤以找到所需内容。学习如何完成这项工作肯定会在将来遇到类似问题时对我有很大帮助:)再次感谢。 - Thor
1
不用谢!我刚刚更新了我的回答,告诉你如何搜索Chromium的源代码。 - Dexter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接