OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // This class simulates what wininet does when a dns lookup fails. | 4 // This class simulates what wininet does when a dns lookup fails. |
5 | 5 |
6 #ifndef CHROME_BROWSER_AUTOMATION_URL_REQUEST_AUTOMATION_JOB_H_ | 6 #ifndef CHROME_BROWSER_AUTOMATION_URL_REQUEST_AUTOMATION_JOB_H_ |
7 #define CHROME_BROWSER_AUTOMATION_URL_REQUEST_AUTOMATION_JOB_H_ | 7 #define CHROME_BROWSER_AUTOMATION_URL_REQUEST_AUTOMATION_JOB_H_ |
8 #pragma once | 8 #pragma once |
9 | 9 |
10 #include "chrome/common/ref_counted_util.h" | 10 #include "chrome/common/ref_counted_util.h" |
11 #include "net/url_request/url_request.h" | 11 #include "net/url_request/url_request.h" |
12 #include "net/url_request/url_request_job.h" | 12 #include "net/url_request/url_request_job.h" |
13 | 13 |
14 class AutomationResourceMessageFilter; | 14 class AutomationResourceMessageFilter; |
15 | 15 |
16 namespace net { | 16 namespace net { |
17 class HttpResponseHeaders; | 17 class HttpResponseHeaders; |
18 class HttpResponseInfo; | 18 class HttpResponseInfo; |
19 } | 19 } |
20 | 20 |
21 namespace IPC { | 21 namespace IPC { |
22 class Message; | 22 class Message; |
23 struct AutomationURLResponse; | 23 struct AutomationURLResponse; |
24 } | 24 } |
25 | 25 |
26 // URLRequestJob implementation that loads the resources using | 26 // URLRequestJob implementation that loads the resources using |
27 // automation. | 27 // automation. |
28 class URLRequestAutomationJob : public net::URLRequestJob { | 28 class URLRequestAutomationJob : public net::URLRequestJob { |
29 public: | 29 public: |
30 URLRequestAutomationJob(URLRequest* request, int tab, int request_id, | 30 URLRequestAutomationJob(net::URLRequest* request, int tab, int request_id, |
31 AutomationResourceMessageFilter* filter, | 31 AutomationResourceMessageFilter* filter, |
32 bool is_pending); | 32 bool is_pending); |
33 | 33 |
34 // Register our factory for HTTP/HTTPs requests. | 34 // Register our factory for HTTP/HTTPs requests. |
35 static bool EnsureProtocolFactoryRegistered(); | 35 static bool EnsureProtocolFactoryRegistered(); |
36 | 36 |
37 static URLRequest::ProtocolFactory Factory; | 37 static net::URLRequest::ProtocolFactory Factory; |
38 | 38 |
39 // URLRequestJob methods. | 39 // URLRequestJob methods. |
40 virtual void Start(); | 40 virtual void Start(); |
41 virtual void Kill(); | 41 virtual void Kill(); |
42 virtual bool GetMimeType(std::string* mime_type) const; | 42 virtual bool GetMimeType(std::string* mime_type) const; |
43 virtual bool GetCharset(std::string* charset); | 43 virtual bool GetCharset(std::string* charset); |
44 virtual void GetResponseInfo(net::HttpResponseInfo* info); | 44 virtual void GetResponseInfo(net::HttpResponseInfo* info); |
45 virtual int GetResponseCode() const; | 45 virtual int GetResponseCode() const; |
46 virtual bool IsRedirectResponse(GURL* location, int* http_status_code); | 46 virtual bool IsRedirectResponse(GURL* location, int* http_status_code); |
47 | 47 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 scoped_refptr<net::HttpResponseHeaders> headers_; | 103 scoped_refptr<net::HttpResponseHeaders> headers_; |
104 std::string redirect_url_; | 104 std::string redirect_url_; |
105 int redirect_status_; | 105 int redirect_status_; |
106 int request_id_; | 106 int request_id_; |
107 | 107 |
108 static int instance_count_; | 108 static int instance_count_; |
109 | 109 |
110 static bool is_protocol_factory_registered_; | 110 static bool is_protocol_factory_registered_; |
111 // The previous HTTP/HTTPs protocol factories. We pass unhandled | 111 // The previous HTTP/HTTPs protocol factories. We pass unhandled |
112 // requests off to these factories | 112 // requests off to these factories |
113 static URLRequest::ProtocolFactory* old_http_factory_; | 113 static net::URLRequest::ProtocolFactory* old_http_factory_; |
114 static URLRequest::ProtocolFactory* old_https_factory_; | 114 static net::URLRequest::ProtocolFactory* old_https_factory_; |
115 | 115 |
116 // Set to true if the job is waiting for the external host to connect to the | 116 // Set to true if the job is waiting for the external host to connect to the |
117 // automation channel, which will be used for routing the network requests to | 117 // automation channel, which will be used for routing the network requests to |
118 // the host. | 118 // the host. |
119 bool is_pending_; | 119 bool is_pending_; |
120 | 120 |
121 // Contains the request status code, which is eventually passed to the http | 121 // Contains the request status code, which is eventually passed to the http |
122 // stack when we receive a Read request for a completed job. | 122 // stack when we receive a Read request for a completed job. |
123 URLRequestStatus request_status_; | 123 URLRequestStatus request_status_; |
124 | 124 |
125 DISALLOW_COPY_AND_ASSIGN(URLRequestAutomationJob); | 125 DISALLOW_COPY_AND_ASSIGN(URLRequestAutomationJob); |
126 }; | 126 }; |
127 | 127 |
128 #endif // CHROME_BROWSER_AUTOMATION_URL_REQUEST_AUTOMATION_JOB_H_ | 128 #endif // CHROME_BROWSER_AUTOMATION_URL_REQUEST_AUTOMATION_JOB_H_ |
129 | 129 |
OLD | NEW |