// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/net/url_request_failed_dns_job.h" #include "base/compiler_specific.h" #include "base/message_loop.h" #include "googleurl/src/gurl.h" #include "net/base/net_errors.h" #include "net/url_request/url_request.h" #include "net/url_request/url_request_filter.h" const char URLRequestFailedDnsJob::kTestUrl[] = "http://url.handled.by.fake.dns/"; URLRequestFailedDnsJob::URLRequestFailedDnsJob(net::URLRequest* request) : net::URLRequestJob(request), ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {} URLRequestFailedDnsJob::~URLRequestFailedDnsJob() {} void URLRequestFailedDnsJob::Start() { MessageLoop::current()->PostTask( FROM_HERE, method_factory_.NewRunnableMethod( &URLRequestFailedDnsJob::StartAsync)); } // static void URLRequestFailedDnsJob::AddUrlHandler() { net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance(); filter->AddUrlHandler(GURL(kTestUrl), &URLRequestFailedDnsJob::Factory); } /*static */ net::URLRequestJob* URLRequestFailedDnsJob::Factory(net::URLRequest* request, const std::string& scheme) { return new URLRequestFailedDnsJob(request); } void URLRequestFailedDnsJob::StartAsync() { NotifyStartError(net::URLRequestStatus(net::URLRequestStatus::FAILED, net::ERR_NAME_NOT_RESOLVED)); }