2

Я строил расширение Chrome, используя частично Chrome debugger protocol. Определенные события в Network domain, такие как requestWillBeSent, включают «временную метку», а также «wallTime».Как вы получаете время на стене из метки времени, используя протокол отладки Chrome?

walltime является регулярными секундами с форматом 1970, но метка времени в секундах, но его не ясно, где его 0, и многие события не имеют wallTime поэтому я действительно пытаюсь выяснить, как получить wallTime от момента времени. Основано на this Я полагаю, что это основано на значении navigationStart, но это не дало правильной даты на основе либо фоновой страницы навигационной системы расширения, либо страницы, на которой произошло событие navigationStart.

Возможно ли вообще использовать временную метку, чтобы попасть в wallTime или мне повезло?

+0

Это вас есть и '' timestamp' и wallTime' генерируется в то же время с обеими использованием секунд, как величина измеряется, то определение нулевой ссылки этого 'timestamp' должно быть тривиальным получено' zeroRef = wallTime - timestamp' (при условии, что нулевая ссылка для «timestamp» - после того, как «wallTime»). Если эта нулевая ссылка может быть распространена на другие экземпляры, где у вас есть отметка времени, будет зависеть от того, имеют ли метки времени одну и ту же ссылку. Мы не можем комментировать это, потому что вы не указали, какие функции вы говорите, и * как вы их используете *. – Makyen

ответ

3

Согласно исходному коду в InspectorNetworkAgent.cpp:

  • wallTime является currentTime() (нормальное время система)
  • timestamp является monotonicallyIncreasingTime()

    В Windows он основан на количество миллисекунд, прошедших с момента система была запущена, и вы не можете получить эту информацию с расширения.

    В системах POSIX (например, Linux) используется clock_gettime в режиме CLOCK_MONOTONIC, который представляет собой монотонное время с некоторой неуточненной начальной точки.

    В соответствии с исходным кодом в time.h:

    TimeTicks и ThreadTicks представляют собой абстрактное время, которое большую часть времени инкрементирования, для использования при измерении времени продолжительности. Внутри они представлены в микросекундах. Они не могут быть преобразованы в текст, читаемый человеком ,, но гарантированно не уменьшаются (в отличие от класса Time). Обратите внимание, что TimeTicks могут «стоять на месте» (например, если компьютер приостановлен) и ThreadTicks будет «стоять на месте», когда поток был отменен с помощью операционной системы.

+0

Удивительное спасибо! Таким образом, ответ (я оставлю это без отметки как * * ответ на день в случае, если кто-то не согласен), это мой план резервного копирования: найдите событие с обоими и используйте это, чтобы проиндексировать, что такое wallTime из этой метки времени. – edibleEnergy