Index: components/omaha_query_params/omaha_query_params.h |
diff --git a/components/omaha_query_params/omaha_query_params.h b/components/omaha_query_params/omaha_query_params.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..21b0796c68bbd5f36c63caeff99c92f0fc746411 |
--- /dev/null |
+++ b/components/omaha_query_params/omaha_query_params.h |
@@ -0,0 +1,68 @@ |
+// 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 COMPONENTS_OMAHA_QUERY_PARAMS_OMAHA_QUERY_PARAMS_H_ |
+#define COMPONENTS_OMAHA_QUERY_PARAMS_OMAHA_QUERY_PARAMS_H_ |
+ |
+#include <string> |
+ |
+#include "base/basictypes.h" |
+ |
+// Generates a string of URL query parameters to be used when getting |
+// component and extension updates. These parameters generally remain |
+// fixed for a particular build. Embedders can use the delegate to |
+// define different implementations. This should be used only in the |
+// browser process. |
+class OmahaQueryParams { |
jochen (gone - plz use gerrit)
2014/06/24 08:52:32
please put components into their own namespace
|
+ public: |
+ enum ProdId { |
+ CHROME = 0, |
+ CRX, |
+ }; |
+ |
+ // Generates a string of URL query parameters for Omaha. Includes the |
+ // following fields: os, arch, prod, prodchannel, prodversion, lang. |
+ static std::string Get(ProdId prod); |
+ |
+ // Returns the value we use for the "prod=" parameter. Possible return values |
+ // include "chrome", "chromecrx", "chromiumcrx", and "unknown". |
+ static const char* GetProdIdString(ProdId prod); |
+ |
+ // Returns the value we use for the "os=" parameter. Possible return values |
+ // include: "mac", "win", "android", "cros", "linux", and "openbsd". |
+ static const char* GetOS(); |
+ |
+ // Returns the value we use for the "arch=" parameter. Possible return values |
+ // include: "x86", "x64", and "arm". |
+ static const char* GetArch(); |
+ |
+ // Returns the value we use for the "nacl_arch" parameter. Note that this may |
+ // be different from the "arch" parameter above (e.g. one may be 32-bit and |
+ // the other 64-bit). Possible return values include: "x86-32", "x86-64", |
+ // "arm", and "mips32". |
+ static const char* GetNaclArch(); |
+ |
+ private: |
+ DISALLOW_IMPLICIT_CONSTRUCTORS(OmahaQueryParams); |
+}; |
+ |
+// Embedders can specify an OmahaQueryParamsDelegate to provide additional |
+// custom parameters. If not specified (Set is never called), no additional |
+// parameters are added. |
+class OmahaQueryParamsDelegate { |
jochen (gone - plz use gerrit)
2014/06/24 08:52:32
shouldn't this class be in a separate header?
|
+ public: |
+ OmahaQueryParamsDelegate(); |
+ virtual ~OmahaQueryParamsDelegate(); |
+ |
+ // Use this delegate. |
+ static void Set(OmahaQueryParamsDelegate* delegate); |
+ |
+ // Returns additional parameters, if any. If there are any parameters, the |
+ // string should begin with a & character. |
+ virtual std::string GetExtraParams() = 0; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(OmahaQueryParamsDelegate); |
jochen (gone - plz use gerrit)
2014/06/24 08:52:32
should be private
|
+}; |
+ |
+#endif // COMPONENTS_OMAHA_QUERY_PARAMS_OMAHA_QUERY_PARAMS_H_ |