diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-31 23:29:13 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-31 23:29:13 +0000 |
commit | b4cdb69c9e1fc9c83b4fdd0bcab32d25debea70c (patch) | |
tree | 6764a6fd6b265369f1f650e5e5e6eeefd715094f /chrome/browser | |
parent | 2ec13a4db250c74dd94bc5b1e8e007cf388b7a16 (diff) | |
download | chromium_src-b4cdb69c9e1fc9c83b4fdd0bcab32d25debea70c.zip chromium_src-b4cdb69c9e1fc9c83b4fdd0bcab32d25debea70c.tar.gz chromium_src-b4cdb69c9e1fc9c83b4fdd0bcab32d25debea70c.tar.bz2 |
Explicitly including the redirect status with the AutomationURLResponse info.
Before we were always defaulting to 301.
TEST=run automation tests.
BUG=none
Review URL: http://codereview.chromium.org/178041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24962 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/automation/url_request_automation_job.cc | 15 | ||||
-rw-r--r-- | chrome/browser/automation/url_request_automation_job.h | 1 |
2 files changed, 13 insertions, 3 deletions
diff --git a/chrome/browser/automation/url_request_automation_job.cc b/chrome/browser/automation/url_request_automation_job.cc index db99c6e..01e7608 100644 --- a/chrome/browser/automation/url_request_automation_job.cc +++ b/chrome/browser/automation/url_request_automation_job.cc @@ -89,7 +89,7 @@ int URLRequestAutomationJob::instance_count_ = 0; URLRequestAutomationJob::URLRequestAutomationJob( URLRequest* request, int tab, AutomationResourceMessageFilter* filter) : URLRequestJob(request), id_(0), tab_(tab), message_filter_(filter), - pending_buf_size_(0) { + pending_buf_size_(0), redirect_status_(0) { DLOG(INFO) << "URLRequestAutomationJob create. Count: " << ++instance_count_; if (message_filter_) { id_ = message_filter_->NewRequestId(); @@ -187,13 +187,19 @@ int URLRequestAutomationJob::GetResponseCode() const { bool URLRequestAutomationJob::IsRedirectResponse( GURL* location, int* http_status_code) { - static const int kHttpRedirectResponseCode = 301; + static const int kDefaultHttpRedirectResponseCode = 301; if (!redirect_url_.empty()) { - *http_status_code = kHttpRedirectResponseCode; + DLOG_IF(ERROR, redirect_status_ == 0) << "Missing redirect status?"; + *http_status_code = redirect_status_ ? redirect_status_ : + kDefaultHttpRedirectResponseCode; *location = GURL(redirect_url_); return true; + } else { + DCHECK(redirect_status_ == 0) + << "Unexpectedly have redirect status but no URL"; } + return false; } @@ -232,6 +238,9 @@ void URLRequestAutomationJob::OnRequestStarted( mime_type_ = response.mime_type; redirect_url_ = response.redirect_url; + redirect_status_ = response.redirect_status; + DCHECK(redirect_status_ == 0 || redirect_status_ == 200 || + (redirect_status_ >= 300 && redirect_status_ < 400)); GURL url_for_cookies = GURL(redirect_url_.empty() ? request_->url().spec().c_str() : diff --git a/chrome/browser/automation/url_request_automation_job.h b/chrome/browser/automation/url_request_automation_job.h index ade6d38..f43316f 100644 --- a/chrome/browser/automation/url_request_automation_job.h +++ b/chrome/browser/automation/url_request_automation_job.h @@ -70,6 +70,7 @@ class URLRequestAutomationJob : public URLRequestJob { std::string mime_type_; scoped_refptr<net::HttpResponseHeaders> headers_; std::string redirect_url_; + int redirect_status_; static int instance_count_; |