Skip to content

Commit a395b5d

Browse files
committed
Core - Convert CefTime to CefBaseTime
- Interim step before replacing CefTime with CefBaseTime. Issue #4234
1 parent 6be9298 commit a395b5d

File tree

5 files changed

+50
-16
lines changed

5 files changed

+50
-16
lines changed

CefSharp.BrowserSubprocess.Core/Serialization/V8Serialization.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@ namespace CefSharp
6969
}
7070
else if (obj->IsDate())
7171
{
72-
SetCefTime(list, index, obj->GetDateValue());
72+
//TODO: Issue #4234
73+
auto baseTime = obj->GetDateValue();
74+
CefTime time;
75+
cef_time_from_basetime(baseTime, &time);
76+
SetCefTime(list, index, time);
7377
}
7478
else if (obj->IsArray())
7579
{
@@ -156,7 +160,11 @@ namespace CefSharp
156160

157161
if (IsCefTime(list, index))
158162
{
159-
return CefV8Value::CreateDate(GetCefTime(list, index));
163+
//TODO: Issue #4234
164+
auto time = GetCefTime(list, index);
165+
CefBaseTime baseTime;
166+
cef_time_to_basetime(&time, &baseTime);
167+
return CefV8Value::CreateDate(baseTime);
160168
}
161169

162170
if (type == VTYPE_LIST)

CefSharp.BrowserSubprocess.Core/TypeUtils.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,12 @@ namespace CefSharp
255255
throw gcnew Exception("Cannot convert object from Cef to CLR.");
256256
}
257257

258-
DateTime TypeUtils::ConvertCefTimeToDateTime(CefTime time)
258+
DateTime TypeUtils::ConvertCefTimeToDateTime(CefBaseTime baseTime)
259259
{
260+
//TODO: Issue #4234
261+
CefTime time;
262+
cef_time_from_basetime(baseTime, &time);
263+
260264
return DateTimeUtils::FromCefTime(time.year,
261265
time.month,
262266
time.day_of_month,
@@ -266,9 +270,14 @@ namespace CefSharp
266270
time.millisecond);
267271
}
268272

269-
CefTime TypeUtils::ConvertDateTimeToCefTime(DateTime dateTime)
273+
CefBaseTime TypeUtils::ConvertDateTimeToCefTime(DateTime dateTime)
270274
{
271-
return CefTime(DateTimeUtils::ToCefTime(dateTime));
275+
//TODO: Issue #4234
276+
auto time = CefTime(DateTimeUtils::ToCefTime(dateTime));
277+
CefBaseTime baseTime;
278+
cef_time_to_basetime(&time, &baseTime);
279+
280+
return baseTime;
272281
}
273282
}
274283
}

CefSharp.BrowserSubprocess.Core/TypeUtils.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@ namespace CefSharp
3838
static Object^ ConvertFromCef(CefRefPtr<CefV8Value> obj, JavascriptCallbackRegistry^ callbackRegistry);
3939

4040
/// <summary>
41-
/// Converts a Chromium V8 CefTime (Date) to a (managed) .NET DateTime.
41+
/// Converts a Chromium V8 CefBaseTime (Date) to a (managed) .NET DateTime.
4242
/// </summary>
4343
/// <param name="obj">The CefTime value that should be converted.</param>
4444
/// <returns>A corresponding .NET DateTime.</returns>
45-
static DateTime ConvertCefTimeToDateTime(CefTime time);
45+
static DateTime ConvertCefTimeToDateTime(CefBaseTime time);
4646

4747
/// <summary>
48-
/// Converts a a (managed) .NET DateTime to Chromium V8 CefTime (Date).
48+
/// Converts a a (managed) .NET DateTime to Chromium V8 CefBaseTime (Date).
4949
/// </summary>
5050
/// <param name="obj">The DateTime value that should be converted.</param>
5151
/// <returns>A corresponding CefTime (epoch).</returns>
52-
static CefTime ConvertDateTimeToCefTime(DateTime dateTime);
52+
static CefBaseTime ConvertDateTimeToCefTime(DateTime dateTime);
5353
};
5454
}
5555
}

CefSharp.Core.Runtime/CookieManager.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,20 @@ namespace CefSharp
4545
c.secure = cookie->Secure;
4646
c.httponly = cookie->HttpOnly;
4747
c.has_expires = cookie->Expires.HasValue;
48+
49+
//TODO: Issue #4234
4850
if (cookie->Expires.HasValue)
4951
{
50-
auto expires = cookie->Expires.Value;
51-
c.expires = CefTime(DateTimeUtils::ToCefTime(expires));
52+
auto expires = CefTime(DateTimeUtils::ToCefTime(cookie->Expires.Value));
53+
cef_time_to_basetime(&expires, &c.expires);
5254
}
5355

54-
c.creation = CefTime(DateTimeUtils::ToCefTime(cookie->Creation));
55-
c.last_access = CefTime(DateTimeUtils::ToCefTime(cookie->LastAccess));
56+
auto creation = CefTime(DateTimeUtils::ToCefTime(cookie->Creation));
57+
cef_time_to_basetime(&creation, &c.creation);
58+
59+
auto lastAccess = CefTime(DateTimeUtils::ToCefTime(cookie->LastAccess));
60+
cef_time_to_basetime(&lastAccess, &c.last_access);
61+
5662
c.same_site = (cef_cookie_same_site_t)cookie->SameSite;
5763
c.priority = (cef_cookie_priority_t)cookie->Priority;
5864

CefSharp.Core.Runtime/Internals/TypeConversion.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@ namespace CefSharp
7777
}
7878

7979
//Convert from CefTime to Nullable<DateTime>
80-
static Nullable<DateTime> FromNative(CefTime time)
80+
static Nullable<DateTime> FromNative(CefBaseTime baseTime)
8181
{
82+
//TODO: Issue #4234
83+
CefTime time;
84+
cef_time_from_basetime(baseTime, &time);
8285
auto epoch = time.GetDoubleT();
8386
if (epoch == 0)
8487
{
@@ -255,8 +258,12 @@ namespace CefSharp
255258
}
256259

257260
// Copied from CefSharp.BrowserSubprocess.Core\TypeUtils.h since it can't be included
258-
static DateTime ConvertCefTimeToDateTime(CefTime time)
261+
static DateTime ConvertCefTimeToDateTime(CefBaseTime baseTime)
259262
{
263+
//TODO: Issue #4234
264+
CefTime time;
265+
cef_time_from_basetime(baseTime, &time);
266+
260267
return DateTimeUtils::FromCefTime(time.year,
261268
time.month,
262269
time.day_of_month,
@@ -307,7 +314,11 @@ namespace CefSharp
307314
return gcnew NavigationEntry(current, DateTime::MinValue, nullptr, -1, nullptr, nullptr, (TransitionType)-1, nullptr, false, false, sslStatus);
308315
}
309316

310-
auto time = entry->GetCompletionTime();
317+
//TODO: Issue #4234
318+
auto baseTime = entry->GetCompletionTime();
319+
CefTime time;
320+
cef_time_from_basetime(baseTime, &time);
321+
311322
DateTime completionTime = CefTimeUtils::ConvertCefTimeToDateTime(time.GetDoubleT());
312323
auto ssl = entry->GetSSLStatus();
313324
X509Certificate2^ sslCertificate;

0 commit comments

Comments
 (0)