| Index: src/core/SkTime.cpp | 
| diff --git a/src/core/SkTime.cpp b/src/core/SkTime.cpp | 
| index ba8fe3e3a31e9301475fbe2efd8e41c0aead5950..e89d5b9b3a850aebfeb157aa20d974b78a396dee 100644 | 
| --- a/src/core/SkTime.cpp | 
| +++ b/src/core/SkTime.cpp | 
| @@ -5,10 +5,10 @@ | 
| * found in the LICENSE file. | 
| */ | 
|  | 
| -#include "SkOncePtr.h" | 
| #include "SkString.h" | 
| #include "SkTime.h" | 
| #include "SkTypes.h" | 
| +#include <chrono> | 
|  | 
| void SkTime::DateTime::toISO8601(SkString* dst) const { | 
| if (dst) { | 
| @@ -65,37 +65,8 @@ void SkTime::GetDateTime(DateTime* dt) { | 
| } | 
| #endif // SK_BUILD_FOR_WIN32 | 
|  | 
| -#if defined(_MSC_VER) | 
| -    // TODO: try std::chrono again with MSVC 2015? | 
| -    #include <intrin.h> | 
| -    SK_DECLARE_STATIC_ONCE_PTR(double, ns_per_tick); | 
| -    double SkTime::GetNSecs() { | 
| -        uint64_t ticks = __rdtsc(); | 
| -        return ticks * *ns_per_tick.get([]{ | 
| -            LARGE_INTEGER khz;  // The docs say this returns Hz, but it returns KHz. | 
| -            QueryPerformanceFrequency(&khz); | 
| -            return new double(1e6 / khz.QuadPart); | 
| -        }); | 
| -    } | 
| -#elif defined(__MACH__) | 
| -    // TODO: fold into std::chrono when available? | 
| -    #include <mach/mach_time.h> | 
| -    SK_DECLARE_STATIC_ONCE_PTR(double, ns_per_tick); | 
| -    double SkTime::GetNSecs() { | 
| -        uint64_t ticks = mach_absolute_time(); | 
| -        return ticks * *ns_per_tick.get([]{ | 
| -            mach_timebase_info_data_t timebase; | 
| -            (void)mach_timebase_info(&timebase); | 
| -            return new double(timebase.numer * 1.0 / timebase.denom); | 
| -        }); | 
| -    } | 
| -#else | 
| -    // This std::chrono code looks great on Linux and Android, | 
| -    // but MSVC 2013 returned mostly garbage (0ns times, etc). | 
| -    #include <chrono> | 
| -    double SkTime::GetNSecs() { | 
| -        auto now = std::chrono::high_resolution_clock::now(); | 
| -        std::chrono::duration<double, std::nano> ns = now.time_since_epoch(); | 
| -        return ns.count(); | 
| -    } | 
| -#endif | 
| +double SkTime::GetNSecs() { | 
| +    auto now = std::chrono::high_resolution_clock::now(); | 
| +    std::chrono::duration<double, std::nano> ns = now.time_since_epoch(); | 
| +    return ns.count(); | 
| +} | 
|  |