OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_URL_REQUEST_HTTP_USER_AGENT_SETTINGS_H_ | 5 #ifndef NET_BASE_NET_PORT_UTIL_ |
6 #define NET_URL_REQUEST_HTTP_USER_AGENT_SETTINGS_H_ | 6 #define NET_BASE_NET_PORT_UTIL_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "net/base/net_export.h" | 11 #include "net/base/net_export.h" |
12 | 12 |
13 class GURL; | |
14 | |
15 namespace net { | 13 namespace net { |
16 | 14 |
17 // The interface used by HTTP jobs to retrieve HTTP Accept-Language | 15 // Checks if |port| is in the valid range (0 to 65535, though 0 is technically |
18 // and User-Agent header values. | 16 // reserved). Should be used before casting a port to a uint16_t. |
19 class NET_EXPORT HttpUserAgentSettings { | 17 NET_EXPORT bool IsPortValid(int port); |
| 18 |
| 19 // Returns true if the port is in the range [0, 1023]. These ports are |
| 20 // registered by IANA and typically need root access to listen on. |
| 21 bool IsWellKnownPort(int port); |
| 22 |
| 23 // Checks if the port is allowed for the specified scheme. Ports set as allowed |
| 24 // with SetExplicitlyAllowedPorts() or by using ScopedPortException() will be |
| 25 // considered allowed for any scheme. |
| 26 NET_EXPORT bool IsPortAllowedForScheme(int port, const std::string& url_scheme); |
| 27 |
| 28 // Returns the number of explicitly allowed ports; for testing. |
| 29 NET_EXPORT_PRIVATE size_t GetCountOfExplicitlyAllowedPorts(); |
| 30 |
| 31 NET_EXPORT void SetExplicitlyAllowedPorts(const std::string& allowed_ports); |
| 32 |
| 33 class NET_EXPORT ScopedPortException { |
20 public: | 34 public: |
21 HttpUserAgentSettings() {} | 35 explicit ScopedPortException(int port); |
22 virtual ~HttpUserAgentSettings() {} | 36 ~ScopedPortException(); |
23 | |
24 // Gets the value of 'Accept-Language' header field. | |
25 virtual std::string GetAcceptLanguage() const = 0; | |
26 | |
27 // Gets the UA string. | |
28 virtual std::string GetUserAgent() const = 0; | |
29 | 37 |
30 private: | 38 private: |
31 DISALLOW_COPY_AND_ASSIGN(HttpUserAgentSettings); | 39 int port_; |
| 40 |
| 41 DISALLOW_COPY_AND_ASSIGN(ScopedPortException); |
32 }; | 42 }; |
33 | 43 |
34 } // namespace net | 44 } // namespace net |
35 | 45 |
36 #endif // NET_URL_REQUEST_HTTP_USER_AGENT_SETTINGS_H_ | 46 #endif // NET_BASE_NET_PORT_UTIL_ |
37 | |
OLD | NEW |