resource_request_details.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 "net/base/host_port_pair.h"
11#include "net/cert/cert_status_flags.h"
12#include "net/url_request/url_request_status.h"
13#include "url/gurl.h"
14#include "webkit/common/resource_type.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  int64 frame_id;
43};
44
45// Details about a redirection of a resource request.
46struct ResourceRedirectDetails : public ResourceRequestDetails {
47  ResourceRedirectDetails(const net::URLRequest* request,
48                          int cert_id,
49                          const GURL& new_url);
50  virtual ~ResourceRedirectDetails();
51
52  // The URL to which we are being redirected.
53  GURL new_url;
54};
55
56}  // namespace content
57
58#endif  // CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_DETAILS_H_
59