1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // This class simulates what wininet does when a dns lookup fails. 5 6 #ifndef CHROME_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_ 7 #define CHROME_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_ 8 #pragma once 9 10 #include "base/task.h" 11 #include "net/url_request/url_request_job.h" 12 13 class URLRequestFailedDnsJob : public net::URLRequestJob { 14 public: 15 explicit URLRequestFailedDnsJob(net::URLRequest* request); 16 17 virtual void Start(); 18 19 static net::URLRequestJob* Factory(net::URLRequest* request, 20 const std::string& scheme); 21 22 // A test URL that can be used in UI tests. 23 static const char kTestUrl[]; 24 25 // Adds the testing URLs to the net::URLRequestFilter. 26 static void AddUrlHandler(); 27 28 private: 29 ~URLRequestFailedDnsJob(); 30 31 // Simulate a DNS failure. 32 void StartAsync(); 33 34 ScopedRunnableMethodFactory<URLRequestFailedDnsJob> method_factory_; 35 }; 36 37 #endif // CHROME_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_ 38