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

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_api.cc

Issue 11419034: net: Move ownership of UploadDataStream from URLRequestHttpJob to URLRequest (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix ASAN Created 8 years, 1 month 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/api/web_request/web_request_api.h" 5 #include "chrome/browser/extensions/api/web_request/web_request_api.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #include "chrome/common/url_constants.h" 45 #include "chrome/common/url_constants.h"
46 #include "content/public/browser/browser_message_filter.h" 46 #include "content/public/browser/browser_message_filter.h"
47 #include "content/public/browser/browser_thread.h" 47 #include "content/public/browser/browser_thread.h"
48 #include "content/public/browser/render_process_host.h" 48 #include "content/public/browser/render_process_host.h"
49 #include "content/public/browser/resource_request_info.h" 49 #include "content/public/browser/resource_request_info.h"
50 #include "extensions/common/url_pattern.h" 50 #include "extensions/common/url_pattern.h"
51 #include "googleurl/src/gurl.h" 51 #include "googleurl/src/gurl.h"
52 #include "grit/generated_resources.h" 52 #include "grit/generated_resources.h"
53 #include "net/base/auth.h" 53 #include "net/base/auth.h"
54 #include "net/base/net_errors.h" 54 #include "net/base/net_errors.h"
55 #include "net/base/upload_data.h" 55 #include "net/base/upload_data_stream.h"
56 #include "net/base/upload_element.h"
57 #include "net/http/http_response_headers.h" 56 #include "net/http/http_response_headers.h"
58 #include "net/url_request/url_request.h" 57 #include "net/url_request/url_request.h"
59 #include "ui/base/l10n/l10n_util.h" 58 #include "ui/base/l10n/l10n_util.h"
60 59
61 using base::DictionaryValue; 60 using base::DictionaryValue;
62 using base::ListValue; 61 using base::ListValue;
63 using base::StringValue; 62 using base::StringValue;
64 using chrome::VersionInfo; 63 using chrome::VersionInfo;
65 using content::BrowserMessageFilter; 64 using content::BrowserMessageFilter;
66 using content::BrowserThread; 65 using content::BrowserThread;
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 extensions::UploadDataPresenter* const presenters[] = { 193 extensions::UploadDataPresenter* const presenters[] = {
195 &parsed_data_presenter, // 1: any parseable forms? (Specific to forms.) 194 &parsed_data_presenter, // 1: any parseable forms? (Specific to forms.)
196 &raw_data_presenter // 2: any data at all? (Non-specific.) 195 &raw_data_presenter // 2: any data at all? (Non-specific.)
197 }; 196 };
198 // Keys for the results of the corresponding presenters. 197 // Keys for the results of the corresponding presenters.
199 static const char* const kKeys[] = { 198 static const char* const kKeys[] = {
200 keys::kRequestBodyFormDataKey, 199 keys::kRequestBodyFormDataKey,
201 keys::kRequestBodyRawKey 200 keys::kRequestBodyRawKey
202 }; 201 };
203 202
204 const ScopedVector<net::UploadElement>& elements = 203 const ScopedVector<net::UploadElementReader>& readers =
205 request->get_upload()->elements(); 204 request->get_upload()->element_readers();
206 bool some_succeeded = false; 205 bool some_succeeded = false;
207 for (size_t i = 0; !some_succeeded && i < arraysize(presenters); ++i) { 206 for (size_t i = 0; !some_succeeded && i < arraysize(presenters); ++i) {
208 ScopedVector<net::UploadElement>::const_iterator element; 207 ScopedVector<net::UploadElementReader>::const_iterator reader;
209 for (element = elements.begin(); element != elements.end(); ++element) 208 for (reader = readers.begin(); reader != readers.end(); ++reader)
210 presenters[i]->FeedNext(**element); 209 presenters[i]->FeedNext(**reader);
211 if (presenters[i]->Succeeded()) { 210 if (presenters[i]->Succeeded()) {
212 requestBody->Set(kKeys[i], presenters[i]->Result().release()); 211 requestBody->Set(kKeys[i], presenters[i]->Result().release());
213 some_succeeded = true; 212 some_succeeded = true;
214 } 213 }
215 } 214 }
216 if (!some_succeeded) 215 if (!some_succeeded)
217 requestBody->SetString(keys::kRequestBodyErrorKey, "Unknown error."); 216 requestBody->SetString(keys::kRequestBodyErrorKey, "Unknown error.");
218 } 217 }
219 218
220 // Converts a HttpHeaders dictionary to a |name|, |value| pair. Returns 219 // Converts a HttpHeaders dictionary to a |name|, |value| pair. Returns
(...skipping 1690 matching lines...) Expand 10 before | Expand all | Expand 10 after
1911 } else if ((*it)->name().find("AdBlock") != std::string::npos) { 1910 } else if ((*it)->name().find("AdBlock") != std::string::npos) {
1912 adblock = true; 1911 adblock = true;
1913 } else { 1912 } else {
1914 other = true; 1913 other = true;
1915 } 1914 }
1916 } 1915 }
1917 } 1916 }
1918 1917
1919 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other)); 1918 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other));
1920 } 1919 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698