首页 > 解决方案 > chrome跟踪文件中对nodeId,frame,frameTreeNodeId,layerId和layerTreeId(以及其他)的每个引用之间的关系是什么

问题描述

我正在寻找与 chrome 跟踪文件结构相关的当前文档。

例如,在跟踪文件中,存在使用父属性相互关联的帧。有些框架与 nodeId 相关联,但也有一些 nodeId 没有关联的框架。类似地,有带有 layerId 的框架和没有的框架。

是否有任何文件描述了所有这些对象如何相互关联?它们是平行结构吗?它们是一个层次结构的一部分吗?节点是唯一引用的,还是不同的 nodeId 可以引用同一个对象?

这是我到目前为止发现的:

在我寻找答案的过程中,我发现了 Chrome DevTools 协议文档 [1],它似乎引用了其中的每一个,但我一直无法发现它们之间的关系。

我已经浏览了 19 GB 的 chrome 源代码,除了找到包含许多(如果不是全部)这些引用的 TimelineModel.ts [2] 之外,没有什么可展示的。

我还发现了跟踪事件格式 [3],它描述了跟踪文件中的一些字段,但它最后一次更新是在 2016 年,并且不包含对 nodeId 或 layerId 的引用。

虽然与 chrome 没有直接关系,但我发现的一个 WebKit 文件 [4] 包含所有这些引用,并包括诸如阴影树、合成树和可访问性结构之类的附加内容。

欢迎任何帮助。

  1. https://chromedevtools.github.io/devtools-protocol/
  2. https://chromium.googlesource.com/devtools/devtools-frontend/+/af7ba130f6fe898ebe08c15e29438b83e7c40d7d/front_end/models/timeline_model/TimelineModel.ts
  3. https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
  4. https://raw.githubusercontent.com/WebKit/WebKit/main/Source/WebInspectorUI/Versions/Inspector-iOS-13.0.json

标签: google-chromegoogle-chrome-devtools

解决方案


推荐阅读