您如何使用 Chrome 的调试器协议从时间戳中导出 walltime?

How do you derive walltime from timestamp using Chrome's debugger protocol?

我一直在构建一个 Chrome 扩展,部分使用 Chrome debugger protocolNetwork domain like requestWillBeSent 中的某些事件包括 "timestamp" 以及 "wallTime."

walltime 是自 1970 格式以来的常规秒数,但时间戳以秒为单位但不清楚它的 0 在哪里,而且许多事件没有 wallTime 所以我 真的 试图弄清楚如何从 timeStamp 派生 wallTime。 基于 this 我认为是基于 navigationStart 值,但是根据扩展的 navigationStart 的背景页面或事件发起 navigationStart 的页面都没有产生正确的日期。

是否可以使用时间戳来获取 wallTime 还是我运气不好?

根据InspectorNetworkAgent.cpp中的源代码:

  • wallTimecurrentTime()(正常系统时间)
  • timestampmonotonicallyIncreasingTime()

    在 Windows 上,它基于系统启动后经过的毫秒数,您无法从扩展程序中获取该信息。

    在 POSIX 系统上(例如 Linux)CLOCK_MONOTONIC 模式中的 clock_gettime 用于表示从某个未指定的起点开始的单调时间。

    根据time.h中的源代码:

    TimeTicks and ThreadTicks represent an abstract time that is most of the time incrementing, for use in measuring time durations. Internally, they are represented in microseconds. They can not be converted to a human-readable time, but are guaranteed not to decrease (unlike the Time class). Note that TimeTicks may "stand still" (e.g., if the computer is suspended), and ThreadTicks will "stand still" whenever the thread has been de-scheduled by the operating system.