url_request_redirect_job.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/url_request/url_request_redirect_job.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 79ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/bind.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/compiler_specific.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/message_loop.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace net { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)URLRequestRedirectJob::URLRequestRedirectJob(URLRequest* request, 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkDelegate* network_delegate, 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& redirect_destination, 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) StatusCode http_status_code) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : URLRequestJob(request, network_delegate), 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) redirect_destination_(redirect_destination), 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) http_status_code_(http_status_code), 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {} 215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void URLRequestRedirectJob::Start() { 235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) MessageLoop::current()->PostTask( 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) FROM_HERE, 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Bind(&URLRequestRedirectJob::StartAsync, 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) weak_factory_.GetWeakPtr())); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool URLRequestRedirectJob::IsRedirectResponse(GURL* location, 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int* http_status_code) { 31 *location = redirect_destination_; 32 *http_status_code = http_status_code_; 33 return true; 34} 35 36URLRequestRedirectJob::~URLRequestRedirectJob() {} 37 38void URLRequestRedirectJob::StartAsync() { 39 NotifyHeadersComplete(); 40} 41 42} // namespace net 43