OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/extensions/extension_webrequest_api_helpers.h" | 5 #include "chrome/browser/extensions/extension_webrequest_api_helpers.h" |
6 | 6 |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/extensions/extension_webrequest_api.h" | 9 #include "chrome/browser/extensions/extension_webrequest_api.h" |
10 #include "chrome/common/url_constants.h" | 10 #include "chrome/common/url_constants.h" |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 EventResponseDelta* CalculateOnBeforeSendHeadersDelta( | 133 EventResponseDelta* CalculateOnBeforeSendHeadersDelta( |
134 const std::string& extension_id, | 134 const std::string& extension_id, |
135 const base::Time& extension_install_time, | 135 const base::Time& extension_install_time, |
136 bool cancel, | 136 bool cancel, |
137 net::HttpRequestHeaders* old_headers, | 137 net::HttpRequestHeaders* old_headers, |
138 net::HttpRequestHeaders* new_headers) { | 138 net::HttpRequestHeaders* new_headers) { |
139 EventResponseDelta* result = | 139 EventResponseDelta* result = |
140 new EventResponseDelta(extension_id, extension_install_time); | 140 new EventResponseDelta(extension_id, extension_install_time); |
141 result->cancel = cancel; | 141 result->cancel = cancel; |
142 | 142 |
143 // Find deleted headers. | 143 // The event listener might not have passed any new headers if he |
144 { | 144 // just wanted to cancel the request. |
145 net::HttpRequestHeaders::Iterator i(*old_headers); | 145 if (new_headers) { |
146 while (i.GetNext()) { | 146 // Find deleted headers. |
147 if (!new_headers->HasHeader(i.name())) { | 147 { |
148 result->deleted_request_headers.push_back(i.name()); | 148 net::HttpRequestHeaders::Iterator i(*old_headers); |
| 149 while (i.GetNext()) { |
| 150 if (!new_headers->HasHeader(i.name())) { |
| 151 result->deleted_request_headers.push_back(i.name()); |
| 152 } |
| 153 } |
| 154 } |
| 155 |
| 156 // Find modified headers. |
| 157 { |
| 158 net::HttpRequestHeaders::Iterator i(*new_headers); |
| 159 while (i.GetNext()) { |
| 160 std::string value; |
| 161 if (!old_headers->GetHeader(i.name(), &value) || i.value() != value) { |
| 162 result->modified_request_headers.SetHeader(i.name(), i.value()); |
| 163 } |
149 } | 164 } |
150 } | 165 } |
151 } | 166 } |
152 | |
153 // Find modified headers. | |
154 { | |
155 net::HttpRequestHeaders::Iterator i(*new_headers); | |
156 while (i.GetNext()) { | |
157 std::string value; | |
158 if (!old_headers->GetHeader(i.name(), &value) || i.value() != value) { | |
159 result->modified_request_headers.SetHeader(i.name(), i.value()); | |
160 } | |
161 } | |
162 } | |
163 return result; | 167 return result; |
164 } | 168 } |
165 | 169 |
166 EventResponseDelta* CalculateOnHeadersReceivedDelta( | 170 EventResponseDelta* CalculateOnHeadersReceivedDelta( |
167 const std::string& extension_id, | 171 const std::string& extension_id, |
168 const base::Time& extension_install_time, | 172 const base::Time& extension_install_time, |
169 bool cancel, | 173 bool cancel, |
170 net::HttpResponseHeaders* old_response_headers, | 174 net::HttpResponseHeaders* old_response_headers, |
171 ResponseHeaders* new_response_headers) { | 175 ResponseHeaders* new_response_headers) { |
172 EventResponseDelta* result = | 176 EventResponseDelta* result = |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 new NetLogExtensionIdParameter((*delta)->extension_id))); | 538 new NetLogExtensionIdParameter((*delta)->extension_id))); |
535 event_log_entries->push_back(log_entry); | 539 event_log_entries->push_back(log_entry); |
536 *auth_credentials = *(*delta)->auth_credentials; | 540 *auth_credentials = *(*delta)->auth_credentials; |
537 credentials_set = true; | 541 credentials_set = true; |
538 } | 542 } |
539 } | 543 } |
540 return credentials_set; | 544 return credentials_set; |
541 } | 545 } |
542 | 546 |
543 } // namespace extension_webrequest_api_helpers | 547 } // namespace extension_webrequest_api_helpers |
OLD | NEW |