resource_request_details.h revision 116680a4aac90f2aa7413d9095a592090648e557
1// Copyright (c) 2012 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#ifndef CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_DETAILS_H_
6#define CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_DETAILS_H_
7
8#include <string>
9
10#include "content/public/common/resource_type.h"
11#include "net/base/host_port_pair.h"
12#include "net/cert/cert_status_flags.h"
13#include "net/url_request/url_request_status.h"
14#include "url/gurl.h"
15
16namespace net {
17class URLRequest;
18}
19
20namespace content {
21
22// The ResourceRequestDetails object contains additional details about a
23// resource request notification. It copies many of the publicly accessible
24// member variables of net::URLRequest, but exists on the UI thread.
25struct ResourceRequestDetails {
26  ResourceRequestDetails(const net::URLRequest* request, int cert_id);
27
28  virtual ~ResourceRequestDetails();
29
30  GURL url;
31  GURL original_url;
32  std::string method;
33  std::string referrer;
34  bool has_upload;
35  int load_flags;
36  int origin_child_id;
37  net::URLRequestStatus status;
38  int ssl_cert_id;
39  net::CertStatus ssl_cert_status;
40  ResourceType::Type resource_type;
41  net::HostPortPair socket_address;
42  int render_frame_id;
43  // HTTP response code. See HttpResponseHeaders::response_code().
44  // -1 if there are no response headers yet.
45  int http_response_code;
46};
47
48// Details about a redirection of a resource request.
49struct ResourceRedirectDetails : public ResourceRequestDetails {
50  ResourceRedirectDetails(const net::URLRequest* request,
51                          int cert_id,
52                          const GURL& new_url);
53  virtual ~ResourceRedirectDetails();
54
55  // The URL to which we are being redirected.
56  GURL new_url;
57};
58
59}  // namespace content
60
61#endif  // CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_DETAILS_H_
62