// Copyright (c) 2010 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.
// This class simulates what wininet does when a dns lookup fails.
#ifndef CHROME_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_
#define CHROME_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_
#pragma once
#include "base/task.h"
#include "net/url_request/url_request_job.h"
class URLRequestFailedDnsJob : public net::URLRequestJob {
public:
explicit URLRequestFailedDnsJob(net::URLRequest* request);
virtual void Start();
static net::URLRequestJob* Factory(net::URLRequest* request,
const std::string& scheme);
// A test URL that can be used in UI tests.
static const char kTestUrl[];
// Adds the testing URLs to the net::URLRequestFilter.
static void AddUrlHandler();
private:
~URLRequestFailedDnsJob();
// Simulate a DNS failure.
void StartAsync();
ScopedRunnableMethodFactory<URLRequestFailedDnsJob> method_factory_;
};
#endif // CHROME_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_