1 // Copyright 2018 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 #include "chrome/chrome_cleaner/http/user_agent.h" 6 7 #include "base/notreached.h" 8 #include "base/strings/string_number_conversions.h" 9 10 namespace chrome_cleaner { 11 12 namespace { 13 ArchitectureToString(UserAgent::Architecture architecture)14const wchar_t* ArchitectureToString(UserAgent::Architecture architecture) { 15 switch (architecture) { 16 case UserAgent::WOW64: 17 return L"; WOW64"; 18 case UserAgent::X64: 19 return L"; Win64; x64"; 20 case UserAgent::IA64: 21 return L"; Win64; IA64"; 22 case UserAgent::X86: 23 return L""; 24 default: 25 NOTREACHED(); 26 return L""; 27 } 28 } 29 30 } // namespace 31 UserAgent(base::WStringPiece product_name,base::WStringPiece product_version)32UserAgent::UserAgent(base::WStringPiece product_name, 33 base::WStringPiece product_version) 34 : product_name_(product_name), 35 product_version_(product_version), 36 os_major_version_(0), 37 os_minor_version_(0), 38 architecture_(X86) {} 39 ~UserAgent()40UserAgent::~UserAgent() {} 41 AsString()42std::wstring UserAgent::AsString() { 43 return product_name_ + L"/" + product_version_ + L" (Windows NT " + 44 base::NumberToWString(os_major_version_) + L"." + 45 base::NumberToWString(os_minor_version_) + 46 ArchitectureToString(architecture_) + L") WinHTTP/" + winhttp_version_; 47 } 48 49 } // namespace chrome_cleaner 50