| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "base/time/time.h" |
| |
| namespace base { |
| |
| // static |
| TimeTicks TimeTicks::FromUptimeMillis(jlong uptime_millis_value) { |
| // The implementation of the SystemClock.uptimeMillis() in AOSP uses the same |
| // clock as base::TimeTicks::Now(): clock_gettime(CLOCK_MONOTONIC), see in |
| // platform/system/code: |
| // 1. libutils/SystemClock.cpp |
| // 2. libutils/Timers.cpp |
| // |
| // We are not aware of any motivations for Android OEMs to modify the AOSP |
| // implementation of either uptimeMillis() or clock_gettime(CLOCK_MONOTONIC), |
| // so we assume that there are no such customizations. |
| // |
| // Under these assumptions the conversion is as safe as copying the value of |
| // base::TimeTicks::Now() with a loss of sub-millisecond precision. |
| return TimeTicks(uptime_millis_value * Time::kMicrosecondsPerMillisecond); |
| } |
| |
| } // namespace base |