Chromium Code Reviews| 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_ |