DevTool 协议提供的“resourceType”值是如何定义的?

How is defined `resourceType` value provided by the DevTool protocol?

在使用 Puppeteer 或 Chrome DevTools APIs 时,您可以获得 resourceType 的值(在 Puppeteer 中的 Request 对象和 Page Chrome DevTools 中的对象)。

这个值是如何由 "rendering engine"(如文档中所称)建立的?


可能的值为:DocumentStylesheetImageMediaFontScriptTextTrack , XHR, Fetch, EventSource, WebSocket, Manifest, Other

API 文档:Puppeteer API and Chrome DevTools API

关于 Whosebug 的类似问题:Is There any way to get all mime type by the resourceType of chrome

最后,我在 Chromium 使用的 WebKit 源代码中找到了处理该问题的源代码。

首先,文档中所谓的"rendering engine"是WebKit引擎(至少是chromium源提供的版本)。

其次,没有办法很容易地知道资源将如何被标记为每个类别。

最简单的部分是针对类别:DocumentStylesheetImageMediaFontScript。它使用 mimeType 和 URL 的路径部分提供的扩展名。映射在 this response.

中有详细说明

对于其他类别(TextTrackXHRFetchEventSourceWebSocketManifest),似乎它是在 WebKit 处理给定资源的过程中通过自定义逻辑建立的。


Chromium 存储库中提供了源代码:./third_party/WebKit/Source/devtools/front_end/common/ResourceType.js