Index: mojo/shell/network_fetcher.cc |
diff --git a/mojo/shell/network_fetcher.cc b/mojo/shell/network_fetcher.cc |
index 4de4d5d2a7894861ef57b734c048bafda1d57263..27cd92bb72ebd2f0a53d542a123af99f5c3bb09b 100644 |
--- a/mojo/shell/network_fetcher.cc |
+++ b/mojo/shell/network_fetcher.cc |
@@ -30,14 +30,14 @@ namespace mojo { |
namespace shell { |
NetworkFetcher::NetworkFetcher(bool disable_cache, |
- const GURL& url, |
+ mojo::URLRequestPtr request, |
NetworkService* network_service, |
const FetchCallback& loader_callback) |
: Fetcher(loader_callback), |
disable_cache_(false), |
- url_(url), |
+ url_(request->url.To<GURL>()), |
weak_ptr_factory_(this) { |
- StartNetworkRequest(url, network_service); |
+ StartNetworkRequest(request.Pass(), network_service); |
} |
NetworkFetcher::~NetworkFetcher() { |
@@ -57,6 +57,15 @@ GURL NetworkFetcher::GetRedirectURL() const { |
return GURL(response_->redirect_url); |
} |
+GURL NetworkFetcher::GetRedirectReferer() const { |
+ if (!response_) |
+ return GURL::EmptyGURL(); |
+ |
+ if (response_->redirect_referrer.is_null()) |
+ return GURL::EmptyGURL(); |
+ |
+ return GURL(response_->redirect_referrer); |
+} |
URLResponsePtr NetworkFetcher::AsURLResponse(base::TaskRunner* task_runner, |
uint32_t skip) { |
if (skip != 0) { |
@@ -209,12 +218,10 @@ bool NetworkFetcher::PeekFirstLine(std::string* line) { |
kPeekTimeout); |
} |
-void NetworkFetcher::StartNetworkRequest(const GURL& url, |
+void NetworkFetcher::StartNetworkRequest(mojo::URLRequestPtr request, |
NetworkService* network_service) { |
TRACE_EVENT_ASYNC_BEGIN1("mojo_shell", "NetworkFetcher::NetworkRequest", this, |
- "url", url.spec()); |
- URLRequestPtr request(URLRequest::New()); |
- request->url = String::From(url); |
+ "url", request->url.To<std::string>()); |
request->auto_follow_redirects = false; |
request->bypass_cache = disable_cache_; |