Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(389)

Side by Side Diff: net/http/http_cache_transaction.cc

Issue 1746012: More cleanup of net_log.h (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/net_log_util.h ('k') | net/http/http_network_transaction.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2010 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/http/http_cache_transaction.h" 5 #include "net/http/http_cache_transaction.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 8
9 #if defined(OS_POSIX) 9 #if defined(OS_POSIX)
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 } 671 }
672 672
673 next_state_ = STATE_OPEN_ENTRY; 673 next_state_ = STATE_OPEN_ENTRY;
674 return OK; 674 return OK;
675 } 675 }
676 676
677 int HttpCache::Transaction::DoOpenEntry() { 677 int HttpCache::Transaction::DoOpenEntry() {
678 DCHECK(!new_entry_); 678 DCHECK(!new_entry_);
679 next_state_ = STATE_OPEN_ENTRY_COMPLETE; 679 next_state_ = STATE_OPEN_ENTRY_COMPLETE;
680 cache_pending_ = true; 680 cache_pending_ = true;
681 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_OPEN_ENTRY); 681 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_OPEN_ENTRY, NULL);
682 return cache_->OpenEntry(cache_key_, &new_entry_, this); 682 return cache_->OpenEntry(cache_key_, &new_entry_, this);
683 } 683 }
684 684
685 int HttpCache::Transaction::DoOpenEntryComplete(int result) { 685 int HttpCache::Transaction::DoOpenEntryComplete(int result) {
686 // It is important that we go to STATE_ADD_TO_ENTRY whenever the result is 686 // It is important that we go to STATE_ADD_TO_ENTRY whenever the result is
687 // OK, otherwise the cache will end up with an active entry without any 687 // OK, otherwise the cache will end up with an active entry without any
688 // transaction attached. 688 // transaction attached.
689 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_OPEN_ENTRY); 689 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_OPEN_ENTRY, NULL);
690 cache_pending_ = false; 690 cache_pending_ = false;
691 if (result == OK) { 691 if (result == OK) {
692 next_state_ = STATE_ADD_TO_ENTRY; 692 next_state_ = STATE_ADD_TO_ENTRY;
693 return OK; 693 return OK;
694 } 694 }
695 695
696 if (result == ERR_CACHE_RACE) { 696 if (result == ERR_CACHE_RACE) {
697 next_state_ = STATE_INIT_ENTRY; 697 next_state_ = STATE_INIT_ENTRY;
698 return OK; 698 return OK;
699 } 699 }
(...skipping 14 matching lines...) Expand all
714 714
715 // The entry does not exist, and we are not permitted to create a new entry, 715 // The entry does not exist, and we are not permitted to create a new entry,
716 // so we must fail. 716 // so we must fail.
717 return ERR_CACHE_MISS; 717 return ERR_CACHE_MISS;
718 } 718 }
719 719
720 int HttpCache::Transaction::DoCreateEntry() { 720 int HttpCache::Transaction::DoCreateEntry() {
721 DCHECK(!new_entry_); 721 DCHECK(!new_entry_);
722 next_state_ = STATE_CREATE_ENTRY_COMPLETE; 722 next_state_ = STATE_CREATE_ENTRY_COMPLETE;
723 cache_pending_ = true; 723 cache_pending_ = true;
724 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_CREATE_ENTRY); 724 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_CREATE_ENTRY, NULL);
725 return cache_->CreateEntry(cache_key_, &new_entry_, this); 725 return cache_->CreateEntry(cache_key_, &new_entry_, this);
726 } 726 }
727 727
728 int HttpCache::Transaction::DoCreateEntryComplete(int result) { 728 int HttpCache::Transaction::DoCreateEntryComplete(int result) {
729 // It is important that we go to STATE_ADD_TO_ENTRY whenever the result is 729 // It is important that we go to STATE_ADD_TO_ENTRY whenever the result is
730 // OK, otherwise the cache will end up with an active entry without any 730 // OK, otherwise the cache will end up with an active entry without any
731 // transaction attached. 731 // transaction attached.
732 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_CREATE_ENTRY); 732 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_CREATE_ENTRY, NULL);
733 cache_pending_ = false; 733 cache_pending_ = false;
734 next_state_ = STATE_ADD_TO_ENTRY; 734 next_state_ = STATE_ADD_TO_ENTRY;
735 735
736 if (result == ERR_CACHE_RACE) { 736 if (result == ERR_CACHE_RACE) {
737 next_state_ = STATE_INIT_ENTRY; 737 next_state_ = STATE_INIT_ENTRY;
738 return OK; 738 return OK;
739 } 739 }
740 740
741 if (result != OK) { 741 if (result != OK) {
742 // We have a race here: Maybe we failed to open the entry and decided to 742 // We have a race here: Maybe we failed to open the entry and decided to
743 // create one, but by the time we called create, another transaction already 743 // create one, but by the time we called create, another transaction already
744 // created the entry. If we want to eliminate this issue, we need an atomic 744 // created the entry. If we want to eliminate this issue, we need an atomic
745 // OpenOrCreate() method exposed by the disk cache. 745 // OpenOrCreate() method exposed by the disk cache.
746 DLOG(WARNING) << "Unable to create cache entry"; 746 DLOG(WARNING) << "Unable to create cache entry";
747 mode_ = NONE; 747 mode_ = NONE;
748 if (partial_.get()) 748 if (partial_.get())
749 partial_->RestoreHeaders(&custom_request_->extra_headers); 749 partial_->RestoreHeaders(&custom_request_->extra_headers);
750 next_state_ = STATE_SEND_REQUEST; 750 next_state_ = STATE_SEND_REQUEST;
751 } 751 }
752 return OK; 752 return OK;
753 } 753 }
754 754
755 int HttpCache::Transaction::DoDoomEntry() { 755 int HttpCache::Transaction::DoDoomEntry() {
756 next_state_ = STATE_DOOM_ENTRY_COMPLETE; 756 next_state_ = STATE_DOOM_ENTRY_COMPLETE;
757 cache_pending_ = true; 757 cache_pending_ = true;
758 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_DOOM_ENTRY); 758 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_DOOM_ENTRY, NULL);
759 return cache_->DoomEntry(cache_key_, this); 759 return cache_->DoomEntry(cache_key_, this);
760 } 760 }
761 761
762 int HttpCache::Transaction::DoDoomEntryComplete(int result) { 762 int HttpCache::Transaction::DoDoomEntryComplete(int result) {
763 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_DOOM_ENTRY); 763 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_DOOM_ENTRY, NULL);
764 next_state_ = STATE_CREATE_ENTRY; 764 next_state_ = STATE_CREATE_ENTRY;
765 cache_pending_ = false; 765 cache_pending_ = false;
766 if (result == ERR_CACHE_RACE) 766 if (result == ERR_CACHE_RACE)
767 next_state_ = STATE_INIT_ENTRY; 767 next_state_ = STATE_INIT_ENTRY;
768 768
769 return OK; 769 return OK;
770 } 770 }
771 771
772 int HttpCache::Transaction::DoAddToEntry() { 772 int HttpCache::Transaction::DoAddToEntry() {
773 DCHECK(new_entry_); 773 DCHECK(new_entry_);
774 cache_pending_ = true; 774 cache_pending_ = true;
775 next_state_ = STATE_ADD_TO_ENTRY_COMPLETE; 775 next_state_ = STATE_ADD_TO_ENTRY_COMPLETE;
776 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_WAITING); 776 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_WAITING, NULL);
777 return cache_->AddTransactionToEntry(new_entry_, this); 777 return cache_->AddTransactionToEntry(new_entry_, this);
778 } 778 }
779 779
780 int HttpCache::Transaction::DoAddToEntryComplete(int result) { 780 int HttpCache::Transaction::DoAddToEntryComplete(int result) {
781 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_WAITING); 781 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_WAITING, NULL);
782 DCHECK(new_entry_); 782 DCHECK(new_entry_);
783 cache_pending_ = false; 783 cache_pending_ = false;
784 784
785 if (result == ERR_CACHE_RACE) { 785 if (result == ERR_CACHE_RACE) {
786 new_entry_ = NULL; 786 new_entry_ = NULL;
787 next_state_ = STATE_INIT_ENTRY; 787 next_state_ = STATE_INIT_ENTRY;
788 return OK; 788 return OK;
789 } 789 }
790 790
791 if (result != OK) { 791 if (result != OK) {
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 return OK; 951 return OK;
952 } 952 }
953 953
954 int HttpCache::Transaction::DoCacheReadResponse() { 954 int HttpCache::Transaction::DoCacheReadResponse() {
955 DCHECK(entry_); 955 DCHECK(entry_);
956 next_state_ = STATE_CACHE_READ_RESPONSE_COMPLETE; 956 next_state_ = STATE_CACHE_READ_RESPONSE_COMPLETE;
957 957
958 io_buf_len_ = entry_->disk_entry->GetDataSize(kResponseInfoIndex); 958 io_buf_len_ = entry_->disk_entry->GetDataSize(kResponseInfoIndex);
959 read_buf_ = new IOBuffer(io_buf_len_); 959 read_buf_ = new IOBuffer(io_buf_len_);
960 960
961 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO); 961 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO, NULL);
962 cache_callback_->AddRef(); // Balanced in DoCacheReadResponseComplete. 962 cache_callback_->AddRef(); // Balanced in DoCacheReadResponseComplete.
963 return entry_->disk_entry->ReadData(kResponseInfoIndex, 0, read_buf_, 963 return entry_->disk_entry->ReadData(kResponseInfoIndex, 0, read_buf_,
964 io_buf_len_, cache_callback_); 964 io_buf_len_, cache_callback_);
965 } 965 }
966 966
967 int HttpCache::Transaction::DoCacheReadResponseComplete(int result) { 967 int HttpCache::Transaction::DoCacheReadResponseComplete(int result) {
968 cache_callback_->Release(); // Balance the AddRef from DoCacheReadResponse. 968 cache_callback_->Release(); // Balance the AddRef from DoCacheReadResponse.
969 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO); 969 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO, NULL);
970 if (result != io_buf_len_ || 970 if (result != io_buf_len_ ||
971 !HttpCache::ParseResponseInfo(read_buf_->data(), io_buf_len_, 971 !HttpCache::ParseResponseInfo(read_buf_->data(), io_buf_len_,
972 &response_, &truncated_)) { 972 &response_, &truncated_)) {
973 DLOG(ERROR) << "ReadData failed: " << result; 973 DLOG(ERROR) << "ReadData failed: " << result;
974 return ERR_CACHE_READ_FAILURE; 974 return ERR_CACHE_READ_FAILURE;
975 } 975 }
976 976
977 // We now have access to the cache entry. 977 // We now have access to the cache entry.
978 // 978 //
979 // o if we are a reader for the transaction, then we can start reading the 979 // o if we are a reader for the transaction, then we can start reading the
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1029 } 1029 }
1030 1030
1031 int HttpCache::Transaction::DoCacheReadMetadata() { 1031 int HttpCache::Transaction::DoCacheReadMetadata() {
1032 DCHECK(entry_); 1032 DCHECK(entry_);
1033 DCHECK(!response_.metadata); 1033 DCHECK(!response_.metadata);
1034 next_state_ = STATE_CACHE_READ_METADATA_COMPLETE; 1034 next_state_ = STATE_CACHE_READ_METADATA_COMPLETE;
1035 1035
1036 response_.metadata = 1036 response_.metadata =
1037 new IOBufferWithSize(entry_->disk_entry->GetDataSize(kMetadataIndex)); 1037 new IOBufferWithSize(entry_->disk_entry->GetDataSize(kMetadataIndex));
1038 1038
1039 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO); 1039 net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO, NULL);
1040 cache_callback_->AddRef(); // Balanced in DoCacheReadMetadataComplete. 1040 cache_callback_->AddRef(); // Balanced in DoCacheReadMetadataComplete.
1041 return entry_->disk_entry->ReadData(kMetadataIndex, 0, response_.metadata, 1041 return entry_->disk_entry->ReadData(kMetadataIndex, 0, response_.metadata,
1042 response_.metadata->size(), 1042 response_.metadata->size(),
1043 cache_callback_); 1043 cache_callback_);
1044 } 1044 }
1045 1045
1046 int HttpCache::Transaction::DoCacheReadMetadataComplete(int result) { 1046 int HttpCache::Transaction::DoCacheReadMetadataComplete(int result) {
1047 cache_callback_->Release(); // Balance the AddRef from DoCacheReadMetadata. 1047 cache_callback_->Release(); // Balance the AddRef from DoCacheReadMetadata.
1048 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO); 1048 net_log_.EndEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO, NULL);
1049 if (result != response_.metadata->size()) { 1049 if (result != response_.metadata->size()) {
1050 DLOG(ERROR) << "ReadData failed: " << result; 1050 DLOG(ERROR) << "ReadData failed: " << result;
1051 return ERR_CACHE_READ_FAILURE; 1051 return ERR_CACHE_READ_FAILURE;
1052 } 1052 }
1053 1053
1054 return OK; 1054 return OK;
1055 } 1055 }
1056 1056
1057 int HttpCache::Transaction::DoCacheQueryData() { 1057 int HttpCache::Transaction::DoCacheQueryData() {
1058 next_state_ = STATE_CACHE_QUERY_DATA_COMPLETE; 1058 next_state_ = STATE_CACHE_QUERY_DATA_COMPLETE;
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
1800 // |value| goes from 0 to 63. Actually, the max value should be 47 (0x2f) 1800 // |value| goes from 0 to 63. Actually, the max value should be 47 (0x2f)
1801 // but we'll see. 1801 // but we'll see.
1802 UMA_HISTOGRAM_ENUMERATION("HttpCache.ResponseHeaders", value, 65); 1802 UMA_HISTOGRAM_ENUMERATION("HttpCache.ResponseHeaders", value, 65);
1803 } 1803 }
1804 1804
1805 void HttpCache::Transaction::OnIOComplete(int result) { 1805 void HttpCache::Transaction::OnIOComplete(int result) {
1806 DoLoop(result); 1806 DoLoop(result);
1807 } 1807 }
1808 1808
1809 } // namespace net 1809 } // namespace net
OLDNEW
« no previous file with comments | « net/base/net_log_util.h ('k') | net/http/http_network_transaction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698