blob: e9caf9d56fe67e98d42d63585ab53a913f3bb5ea [file] [log] [blame]
// Copyright 2018 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.
#include "chrome/chrome_cleaner/http/user_agent.h"
#include "base/notreached.h"
#include "base/strings/string_number_conversions.h"
namespace chrome_cleaner {
namespace {
const wchar_t* ArchitectureToString(UserAgent::Architecture architecture) {
switch (architecture) {
case UserAgent::WOW64:
return L"; WOW64";
case UserAgent::X64:
return L"; Win64; x64";
case UserAgent::IA64:
return L"; Win64; IA64";
case UserAgent::X86:
return L"";
default:
NOTREACHED();
return L"";
}
}
} // namespace
UserAgent::UserAgent(base::WStringPiece product_name,
base::WStringPiece product_version)
: product_name_(product_name),
product_version_(product_version),
os_major_version_(0),
os_minor_version_(0),
architecture_(X86) {}
UserAgent::~UserAgent() {}
std::wstring UserAgent::AsString() {
return product_name_ + L"/" + product_version_ + L" (Windows NT " +
base::NumberToWString(os_major_version_) + L"." +
base::NumberToWString(os_minor_version_) +
ArchitectureToString(architecture_) + L") WinHTTP/" + winhttp_version_;
}
} // namespace chrome_cleaner