1// Copyright 2014 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/browser/omaha_query_params/chrome_omaha_query_params_delegate.h"
6
7#include "base/lazy_instance.h"
8#include "base/strings/stringprintf.h"
9#include "chrome/browser/browser_process.h"
10#include "chrome/common/chrome_version_info.h"
11
12namespace {
13
14const char kUnknown[] = "unknown";
15const char kStable[] = "stable";
16const char kBeta[] = "beta";
17const char kDev[] = "dev";
18const char kCanary[] = "canary";
19
20base::LazyInstance<ChromeOmahaQueryParamsDelegate> g_delegate =
21    LAZY_INSTANCE_INITIALIZER;
22
23}  // namespace
24
25ChromeOmahaQueryParamsDelegate::ChromeOmahaQueryParamsDelegate() {
26}
27
28ChromeOmahaQueryParamsDelegate::~ChromeOmahaQueryParamsDelegate() {
29}
30
31// static
32ChromeOmahaQueryParamsDelegate* ChromeOmahaQueryParamsDelegate::GetInstance() {
33  return g_delegate.Pointer();
34}
35
36std::string ChromeOmahaQueryParamsDelegate::GetExtraParams() {
37  return base::StringPrintf("&prodchannel=%s&prodversion=%s&lang=%s",
38                            GetChannelString(),
39                            chrome::VersionInfo().Version().c_str(),
40                            GetLang());
41}
42
43// static
44const char* ChromeOmahaQueryParamsDelegate::GetChannelString() {
45  switch (chrome::VersionInfo::GetChannel()) {
46    case chrome::VersionInfo::CHANNEL_STABLE:
47      return kStable;
48      break;
49    case chrome::VersionInfo::CHANNEL_BETA:
50      return kBeta;
51      break;
52    case chrome::VersionInfo::CHANNEL_DEV:
53      return kDev;
54      break;
55    case chrome::VersionInfo::CHANNEL_CANARY:
56      return kCanary;
57      break;
58    case chrome::VersionInfo::CHANNEL_UNKNOWN:
59      return kUnknown;
60      break;
61  }
62  return kUnknown;
63}
64
65// static
66const char* ChromeOmahaQueryParamsDelegate::GetLang() {
67  return g_browser_process->GetApplicationLocale().c_str();
68}
69