| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef IOS_WEB_PUBLIC_USER_AGENT_H_ | 
 | #define IOS_WEB_PUBLIC_USER_AGENT_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | namespace web { | 
 |  | 
 | // Enum type specifying a user agent's type. | 
 | enum class UserAgentType : short { | 
 |   // Used for pages that are generated for app-specific URLs. | 
 |   NONE = 0, | 
 |  | 
 |   // The default user agent type.  Used to specify a mobile browser user agent. | 
 |   MOBILE, | 
 |  | 
 |   // Used to specify a desktop browser user agent. | 
 |   DESKTOP | 
 | }; | 
 |  | 
 | // Returns a string representation of |type|. | 
 | std::string GetUserAgentTypeDescription(UserAgentType type); | 
 |  | 
 | // Returns a UserAgentType with the given description.  If |description| doesn't | 
 | // correspond with a UserAgentType, UserAgentType::NONE will be returned. | 
 | UserAgentType GetUserAgentTypeWithDescription(const std::string& description); | 
 |  | 
 | // Returns the os cpu info portion for a user agent. | 
 | std::string BuildOSCpuInfo(); | 
 |  | 
 | // Returns the user agent to use for the given product name. | 
 | // The returned user agent is very similar to that used by Mobile Safari, for | 
 | // web page compatibility. | 
 | std::string BuildUserAgentFromProduct(const std::string& product); | 
 |  | 
 | }  // namespace web | 
 |  | 
 | #endif  // IOS_WEB_PUBLIC_USER_AGENT_H_ |