1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/url_request/url_request_redirect_job.h" 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/compiler_specific.h" 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/message_loop.h" 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsennamespace net { 1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenURLRequestRedirectJob::URLRequestRedirectJob(URLRequest* request, 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const GURL& redirect_destination) 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen : URLRequestJob(request), 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen redirect_destination_(redirect_destination), 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {} 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid URLRequestRedirectJob::Start() { 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MessageLoop::current()->PostTask( 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen FROM_HERE, 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen method_factory_.NewRunnableMethod(&URLRequestRedirectJob::StartAsync)); 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottbool URLRequestRedirectJob::IsRedirectResponse(GURL* location, 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int* http_status_code) { 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott *location = redirect_destination_; 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott *http_status_code = 302; 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return true; 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenURLRequestRedirectJob::~URLRequestRedirectJob() {} 3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid URLRequestRedirectJob::StartAsync() { 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen NotifyHeadersComplete(); 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} // namespace net 38