resource_request_details.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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 "googleurl/src/gurl.h"
11#include "net/cert/cert_status_flags.h"
12#include "net/base/host_port_pair.h"
13#include "net/url_request/url_request_status.h"
14#include "webkit/glue/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  int origin_route_id;
38  net::URLRequestStatus status;
39  int ssl_cert_id;
40  net::CertStatus ssl_cert_status;
41  ResourceType::Type resource_type;
42  net::HostPortPair socket_address;
43  int64 frame_id;
44};
45
46// Details about a redirection of a resource request.
47struct ResourceRedirectDetails : public ResourceRequestDetails {
48  ResourceRedirectDetails(const net::URLRequest* request,
49                          int cert_id,
50                          const GURL& new_url);
51  virtual ~ResourceRedirectDetails();
52
53  // The URL to which we are being redirected.
54  GURL new_url;
55};
56
57}  // namespace content
58
59#endif  // CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_DETAILS_H_
60