Home | History | Annotate | Download | only in http
      1 // Copyright (c) 2011 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 NET_HTTP_HTTP_REQUEST_INFO_H__
      6 #define NET_HTTP_HTTP_REQUEST_INFO_H__
      7 #pragma once
      8 
      9 #include <string>
     10 #include "base/memory/ref_counted.h"
     11 #include "googleurl/src/gurl.h"
     12 #include "net/base/request_priority.h"
     13 #include "net/base/upload_data.h"
     14 #include "net/http/http_request_headers.h"
     15 
     16 namespace net {
     17 
     18 struct HttpRequestInfo {
     19   enum RequestMotivation{
     20     // TODO(mbelshe): move these into Client Socket.
     21     PRECONNECT_MOTIVATED,  // Request was motivated by a prefetch.
     22     OMNIBOX_MOTIVATED,     // Request was motivated by the omnibox.
     23     NORMAL_MOTIVATION,     // No special motivation associated with the request.
     24     EARLY_LOAD_MOTIVATED,  // When browser asks a tab to open an URL, this short
     25                            // circuits that path (of waiting for the renderer to
     26                            // do the URL request), and starts loading ASAP.
     27   };
     28 
     29   HttpRequestInfo();
     30   ~HttpRequestInfo();
     31 
     32   // The requested URL.
     33   GURL url;
     34 
     35   // The referring URL (if any).
     36   GURL referrer;
     37 
     38   // The method to use (GET, POST, etc.).
     39   std::string method;
     40 
     41   // Any extra request headers (including User-Agent).
     42   HttpRequestHeaders extra_headers;
     43 
     44   // Any upload data.
     45   scoped_refptr<UploadData> upload_data;
     46 
     47   // Any load flags (see load_flags.h).
     48   int load_flags;
     49 
     50   // The priority level for this request.
     51   RequestPriority priority;
     52 
     53   // The motivation behind this request.
     54   RequestMotivation motivation;
     55 
     56   // An optional globally unique identifier for this request for use by the
     57   // consumer. 0 is invalid.
     58   uint64 request_id;
     59 
     60 #ifdef ANDROID
     61   bool valid_uid;
     62   uid_t calling_uid;
     63 #endif
     64 
     65 };
     66 
     67 }  // namespace net
     68 
     69 #endif  // NET_HTTP_HTTP_REQUEST_INFO_H__
     70