diff options
author | erikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-13 17:38:38 +0000 |
---|---|---|
committer | erikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-13 17:38:38 +0000 |
commit | 218aa6a199672545356f7fd49c7937b3272fdac6 (patch) | |
tree | 6cb100bbc31e79cae1708214b277f0ba97afa7d2 /net/url_request | |
parent | 41eccabc09eca87bfedc1f8c7b70370ec1d3b8b5 (diff) | |
download | chromium_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.cc | 10 | ||||
-rw-r--r-- | net/url_request/url_request_http_job.h | 4 | ||||
-rw-r--r-- | net/url_request/url_request_unittest.cc | 17 |
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. |