OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/log/net_log_util.h" | 5 #include "net/log/net_log_util.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 base::DictionaryValue* dict = new base::DictionaryValue(); | 265 base::DictionaryValue* dict = new base::DictionaryValue(); |
266 | 266 |
267 dict->SetInteger("ADDRESS_FAMILY_UNSPECIFIED", ADDRESS_FAMILY_UNSPECIFIED); | 267 dict->SetInteger("ADDRESS_FAMILY_UNSPECIFIED", ADDRESS_FAMILY_UNSPECIFIED); |
268 dict->SetInteger("ADDRESS_FAMILY_IPV4", ADDRESS_FAMILY_IPV4); | 268 dict->SetInteger("ADDRESS_FAMILY_IPV4", ADDRESS_FAMILY_IPV4); |
269 dict->SetInteger("ADDRESS_FAMILY_IPV6", ADDRESS_FAMILY_IPV6); | 269 dict->SetInteger("ADDRESS_FAMILY_IPV6", ADDRESS_FAMILY_IPV6); |
270 | 270 |
271 constants_dict->Set("addressFamily", dict); | 271 constants_dict->Set("addressFamily", dict); |
272 } | 272 } |
273 | 273 |
274 // Information about how the "time ticks" values we have given it relate to | 274 // Information about how the "time ticks" values we have given it relate to |
275 // actual system times. (We used time ticks throughout since they are stable | 275 // actual system times. Time ticks are used throughout since they are stable |
276 // across system clock changes). | 276 // across system clock changes. |
277 { | 277 { |
278 int64 cur_time_ms = (base::Time::Now() - base::Time()).InMilliseconds(); | 278 int64 tick_to_unix_time_ms = |
279 | 279 (base::TimeTicks() - base::TimeTicks::UnixEpoch()).InMilliseconds(); |
280 int64 cur_time_ticks_ms = | |
281 (base::TimeTicks::Now() - base::TimeTicks()).InMilliseconds(); | |
282 | |
283 // If we add this number to a time tick value, it gives the timestamp. | |
284 int64 tick_to_time_ms = cur_time_ms - cur_time_ticks_ms; | |
285 | |
286 // Chrome on all platforms stores times using the Windows epoch | |
287 // (Jan 1 1601), but the javascript wants a unix epoch. | |
288 // TODO(eroman): Getting the timestamp relative to the unix epoch should | |
289 // be part of the time library. | |
290 const int64 kUnixEpochMs = 11644473600000LL; | |
291 int64 tick_to_unix_time_ms = tick_to_time_ms - kUnixEpochMs; | |
292 | 280 |
293 // Pass it as a string, since it may be too large to fit in an integer. | 281 // Pass it as a string, since it may be too large to fit in an integer. |
294 constants_dict->SetString("timeTickOffset", | 282 constants_dict->SetString("timeTickOffset", |
295 base::Int64ToString(tick_to_unix_time_ms)); | 283 base::Int64ToString(tick_to_unix_time_ms)); |
296 } | 284 } |
297 | 285 |
298 // "clientInfo" key is required for some NetLogLogger log readers. | 286 // "clientInfo" key is required for some NetLogLogger log readers. |
299 // Provide a default empty value for compatibility. | 287 // Provide a default empty value for compatibility. |
300 constants_dict->Set("clientInfo", new base::DictionaryValue()); | 288 constants_dict->Set("clientInfo", new base::DictionaryValue()); |
301 | 289 |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 // fine, since GetRequestStateAsValue() ignores the capture mode. | 513 // fine, since GetRequestStateAsValue() ignores the capture mode. |
526 NetLog::EntryData entry_data( | 514 NetLog::EntryData entry_data( |
527 NetLog::TYPE_REQUEST_ALIVE, request->net_log().source(), | 515 NetLog::TYPE_REQUEST_ALIVE, request->net_log().source(), |
528 NetLog::PHASE_BEGIN, request->creation_time(), &callback); | 516 NetLog::PHASE_BEGIN, request->creation_time(), &callback); |
529 NetLog::Entry entry(&entry_data, NetLogCaptureMode::Default()); | 517 NetLog::Entry entry(&entry_data, NetLogCaptureMode::Default()); |
530 observer->OnAddEntry(entry); | 518 observer->OnAddEntry(entry); |
531 } | 519 } |
532 } | 520 } |
533 | 521 |
534 } // namespace net | 522 } // namespace net |
OLD | NEW |