Changeset 211472 in webkit
- Timestamp:
- Jan 31, 2017 11:55:44 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r211469 r211472 1 2017-01-31 Antti Koivisto <antti@apple.com> 2 3 Teach cache coders to encode time_points 4 https://bugs.webkit.org/show_bug.cgi?id=167670 5 6 Reviewed by Andreas Kling. 7 8 * wtf/persistence/Coders.h: 9 (WTF::Persistence::Coder<std::chrono::system_clock::time_point>::encode): 10 (WTF::Persistence::Coder<std::chrono::system_clock::time_point>::decode): 11 1 12 2017-01-31 Joseph Pecoraro <pecoraro@apple.com> 2 13 -
trunk/Source/WTF/wtf/persistence/Coders.h
r210502 r211472 262 262 }; 263 263 264 template<> struct Coder<std::chrono::system_clock::time_point> { 265 static void encode(Encoder& encoder, const std::chrono::system_clock::time_point& timePoint) 266 { 267 encoder << static_cast<int64_t>(timePoint.time_since_epoch().count()); 268 } 269 270 static bool decode(Decoder& decoder, std::chrono::system_clock::time_point& result) 271 { 272 int64_t time; 273 if (!decoder.decode(time)) 274 return false; 275 276 result = std::chrono::system_clock::time_point(std::chrono::system_clock::duration(static_cast<std::chrono::system_clock::rep>(time))); 277 return true; 278 } 279 }; 280 264 281 template<> struct Coder<AtomicString> { 265 282 WTF_EXPORT_PRIVATE static void encode(Encoder&, const AtomicString&); -
trunk/Source/WebKit2/ChangeLog
r211470 r211472 1 2017-01-31 Antti Koivisto <antti@apple.com> 2 3 Teach cache coders to encode time_points 4 https://bugs.webkit.org/show_bug.cgi?id=167670 5 6 Reviewed by Andreas Kling. 7 8 Encode time_point instead of duration. 9 10 * NetworkProcess/cache/NetworkCacheStorage.cpp: 11 (WebKit::NetworkCache::decodeRecordMetaData): 12 (WebKit::NetworkCache::Storage::readRecord): 13 (WebKit::NetworkCache::encodeRecordMetaData): 14 (WebKit::NetworkCache::Storage::encodeRecord): 15 (WebKit::NetworkCache::Storage::traverse): 16 1 17 2017-01-31 Brent Fulgham <bfulgham@apple.com> 2 18 -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp
r210835 r211472 365 365 unsigned cacheStorageVersion; 366 366 Key key; 367 // FIXME: Add encoder/decoder for time_point. 368 std::chrono::milliseconds epochRelativeTimeStamp; 367 std::chrono::system_clock::time_point timeStamp; 369 368 SHA1::Digest headerHash; 370 369 uint64_t headerSize; … … 386 385 if (!decoder.decode(metaData.key)) 387 386 return false; 388 if (!decoder.decode(metaData. epochRelativeTimeStamp))387 if (!decoder.decode(metaData.timeStamp)) 389 388 return false; 390 389 if (!decoder.decode(metaData.headerHash)) … … 440 439 441 440 // Sanity check against time stamps in future. 442 auto timeStamp = std::chrono::system_clock::time_point(metaData.epochRelativeTimeStamp); 443 if (timeStamp > std::chrono::system_clock::now()) 441 if (metaData.timeStamp > std::chrono::system_clock::now()) 444 442 return; 445 443 … … 457 455 readOperation.resultRecord = std::make_unique<Storage::Record>(Storage::Record { 458 456 metaData.key, 459 timeStamp,457 metaData.timeStamp, 460 458 headerData, 461 459 bodyData, … … 470 468 encoder << metaData.cacheStorageVersion; 471 469 encoder << metaData.key; 472 encoder << metaData. epochRelativeTimeStamp;470 encoder << metaData.timeStamp; 473 471 encoder << metaData.headerHash; 474 472 encoder << metaData.headerSize; … … 512 510 513 511 RecordMetaData metaData(record.key); 514 metaData. epochRelativeTimeStamp = std::chrono::duration_cast<std::chrono::milliseconds>(record.timeStamp.time_since_epoch());512 metaData.timeStamp = record.timeStamp; 515 513 metaData.headerHash = computeSHA1(record.header, m_salt); 516 514 metaData.headerSize = record.header.size(); … … 837 835 Record record { 838 836 metaData.key, 839 std::chrono::system_clock::time_point(metaData.epochRelativeTimeStamp),837 metaData.timeStamp, 840 838 headerData, 841 839 { },
Note: See TracChangeset
for help on using the changeset viewer.