summaryrefslogtreecommitdiffstats
path: root/net/url_request
diff options
context:
space:
mode:
authorerikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-13 17:38:38 +0000
committererikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-13 17:38:38 +0000
commit218aa6a199672545356f7fd49c7937b3272fdac6 (patch)
tree6cb100bbc31e79cae1708214b277f0ba97afa7d2 /net/url_request
parent41eccabc09eca87bfedc1f8c7b70370ec1d3b8b5 (diff)
downloadchromium_src-218aa6a199672545356f7fd49c7937b3272fdac6.zip
chromium_src-218aa6a199672545356f7fd49c7937b3272fdac6.tar.gz
chromium_src-218aa6a199672545356f7fd49c7937b3272fdac6.tar.bz2
Third try at committing this.
Patchset 1 is the original patch ( http://codereview.chromium.org/7833042/ ). Patchset 2 is the original patch plus a fix to a memory leak from the initial commit ( http://codereview.chromium.org/7831056/ ) On the first try there was a memory leak in a test. I fixed that, but made a mistake in the commit (the committed code did not correspond to the reviewed code). Both commits were reverted. I then landed a new CL ( http://codereview.chromium.org/7860039/ ) that contained the correct changes combining the first two CLs. This caused an error in heapchecker for which a suppression has subsequently been defined ( http://codereview.chromium.org/7780010 ). In summary, all of this is reviewed, minus some lint fixes. BUG=68657 TEST=net_unittests / DeferredCookieTaskTest.* and CookieMonsterTest.* TBR=estade Review URL: http://codereview.chromium.org/7891008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100932 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request')
-rw-r--r--net/url_request/url_request_http_job.cc10
-rw-r--r--net/url_request/url_request_http_job.h4
-rw-r--r--net/url_request/url_request_unittest.cc17
3 files changed, 20 insertions, 11 deletions
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 89a0ef9..8b13d5b1 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -543,14 +543,14 @@ void URLRequestHttpJob::CheckCookiePolicyAndLoad(
}
void URLRequestHttpJob::OnCookiesLoaded(
- std::string* cookie_line,
- std::vector<net::CookieStore::CookieInfo>* cookie_infos) {
- if (!cookie_line->empty()) {
+ const std::string& cookie_line,
+ const std::vector<net::CookieStore::CookieInfo>& cookie_infos) {
+ if (!cookie_line.empty()) {
request_info_.extra_headers.SetHeader(
- HttpRequestHeaders::kCookie, *cookie_line);
+ HttpRequestHeaders::kCookie, cookie_line);
}
if (URLRequest::AreMacCookiesEnabled())
- AddAuthorizationHeader(*cookie_infos, &request_info_);
+ AddAuthorizationHeader(cookie_infos, &request_info_);
DoStartTransaction();
}
diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h
index 1957dfd..8293c13 100644
--- a/net/url_request/url_request_http_job.h
+++ b/net/url_request/url_request_http_job.h
@@ -169,8 +169,8 @@ class URLRequestHttpJob : public URLRequestJob {
// Callback functions for Cookie Monster
void CheckCookiePolicyAndLoad(const CookieList& cookie_list);
void OnCookiesLoaded(
- std::string* cookie_line,
- std::vector<CookieStore::CookieInfo>* cookie_infos);
+ const std::string& cookie_line,
+ const std::vector<CookieStore::CookieInfo>& cookie_infos);
void DoStartTransaction();
void OnCookieSaved(bool cookie_status);
void CookieHandled();
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index a8f4a47..44f6560 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -13,6 +13,7 @@
#include <string>
#include "base/basictypes.h"
+#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/file_util.h"
#include "base/format_macros.h"
@@ -2017,6 +2018,13 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) {
}
}
+void CheckCookiePolicyCallback(bool* was_run, const CookieList& cookies) {
+ EXPECT_EQ(1U, cookies.size());
+ EXPECT_FALSE(cookies[0].IsPersistent());
+ *was_run = true;
+ MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask());
+}
+
TEST_F(URLRequestTest, CookiePolicy_ForceSession) {
TestServer test_server(TestServer::TYPE_HTTP, FilePath());
ASSERT_TRUE(test_server.Start());
@@ -2037,10 +2045,11 @@ TEST_F(URLRequestTest, CookiePolicy_ForceSession) {
}
// Now, check the cookie store.
- CookieList cookies =
- default_context_->cookie_store()->GetCookieMonster()->GetAllCookies();
- EXPECT_EQ(1U, cookies.size());
- EXPECT_FALSE(cookies[0].IsPersistent());
+ bool was_run = false;
+ default_context_->cookie_store()->GetCookieMonster()->GetAllCookiesAsync(
+ base::Bind(&CheckCookiePolicyCallback, &was_run));
+ MessageLoop::current()->RunAllPending();
+ DCHECK(was_run);
}
// In this test, we do a POST which the server will 302 redirect.