summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-31 23:29:13 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-31 23:29:13 +0000
commitb4cdb69c9e1fc9c83b4fdd0bcab32d25debea70c (patch)
tree6764a6fd6b265369f1f650e5e5e6eeefd715094f /chrome/browser
parent2ec13a4db250c74dd94bc5b1e8e007cf388b7a16 (diff)
downloadchromium_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.cc15
-rw-r--r--chrome/browser/automation/url_request_automation_job.h1
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_;