| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef REMOTING_HOST_HOST_CONFIG_H_ |
| #define REMOTING_HOST_HOST_CONFIG_H_ |
| |
| #include <memory> |
| #include <string> |
| |
| #include "base/values.h" |
| #include "third_party/abseil-cpp/absl/types/optional.h" |
| |
| namespace base { |
| class FilePath; |
| } // namespace base |
| |
| namespace remoting { |
| |
| // Following constants define names for configuration parameters. |
| |
| // The email address of the account which owns this remote access host instance. |
| // The value of `kDeprecatedHostOwnerEmailConfigPath` will be used if both keys |
| // exist in the config for backward compatibility. |
| extern const char kHostOwnerConfigPath[]; |
| // Service account used to make web service requests and communicate over the |
| // signaling channel. Prefer reading this value, over |
| // `kDeprecatedXmppLoginConfigPath` if both exist. |
| extern const char kServiceAccountConfigPath[]; |
| // OAuth refresh token which is associated with the host service account. This |
| // token is exchanged for an access token which is used for web service |
| // authentication. |
| extern const char kOAuthRefreshTokenConfigPath[]; |
| // Unique identifier of the host used to register the host in directory. |
| // Normally a random UUID. |
| extern const char kHostIdConfigPath[]; |
| // Readable host name. |
| extern const char kHostNameConfigPath[]; |
| // Hash of the host secret used for authentication. |
| extern const char kHostSecretHashConfigPath[]; |
| // Private key used for host authentication. |
| extern const char kPrivateKeyConfigPath[]; |
| // Whether consent is given for usage stats reporting. |
| extern const char kUsageStatsConsentConfigPath[]; |
| |
| // Deprecated keys. These keys were used in pre-M120 host versions and are being |
| // kept around for backward compatibility. We should consider rewriting the |
| // config file at some point so we no longer need to support them. |
| |
| // host_owner and host_owner_email were both required when we relied on Google |
| // Talk for signaling as these fields did not match for some account types. |
| // Though we no longer rely on that service, existing hosts may still have a |
| // config which uses this key so we read from it as needed. |
| extern const char kDeprecatedHostOwnerEmailConfigPath[]; |
| // xmpp_login is a legacy term which was used with Google Talk. Though we no |
| // longer rely on that service, existing hosts may still have this key in their |
| // configuration file so we read from it as needed. |
| // This key was replaced by `kServiceAccountConfigPath` in M120. |
| extern const char kDeprecatedXmppLoginConfigPath[]; |
| |
| // Helpers for serializing/deserializing Host configuration dictionaries. |
| absl::optional<base::Value::Dict> HostConfigFromJson( |
| const std::string& serialized); |
| std::string HostConfigToJson(const base::Value::Dict& host_config); |
| |
| // Helpers for loading/saving host configurations from/to files. |
| absl::optional<base::Value::Dict> HostConfigFromJsonFile( |
| const base::FilePath& config_file); |
| bool HostConfigToJsonFile(const base::Value::Dict& host_config, |
| const base::FilePath& config_file); |
| |
| } // namespace remoting |
| |
| #endif // REMOTING_HOST_HOST_CONFIG_H_ |