Changeset 185513 in webkit
- Timestamp:
- Jun 12, 2015, 10:43:31 AM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r185511 r185513 1 2015-06-12 Antti Koivisto <antti@apple.com> 2 3 Network Cache: Use SHA1 for header checksum 4 https://bugs.webkit.org/show_bug.cgi?id=145928 5 6 Reviewed by Chris Dumez. 7 8 Use SHA1 everywhere for consistency and robustness. 9 10 * NetworkProcess/cache/NetworkCacheStorage.cpp: 11 (WebKit::NetworkCache::Storage::bodyPathForKey): 12 (WebKit::NetworkCache::RecordMetaData::RecordMetaData): 13 (WebKit::NetworkCache::decodeRecordMetaData): 14 (WebKit::NetworkCache::decodeRecordHeader): 15 (WebKit::NetworkCache::encodeRecordMetaData): 16 (WebKit::NetworkCache::Storage::encodeRecord): 17 (WebKit::NetworkCache::hashData): Deleted. 18 19 This was the last user of 32 bit hashes in cache code. 20 21 * NetworkProcess/cache/NetworkCacheStorage.h: 22 23 Also bump the cache version number as recent changes have changed the format. 24 Old caches would transition fine but this makes it easier to identify which version user has. 25 1 26 2015-06-12 Simon Fraser <simon.fraser@apple.com> 2 27 -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp
r185500 r185513 33 33 #include "NetworkCacheFileSystem.h" 34 34 #include "NetworkCacheIOChannel.h" 35 #include <wtf/PageBlock.h>36 35 #include <wtf/RandomNumber.h> 37 36 #include <wtf/RunLoop.h> … … 273 272 } 274 273 275 static unsigned hashData(const Data& data)276 {277 StringHasher hasher;278 data.apply([&hasher](const uint8_t* data, size_t size) {279 hasher.addCharacters(data, size);280 return true;281 });282 return hasher.hash();283 }284 285 274 struct RecordMetaData { 286 275 RecordMetaData() { } … … 294 283 // FIXME: Add encoder/decoder for time_point. 295 284 std::chrono::milliseconds epochRelativeTimeStamp; 296 unsigned headerChecksum; 297 uint64_t headerOffset; 285 SHA1::Digest headerHash; 298 286 uint64_t headerSize; 299 287 SHA1::Digest bodyHash; 300 288 uint64_t bodySize; 301 289 bool isBodyInline; 290 291 // Not encoded as a field. Header starts immediately after meta data. 292 uint64_t headerOffset; 302 293 }; 303 294 … … 313 304 if (!decoder.decode(metaData.epochRelativeTimeStamp)) 314 305 return false; 315 if (!decoder.decode(metaData.header Checksum))306 if (!decoder.decode(metaData.headerHash)) 316 307 return false; 317 308 if (!decoder.decode(metaData.headerSize)) … … 345 336 346 337 headerData = fileData.subrange(metaData.headerOffset, metaData.headerSize); 347 if (metaData.header Checksum != hashData(headerData)) {338 if (metaData.headerHash != computeSHA1(headerData)) { 348 339 LOG(NetworkCacheStorage, "(NetworkProcess) header checksum mismatch"); 349 340 return false; … … 395 386 encoder << metaData.key; 396 387 encoder << metaData.epochRelativeTimeStamp; 397 encoder << metaData.header Checksum;388 encoder << metaData.headerHash; 398 389 encoder << metaData.headerSize; 399 390 encoder << metaData.bodyHash; … … 437 428 RecordMetaData metaData(record.key); 438 429 metaData.epochRelativeTimeStamp = std::chrono::duration_cast<std::chrono::milliseconds>(record.timeStamp.time_since_epoch()); 439 metaData.header Checksum = hashData(record.header);430 metaData.headerHash = computeSHA1(record.header); 440 431 metaData.headerSize = record.header.size(); 441 432 metaData.bodyHash = blob ? blob.value().hash : computeSHA1(record.body); -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h
r185452 r185513 85 85 size_t approximateSize() const; 86 86 87 static const unsigned version = 3;87 static const unsigned version = 4; 88 88 89 89 String basePath() const;
Note:
See TracChangeset
for help on using the changeset viewer.