Skip to content

Commit 5f73ce5

Browse files
committed
Core - Migrate from CefTime to CefBaseTime (CefNavigationEntry)
- Add new method to convert from CefBaseTime to DateTime Issue #4234
1 parent 4d78c70 commit 5f73ce5

2 files changed

Lines changed: 15 additions & 6 deletions

File tree

CefSharp.Core.Runtime/Internals/TypeConversion.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -300,12 +300,7 @@ namespace CefSharp
300300
return gcnew NavigationEntry(current, DateTime::MinValue, nullptr, -1, nullptr, nullptr, (TransitionType)-1, nullptr, false, false, sslStatus);
301301
}
302302

303-
//TODO: Issue #4234
304-
auto baseTime = entry->GetCompletionTime();
305-
CefTime time;
306-
cef_time_from_basetime(baseTime, &time);
307-
308-
DateTime completionTime = CefTimeUtils::ConvertCefTimeToDateTime(time.GetDoubleT());
303+
DateTime completionTime = CefTimeUtils::FromBaseTimeToDateTime(entry->GetCompletionTime().val);
309304
auto ssl = entry->GetSSLStatus();
310305
X509Certificate2^ sslCertificate;
311306

CefSharp/Internals/CefTimeUtils.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,20 @@ public static class CefTimeUtils
3232
return DateTime.FromFileTime(val * 10);
3333
}
3434

35+
/// <summary>
36+
/// Converts from CefBaseTime to DateTime
37+
/// </summary>
38+
/// <param name="val">
39+
/// Represents a wall clock time in UTC. Values are not guaranteed to be monotonically
40+
/// non-decreasing and are subject to large amounts of skew. Time is stored internally
41+
/// as microseconds since the Windows epoch (1601).
42+
/// </param>
43+
/// <returns>returns a <see cref="DateTime"/> of <see cref="DateTimeKind.Local"/></returns>
44+
public static DateTime FromBaseTimeToDateTime(long val)
45+
{
46+
return DateTime.FromFileTime(val * 10);
47+
}
48+
3549
public static DateTime ConvertCefTimeToDateTime(double epoch)
3650
{
3751
if (epoch == 0)

0 commit comments

Comments
 (0)