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