|  | // 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 |