OLD | NEW |
| (Empty) |
1 // Copyright (c) 2006-2008 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 | |
5 // The ResourceRequestDetails object contains additional details about a | |
6 // resource request. It copies many of the publicly accessible member variables | |
7 // of URLRequest, but exists on the UI thread. | |
8 | |
9 #ifndef CHROME_BROWSER_RESOURCE_REQUEST_DETAILS_H__ | |
10 #define CHROME_BROWSER_RESOURCE_REQUEST_DETAILS_H__ | |
11 | |
12 #include <string> | |
13 | |
14 #include "base/basictypes.h" | |
15 #include "chrome/browser/cert_store.h" | |
16 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" | |
17 #include "googleurl/src/gurl.h" | |
18 #include "net/url_request/url_request.h" | |
19 #include "net/url_request/url_request_status.h" | |
20 | |
21 // Details about a resource request notification. | |
22 class ResourceRequestDetails { | |
23 public: | |
24 ResourceRequestDetails(const URLRequest* request, int cert_id) | |
25 : url_(request->url()), | |
26 original_url_(request->original_url()), | |
27 method_(request->method()), | |
28 referrer_(request->referrer()), | |
29 has_upload_(request->has_upload()), | |
30 load_flags_(request->load_flags()), | |
31 origin_pid_(request->origin_pid()), | |
32 status_(request->status()), | |
33 ssl_cert_id_(cert_id), | |
34 ssl_cert_status_(request->ssl_info().cert_status) { | |
35 const ResourceDispatcherHost::ExtraRequestInfo* info = | |
36 ResourceDispatcherHost::ExtraInfoForRequest(request); | |
37 DCHECK(info); | |
38 resource_type_ = info->resource_type; | |
39 } | |
40 | |
41 ~ResourceRequestDetails() { } | |
42 | |
43 const GURL& url() const { return url_; } | |
44 const GURL& original_url() const { return original_url_; } | |
45 const std::string& method() const { return method_; } | |
46 const std::string& referrer() const { return referrer_; } | |
47 bool has_upload() const { return has_upload_; } | |
48 int load_flags() const { return load_flags_; } | |
49 int origin_pid() const { return origin_pid_; } | |
50 const URLRequestStatus& status() const { return status_; } | |
51 int ssl_cert_id() const { return ssl_cert_id_; } | |
52 int ssl_cert_status() const { return ssl_cert_status_; } | |
53 ResourceType::Type resource_type() const { return resource_type_; } | |
54 private: | |
55 GURL url_; | |
56 GURL original_url_; | |
57 std::string method_; | |
58 std::string referrer_; | |
59 bool has_upload_; | |
60 int load_flags_; | |
61 int origin_pid_; | |
62 URLRequestStatus status_; | |
63 int ssl_cert_id_; | |
64 int ssl_cert_status_; | |
65 ResourceType::Type resource_type_; | |
66 | |
67 DISALLOW_EVIL_CONSTRUCTORS(ResourceRequestDetails); | |
68 }; | |
69 | |
70 // Details about a redirection of a resource request. | |
71 class ResourceRedirectDetails : public ResourceRequestDetails { | |
72 public: | |
73 ResourceRedirectDetails(const URLRequest* request, | |
74 int cert_id, | |
75 const GURL& new_url) | |
76 : ResourceRequestDetails(request, cert_id), | |
77 new_url_(new_url) { } | |
78 | |
79 // The URL to which we are being redirected. | |
80 const GURL& new_url() const { return new_url_; } | |
81 | |
82 private: | |
83 GURL new_url_; | |
84 }; | |
85 | |
86 #endif // CHROME_BROWSER_RESOURCE_REQUEST_DETAILS_H__ | |
87 | |
OLD | NEW |