在firefox和chrome浏览器中内部实现DataTransfer.effectAllowed

时间:2018-04-24 02:04:52

标签: javascript google-chrome firefox browser

我目前正在研究MDN上的HTML5拖放API,并且我有兴趣了解更多关于如何在Firefox和Chrome浏览器中实现DataTransfer.effectAllowed 的方法。

因为两个浏览器的源代码都很庞大,对于不熟悉源代码的人来说,找到他们想要的东西是一项艰巨的任务,所以我只是想知道是否有人可以分享他们的搜索经验/策略他们的源代码?

1 个答案:

答案 0 :(得分:5)

我不确定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,这正是实施所在的位置。见here
  5. 从那里,根据您的需求,您可以继续调查。我希望这会有所帮助:)

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

    原来Chromium有一个类似的service来搜索代码库。步骤也很相似!

    1. 转到https://cs.chromium.org/
    2. 在页面中心的搜索框中写下EffectAllowed
    3. 您将看到一些带有一些结果的下拉菜单。选择setEffectAllowed (in blink::DataTransfer),即.cc实施文件。
    4. 浏览here并享受乐趣!