Fix infinite recursion on hiding panel when created during fullscreen mode.
[chromium-blink-merge.git] / chrome / browser / omaha_query_params / omaha_query_params.cc
blob78a5317b175d6152a7b13a4b13e966b8af6fc7dd
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.
5 #include "chrome/browser/omaha_query_params/omaha_query_params.h"
7 #include "base/compiler_specific.h"
8 #include "base/strings/stringprintf.h"
9 #include "base/win/windows_version.h"
10 #include "chrome/browser/browser_process.h"
11 #include "chrome/common/chrome_version_info.h"
13 namespace {
15 const char kUnknown[] = "unknown";
17 // The request extra information is the OS and architecture, this helps
18 // the server select the right package to be delivered.
19 const char kOs[] =
20 #if defined(OS_MACOSX)
21 "mac";
22 #elif defined(OS_WIN)
23 "win";
24 #elif defined(OS_ANDROID)
25 "android";
26 #elif defined(OS_CHROMEOS)
27 "cros";
28 #elif defined(OS_LINUX)
29 "linux";
30 #elif defined(OS_OPENBSD)
31 "openbsd";
32 #else
33 #error "unknown os"
34 #endif
36 const char kArch[] =
37 #if defined(__amd64__) || defined(_WIN64)
38 "x64";
39 #elif defined(__i386__) || defined(_WIN32)
40 "x86";
41 #elif defined(__arm__)
42 "arm";
43 #elif defined(__arm64__)
44 "arm64";
45 #elif defined(__mips__)
46 "mipsel";
47 #else
48 #error "unknown arch"
49 #endif
51 const char kChrome[] = "chrome";
53 const char kStable[] = "stable";
54 const char kBeta[] = "beta";
55 const char kDev[] = "dev";
56 const char kCanary[] = "canary";
58 #if defined(GOOGLE_CHROME_BUILD)
59 const char kChromeCrx[] = "chromecrx";
60 #else
61 const char kChromiumCrx[] = "chromiumcrx";
62 #endif // defined(GOOGLE_CHROME_BUILD)
64 } // namespace
66 namespace chrome {
68 // static
69 std::string OmahaQueryParams::Get(ProdId prod) {
70 return base::StringPrintf(
71 "os=%s&arch=%s&nacl_arch=%s&prod=%s&prodchannel=%s"
72 "&prodversion=%s&lang=%s",
73 kOs,
74 kArch,
75 GetNaclArch(),
76 GetProdIdString(prod),
77 GetChannelString(),
78 chrome::VersionInfo().Version().c_str(),
79 GetLang());
82 // static
83 const char* OmahaQueryParams::GetProdIdString(
84 chrome::OmahaQueryParams::ProdId prod) {
85 switch (prod) {
86 case chrome::OmahaQueryParams::CHROME:
87 return kChrome;
88 break;
89 case chrome::OmahaQueryParams::CRX:
90 #if defined(GOOGLE_CHROME_BUILD)
91 return kChromeCrx;
92 #else
93 return kChromiumCrx;
94 #endif
95 break;
97 return kUnknown;
100 // static
101 const char* OmahaQueryParams::GetOS() {
102 return kOs;
105 // static
106 const char* OmahaQueryParams::GetArch() {
107 return kArch;
110 // static
111 const char* OmahaQueryParams::GetNaclArch() {
112 #if defined(ARCH_CPU_X86_FAMILY)
113 #if defined(ARCH_CPU_X86_64)
114 return "x86-64";
115 #elif defined(OS_WIN)
116 bool x86_64 = (base::win::OSInfo::GetInstance()->wow64_status() ==
117 base::win::OSInfo::WOW64_ENABLED);
118 return x86_64 ? "x86-64" : "x86-32";
119 #else
120 return "x86-32";
121 #endif
122 #elif defined(ARCH_CPU_ARMEL)
123 return "arm";
124 #elif defined(ARCH_CPU_ARM64)
125 return "arm64";
126 #elif defined(ARCH_CPU_MIPSEL)
127 return "mips32";
128 #else
129 // NOTE: when adding new values here, please remember to update the
130 // comment in the .h file about possible return values from this function.
131 #error "You need to add support for your architecture here"
132 #endif
135 const char* OmahaQueryParams::GetChannelString() {
136 switch (chrome::VersionInfo::GetChannel()) {
137 case chrome::VersionInfo::CHANNEL_STABLE:
138 return kStable;
139 break;
140 case chrome::VersionInfo::CHANNEL_BETA:
141 return kBeta;
142 break;
143 case chrome::VersionInfo::CHANNEL_DEV:
144 return kDev;
145 break;
146 case chrome::VersionInfo::CHANNEL_CANARY:
147 return kCanary;
148 break;
149 case chrome::VersionInfo::CHANNEL_UNKNOWN:
150 return kUnknown;
151 break;
153 return kUnknown;
156 const char* OmahaQueryParams::GetLang() {
157 return g_browser_process->GetApplicationLocale().c_str();
160 } // namespace chrome