libweave: Copy chromeos::Error into libweave
To move dependency on libchromeos.
BUG=brillo:1257
TEST=`FEATURES=test emerge-gizmo libweave buffet`
CQ-DEPEND=CL:293873
Change-Id: Icc3df36b34431987802fe752ae4a129438c57a9d
Reviewed-on: https://chromium-review.googlesource.com/293615
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/include/weave/cloud.h b/libweave/include/weave/cloud.h
index daa39f1..ade4247 100644
--- a/libweave/include/weave/cloud.h
+++ b/libweave/include/weave/cloud.h
@@ -9,7 +9,7 @@
#include <base/callback.h>
#include <base/values.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
@@ -27,8 +27,7 @@
base::Callback<void(RegistrationStatus satus)>;
using OnCloudRequestCallback =
base::Callback<void(const base::DictionaryValue& response)>;
- using OnCloudRequestErrorCallback =
- base::Callback<void(const chromeos::Error* error)>;
+ using OnCloudRequestErrorCallback = base::Callback<void(const Error* error)>;
// Sets callback which is called when registration state is changed.
virtual void AddOnRegistrationChangedCallback(
@@ -44,19 +43,19 @@
// Registers the device.
// Returns a device ID on success.
virtual std::string RegisterDevice(const std::string& ticket_id,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Updates basic device information.
virtual bool UpdateDeviceInfo(const std::string& name,
const std::string& description,
const std::string& location,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Updates base device config.
virtual bool UpdateBaseConfig(const std::string& anonymous_access_role,
bool local_discovery_enabled,
bool local_pairing_enabled,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Updates GCD service configuration. Usually for testing.
virtual bool UpdateServiceConfig(const std::string& client_id,
@@ -64,7 +63,7 @@
const std::string& api_key,
const std::string& oauth_url,
const std::string& service_url,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
protected:
virtual ~Cloud() = default;
diff --git a/libweave/include/weave/command.h b/libweave/include/weave/command.h
index 0533afa..e3d35a7 100644
--- a/libweave/include/weave/command.h
+++ b/libweave/include/weave/command.h
@@ -8,7 +8,7 @@
#include <string>
#include <base/values.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
@@ -73,12 +73,12 @@
// Updates the command progress. The |progress| should match the schema.
// Returns false if |progress| value is incorrect.
virtual bool SetProgress(const base::DictionaryValue& progress,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Updates the command results. The |results| should match the schema.
// Returns false if |results| value is incorrect.
virtual bool SetResults(const base::DictionaryValue& results,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Aborts command execution.
virtual void Abort() = 0;
diff --git a/libweave/include/weave/commands.h b/libweave/include/weave/commands.h
index 37ca095..68751ac 100644
--- a/libweave/include/weave/commands.h
+++ b/libweave/include/weave/commands.h
@@ -9,7 +9,7 @@
#include <base/callback.h>
#include <base/values.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/command.h>
namespace weave {
@@ -36,7 +36,7 @@
virtual bool AddCommand(const base::DictionaryValue& command,
UserRole role,
std::string* id,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Finds a command by the command |id|. Returns nullptr if the command with
// the given |id| is not found. The returned pointer should not be persisted
diff --git a/libweave/include/weave/error.h b/libweave/include/weave/error.h
new file mode 100644
index 0000000..278d2f9
--- /dev/null
+++ b/libweave/include/weave/error.h
@@ -0,0 +1,130 @@
+// Copyright 2014 The Chromium OS 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 LIBWEAVE_INCLUDE_WEAVE_ERROR_H_
+#define LIBWEAVE_INCLUDE_WEAVE_ERROR_H_
+
+#include <memory>
+#include <string>
+
+#include <base/macros.h>
+#include <base/tracked_objects.h>
+#include <weave/export.h>
+
+namespace weave {
+
+class Error; // Forward declaration.
+
+using ErrorPtr = std::unique_ptr<Error>;
+
+class Error final {
+ public:
+ ~Error() = default;
+
+ // Creates an instance of Error class.
+ static ErrorPtr Create(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message);
+ static ErrorPtr Create(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message,
+ ErrorPtr inner_error);
+ // If |error| is not nullptr, creates another instance of Error class,
+ // initializes it with specified arguments and adds it to the head of
+ // the error chain pointed to by |error|.
+ LIBWEAVE_EXPORT static void AddTo(ErrorPtr* error,
+ const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message);
+ // Same as the Error::AddTo above, but allows to pass in a printf-like
+ // format string and optional parameters to format the error message.
+ LIBWEAVE_EXPORT static void AddToPrintf(
+ ErrorPtr* error,
+ const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const char* format,
+ ...) PRINTF_FORMAT(5, 6);
+
+ // Clones error with all inner errors.
+ ErrorPtr Clone() const;
+
+ // Returns the error domain, code and message
+ const std::string& GetDomain() const { return domain_; }
+ const std::string& GetCode() const { return code_; }
+ const std::string& GetMessage() const { return message_; }
+
+ // Returns the location of the error in the source code.
+ const tracked_objects::LocationSnapshot& GetLocation() const {
+ return location_;
+ }
+
+ // Checks if this or any of the inner errors in the chain has the specified
+ // error domain.
+ bool HasDomain(const std::string& domain) const;
+
+ // Checks if this or any of the inner errors in the chain matches the
+ // specified error domain and code.
+ bool HasError(const std::string& domain, const std::string& code) const;
+
+ // Gets a pointer to the inner error, if present. Returns nullptr otherwise.
+ const Error* GetInnerError() const { return inner_error_.get(); }
+
+ // Gets a pointer to the first error occurred.
+ // Returns itself if no inner error are available.
+ const Error* GetFirstError() const;
+
+ // Finds an error object of particular domain in the error chain stating at
+ // |error_chain_start|. Returns the a pointer to the first matching error
+ // object found.
+ // Returns nullptr if no match is found.
+ // This method is safe to call on a nullptr |error_chain_start| in which case
+ // the result will also be nullptr.
+ static const Error* FindErrorOfDomain(const Error* error_chain_start,
+ const std::string& domain);
+ // Finds an error of particular domain with the given code in the error chain
+ // stating at |error_chain_start|. Returns the pointer to the first matching
+ // error object.
+ // Returns nullptr if no match is found or if |error_chain_start| is nullptr.
+ static const Error* FindError(const Error* error_chain_start,
+ const std::string& domain,
+ const std::string& code);
+
+ protected:
+ // Constructor is protected since this object is supposed to be
+ // created via the Create factory methods.
+ Error(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message,
+ ErrorPtr inner_error);
+
+ Error(const tracked_objects::LocationSnapshot& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message,
+ ErrorPtr inner_error);
+
+ // Error domain. The domain defines the scopes for error codes.
+ // Two errors with the same code but different domains are different errors.
+ std::string domain_;
+ // Error code. A unique error code identifier within the given domain.
+ std::string code_;
+ // Human-readable error message.
+ std::string message_;
+ // Error origin in the source code.
+ tracked_objects::LocationSnapshot location_;
+ // Pointer to inner error, if any. This forms a chain of errors.
+ ErrorPtr inner_error_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(Error);
+};
+
+} // namespace weave
+
+#endif // LIBWEAVE_INCLUDE_WEAVE_ERROR_H_
diff --git a/libweave/include/weave/http_client.h b/libweave/include/weave/http_client.h
index 401f1c5..6112271 100644
--- a/libweave/include/weave/http_client.h
+++ b/libweave/include/weave/http_client.h
@@ -10,7 +10,7 @@
#include <vector>
#include <base/callback.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
@@ -28,7 +28,7 @@
using Headers = std::vector<std::pair<std::string, std::string>>;
using SuccessCallback = base::Callback<void(int, const Response&)>;
- using ErrorCallback = base::Callback<void(int, const chromeos::Error*)>;
+ using ErrorCallback = base::Callback<void(int, const Error*)>;
// TODO(vitalybuka): Remove blocking version.
virtual std::unique_ptr<Response> SendRequestAndBlock(
@@ -36,7 +36,7 @@
const std::string& url,
const Headers& headers,
const std::string& data,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
virtual int SendRequest(const std::string& method,
const std::string& url,
diff --git a/libweave/include/weave/mock_command.h b/libweave/include/weave/mock_command.h
index 1444cd4..7d0c938 100644
--- a/libweave/include/weave/mock_command.h
+++ b/libweave/include/weave/mock_command.h
@@ -30,10 +30,8 @@
MOCK_CONST_METHOD0(MockGetParameters, const std::string&());
MOCK_CONST_METHOD0(MockGetProgress, const std::string&());
MOCK_CONST_METHOD0(MockGetResults, const std::string&());
- MOCK_METHOD2(SetProgress,
- bool(const base::DictionaryValue&, chromeos::ErrorPtr*));
- MOCK_METHOD2(SetResults,
- bool(const base::DictionaryValue&, chromeos::ErrorPtr*));
+ MOCK_METHOD2(SetProgress, bool(const base::DictionaryValue&, ErrorPtr*));
+ MOCK_METHOD2(SetResults, bool(const base::DictionaryValue&, ErrorPtr*));
MOCK_METHOD0(Abort, void());
MOCK_METHOD0(Cancel, void());
MOCK_METHOD0(Done, void());
diff --git a/libweave/include/weave/mock_commands.h b/libweave/include/weave/mock_commands.h
index 21ae120..7e13cd5 100644
--- a/libweave/include/weave/mock_commands.h
+++ b/libweave/include/weave/mock_commands.h
@@ -20,11 +20,9 @@
MOCK_METHOD1(AddOnCommandAddedCallback, void(const OnCommandCallback&));
MOCK_METHOD1(AddOnCommandRemovedCallback, void(const OnCommandCallback&));
- MOCK_METHOD4(AddCommand,
- bool(const base::DictionaryValue&,
- UserRole,
- std::string*,
- chromeos::ErrorPtr*));
+ MOCK_METHOD4(
+ AddCommand,
+ bool(const base::DictionaryValue&, UserRole, std::string*, ErrorPtr*));
MOCK_METHOD1(FindCommand, Command*(const std::string&));
};
diff --git a/libweave/include/weave/mock_http_client.h b/libweave/include/weave/mock_http_client.h
index cb1b96e..7ea1f26 100644
--- a/libweave/include/weave/mock_http_client.h
+++ b/libweave/include/weave/mock_http_client.h
@@ -31,14 +31,13 @@
const std::string&,
const Headers&,
const std::string&,
- chromeos::ErrorPtr*));
+ ErrorPtr*));
- std::unique_ptr<Response> SendRequestAndBlock(
- const std::string& method,
- const std::string& url,
- const Headers& headers,
- const std::string& data,
- chromeos::ErrorPtr* error) override;
+ std::unique_ptr<Response> SendRequestAndBlock(const std::string& method,
+ const std::string& url,
+ const Headers& headers,
+ const std::string& data,
+ ErrorPtr* error) override;
int SendRequest(const std::string& method,
const std::string& url,
diff --git a/libweave/include/weave/network.h b/libweave/include/weave/network.h
index d9c56b9..41e5413 100644
--- a/libweave/include/weave/network.h
+++ b/libweave/include/weave/network.h
@@ -9,7 +9,7 @@
#include <string>
#include <base/callback.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/stream.h>
namespace weave {
@@ -37,7 +37,7 @@
virtual bool ConnectToService(const std::string& ssid,
const std::string& passphrase,
const base::Closure& on_success,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
virtual NetworkState GetConnectionState() const = 0;
@@ -57,7 +57,7 @@
std::unique_ptr<Stream> socket,
const std::string& host,
const base::Callback<void(std::unique_ptr<Stream>)>& success_callback,
- const base::Callback<void(const chromeos::Error*)>& error_callback) = 0;
+ const base::Callback<void(const Error*)>& error_callback) = 0;
protected:
virtual ~Network() = default;
diff --git a/libweave/include/weave/state.h b/libweave/include/weave/state.h
index c817a75..f1f57e6 100644
--- a/libweave/include/weave/state.h
+++ b/libweave/include/weave/state.h
@@ -17,7 +17,7 @@
// Updates a multiple property values.
virtual bool SetProperties(const base::DictionaryValue& property_set,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Returns aggregated state properties across all registered packages as
// a JSON object that can be used to send the device state to the GCD server.
diff --git a/libweave/include/weave/stream.h b/libweave/include/weave/stream.h
index 9717d78..3ecdba6 100644
--- a/libweave/include/weave/stream.h
+++ b/libweave/include/weave/stream.h
@@ -8,7 +8,7 @@
#include <string>
#include <base/callback.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
@@ -20,19 +20,19 @@
void* buffer,
size_t size_to_read,
const base::Callback<void(size_t)>& success_callback,
- const base::Callback<void(const chromeos::Error*)>& error_callback,
- chromeos::ErrorPtr* error) = 0;
+ const base::Callback<void(const Error*)>& error_callback,
+ ErrorPtr* error) = 0;
virtual bool WriteAllAsync(
const void* buffer,
size_t size_to_write,
const base::Closure& success_callback,
- const base::Callback<void(const chromeos::Error*)>& error_callback,
- chromeos::ErrorPtr* error) = 0;
+ const base::Callback<void(const Error*)>& error_callback,
+ ErrorPtr* error) = 0;
- virtual bool FlushBlocking(chromeos::ErrorPtr* error) = 0;
+ virtual bool FlushBlocking(ErrorPtr* error) = 0;
- virtual bool CloseBlocking(chromeos::ErrorPtr* error) = 0;
+ virtual bool CloseBlocking(ErrorPtr* error) = 0;
virtual void CancelPendingAsyncOperations() = 0;
};
diff --git a/libweave/include/weave/task_runner.h b/libweave/include/weave/task_runner.h
index 2c3057c..0b349b6 100644
--- a/libweave/include/weave/task_runner.h
+++ b/libweave/include/weave/task_runner.h
@@ -10,7 +10,6 @@
#include <vector>
#include <base/callback.h>
-#include <chromeos/errors/error.h>
namespace weave {
diff --git a/libweave/libweave.gyp b/libweave/libweave.gyp
index 3ff064b..649d9f4 100644
--- a/libweave/libweave.gyp
+++ b/libweave/libweave.gyp
@@ -30,6 +30,8 @@
{
'target_name': 'libweave_common',
'type': 'static_library',
+ 'cflags!': ['-fPIE'],
+ 'cflags': ['-fPIC'],
'sources': [
'src/backoff_entry.cc',
'src/base_api_handler.cc',
@@ -50,6 +52,7 @@
'src/data_encoding.cc',
'src/device_manager.cc',
'src/device_registration_info.cc',
+ 'src/error.cc',
'src/http_constants.cc',
'src/json_error_codes.cc',
'src/notification/notification_parser.cc',
@@ -140,6 +143,7 @@
'src/commands/schema_utils_unittest.cc',
'src/data_encoding_unittest.cc',
'src/device_registration_info_unittest.cc',
+ 'src/error_unittest.cc',
'src/notification/notification_parser_unittest.cc',
'src/notification/xml_node_unittest.cc',
'src/notification/xmpp_channel_unittest.cc',
diff --git a/libweave/src/buffet_config.h b/libweave/src/buffet_config.h
index 004e8b2..2d161e1 100644
--- a/libweave/src/buffet_config.h
+++ b/libweave/src/buffet_config.h
@@ -11,7 +11,7 @@
#include <base/callback.h>
#include <base/files/file_path.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <chromeos/key_value_store.h>
#include <weave/config.h>
diff --git a/libweave/src/commands/command_definition.cc b/libweave/src/commands/command_definition.cc
index 66a487c..f00efdd 100644
--- a/libweave/src/commands/command_definition.cc
+++ b/libweave/src/commands/command_definition.cc
@@ -6,7 +6,7 @@
#include <vector>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/commands/schema_constants.h"
#include "libweave/src/string_utils.h"
@@ -14,7 +14,7 @@
namespace weave {
bool CommandDefinition::Visibility::FromString(const std::string& str,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
// This special case is useful for places where we want to make a command
// to ALL clients, even if new clients are added in the future.
if (str == commands::attributes::kCommand_Visibility_All) {
@@ -35,10 +35,10 @@
} else if (value == commands::attributes::kCommand_Visibility_Cloud) {
cloud = true;
} else {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidPropValue,
- "Invalid command visibility value '%s'",
- value.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidPropValue,
+ "Invalid command visibility value '%s'",
+ value.c_str());
return false;
}
}
diff --git a/libweave/src/commands/command_definition.h b/libweave/src/commands/command_definition.h
index 0ef8fec..512f08d 100644
--- a/libweave/src/commands/command_definition.h
+++ b/libweave/src/commands/command_definition.h
@@ -31,7 +31,7 @@
// Visibility bitset (|str| is a string like "local,cloud").
// Special string value "all" is treated as a list of every possible
// visibility values and "none" to have all the bits cleared.
- bool FromString(const std::string& str, chromeos::ErrorPtr* error);
+ bool FromString(const std::string& str, ErrorPtr* error);
// Converts the visibility bitset to a string.
std::string ToString() const;
diff --git a/libweave/src/commands/command_definition_unittest.cc b/libweave/src/commands/command_definition_unittest.cc
index 158d43d..458a84e 100644
--- a/libweave/src/commands/command_definition_unittest.cc
+++ b/libweave/src/commands/command_definition_unittest.cc
@@ -59,7 +59,7 @@
EXPECT_FALSE(visibility.local);
EXPECT_FALSE(visibility.cloud);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(visibility.FromString("cloud,all", &error));
EXPECT_EQ("invalid_parameter_value", error->GetCode());
}
diff --git a/libweave/src/commands/command_dictionary.cc b/libweave/src/commands/command_dictionary.cc
index 2f36850..c1238dc 100644
--- a/libweave/src/commands/command_dictionary.cc
+++ b/libweave/src/commands/command_dictionary.cc
@@ -26,7 +26,7 @@
bool CommandDictionary::LoadCommands(const base::DictionaryValue& json,
const std::string& category,
const CommandDictionary* base_commands,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
CommandMap new_defs;
// |json| contains a list of nested objects with the following structure:
@@ -37,10 +37,10 @@
std::string package_name = package_iter.key();
const base::DictionaryValue* package_value = nullptr;
if (!package_iter.value().GetAsDictionary(&package_value)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kTypeMismatch,
- "Expecting an object for package '%s'",
- package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kTypeMismatch,
+ "Expecting an object for package '%s'",
+ package_name.c_str());
return false;
}
// Iterate over command definitions within the current package.
@@ -48,19 +48,18 @@
while (!command_iter.IsAtEnd()) {
std::string command_name = command_iter.key();
if (command_name.empty()) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidCommandName,
- "Unnamed command encountered in package '%s'",
- package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidCommandName,
+ "Unnamed command encountered in package '%s'",
+ package_name.c_str());
return false;
}
const base::DictionaryValue* command_def_json = nullptr;
if (!command_iter.value().GetAsDictionary(&command_def_json)) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kTypeMismatch,
- "Expecting an object for command '%s'", command_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kTypeMismatch,
+ "Expecting an object for command '%s'",
+ command_name.c_str());
return false;
}
// Construct the compound command name as "pkg_name.cmd_name".
@@ -88,12 +87,11 @@
// this rule here.
if (!cmd) {
if (command_name.front() != '_') {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidCommandName,
- "The name of custom command '%s' in package '%s'"
- " must start with '_'",
- command_name.c_str(), package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidCommandName,
+ "The name of custom command '%s' in package '%s'"
+ " must start with '_'",
+ command_name.c_str(), package_name.c_str());
return false;
}
}
@@ -121,10 +119,10 @@
if (command_def_json->GetString(commands::attributes::kCommand_Visibility,
&value)) {
if (!visibility.FromString(value, error)) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidCommandVisibility,
- "Error parsing command '%s'", full_command_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidCommandVisibility,
+ "Error parsing command '%s'",
+ full_command_name.c_str());
return false;
}
}
@@ -132,14 +130,13 @@
if (command_def_json->GetString(commands::attributes::kCommand_Role,
&value)) {
if (!StringToEnum(value, &minimal_role)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE,
- errors::commands::kDomain,
- errors::commands::kInvalidPropValue,
- "Invalid role: '%s'", value.c_str());
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidMinimalRole,
- "Error parsing command '%s'", full_command_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidPropValue,
+ "Invalid role: '%s'", value.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidMinimalRole,
+ "Error parsing command '%s'",
+ full_command_name.c_str());
return false;
}
}
@@ -187,7 +184,7 @@
const char* property_name,
const ObjectSchema* base_def,
const std::string& command_name,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
auto object_schema = ObjectSchema::Create();
const base::DictionaryValue* schema_def = nullptr;
@@ -199,10 +196,10 @@
}
if (!object_schema->FromJson(schema_def, base_def, error)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidObjectSchema,
- "Invalid definition for command '%s'",
- command_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidObjectSchema,
+ "Invalid definition for command '%s'",
+ command_name.c_str());
return {};
}
@@ -212,7 +209,7 @@
std::unique_ptr<base::DictionaryValue> CommandDictionary::GetCommandsAsJson(
const std::function<bool(const CommandDefinition*)>& filter,
bool full_schema,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
for (const auto& pair : definitions_) {
// Check if the command definition has the desired visibility.
diff --git a/libweave/src/commands/command_dictionary.h b/libweave/src/commands/command_dictionary.h
index 9a3c407..1f18257 100644
--- a/libweave/src/commands/command_dictionary.h
+++ b/libweave/src/commands/command_dictionary.h
@@ -12,7 +12,7 @@
#include <vector>
#include <base/macros.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/commands/command_definition.h"
@@ -56,7 +56,7 @@
bool LoadCommands(const base::DictionaryValue& json,
const std::string& category,
const CommandDictionary* base_commands,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Converts all the command definitions to a JSON object for CDD/Device
// draft.
// |filter| is a predicate used to filter out the command definitions to
@@ -69,7 +69,7 @@
std::unique_ptr<base::DictionaryValue> GetCommandsAsJson(
const std::function<bool(const CommandDefinition*)>& filter,
bool full_schema,
- chromeos::ErrorPtr* error) const;
+ ErrorPtr* error) const;
// Returns the number of command definitions in the dictionary.
size_t GetSize() const { return definitions_.size(); }
// Checks if the dictionary has no command definitions.
@@ -88,7 +88,7 @@
const char* property_name,
const ObjectSchema* base_def,
const std::string& command_name,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
CommandMap definitions_; // List of all available command definitions.
DISALLOW_COPY_AND_ASSIGN(CommandDictionary);
diff --git a/libweave/src/commands/command_dictionary_unittest.cc b/libweave/src/commands/command_dictionary_unittest.cc
index 7dd3526..17c0af2 100644
--- a/libweave/src/commands/command_dictionary_unittest.cc
+++ b/libweave/src/commands/command_dictionary_unittest.cc
@@ -101,7 +101,7 @@
TEST(CommandDictionary, LoadCommands_Failures) {
CommandDictionary dict;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
// Command definition is not an object.
auto json = CreateDictionaryValue("{'robot':{'jump':0}}");
@@ -133,7 +133,7 @@
TEST(CommandDictionaryDeathTest, LoadCommands_RedefineInDifferentCategory) {
// Redefine commands in different category.
CommandDictionary dict;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json = CreateDictionaryValue("{'robot':{'jump':{}}}");
dict.LoadCommands(*json, "category1", nullptr, &error);
ASSERT_DEATH(dict.LoadCommands(*json, "category2", nullptr, &error),
@@ -145,7 +145,7 @@
// Custom command must start with '_'.
CommandDictionary base_dict;
CommandDictionary dict;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json = CreateDictionaryValue(R"({
'base': {
'reboot': {
@@ -172,7 +172,7 @@
// Redefine commands parameter type.
CommandDictionary base_dict;
CommandDictionary dict;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json = CreateDictionaryValue(R"({
'base': {
'reboot': {
@@ -527,7 +527,7 @@
TEST(CommandDictionary, LoadWithPermissions_InvalidVisibility) {
CommandDictionary dict;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json = CreateDictionaryValue(R"({
'base': {
@@ -546,7 +546,7 @@
TEST(CommandDictionary, LoadWithPermissions_InvalidRole) {
CommandDictionary dict;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json = CreateDictionaryValue(R"({
'base': {
diff --git a/libweave/src/commands/command_instance.cc b/libweave/src/commands/command_instance.cc
index de0fdd5..774589f 100644
--- a/libweave/src/commands/command_instance.cc
+++ b/libweave/src/commands/command_instance.cc
@@ -5,8 +5,8 @@
#include "libweave/src/commands/command_instance.h"
#include <base/values.h>
-#include <chromeos/errors/error.h>
#include <weave/enum_to_string.h>
+#include <weave/error.h>
#include <weave/export.h>
#include "libweave/src/commands/command_definition.h"
@@ -95,7 +95,7 @@
}
bool CommandInstance::SetProgress(const base::DictionaryValue& progress,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
ObjectPropType obj_prop_type;
obj_prop_type.SetObjectSchema(command_definition_->GetProgress()->Clone());
@@ -113,7 +113,7 @@
}
bool CommandInstance::SetResults(const base::DictionaryValue& results,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
ObjectPropType obj_prop_type;
obj_prop_type.SetObjectSchema(command_definition_->GetResults()->Clone());
@@ -139,7 +139,7 @@
bool GetCommandParameters(const base::DictionaryValue* json,
const CommandDefinition* command_def,
ValueMap* parameters,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
// Get the command parameters from 'parameters' property.
base::DictionaryValue no_params; // Placeholder when no params are specified.
const base::DictionaryValue* params = nullptr;
@@ -147,10 +147,10 @@
if (json->Get(commands::attributes::kCommand_Parameters, ¶ms_value)) {
// Make sure the "parameters" property is actually an object.
if (!params_value->GetAsDictionary(¶ms)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
- errors::json::kObjectExpected,
- "Property '%s' must be a JSON object",
- commands::attributes::kCommand_Parameters);
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kObjectExpected,
+ "Property '%s' must be a JSON object",
+ commands::attributes::kCommand_Parameters);
return false;
}
} else {
@@ -175,7 +175,7 @@
CommandOrigin origin,
const CommandDictionary& dictionary,
std::string* command_id,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<CommandInstance> instance;
std::string command_id_buffer; // used if |command_id| was nullptr.
if (!command_id)
@@ -184,9 +184,9 @@
// Get the command JSON object from the value.
const base::DictionaryValue* json = nullptr;
if (!value->GetAsDictionary(&json)) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::json::kDomain,
- errors::json::kObjectExpected,
- "Command instance is not a JSON object");
+ Error::AddTo(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kObjectExpected,
+ "Command instance is not a JSON object");
command_id->clear();
return instance;
}
@@ -198,27 +198,24 @@
// Get the command name from 'name' property.
std::string command_name;
if (!json->GetString(commands::attributes::kCommand_Name, &command_name)) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kPropertyMissing,
- "Command name is missing");
+ Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kPropertyMissing, "Command name is missing");
return instance;
}
// Make sure we know how to handle the command with this name.
auto command_def = dictionary.FindCommand(command_name);
if (!command_def) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidCommandName,
- "Unknown command received: %s",
- command_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidCommandName,
+ "Unknown command received: %s", command_name.c_str());
return instance;
}
ValueMap parameters;
if (!GetCommandParameters(json, command_def, ¶meters, error)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kCommandFailed,
- "Failed to validate command '%s'",
- command_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kCommandFailed,
+ "Failed to validate command '%s'", command_name.c_str());
return instance;
}
diff --git a/libweave/src/commands/command_instance.h b/libweave/src/commands/command_instance.h
index 65726ac..3f81893 100644
--- a/libweave/src/commands/command_instance.h
+++ b/libweave/src/commands/command_instance.h
@@ -12,7 +12,7 @@
#include <base/macros.h>
#include <base/observer_list.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/command.h>
#include "libweave/src/commands/prop_values.h"
@@ -53,9 +53,9 @@
std::unique_ptr<base::DictionaryValue> GetProgress() const override;
std::unique_ptr<base::DictionaryValue> GetResults() const override;
bool SetProgress(const base::DictionaryValue& progress,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
bool SetResults(const base::DictionaryValue& results,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
void Abort() override;
void Cancel() override;
void Done() override;
@@ -78,7 +78,7 @@
CommandOrigin origin,
const CommandDictionary& dictionary,
std::string* command_id,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Sets the command ID (normally done by CommandQueue when the command
// instance is added to it).
diff --git a/libweave/src/commands/command_instance_unittest.cc b/libweave/src/commands/command_instance_unittest.cc
index cc1759b..2c2fe45 100644
--- a/libweave/src/commands/command_instance_unittest.cc
+++ b/libweave/src/commands/command_instance_unittest.cc
@@ -138,7 +138,7 @@
TEST_F(CommandInstanceTest, FromJson_NotObject) {
auto json = CreateValue("'string'");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud,
dict_, nullptr, &error);
EXPECT_EQ(nullptr, instance.get());
@@ -147,7 +147,7 @@
TEST_F(CommandInstanceTest, FromJson_NameMissing) {
auto json = CreateDictionaryValue("{'param': 'value'}");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud,
dict_, nullptr, &error);
EXPECT_EQ(nullptr, instance.get());
@@ -156,7 +156,7 @@
TEST_F(CommandInstanceTest, FromJson_UnknownCommand) {
auto json = CreateDictionaryValue("{'name': 'robot.scream'}");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud,
dict_, nullptr, &error);
EXPECT_EQ(nullptr, instance.get());
@@ -168,7 +168,7 @@
'name': 'robot.speak',
'parameters': 'hello'
})");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud,
dict_, nullptr, &error);
EXPECT_EQ(nullptr, instance.get());
@@ -185,7 +185,7 @@
'volume': 20
}
})");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud,
dict_, nullptr, &error);
EXPECT_EQ(nullptr, instance.get());
diff --git a/libweave/src/commands/command_manager.cc b/libweave/src/commands/command_manager.cc
index 3d28dec..34b10e6 100644
--- a/libweave/src/commands/command_manager.cc
+++ b/libweave/src/commands/command_manager.cc
@@ -6,8 +6,8 @@
#include <base/files/file_enumerator.h>
#include <base/values.h>
-#include <chromeos/errors/error.h>
#include <weave/enum_to_string.h>
+#include <weave/error.h>
#include "libweave/src/commands/schema_constants.h"
#include "libweave/src/utils.h"
@@ -28,12 +28,12 @@
}
bool CommandManager::LoadBaseCommands(const base::DictionaryValue& json,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return base_dictionary_.LoadCommands(json, "", nullptr, error);
}
bool CommandManager::LoadBaseCommands(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<const base::DictionaryValue> json =
LoadJsonDict(json_file_path, error);
if (!json)
@@ -43,7 +43,7 @@
bool CommandManager::LoadCommands(const base::DictionaryValue& json,
const std::string& category,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
bool result =
dictionary_.LoadCommands(json, category, &base_dictionary_, error);
for (const auto& cb : on_command_changed_)
@@ -52,7 +52,7 @@
}
bool CommandManager::LoadCommands(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<const base::DictionaryValue> json =
LoadJsonDict(json_file_path, error);
if (!json)
@@ -96,7 +96,7 @@
bool CommandManager::AddCommand(const base::DictionaryValue& command,
UserRole role,
std::string* id,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
auto command_instance = CommandInstance::FromJson(
&command, CommandOrigin::kLocal, GetCommandDictionary(), nullptr, error);
if (!command_instance)
@@ -105,7 +105,7 @@
UserRole minimal_role =
command_instance->GetCommandDefinition()->GetMinimalRole();
if (role < minimal_role) {
- chromeos::Error::AddToPrintf(
+ Error::AddToPrintf(
error, FROM_HERE, errors::commands::kDomain, "access_denied",
"User role '%s' less than minimal: '%s'", EnumToString(role).c_str(),
EnumToString(minimal_role).c_str());
@@ -125,7 +125,7 @@
bool CommandManager::SetCommandVisibility(
const std::vector<std::string>& command_names,
CommandDefinition::Visibility visibility,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (command_names.empty())
return true;
@@ -136,9 +136,9 @@
for (const std::string& name : command_names) {
CommandDefinition* def = dictionary_.FindCommand(name);
if (!def) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidCommandName,
- "Command '%s' is unknown", name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidCommandName,
+ "Command '%s' is unknown", name.c_str());
return false;
}
definitions.push_back(def);
diff --git a/libweave/src/commands/command_manager.h b/libweave/src/commands/command_manager.h
index d49373f..f42e293 100644
--- a/libweave/src/commands/command_manager.h
+++ b/libweave/src/commands/command_manager.h
@@ -35,7 +35,7 @@
bool AddCommand(const base::DictionaryValue& command,
UserRole role,
std::string* id,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
CommandInstance* FindCommand(const std::string& id) override;
void AddOnCommandAddedCallback(const OnCommandCallback& callback) override;
void AddOnCommandRemovedCallback(const OnCommandCallback& callback) override;
@@ -53,27 +53,24 @@
// device kinds.
// On success, returns true. Otherwise, |error| contains additional
// error information.
- bool LoadBaseCommands(const base::DictionaryValue& json,
- chromeos::ErrorPtr* error);
+ bool LoadBaseCommands(const base::DictionaryValue& json, ErrorPtr* error);
// Same as the overload above, but takes a path to a json file to read
// the base command definitions from.
- bool LoadBaseCommands(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error);
+ bool LoadBaseCommands(const base::FilePath& json_file_path, ErrorPtr* error);
// Loads device command schema for particular category.
// See CommandDictionary::LoadCommands for detailed description of the
// parameters.
bool LoadCommands(const base::DictionaryValue& json,
const std::string& category,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Same as the overload above, but takes a path to a json file to read
// the base command definitions from. Also, the command category is
// derived from file name (without extension). So, if the path points to
// "power_manager.json", the command category used will be "power_manager".
- bool LoadCommands(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error);
+ bool LoadCommands(const base::FilePath& json_file_path, ErrorPtr* error);
// Startup method to be called by buffet daemon at startup.
// Initializes the object and reads files in |definitions_path| to load
@@ -90,7 +87,7 @@
// Changes the visibility of commands.
bool SetCommandVisibility(const std::vector<std::string>& command_names,
CommandDefinition::Visibility visibility,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
private:
CommandDictionary base_dictionary_; // Base/std command definitions/schemas.
diff --git a/libweave/src/commands/command_manager_unittest.cc b/libweave/src/commands/command_manager_unittest.cc
index 5413c30..8d79db2 100644
--- a/libweave/src/commands/command_manager_unittest.cc
+++ b/libweave/src/commands/command_manager_unittest.cc
@@ -193,7 +193,7 @@
EXPECT_EQ("all", dict.FindCommand("foo._bar")->GetVisibility().ToString());
EXPECT_EQ("none", dict.FindCommand("bar._quux")->GetVisibility().ToString());
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(manager.SetCommandVisibility(
{"foo._baz", "foo._bar", "test.cmd"},
CommandDefinition::Visibility::GetLocal(), &error));
diff --git a/libweave/src/commands/object_schema.cc b/libweave/src/commands/object_schema.cc
index b2c6307..3d697ed 100644
--- a/libweave/src/commands/object_schema.cc
+++ b/libweave/src/commands/object_schema.cc
@@ -23,7 +23,7 @@
// Helper function for to create a PropType based on type string.
// Generates an error if the string identifies an unknown type.
std::unique_ptr<PropType> CreatePropType(const std::string& type_name,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
auto parts = SplitAtFirst(type_name, ".", false);
const std::string& primary_type = parts.first;
const std::string& array_type = parts.second;
@@ -43,18 +43,18 @@
}
}
if (!prop) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kUnknownType,
- "Unknown type %s", type_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kUnknownType, "Unknown type %s",
+ type_name.c_str());
}
return prop;
}
// Generates "no_type_info" error.
-void ErrorInvalidTypeInfo(chromeos::ErrorPtr* error) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kNoTypeInfo,
- "Unable to determine parameter type");
+void ErrorInvalidTypeInfo(ErrorPtr* error) {
+ Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kNoTypeInfo,
+ "Unable to determine parameter type");
}
// Helper function for PropFromJson to handle the case of parameter being
@@ -62,7 +62,7 @@
// "prop":"..."
std::unique_ptr<PropType> PropFromJsonString(const base::Value& value,
const PropType* base_schema,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::string type_name;
CHECK(value.GetAsString(&type_name)) << "Unable to get string value";
std::unique_ptr<PropType> prop = CreatePropType(type_name, error);
@@ -132,7 +132,7 @@
// "prop":[...]
std::unique_ptr<PropType> PropFromJsonArray(const base::Value& value,
const PropType* base_schema,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<PropType> prop;
const base::ListValue* list = nullptr;
CHECK(value.GetAsList(&list)) << "Unable to get array value";
@@ -234,7 +234,7 @@
// "prop":{...}
std::unique_ptr<PropType> PropFromJsonObject(const base::Value& value,
const PropType* base_schema,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<PropType> prop;
const base::DictionaryValue* dict = nullptr;
CHECK(value.GetAsDictionary(&dict)) << "Unable to get dictionary value";
@@ -303,13 +303,12 @@
return p != properties_.end() ? p->second.get() : nullptr;
}
-bool ObjectSchema::MarkPropRequired(const std::string& name,
- chromeos::ErrorPtr* error) {
+bool ObjectSchema::MarkPropRequired(const std::string& name, ErrorPtr* error) {
auto p = properties_.find(name);
if (p == properties_.end()) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kUnknownProperty,
- "Unknown property '%s'", name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kUnknownProperty,
+ "Unknown property '%s'", name.c_str());
return false;
}
p->second->MakeRequired(true);
@@ -330,7 +329,7 @@
bool ObjectSchema::FromJson(const base::DictionaryValue* value,
const ObjectSchema* object_schema,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
Properties properties;
base::DictionaryValue::Iterator iter(*value);
while (!iter.IsAtEnd()) {
@@ -341,10 +340,10 @@
if (prop_type) {
properties.emplace(iter.key(), std::move(prop_type));
} else {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidPropDef,
- "Error in definition of property '%s'",
- iter.key().c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidPropDef,
+ "Error in definition of property '%s'",
+ iter.key().c_str());
return false;
}
iter.Advance();
@@ -356,7 +355,7 @@
std::unique_ptr<PropType> ObjectSchema::PropFromJson(
const base::Value& value,
const PropType* base_schema,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (value.IsType(base::Value::TYPE_STRING)) {
// A string value is a short-hand object specification and provides
// the parameter type.
@@ -368,10 +367,10 @@
// Full parameter definition.
return PropFromJsonObject(value, base_schema, error);
}
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kUnknownType,
- "Unexpected JSON value type: %s",
- EnumToString(value.GetType()).c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kUnknownType,
+ "Unexpected JSON value type: %s",
+ EnumToString(value.GetType()).c_str());
return nullptr;
}
diff --git a/libweave/src/commands/object_schema.h b/libweave/src/commands/object_schema.h
index b971dd8..c65d21e 100644
--- a/libweave/src/commands/object_schema.h
+++ b/libweave/src/commands/object_schema.h
@@ -9,7 +9,7 @@
#include <memory>
#include <string>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace base {
class Value;
@@ -52,7 +52,7 @@
// Marks the property with given name as "required". If |name| specifies
// an unknown property, false is returned and |error| is set with detailed
// error message for the failure.
- bool MarkPropRequired(const std::string& name, chromeos::ErrorPtr* error);
+ bool MarkPropRequired(const std::string& name, ErrorPtr* error);
// Specify whether extra properties are allowed on objects described by
// this schema. When validating a value of an object type, we can
@@ -74,7 +74,7 @@
// used as a base schema to inherit omitted properties and constraints from.
bool FromJson(const base::DictionaryValue* value,
const ObjectSchema* object_schema,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Helper factory method to create a new instance of ObjectSchema object.
static std::unique_ptr<ObjectSchema> Create();
@@ -82,7 +82,7 @@
// Helper method to load property type definitions from JSON.
static std::unique_ptr<PropType> PropFromJson(const base::Value& value,
const PropType* base_schema,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
private:
// Internal parameter type definition map.
diff --git a/libweave/src/commands/object_schema_unittest.cc b/libweave/src/commands/object_schema_unittest.cc
index fc04dd5..c7c448a 100644
--- a/libweave/src/commands/object_schema_unittest.cc
+++ b/libweave/src/commands/object_schema_unittest.cc
@@ -49,7 +49,7 @@
bool ValidateValue(const PropType& type,
const base::Value& value,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<PropValue> val = type.CreatePropValue(value, error);
return val != nullptr;
}
@@ -129,7 +129,7 @@
TEST(CommandSchema, IntPropType_Validate) {
IntPropType prop;
prop.AddMinMaxConstraint(2, 4);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(ValidateValue(prop, *CreateValue("-1"), &error));
EXPECT_EQ("out_of_range", error->GetCode());
error.reset();
@@ -160,7 +160,7 @@
TEST(CommandSchema, IntPropType_CreateValue) {
IntPropType prop;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto val = prop.CreateValue(base::FundamentalValue{2}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
@@ -231,7 +231,7 @@
TEST(CommandSchema, BoolPropType_Validate) {
BooleanPropType prop;
prop.FromJson(CreateDictionaryValue("{'enum':[true]}").get(), &prop, nullptr);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(ValidateValue(prop, *CreateValue("false"), &error));
EXPECT_EQ("out_of_range", error->GetCode());
error.reset();
@@ -249,7 +249,7 @@
TEST(CommandSchema, BoolPropType_CreateValue) {
BooleanPropType prop;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto val = prop.CreateValue(base::FundamentalValue{true}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
@@ -341,7 +341,7 @@
TEST(CommandSchema, DoublePropType_Validate) {
DoublePropType prop;
prop.AddMinMaxConstraint(-1.2, 1.3);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(ValidateValue(prop, *CreateValue("-2"), &error));
EXPECT_EQ("out_of_range", error->GetCode());
error.reset();
@@ -366,7 +366,7 @@
TEST(CommandSchema, DoublePropType_CreateValue) {
DoublePropType prop;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto val = prop.CreateValue(base::FundamentalValue{2.0}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
@@ -460,7 +460,7 @@
TEST(CommandSchema, StringPropType_Validate) {
StringPropType prop;
prop.AddLengthConstraint(1, 3);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(ValidateValue(prop, *CreateValue("''"), &error));
EXPECT_EQ("out_of_range", error->GetCode());
error.reset();
@@ -491,7 +491,7 @@
TEST(CommandSchema, StringPropType_CreateValue) {
StringPropType prop;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto val = prop.CreateValue(base::StringValue{"blah"}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
@@ -682,7 +682,7 @@
"'password':{'maxLength':100,'minLength':6}},"
"'required':['expires','password']}").get(),
nullptr, nullptr);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_TRUE(ValidateValue(
prop, *CreateValue("{'expires':10,'password':'abcdef'}"), &error));
error.reset();
@@ -720,7 +720,7 @@
"'enum':[{'width':10,'height':20},{'width':100,'height':200}]}")
.get(),
nullptr, nullptr));
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_TRUE(
ValidateValue(prop, *CreateValue("{'height':20,'width':10}"), &error));
error.reset();
@@ -749,7 +749,7 @@
{"height", int_type.CreateValue(base::FundamentalValue{20}, nullptr)},
};
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto val = prop.CreateValue(
*CreateDictionaryValue("{'width': 10, 'height': 20}"), &error);
ASSERT_NE(nullptr, val.get());
@@ -831,7 +831,7 @@
CreateDictionaryValue("{'items':{'minimum':2.3, 'maximum':10.5}}").get(),
nullptr, nullptr);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_TRUE(ValidateValue(prop, *CreateValue("[3,4,10.5]"), &error));
error.reset();
@@ -851,7 +851,7 @@
.get(),
nullptr, nullptr);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_TRUE(ValidateValue(prop, *CreateValue("[2,3]"), &error));
error.reset();
@@ -872,7 +872,7 @@
.get(),
nullptr, nullptr));
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ValueVector arr;
auto val = prop.CreateValue(base::ListValue{}, &error);
@@ -897,7 +897,7 @@
TEST(CommandSchema, ArrayPropType_NestedArrays_NotSupported) {
ArrayPropType prop;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(prop.FromJson(
CreateDictionaryValue("{'items':{'items':'integer'}}").get(), nullptr,
&error));
@@ -1334,7 +1334,7 @@
TEST(CommandSchema, ObjectSchema_FromJson_BaseSchema_Failures) {
ObjectSchema schema;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
const char* schema_str =
"{"
"'param1':{}"
@@ -1605,7 +1605,7 @@
TEST(CommandSchema, RequiredProperties_Failures) {
ObjectPropType obj_type;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto type_str = R"({
'properties': {
@@ -1688,7 +1688,7 @@
nullptr));
auto val_json = "{'param2':20}";
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto value =
prop.CreatePropValue(*CreateDictionaryValue(val_json).get(), &error);
ASSERT_EQ(nullptr, value);
diff --git a/libweave/src/commands/prop_constraints.cc b/libweave/src/commands/prop_constraints.cc
index 0b77ec5..c1ab1c4 100644
--- a/libweave/src/commands/prop_constraints.cc
+++ b/libweave/src/commands/prop_constraints.cc
@@ -30,35 +30,33 @@
Constraint::~Constraint() {
}
-bool Constraint::ReportErrorLessThan(chromeos::ErrorPtr* error,
+bool Constraint::ReportErrorLessThan(ErrorPtr* error,
const std::string& val,
const std::string& limit) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kOutOfRange,
- "Value %s is out of range. It must not be less than %s", val.c_str(),
- limit.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kOutOfRange,
+ "Value %s is out of range. It must not be less than %s",
+ val.c_str(), limit.c_str());
return false;
}
-bool Constraint::ReportErrorGreaterThan(chromeos::ErrorPtr* error,
+bool Constraint::ReportErrorGreaterThan(ErrorPtr* error,
const std::string& val,
const std::string& limit) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kOutOfRange,
- "Value %s is out of range. It must not be greater than %s", val.c_str(),
- limit.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kOutOfRange,
+ "Value %s is out of range. It must not be greater than %s",
+ val.c_str(), limit.c_str());
return false;
}
-bool Constraint::ReportErrorNotOneOf(chromeos::ErrorPtr* error,
+bool Constraint::ReportErrorNotOneOf(ErrorPtr* error,
const std::string& val,
const std::vector<std::string>& values) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kOutOfRange,
- "Value %s is invalid. Expected one of [%s]",
- val.c_str(), Join(",", values).c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kOutOfRange,
+ "Value %s is invalid. Expected one of [%s]", val.c_str(),
+ Join(",", values).c_str());
return false;
}
@@ -97,21 +95,20 @@
}
bool ConstraintStringLengthMin::Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
CHECK(value.GetString()) << "Expecting a string value for this constraint";
const std::string& str = value.GetString()->GetValue();
int length = static_cast<int>(str.size());
if (length < limit_.value) {
if (limit_.value == 1) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kOutOfRange,
- "String must not be empty");
+ Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kOutOfRange, "String must not be empty");
} else {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kOutOfRange,
- "String must be at least %d characters long,"
- " actual length of string '%s' is %d",
- limit_.value, str.c_str(), length);
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kOutOfRange,
+ "String must be at least %d characters long,"
+ " actual length of string '%s' is %d",
+ limit_.value, str.c_str(), length);
}
return false;
}
@@ -138,16 +135,16 @@
}
bool ConstraintStringLengthMax::Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
CHECK(value.GetString()) << "Expecting a string value for this constraint";
const std::string& str = value.GetString()->GetValue();
int length = static_cast<int>(str.size());
if (length > limit_.value) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kOutOfRange,
- "String must be no more than %d character(s) "
- "long, actual length of string '%s' is %d",
- limit_.value, str.c_str(), length);
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kOutOfRange,
+ "String must be no more than %d character(s) "
+ "long, actual length of string '%s' is %d",
+ limit_.value, str.c_str(), length);
return false;
}
return true;
@@ -168,8 +165,7 @@
: set_(std::move(set)) {}
ConstraintOneOf::ConstraintOneOf(ValueVector set) : set_(std::move(set)) {}
-bool ConstraintOneOf::Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const {
+bool ConstraintOneOf::Validate(const PropValue& value, ErrorPtr* error) const {
for (const auto& item : set_.value) {
if (value.IsEqual(item.get()))
return true;
diff --git a/libweave/src/commands/prop_constraints.h b/libweave/src/commands/prop_constraints.h
index c0744d5..be06f6f 100644
--- a/libweave/src/commands/prop_constraints.h
+++ b/libweave/src/commands/prop_constraints.h
@@ -11,7 +11,7 @@
#include <base/macros.h>
#include <base/values.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/commands/prop_values.h"
#include "libweave/src/commands/schema_constants.h"
@@ -42,8 +42,7 @@
// Validates a parameter against the constraint. Returns true if parameter
// value satisfies the constraint, otherwise fills the optional |error| with
// the details for the failure.
- virtual bool Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const = 0;
+ virtual bool Validate(const PropValue& value, ErrorPtr* error) const = 0;
// Makes a full copy of this Constraint instance.
virtual std::unique_ptr<Constraint> Clone() const = 0;
@@ -77,14 +76,14 @@
// Since these functions could be used by constraint objects for various
// data types, the values used in validation are expected to be
// send as strings already.
- static bool ReportErrorLessThan(chromeos::ErrorPtr* error,
+ static bool ReportErrorLessThan(ErrorPtr* error,
const std::string& val,
const std::string& limit);
- static bool ReportErrorGreaterThan(chromeos::ErrorPtr* error,
+ static bool ReportErrorGreaterThan(ErrorPtr* error,
const std::string& val,
const std::string& limit);
- static bool ReportErrorNotOneOf(chromeos::ErrorPtr* error,
+ static bool ReportErrorNotOneOf(ErrorPtr* error,
const std::string& val,
const std::vector<std::string>& values);
@@ -130,8 +129,7 @@
ConstraintType GetType() const override { return ConstraintType::Min; }
// Implementation of Constraint::Validate().
- bool Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const override {
+ bool Validate(const PropValue& value, ErrorPtr* error) const override {
const T& v = static_cast<const TypedValueBase<T>&>(value).GetValue();
if (v < this->limit_.value) {
return this->ReportErrorLessThan(error, std::to_string(v),
@@ -171,8 +169,7 @@
ConstraintType GetType() const override { return ConstraintType::Max; }
// Implementation of Constraint::Validate().
- bool Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const override {
+ bool Validate(const PropValue& value, ErrorPtr* error) const override {
const T& v = static_cast<const TypedValueBase<T>&>(value).GetValue();
if (v > this->limit_.value)
return this->ReportErrorGreaterThan(error, std::to_string(v),
@@ -232,8 +229,7 @@
}
// Implementation of Constraint::Validate().
- bool Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const override;
+ bool Validate(const PropValue& value, ErrorPtr* error) const override;
// Implementation of Constraint::Clone().
std::unique_ptr<Constraint> Clone() const override;
@@ -261,8 +257,7 @@
}
// Implementation of Constraint::Validate().
- bool Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const override;
+ bool Validate(const PropValue& value, ErrorPtr* error) const override;
// Implementation of Constraint::Clone().
std::unique_ptr<Constraint> Clone() const override;
@@ -292,8 +287,7 @@
bool HasOverriddenAttributes() const override { return !set_.is_inherited; }
// Implementation of Constraint::Validate().
- bool Validate(const PropValue& value,
- chromeos::ErrorPtr* error) const override;
+ bool Validate(const PropValue& value, ErrorPtr* error) const override;
// Implementation of Constraint::Clone().
std::unique_ptr<Constraint> Clone() const override;
diff --git a/libweave/src/commands/prop_types.cc b/libweave/src/commands/prop_types.cc
index 5a77610..d946675 100644
--- a/libweave/src/commands/prop_types.cc
+++ b/libweave/src/commands/prop_types.cc
@@ -123,13 +123,13 @@
bool PropType::FromJson(const base::DictionaryValue* value,
const PropType* base_schema,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (base_schema && base_schema->GetType() != GetType()) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kPropTypeChanged,
- "Redefining a property of type %s as %s",
- base_schema->GetTypeAsString().c_str(),
- GetTypeAsString().c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kPropTypeChanged,
+ "Redefining a property of type %s as %s",
+ base_schema->GetTypeAsString().c_str(),
+ GetTypeAsString().c_str());
return false;
}
based_on_schema_ = (base_schema != nullptr);
@@ -159,9 +159,9 @@
while (!iter.IsAtEnd()) {
std::string key = iter.key();
if (processed_keys.find(key) == processed_keys.end()) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kUnknownProperty,
- "Unexpected property '%s'", key.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kUnknownProperty,
+ "Unexpected property '%s'", key.c_str());
return false;
}
iter.Advance();
@@ -186,10 +186,10 @@
if (value->GetWithoutPathExpansion(commands::attributes::kDefault, &defval)) {
std::unique_ptr<PropValue> prop_value = CreatePropValue(*defval, error);
if (!prop_value) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidPropValue,
- "Invalid value for property '%s'",
- commands::attributes::kDefault);
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidPropValue,
+ "Invalid value for property '%s'",
+ commands::attributes::kDefault);
return false;
}
default_.value = std::move(prop_value);
@@ -231,7 +231,7 @@
}
bool PropType::ValidateConstraints(const PropValue& value,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
for (const auto& pair : constraints_) {
if (!pair.second->Validate(value, error))
return false;
@@ -299,7 +299,7 @@
static std::unique_ptr<Constraint> LoadOneOfConstraint(
const base::DictionaryValue* value,
const PropType* prop_type,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<Constraint> constraint;
const base::Value* list = nullptr; // Owned by |value|
CHECK(value->Get(commands::attributes::kOneOf_Enum, &list))
@@ -318,7 +318,7 @@
static std::unique_ptr<Constraint> LoadMinMaxConstraint(
const char* dict_key,
const base::DictionaryValue* value,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<Constraint> constraint;
InheritableAttribute<T> limit;
@@ -338,7 +338,7 @@
bool PropTypeBase<Derived, Value, T>::ConstraintsFromJson(
const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (!PropType::ConstraintsFromJson(value, processed_keys, error))
return false;
@@ -363,7 +363,7 @@
bool NumericPropTypeBase<Derived, Value, T>::ConstraintsFromJson(
const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (!Base::ConstraintsFromJson(value, processed_keys, error))
return false;
@@ -398,7 +398,7 @@
bool StringPropType::ConstraintsFromJson(const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (!Base::ConstraintsFromJson(value, processed_keys, error))
return false;
@@ -499,7 +499,7 @@
bool ObjectPropType::ObjectSchemaFromJson(const base::DictionaryValue* value,
const PropType* base_schema,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (!Base::ObjectSchemaFromJson(value, base_schema, processed_keys, error))
return false;
@@ -517,20 +517,20 @@
processed_keys->insert(kObject_Properties);
object_schema.reset(new ObjectSchema);
if (!object_schema->FromJson(props, base_object_schema, error)) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidObjectSchema,
- "Error parsing object property schema");
+ Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidObjectSchema,
+ "Error parsing object property schema");
return false;
}
} else if (base_object_schema) {
object_schema = base_object_schema->Clone();
inherited = true;
} else {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidObjectSchema,
- "Object type definition must include the "
- "object schema ('%s' field not found)",
- kObject_Properties);
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidObjectSchema,
+ "Object type definition must include the "
+ "object schema ('%s' field not found)",
+ kObject_Properties);
return false;
}
bool extra_properties_allowed = false;
@@ -545,10 +545,10 @@
processed_keys->insert(commands::attributes::kObject_Required);
const base::ListValue* required_list = nullptr;
if (!required->GetAsList(&required_list)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidObjectSchema,
- "Property '%s' must be an array",
- commands::attributes::kObject_Required);
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidObjectSchema,
+ "Property '%s' must be an array",
+ commands::attributes::kObject_Required);
return false;
}
for (const base::Value* value : *required_list) {
@@ -556,7 +556,7 @@
if (!value->GetAsString(&name)) {
std::string json_value;
CHECK(base::JSONWriter::Write(*value, &json_value));
- chromeos::Error::AddToPrintf(
+ Error::AddToPrintf(
error, FROM_HERE, errors::commands::kDomain,
errors::commands::kInvalidObjectSchema,
"Property '%s' contains invalid element (%s). String expected",
@@ -615,7 +615,7 @@
bool ArrayPropType::ObjectSchemaFromJson(const base::DictionaryValue* value,
const PropType* base_schema,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (!Base::ObjectSchemaFromJson(value, base_schema, processed_keys, error))
return false;
@@ -632,9 +632,9 @@
if (!item_type)
return false;
if (item_type->GetType() == ValueType::Array) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidObjectSchema,
- "Arrays of arrays are not supported");
+ Error::AddTo(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidObjectSchema,
+ "Arrays of arrays are not supported");
return false;
}
SetItemType(std::move(item_type));
@@ -643,11 +643,11 @@
item_type_.value = base_type->Clone();
item_type_.is_inherited = true;
} else {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidObjectSchema,
- "Array type definition must include the "
- "array item type ('%s' field not found)",
- kItems);
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidObjectSchema,
+ "Array type definition must include the "
+ "array item type ('%s' field not found)",
+ kItems);
return false;
}
}
diff --git a/libweave/src/commands/prop_types.h b/libweave/src/commands/prop_types.h
index c8b1338..0960c3a 100644
--- a/libweave/src/commands/prop_types.h
+++ b/libweave/src/commands/prop_types.h
@@ -13,7 +13,7 @@
#include <utility>
#include <vector>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/commands/prop_constraints.h"
#include "libweave/src/commands/prop_values.h"
@@ -86,9 +86,8 @@
virtual std::unique_ptr<PropType> Clone() const;
// Creates an instance of associated value object.
- virtual std::unique_ptr<PropValue> CreatePropValue(
- const base::Value& value,
- chromeos::ErrorPtr* error) const = 0;
+ virtual std::unique_ptr<PropValue> CreatePropValue(const base::Value& value,
+ ErrorPtr* error) const = 0;
// Saves the parameter type definition as a JSON object.
// If |full_schema| is set to true, the full type definition is saved,
@@ -111,18 +110,18 @@
// error information.
virtual bool FromJson(const base::DictionaryValue* value,
const PropType* base_schema,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Helper function to load object schema from JSON.
virtual bool ObjectSchemaFromJson(const base::DictionaryValue* value,
const PropType* base_schema,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return true;
}
// Helper function to load type-specific constraints from JSON.
virtual bool ConstraintsFromJson(const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return true;
}
@@ -152,8 +151,7 @@
Constraint* GetConstraint(ConstraintType constraint_type);
// Validates the given value against all the constraints.
- bool ValidateConstraints(const PropValue& value,
- chromeos::ErrorPtr* error) const;
+ bool ValidateConstraints(const PropValue& value, ErrorPtr* error) const;
protected:
friend class StatePackage;
@@ -185,20 +183,19 @@
// Overrides from PropType.
ValueType GetType() const override { return GetValueType<T>(); }
- std::unique_ptr<PropValue> CreatePropValue(
- const base::Value& value,
- chromeos::ErrorPtr* error) const override {
+ std::unique_ptr<PropValue> CreatePropValue(const base::Value& value,
+ ErrorPtr* error) const override {
return CreateValue(value, error);
}
std::unique_ptr<Value> CreateValue(const base::Value& value,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
return Value::CreateFromJson(value, *this, error);
}
bool ConstraintsFromJson(const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
protected:
std::unique_ptr<PropValue> CreateDefaultValue() const override {
@@ -215,7 +212,7 @@
using Base = PropTypeBase<Derived, Value, T>;
bool ConstraintsFromJson(const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
// Helper method to set and obtain a min/max constraint values.
// Used mostly for unit testing.
@@ -267,7 +264,7 @@
bool ConstraintsFromJson(const base::DictionaryValue* value,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
// Helper methods to add and inspect simple constraints.
// Used mostly for unit testing.
@@ -305,7 +302,7 @@
bool ObjectSchemaFromJson(const base::DictionaryValue* value,
const PropType* base_schema,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
// Returns a schema for Object-type parameter.
inline const ObjectSchema* GetObjectSchemaPtr() const {
@@ -338,7 +335,7 @@
bool ObjectSchemaFromJson(const base::DictionaryValue* value,
const PropType* base_schema,
std::set<std::string>* processed_keys,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
// Returns a type for Array elements.
inline const PropType* GetItemTypePtr() const {
diff --git a/libweave/src/commands/prop_values.h b/libweave/src/commands/prop_values.h
index 939356a..cb8a662 100644
--- a/libweave/src/commands/prop_values.h
+++ b/libweave/src/commands/prop_values.h
@@ -9,7 +9,7 @@
#include <memory>
#include <string>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/commands/schema_utils.h"
@@ -177,7 +177,7 @@
static std::unique_ptr<Derived> CreateFromJson(const base::Value& value,
const PropType& type,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
T tmp_value;
if (!TypedValueFromJson(&value, &type, &tmp_value, error))
return nullptr;
diff --git a/libweave/src/commands/schema_utils.cc b/libweave/src/commands/schema_utils.cc
index e2c8293..85455ed 100644
--- a/libweave/src/commands/schema_utils.cc
+++ b/libweave/src/commands/schema_utils.cc
@@ -20,13 +20,13 @@
void ReportJsonTypeMismatch(const tracked_objects::Location& location,
const base::Value* value_in,
const std::string& expected_type,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::string value_as_string;
base::JSONWriter::Write(*value_in, &value_as_string);
- chromeos::Error::AddToPrintf(error, location, errors::commands::kDomain,
- errors::commands::kTypeMismatch,
- "Unable to convert value %s into %s",
- value_as_string.c_str(), expected_type.c_str());
+ Error::AddToPrintf(error, location, errors::commands::kDomain,
+ errors::commands::kTypeMismatch,
+ "Unable to convert value %s into %s",
+ value_as_string.c_str(), expected_type.c_str());
}
// Template version of ReportJsonTypeMismatch that deduces the type of expected
@@ -36,19 +36,19 @@
bool ReportUnexpectedJson(const tracked_objects::Location& location,
const base::Value* value_in,
T*,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
ReportJsonTypeMismatch(location, value_in,
PropType::GetTypeStringFromType(GetValueType<T>()),
error);
return false;
}
-bool ErrorMissingProperty(chromeos::ErrorPtr* error,
+bool ErrorMissingProperty(ErrorPtr* error,
const tracked_objects::Location& location,
const char* param_name) {
- chromeos::Error::AddToPrintf(error, location, errors::commands::kDomain,
- errors::commands::kPropertyMissing,
- "Required parameter missing: %s", param_name);
+ Error::AddToPrintf(error, location, errors::commands::kDomain,
+ errors::commands::kPropertyMissing,
+ "Required parameter missing: %s", param_name);
return false;
}
@@ -97,7 +97,7 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
bool* value_out,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return value_in->GetAsBoolean(value_out) ||
ReportUnexpectedJson(FROM_HERE, value_in, value_out, error);
}
@@ -105,7 +105,7 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
int* value_out,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return value_in->GetAsInteger(value_out) ||
ReportUnexpectedJson(FROM_HERE, value_in, value_out, error);
}
@@ -113,7 +113,7 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
double* value_out,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return value_in->GetAsDouble(value_out) ||
ReportUnexpectedJson(FROM_HERE, value_in, value_out, error);
}
@@ -121,7 +121,7 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
std::string* value_out,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return value_in->GetAsString(value_out) ||
ReportUnexpectedJson(FROM_HERE, value_in, value_out, error);
}
@@ -129,7 +129,7 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
ValueMap* value_out,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
const base::DictionaryValue* dict = nullptr;
if (!value_in->GetAsDictionary(&dict))
return ReportUnexpectedJson(FROM_HERE, value_in, value_out, error);
@@ -148,10 +148,10 @@
<< "Unable to get parameter";
auto value = pair.second->CreatePropValue(*param_value, error);
if (!value) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidPropValue,
- "Invalid value for property '%s'", pair.first.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidPropValue,
+ "Invalid value for property '%s'",
+ pair.first.c_str());
return false;
}
value_out->emplace_hint(value_out->end(), pair.first, std::move(value));
@@ -172,9 +172,9 @@
std::string key = iter.key();
if (keys_processed.find(key) == keys_processed.end() &&
!object_schema->GetExtraPropertiesAllowed()) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kUnknownProperty,
- "Unrecognized parameter '%s'", key.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kUnknownProperty,
+ "Unrecognized parameter '%s'", key.c_str());
return false;
}
iter.Advance();
@@ -185,10 +185,9 @@
const PropType* prop_type = pair.second->GetPropType();
CHECK(prop_type) << "Value property type must be available";
if (!prop_type->ValidateConstraints(*pair.second, error)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
- errors::commands::kInvalidPropValue,
- "Invalid value for property '%s'",
- pair.first.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
+ errors::commands::kInvalidPropValue,
+ "Invalid value for property '%s'", pair.first.c_str());
return false;
}
}
@@ -198,7 +197,7 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
ValueVector* value_out,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
const base::ListValue* list = nullptr;
if (!value_in->GetAsList(&list))
return ReportUnexpectedJson(FROM_HERE, value_in, value_out, error);
diff --git a/libweave/src/commands/schema_utils.h b/libweave/src/commands/schema_utils.h
index f00a89f..5691ddd 100644
--- a/libweave/src/commands/schema_utils.h
+++ b/libweave/src/commands/schema_utils.h
@@ -13,7 +13,7 @@
#include <vector>
#include <base/values.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
@@ -81,27 +81,27 @@
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
bool* value_out,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
int* value_out,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
double* value_out,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
std::string* value_out,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
ValueMap* value_out,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
bool TypedValueFromJson(const base::Value* value_in,
const PropType* type,
ValueVector* value_out,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
bool operator==(const ValueMap& obj1, const ValueMap& obj2);
bool operator==(const ValueVector& arr1, const ValueVector& arr2);
diff --git a/libweave/src/commands/schema_utils_unittest.cc b/libweave/src/commands/schema_utils_unittest.cc
index 8acb1ee..9dfadc3 100644
--- a/libweave/src/commands/schema_utils_unittest.cc
+++ b/libweave/src/commands/schema_utils_unittest.cc
@@ -79,7 +79,7 @@
TypedValueFromJson(CreateValue("false").get(), nullptr, &value, nullptr));
EXPECT_FALSE(value);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(
TypedValueFromJson(CreateValue("0").get(), nullptr, &value, &error));
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -101,7 +101,7 @@
TypedValueFromJson(CreateValue("-1234").get(), nullptr, &value, nullptr));
EXPECT_EQ(-1234, value);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(
TypedValueFromJson(CreateValue("'abc'").get(), nullptr, &value, &error));
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -129,7 +129,7 @@
&value, nullptr));
EXPECT_EQ(-123.0, value);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(
TypedValueFromJson(CreateValue("'abc'").get(), nullptr, &value, &error));
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -151,7 +151,7 @@
TypedValueFromJson(CreateValue("'abc'").get(), nullptr, &value, nullptr));
EXPECT_EQ("abc", value);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(
TypedValueFromJson(CreateValue("12").get(), nullptr, &value, &error));
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -181,7 +181,7 @@
"name", name_prop.CreateValue(base::StringValue("Bob"), nullptr)));
EXPECT_EQ(value2, value);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(
TypedValueFromJson(CreateValue("'abc'").get(), nullptr, &value, &error));
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -202,7 +202,7 @@
arr2.push_back(str_type.CreateValue(base::StringValue{"bar"}, nullptr));
EXPECT_EQ(arr2, arr);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(TypedValueFromJson(CreateValue("['baz', 'ab']").get(), &type,
&arr, &error));
EXPECT_EQ(errors::commands::kOutOfRange, error->GetCode());
diff --git a/libweave/src/commands/user_role.cc b/libweave/src/commands/user_role.cc
index 4f69849..f6b8c7d 100644
--- a/libweave/src/commands/user_role.cc
+++ b/libweave/src/commands/user_role.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/commands.h>
#include <weave/enum_to_string.h>
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc
index 3573cb8..d3dc1c0 100644
--- a/libweave/src/device_registration_info.cc
+++ b/libweave/src/device_registration_info.cc
@@ -41,13 +41,12 @@
namespace {
-inline void SetUnexpectedError(chromeos::ErrorPtr* error) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainGCD,
- "unexpected_response", "Unexpected GCD error");
+inline void SetUnexpectedError(ErrorPtr* error) {
+ Error::AddTo(error, FROM_HERE, kErrorDomainGCD, "unexpected_response",
+ "Unexpected GCD error");
}
-void ParseGCDError(const base::DictionaryValue* json,
- chromeos::ErrorPtr* error) {
+void ParseGCDError(const base::DictionaryValue* json, ErrorPtr* error) {
const base::Value* list_value = nullptr;
const base::ListValue* error_list = nullptr;
if (!json->Get("error.errors", &list_value) ||
@@ -67,8 +66,8 @@
std::string error_code, error_message;
if (error_object->GetString("reason", &error_code) &&
error_object->GetString("message", &error_message)) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainGCDServer,
- error_code, error_message);
+ Error::AddTo(error, FROM_HERE, kErrorDomainGCDServer, error_code,
+ error_message);
} else {
SetUnexpectedError(error);
}
@@ -95,11 +94,9 @@
return AppendQueryParams(result, params);
}
-void IgnoreCloudError(const chromeos::Error*) {
-}
+void IgnoreCloudError(const Error*) {}
-void IgnoreCloudErrorWithCallback(const base::Closure& cb,
- const chromeos::Error*) {
+void IgnoreCloudErrorWithCallback(const base::Closure& cb, const Error*) {
cb.Run();
}
@@ -118,8 +115,7 @@
HttpClient* transport)
: method_{method}, url_{url}, transport_{transport} {}
- std::unique_ptr<HttpClient::Response> SendAndBlock(
- chromeos::ErrorPtr* error) {
+ std::unique_ptr<HttpClient::Response> SendAndBlock(ErrorPtr* error) {
return transport_->SendRequestAndBlock(method_, url_, GetFullHeaders(),
data_, error);
}
@@ -172,16 +168,16 @@
std::unique_ptr<base::DictionaryValue> ParseJsonResponse(
const HttpClient::Response& response,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
// Make sure we have a correct content type. Do not try to parse
// binary files, or HTML output. Limit to application/json and text/plain.
std::string content_type =
SplitAtFirst(response.GetContentType(), ";", true).first;
if (content_type != http::kJson && content_type != http::kPlain) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::json::kDomain,
- "non_json_content_type",
- "Unexpected response content type: " + content_type);
+ Error::AddTo(error, FROM_HERE, errors::json::kDomain,
+ "non_json_content_type",
+ "Unexpected response content type: " + content_type);
return std::unique_ptr<base::DictionaryValue>();
}
@@ -190,15 +186,15 @@
auto value = base::JSONReader::ReadAndReturnError(json, base::JSON_PARSE_RFC,
nullptr, &error_message);
if (!value) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
- errors::json::kParseError,
- "Error '%s' occurred parsing JSON string '%s'",
- error_message.c_str(), json.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kParseError,
+ "Error '%s' occurred parsing JSON string '%s'",
+ error_message.c_str(), json.c_str());
return std::unique_ptr<base::DictionaryValue>();
}
base::DictionaryValue* dict_value = nullptr;
if (!value->GetAsDictionary(&dict_value)) {
- chromeos::Error::AddToPrintf(
+ Error::AddToPrintf(
error, FROM_HERE, errors::json::kDomain, errors::json::kObjectExpected,
"Response is not a valid JSON object: '%s'", json.c_str());
return std::unique_ptr<base::DictionaryValue>();
@@ -301,21 +297,20 @@
}
bool DeviceRegistrationInfo::VerifyRegistrationCredentials(
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
const bool have_credentials = HaveRegistrationCredentials();
VLOG(2) << "Device registration record "
<< ((have_credentials) ? "found" : "not found.");
if (!have_credentials)
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainGCD,
- "device_not_registered",
- "No valid device registration record found");
+ Error::AddTo(error, FROM_HERE, kErrorDomainGCD, "device_not_registered",
+ "No valid device registration record found");
return have_credentials;
}
std::unique_ptr<base::DictionaryValue>
DeviceRegistrationInfo::ParseOAuthResponse(const HttpClient::Response& response,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
int code = response.GetStatusCode();
auto resp = ParseJsonResponse(response, error);
if (resp && code >= http::kBadRequest) {
@@ -331,8 +326,8 @@
if (!resp->GetString("error_description", &error_message)) {
error_message = "Unexpected OAuth error";
}
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainOAuth2, error_code,
- error_message);
+ Error::AddTo(error, FROM_HERE, kErrorDomainOAuth2, error_code,
+ error_message);
return std::unique_ptr<base::DictionaryValue>();
}
return resp;
@@ -343,7 +338,7 @@
const CloudRequestErrorCallback& error_callback) {
LOG(INFO) << "Refreshing access token.";
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!VerifyRegistrationCredentials(&error)) {
error_callback.Run(error.get());
return;
@@ -394,7 +389,7 @@
const HttpClient::Response& response) {
VLOG(1) << "Refresh access token request with ID " << id << " completed";
oauth2_backoff_entry_->InformOfRequest(true);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json = ParseOAuthResponse(response, &error);
if (!json) {
error_callback->Run(error.get());
@@ -406,9 +401,8 @@
!json->GetInteger("expires_in", &expires_in) || access_token_.empty() ||
expires_in <= 0) {
LOG(ERROR) << "Access token unavailable.";
- chromeos::Error::AddTo(&error, FROM_HERE, kErrorDomainOAuth2,
- "unexpected_server_response",
- "Access token unavailable");
+ Error::AddTo(&error, FROM_HERE, kErrorDomainOAuth2,
+ "unexpected_server_response", "Access token unavailable");
error_callback->Run(error.get());
return;
}
@@ -430,7 +424,7 @@
const std::shared_ptr<base::Closure>& success_callback,
const std::shared_ptr<CloudRequestErrorCallback>& error_callback,
int id,
- const chromeos::Error* error) {
+ const Error* error) {
VLOG(1) << "Refresh access token request with ID " << id << " failed";
oauth2_backoff_entry_->InformOfRequest(false);
RefreshAccessToken(*success_callback, *error_callback);
@@ -491,7 +485,7 @@
}
std::unique_ptr<base::DictionaryValue>
-DeviceRegistrationInfo::BuildDeviceResource(chromeos::ErrorPtr* error) {
+DeviceRegistrationInfo::BuildDeviceResource(ErrorPtr* error) {
// Limit only to commands that are visible to the cloud.
auto commands = command_manager_->GetCommandDictionary().GetCommandsAsJson(
[](const CommandDefinition* def) { return def->GetVisibility().cloud; },
@@ -536,7 +530,7 @@
}
std::string DeviceRegistrationInfo::RegisterDevice(const std::string& ticket_id,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<base::DictionaryValue> device_draft =
BuildDeviceResource(error);
if (!device_draft)
@@ -585,9 +579,8 @@
!json_resp->GetString("robotAccountAuthorizationCode", &auth_code) ||
!json_resp->GetDictionary("deviceDraft", &device_draft_response) ||
!device_draft_response->GetString("id", &device_id)) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainGCD,
- "unexpected_response",
- "Device account missing in response");
+ Error::AddTo(error, FROM_HERE, kErrorDomainGCD, "unexpected_response",
+ "Device account missing in response");
return std::string();
}
@@ -614,9 +607,8 @@
!json_resp->GetString("refresh_token", &refresh_token) ||
!json_resp->GetInteger("expires_in", &expires_in) ||
access_token_.empty() || refresh_token.empty() || expires_in <= 0) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomainGCD,
- "unexpected_response",
- "Device access_token missing in response");
+ Error::AddTo(error, FROM_HERE, kErrorDomainGCD, "unexpected_response",
+ "Device access_token missing in response");
return std::string();
}
@@ -665,7 +657,7 @@
VLOG(1) << "Sending cloud request '" << data->method << "' to '" << data->url
<< "' with request body '" << data->body << "'";
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!VerifyRegistrationCredentials(&error)) {
data->error_callback.Run(error.get());
return;
@@ -719,7 +711,7 @@
return;
}
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto json_resp = ParseJsonResponse(response, &error);
if (!json_resp) {
data->error_callback.Run(error.get());
@@ -748,7 +740,7 @@
void DeviceRegistrationInfo::OnCloudRequestError(
const std::shared_ptr<const CloudRequestData>& data,
int request_id,
- const chromeos::Error* error) {
+ const Error* error) {
VLOG(1) << "Cloud request with ID " << request_id << " failed";
RetryCloudRequest(data);
}
@@ -768,13 +760,12 @@
void DeviceRegistrationInfo::OnAccessTokenError(
const std::shared_ptr<const CloudRequestData>& data,
- const chromeos::Error* error) {
+ const Error* error) {
CheckAccessTokenError(error);
data->error_callback.Run(error);
}
-void DeviceRegistrationInfo::CheckAccessTokenError(
- const chromeos::Error* error) {
+void DeviceRegistrationInfo::CheckAccessTokenError(const Error* error) {
if (error->HasError(kErrorDomainOAuth2, "invalid_grant"))
MarkDeviceUnregistered();
}
@@ -816,7 +807,7 @@
bool DeviceRegistrationInfo::UpdateDeviceInfo(const std::string& name,
const std::string& description,
const std::string& location,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
BuffetConfig::Transaction change{config_.get()};
change.set_name(name);
change.set_description(description);
@@ -835,12 +826,11 @@
const std::string& anonymous_access_role,
bool local_discovery_enabled,
bool local_pairing_enabled,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
BuffetConfig::Transaction change(config_.get());
if (!change.set_local_anonymous_access_role(anonymous_access_role)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomain,
- "invalid_parameter", "Invalid role: %s",
- anonymous_access_role.c_str());
+ Error::AddToPrintf(error, FROM_HERE, kErrorDomain, "invalid_parameter",
+ "Invalid role: %s", anonymous_access_role.c_str());
return false;
}
@@ -856,10 +846,10 @@
const std::string& api_key,
const std::string& oauth_url,
const std::string& service_url,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (HaveRegistrationCredentials()) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomain, "already_registered",
- "Unable to change config for registered device");
+ Error::AddTo(error, FROM_HERE, kErrorDomain, "already_registered",
+ "Unable to change config for registered device");
return false;
}
BuffetConfig::Transaction change{config_.get()};
@@ -883,7 +873,7 @@
}
void DeviceRegistrationInfo::NotifyCommandAborted(const std::string& command_id,
- chromeos::ErrorPtr error) {
+ ErrorPtr error) {
base::DictionaryValue command_patch;
command_patch.SetString(commands::attributes::kCommand_State,
EnumToString(CommandStatus::kAborted));
@@ -891,7 +881,7 @@
command_patch.SetString(commands::attributes::kCommand_ErrorCode,
Join(":", error->GetDomain(), error->GetCode()));
std::vector<std::string> messages;
- const chromeos::Error* current_error = error.get();
+ const Error* current_error = error.get();
while (current_error) {
messages.push_back(current_error->GetMessage());
current_error = current_error->GetInnerError();
@@ -940,7 +930,7 @@
queued_resource_update_callbacks_.clear();
VLOG(1) << "Updating GCD server with CDD...";
- chromeos::ErrorPtr error;
+ ErrorPtr error;
std::unique_ptr<base::DictionaryValue> device_resource =
BuildDeviceResource(&error);
if (!device_resource) {
@@ -991,8 +981,7 @@
StartQueuedUpdateDeviceResource();
}
-void DeviceRegistrationInfo::OnUpdateDeviceResourceError(
- const chromeos::Error* error) {
+void DeviceRegistrationInfo::OnUpdateDeviceResourceError(const Error* error) {
if (error->HasError(kErrorDomainGCDServer, "invalid_last_update_time_ms")) {
// If the server rejected our previous request, retrieve the latest
// timestamp from the server and retry.
@@ -1093,7 +1082,7 @@
void DeviceRegistrationInfo::PublishCommand(
const base::DictionaryValue& command) {
std::string command_id;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto command_instance = CommandInstance::FromJson(
&command, CommandOrigin::kCloud, command_manager_->GetCommandDictionary(),
&command_id, &error);
@@ -1177,7 +1166,7 @@
PublishStateUpdates();
}
-void DeviceRegistrationInfo::OnPublishStateError(const chromeos::Error* error) {
+void DeviceRegistrationInfo::OnPublishStateError(const Error* error) {
LOG(ERROR) << "Permanent failure while trying to update device state";
device_state_update_pending_ = false;
}
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h
index e0515a9..1dcc41b 100644
--- a/libweave/src/device_registration_info.h
+++ b/libweave/src/device_registration_info.h
@@ -18,7 +18,7 @@
#include <base/single_thread_task_runner.h>
#include <base/time/time.h>
#include <base/timer/timer.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/cloud.h>
#include <weave/config.h>
#include <weave/http_client.h>
@@ -59,8 +59,7 @@
public:
using CloudRequestCallback =
base::Callback<void(const base::DictionaryValue& response)>;
- using CloudRequestErrorCallback =
- base::Callback<void(const chromeos::Error* error)>;
+ using CloudRequestErrorCallback = base::Callback<void(const Error* error)>;
DeviceRegistrationInfo(const std::shared_ptr<CommandManager>& command_manager,
const std::shared_ptr<StateManager>& state_manager,
@@ -79,21 +78,21 @@
const OnCloudRequestCallback& success_callback,
const OnCloudRequestErrorCallback& error_callback) override;
std::string RegisterDevice(const std::string& ticket_id,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
bool UpdateDeviceInfo(const std::string& name,
const std::string& description,
const std::string& location,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
bool UpdateBaseConfig(const std::string& anonymous_access_role,
bool local_discovery_enabled,
bool local_pairing_enabled,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
bool UpdateServiceConfig(const std::string& client_id,
const std::string& client_secret,
const std::string& api_key,
const std::string& oauth_url,
const std::string& service_url,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
// Add callback to listen for changes in config.
void AddOnConfigChangedCallback(const Config::OnChangedCallback& callback);
@@ -129,7 +128,7 @@
bool HaveRegistrationCredentials() const;
// Calls HaveRegistrationCredentials() and logs an error if no credentials
// are available.
- bool VerifyRegistrationCredentials(chromeos::ErrorPtr* error) const;
+ bool VerifyRegistrationCredentials(ErrorPtr* error) const;
// Updates a command (override from CloudCommandUpdateInterface).
void UpdateCommand(const std::string& command_id,
@@ -173,13 +172,13 @@
const std::shared_ptr<base::Closure>& success_callback,
const std::shared_ptr<CloudRequestErrorCallback>& error_callback,
int id,
- const chromeos::Error* error);
+ const Error* error);
// Parse the OAuth response, and sets registration status to
// kInvalidCredentials if our registration is no longer valid.
std::unique_ptr<base::DictionaryValue> ParseOAuthResponse(
const HttpClient::Response& response,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// This attempts to open a notification channel. The channel needs to be
// restarted anytime the access_token is refreshed.
@@ -211,21 +210,20 @@
const HttpClient::Response& response);
void OnCloudRequestError(const std::shared_ptr<const CloudRequestData>& data,
int request_id,
- const chromeos::Error* error);
+ const Error* error);
void RetryCloudRequest(const std::shared_ptr<const CloudRequestData>& data);
void OnAccessTokenRefreshed(
const std::shared_ptr<const CloudRequestData>& data);
- void OnAccessTokenError(
- const std::shared_ptr<const CloudRequestData>& data,
- const chromeos::Error* error);
- void CheckAccessTokenError(const chromeos::Error* error);
+ void OnAccessTokenError(const std::shared_ptr<const CloudRequestData>& data,
+ const Error* error);
+ void CheckAccessTokenError(const Error* error);
void UpdateDeviceResource(const base::Closure& on_success,
const CloudRequestErrorCallback& on_failure);
void StartQueuedUpdateDeviceResource();
// Success/failure callbacks for UpdateDeviceResource().
void OnUpdateDeviceResourceSuccess(const base::DictionaryValue& device_info);
- void OnUpdateDeviceResourceError(const chromeos::Error* error);
+ void OnUpdateDeviceResourceError(const Error* error);
// Callback from GetDeviceInfo() to retrieve the device resource timestamp
// and retry UpdateDeviceResource() call.
@@ -256,18 +254,16 @@
void PublishStateUpdates();
void OnPublishStateSuccess(StateChangeQueueInterface::UpdateID update_id,
const base::DictionaryValue& reply);
- void OnPublishStateError(const chromeos::Error* error);
+ void OnPublishStateError(const Error* error);
// If unrecoverable error occurred (e.g. error parsing command instance),
// notify the server that the command is aborted by the device.
- void NotifyCommandAborted(const std::string& command_id,
- chromeos::ErrorPtr error);
+ void NotifyCommandAborted(const std::string& command_id, ErrorPtr error);
// Builds Cloud API devices collection REST resource which matches
// current state of the device including command definitions
// for all supported commands and current device state.
- std::unique_ptr<base::DictionaryValue> BuildDeviceResource(
- chromeos::ErrorPtr* error);
+ std::unique_ptr<base::DictionaryValue> BuildDeviceResource(ErrorPtr* error);
void SetRegistrationStatus(RegistrationStatus new_status);
void SetDeviceId(const std::string& device_id);
diff --git a/libweave/src/device_registration_info_unittest.cc b/libweave/src/device_registration_info_unittest.cc
index 75c812b..c73b55a 100644
--- a/libweave/src/device_registration_info_unittest.cc
+++ b/libweave/src/device_registration_info_unittest.cc
@@ -159,10 +159,10 @@
return dev_reg_->PublishCommands(commands);
}
- bool RefreshAccessToken(chromeos::ErrorPtr* error) const {
+ bool RefreshAccessToken(ErrorPtr* error) const {
bool succeeded = false;
auto on_success = [&succeeded]() { succeeded = true; };
- auto on_failure = [&error](const chromeos::Error* in_error) {
+ auto on_failure = [&error](const Error* in_error) {
if (error)
*error = in_error->Clone();
};
@@ -271,7 +271,7 @@
return ReplyWithJson(400, json);
})));
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(RefreshAccessToken(&error));
EXPECT_TRUE(error->HasError(kErrorDomainOAuth2, "unable_to_authenticate"));
EXPECT_EQ(RegistrationStatus::kConnecting, GetRegistrationStatus());
@@ -299,7 +299,7 @@
return ReplyWithJson(400, json);
})));
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(RefreshAccessToken(&error));
EXPECT_TRUE(error->HasError(kErrorDomainOAuth2, "invalid_grant"));
EXPECT_EQ(RegistrationStatus::kInvalidCredentials, GetRegistrationStatus());
@@ -331,7 +331,7 @@
EXPECT_EQ(test_data::kDeviceId, id);
succeeded = true;
};
- auto on_failure = [](const chromeos::Error* error) {
+ auto on_failure = [](const Error* error) {
FAIL() << "Should not be called";
};
dev_reg_->GetDeviceInfo(base::Bind(on_success), base::Bind(on_failure));
diff --git a/libweave/src/error.cc b/libweave/src/error.cc
new file mode 100644
index 0000000..92ee42e
--- /dev/null
+++ b/libweave/src/error.cc
@@ -0,0 +1,135 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <weave/error.h>
+
+#include <base/logging.h>
+#include <base/strings/stringprintf.h>
+
+namespace weave {
+
+namespace {
+inline void LogError(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message) {
+ // Use logging::LogMessage() directly instead of LOG(ERROR) to substitute
+ // the current error location with the location passed in to the Error object.
+ // This way the log will contain the actual location of the error, and not
+ // as if it always comes from chromeos/errors/error.cc(22).
+ logging::LogMessage(location.file_name(), location.line_number(),
+ logging::LOG_ERROR)
+ .stream()
+ << location.function_name() << "(...): "
+ << "Domain=" << domain << ", Code=" << code << ", Message=" << message;
+}
+} // anonymous namespace
+
+ErrorPtr Error::Create(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message) {
+ return Create(location, domain, code, message, ErrorPtr());
+}
+
+ErrorPtr Error::Create(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message,
+ ErrorPtr inner_error) {
+ LogError(location, domain, code, message);
+ return ErrorPtr(
+ new Error(location, domain, code, message, std::move(inner_error)));
+}
+
+void Error::AddTo(ErrorPtr* error,
+ const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message) {
+ if (error) {
+ *error = Create(location, domain, code, message, std::move(*error));
+ } else {
+ // Create already logs the error, but if |error| is nullptr,
+ // we still want to log the error...
+ LogError(location, domain, code, message);
+ }
+}
+
+void Error::AddToPrintf(ErrorPtr* error,
+ const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const char* format,
+ ...) {
+ va_list ap;
+ va_start(ap, format);
+ std::string message = base::StringPrintV(format, ap);
+ va_end(ap);
+ AddTo(error, location, domain, code, message);
+}
+
+ErrorPtr Error::Clone() const {
+ ErrorPtr inner_error = inner_error_ ? inner_error_->Clone() : nullptr;
+ return ErrorPtr(
+ new Error(location_, domain_, code_, message_, std::move(inner_error)));
+}
+
+bool Error::HasDomain(const std::string& domain) const {
+ return FindErrorOfDomain(this, domain) != nullptr;
+}
+
+bool Error::HasError(const std::string& domain, const std::string& code) const {
+ return FindError(this, domain, code) != nullptr;
+}
+
+const Error* Error::GetFirstError() const {
+ const Error* err = this;
+ while (err->GetInnerError())
+ err = err->GetInnerError();
+ return err;
+}
+
+Error::Error(const tracked_objects::Location& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message,
+ ErrorPtr inner_error)
+ : Error{tracked_objects::LocationSnapshot{location}, domain, code, message,
+ std::move(inner_error)} {}
+
+Error::Error(const tracked_objects::LocationSnapshot& location,
+ const std::string& domain,
+ const std::string& code,
+ const std::string& message,
+ ErrorPtr inner_error)
+ : domain_(domain),
+ code_(code),
+ message_(message),
+ location_(location),
+ inner_error_(std::move(inner_error)) {}
+
+const Error* Error::FindErrorOfDomain(const Error* error_chain_start,
+ const std::string& domain) {
+ while (error_chain_start) {
+ if (error_chain_start->GetDomain() == domain)
+ break;
+ error_chain_start = error_chain_start->GetInnerError();
+ }
+ return error_chain_start;
+}
+
+const Error* Error::FindError(const Error* error_chain_start,
+ const std::string& domain,
+ const std::string& code) {
+ while (error_chain_start) {
+ if (error_chain_start->GetDomain() == domain &&
+ error_chain_start->GetCode() == code)
+ break;
+ error_chain_start = error_chain_start->GetInnerError();
+ }
+ return error_chain_start;
+}
+
+} // namespace weave
diff --git a/libweave/src/error_unittest.cc b/libweave/src/error_unittest.cc
new file mode 100644
index 0000000..36028fb
--- /dev/null
+++ b/libweave/src/error_unittest.cc
@@ -0,0 +1,83 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <weave/error.h>
+
+#include <gtest/gtest.h>
+
+namespace weave {
+
+namespace {
+
+ErrorPtr GenerateNetworkError() {
+ tracked_objects::Location loc("GenerateNetworkError", "error_unittest.cc", 15,
+ ::tracked_objects::GetProgramCounter());
+ return Error::Create(loc, "network", "not_found", "Resource not found");
+}
+
+ErrorPtr GenerateHttpError() {
+ ErrorPtr inner = GenerateNetworkError();
+ return Error::Create(FROM_HERE, "HTTP", "404", "Not found", std::move(inner));
+}
+
+} // namespace
+
+TEST(Error, Single) {
+ ErrorPtr err = GenerateNetworkError();
+ EXPECT_EQ("network", err->GetDomain());
+ EXPECT_EQ("not_found", err->GetCode());
+ EXPECT_EQ("Resource not found", err->GetMessage());
+ EXPECT_EQ("GenerateNetworkError", err->GetLocation().function_name);
+ EXPECT_EQ("error_unittest.cc", err->GetLocation().file_name);
+ EXPECT_EQ(15, err->GetLocation().line_number);
+ EXPECT_EQ(nullptr, err->GetInnerError());
+ EXPECT_TRUE(err->HasDomain("network"));
+ EXPECT_FALSE(err->HasDomain("HTTP"));
+ EXPECT_FALSE(err->HasDomain("foo"));
+ EXPECT_TRUE(err->HasError("network", "not_found"));
+ EXPECT_FALSE(err->HasError("network", "404"));
+ EXPECT_FALSE(err->HasError("HTTP", "404"));
+ EXPECT_FALSE(err->HasError("HTTP", "not_found"));
+ EXPECT_FALSE(err->HasError("foo", "bar"));
+}
+
+TEST(Error, Nested) {
+ ErrorPtr err = GenerateHttpError();
+ EXPECT_EQ("HTTP", err->GetDomain());
+ EXPECT_EQ("404", err->GetCode());
+ EXPECT_EQ("Not found", err->GetMessage());
+ EXPECT_NE(nullptr, err->GetInnerError());
+ EXPECT_EQ("network", err->GetInnerError()->GetDomain());
+ EXPECT_TRUE(err->HasDomain("network"));
+ EXPECT_TRUE(err->HasDomain("HTTP"));
+ EXPECT_FALSE(err->HasDomain("foo"));
+ EXPECT_TRUE(err->HasError("network", "not_found"));
+ EXPECT_FALSE(err->HasError("network", "404"));
+ EXPECT_TRUE(err->HasError("HTTP", "404"));
+ EXPECT_FALSE(err->HasError("HTTP", "not_found"));
+ EXPECT_FALSE(err->HasError("foo", "bar"));
+}
+
+TEST(Error, Clone) {
+ ErrorPtr err = GenerateHttpError();
+ ErrorPtr clone = err->Clone();
+ const Error* error1 = err.get();
+ const Error* error2 = clone.get();
+ while (error1 && error2) {
+ EXPECT_NE(error1, error2);
+ EXPECT_EQ(error1->GetDomain(), error2->GetDomain());
+ EXPECT_EQ(error1->GetCode(), error2->GetCode());
+ EXPECT_EQ(error1->GetMessage(), error2->GetMessage());
+ EXPECT_EQ(error1->GetLocation().function_name,
+ error2->GetLocation().function_name);
+ EXPECT_EQ(error1->GetLocation().file_name, error2->GetLocation().file_name);
+ EXPECT_EQ(error1->GetLocation().line_number,
+ error2->GetLocation().line_number);
+ error1 = error1->GetInnerError();
+ error2 = error2->GetInnerError();
+ }
+ EXPECT_EQ(error1, error2);
+}
+
+} // namespace weave
diff --git a/libweave/src/mock_http_client.cc b/libweave/src/mock_http_client.cc
index 1f223a9..a1d7160 100644
--- a/libweave/src/mock_http_client.cc
+++ b/libweave/src/mock_http_client.cc
@@ -15,7 +15,7 @@
const std::string& url,
const Headers& headers,
const std::string& data,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return std::unique_ptr<Response>{
MockSendRequest(method, url, headers, data, error)};
}
@@ -26,7 +26,7 @@
const std::string& data,
const SuccessCallback& success_callback,
const ErrorCallback& error_callback) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
std::unique_ptr<Response> response{
MockSendRequest(method, url, headers, data, &error)};
if (response) {
diff --git a/libweave/src/notification/pull_channel.cc b/libweave/src/notification/pull_channel.cc
index d358e95..2342e7d 100644
--- a/libweave/src/notification/pull_channel.cc
+++ b/libweave/src/notification/pull_channel.cc
@@ -5,6 +5,7 @@
#include "libweave/src/notification/pull_channel.h"
#include <base/bind.h>
+#include <base/location.h>
#include <weave/task_runner.h>
#include "libweave/src/notification/notification_delegate.h"
diff --git a/libweave/src/notification/xmpp_channel.cc b/libweave/src/notification/xmpp_channel.cc
index de0ba44..90d35d2 100644
--- a/libweave/src/notification/xmpp_channel.cc
+++ b/libweave/src/notification/xmpp_channel.cc
@@ -307,7 +307,7 @@
RestartXmppStream();
}
-void XmppChannel::OnTlsError(const chromeos::Error* error) {
+void XmppChannel::OnTlsError(const Error* error) {
LOG(ERROR) << "TLS handshake failed. Restarting XMPP connection";
Restart();
}
@@ -320,7 +320,7 @@
}
write_socket_data_ = queued_write_data_ + message;
queued_write_data_.clear();
- chromeos::ErrorPtr error;
+ ErrorPtr error;
VLOG(2) << "Sending XMPP message: " << message;
write_pending_ = true;
@@ -335,7 +335,7 @@
}
void XmppChannel::OnMessageSent() {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
write_pending_ = false;
if (!stream_->FlushBlocking(&error)) {
OnWriteError(error.get());
@@ -352,7 +352,7 @@
if (read_pending_ || !stream_)
return;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
read_pending_ = true;
bool ok = stream_->ReadAsync(
read_socket_data_.data(), read_socket_data_.size(),
@@ -364,12 +364,12 @@
OnReadError(error.get());
}
-void XmppChannel::OnReadError(const chromeos::Error* error) {
+void XmppChannel::OnReadError(const Error* error) {
read_pending_ = false;
Restart();
}
-void XmppChannel::OnWriteError(const chromeos::Error* error) {
+void XmppChannel::OnWriteError(const Error* error) {
write_pending_ = false;
Restart();
}
diff --git a/libweave/src/notification/xmpp_channel.h b/libweave/src/notification/xmpp_channel.h
index 2f26748..112799f 100644
--- a/libweave/src/notification/xmpp_channel.h
+++ b/libweave/src/notification/xmpp_channel.h
@@ -105,15 +105,15 @@
void StartTlsHandshake();
void OnTlsHandshakeComplete(std::unique_ptr<Stream> tls_stream);
- void OnTlsError(const chromeos::Error* error);
+ void OnTlsError(const Error* error);
void WaitForMessage();
void OnConnected();
void OnMessageRead(size_t size);
void OnMessageSent();
- void OnReadError(const chromeos::Error* error);
- void OnWriteError(const chromeos::Error* error);
+ void OnReadError(const Error* error);
+ void OnWriteError(const Error* error);
void Restart();
void CloseStream();
diff --git a/libweave/src/notification/xmpp_channel_unittest.cc b/libweave/src/notification/xmpp_channel_unittest.cc
index 5a1b86d..1816288 100644
--- a/libweave/src/notification/xmpp_channel_unittest.cc
+++ b/libweave/src/notification/xmpp_channel_unittest.cc
@@ -85,9 +85,9 @@
public:
explicit FakeStream(TaskRunner* task_runner) : task_runner_{task_runner} {}
- bool FlushBlocking(chromeos::ErrorPtr* error) override { return true; }
+ bool FlushBlocking(ErrorPtr* error) override { return true; }
- bool CloseBlocking(chromeos::ErrorPtr* error) override { return true; }
+ bool CloseBlocking(ErrorPtr* error) override { return true; }
void CancelPendingAsyncOperations() override {}
@@ -99,12 +99,11 @@
read_data_ += data;
}
- bool ReadAsync(
- void* buffer,
- size_t size_to_read,
- const base::Callback<void(size_t)>& success_callback,
- const base::Callback<void(const chromeos::Error*)>& error_callback,
- chromeos::ErrorPtr* error) override {
+ bool ReadAsync(void* buffer,
+ size_t size_to_read,
+ const base::Callback<void(size_t)>& success_callback,
+ const base::Callback<void(const Error*)>& error_callback,
+ ErrorPtr* error) override {
size_t size = std::min(size_to_read, read_data_.size());
memcpy(buffer, read_data_.data(), size);
read_data_ = read_data_.substr(size);
@@ -113,12 +112,11 @@
return true;
}
- bool WriteAllAsync(
- const void* buffer,
- size_t size_to_write,
- const base::Closure& success_callback,
- const base::Callback<void(const chromeos::Error*)>& error_callback,
- chromeos::ErrorPtr* error) override {
+ bool WriteAllAsync(const void* buffer,
+ size_t size_to_write,
+ const base::Closure& success_callback,
+ const base::Callback<void(const Error*)>& error_callback,
+ ErrorPtr* error) override {
size_t size = std::min(size_to_write, write_data_.size());
EXPECT_EQ(
write_data_.substr(0, size),
diff --git a/libweave/src/privet/cloud_delegate.cc b/libweave/src/privet/cloud_delegate.cc
index f2cbdbf..3a2a249 100644
--- a/libweave/src/privet/cloud_delegate.cc
+++ b/libweave/src/privet/cloud_delegate.cc
@@ -11,7 +11,7 @@
#include <base/logging.h>
#include <base/memory/weak_ptr.h>
#include <base/values.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/task_runner.h>
#include "libweave/src/buffet_config.h"
@@ -20,8 +20,6 @@
#include "libweave/src/privet/constants.h"
#include "libweave/src/states/state_manager.h"
-using chromeos::ErrorPtr;
-
namespace weave {
namespace privet {
@@ -30,11 +28,9 @@
const int kMaxSetupRetries = 5;
const int kFirstRetryTimeoutSec = 1;
-Command* ReturnNotFound(const std::string& command_id,
- chromeos::ErrorPtr* error) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::kDomain,
- errors::kNotFound, "Command not found, ID='%s'",
- command_id.c_str());
+Command* ReturnNotFound(const std::string& command_id, ErrorPtr* error) {
+ Error::AddToPrintf(error, FROM_HERE, errors::kDomain, errors::kNotFound,
+ "Command not found, ID='%s'", command_id.c_str());
return nullptr;
}
@@ -66,18 +62,18 @@
~CloudDelegateImpl() override = default;
- bool GetModelId(std::string* id, chromeos::ErrorPtr* error) const override {
+ bool GetModelId(std::string* id, ErrorPtr* error) const override {
if (device_->GetConfig().model_id().size() != 5) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::kDomain, errors::kInvalidState,
- "Model ID is invalid: %s", device_->GetConfig().model_id().c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::kDomain,
+ errors::kInvalidState, "Model ID is invalid: %s",
+ device_->GetConfig().model_id().c_str());
return false;
}
*id = device_->GetConfig().model_id();
return true;
}
- bool GetName(std::string* name, chromeos::ErrorPtr* error) const override {
+ bool GetName(std::string* name, ErrorPtr* error) const override {
*name = device_->GetConfig().name();
return true;
}
@@ -95,7 +91,7 @@
const std::string& location,
const base::Closure& success_callback,
const ErrorCallback& error_callback) override {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!device_->UpdateDeviceInfo(name, description, location, &error))
return error_callback.Run(error.get());
success_callback.Run();
@@ -135,10 +131,10 @@
bool Setup(const std::string& ticket_id,
const std::string& user,
- chromeos::ErrorPtr* error) override {
+ ErrorPtr* error) override {
if (setup_state_.IsStatusEqual(SetupState::kInProgress)) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kDeviceBusy, "Setup in progress");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kDeviceBusy,
+ "Setup in progress");
return false;
}
VLOG(1) << "GCD Setup started. ticket_id: " << ticket_id
@@ -170,13 +166,13 @@
CHECK(user_info.scope() != AuthScope::kNone);
CHECK_NE(user_info.user_id(), 0u);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
UserRole role;
std::string str_scope = EnumToString(user_info.scope());
if (!StringToEnum(str_scope, &role)) {
- chromeos::Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
- errors::kInvalidParams, "Invalid role: '%s'",
- str_scope.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, "Invalid role: '%s'",
+ str_scope.c_str());
return error_callback.Run(error.get());
}
@@ -193,7 +189,7 @@
const SuccessCallback& success_callback,
const ErrorCallback& error_callback) override {
CHECK(user_info.scope() != AuthScope::kNone);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto command = GetCommandInternal(id, user_info, &error);
if (!command)
return error_callback.Run(error.get());
@@ -205,7 +201,7 @@
const SuccessCallback& success_callback,
const ErrorCallback& error_callback) override {
CHECK(user_info.scope() != AuthScope::kNone);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
auto command = GetCommandInternal(id, user_info, &error);
if (!command)
return error_callback.Run(error.get());
@@ -255,8 +251,8 @@
} else if (status == RegistrationStatus::kConnected) {
connection_state_ = ConnectionState{ConnectionState::kOnline};
} else {
- chromeos::ErrorPtr error;
- chromeos::Error::AddToPrintf(
+ ErrorPtr error;
+ Error::AddToPrintf(
&error, FROM_HERE, errors::kDomain, errors::kInvalidState,
"Unexpected registration status: %s", EnumToString(status).c_str());
connection_state_ = ConnectionState{std::move(error)};
@@ -282,14 +278,11 @@
NotifyOnCommandDefsChanged();
}
- void RetryRegister(const std::string& ticket_id,
- int retries,
- chromeos::Error* error) {
+ void RetryRegister(const std::string& ticket_id, int retries, Error* error) {
if (retries >= kMaxSetupRetries) {
- chromeos::ErrorPtr new_error{error ? error->Clone() : nullptr};
- chromeos::Error::AddTo(&new_error, FROM_HERE, errors::kDomain,
- errors::kInvalidState,
- "Failed to register device");
+ ErrorPtr new_error{error ? error->Clone() : nullptr};
+ Error::AddTo(&new_error, FROM_HERE, errors::kDomain,
+ errors::kInvalidState, "Failed to register device");
setup_state_ = SetupState{std::move(new_error)};
return;
}
@@ -306,7 +299,7 @@
}
void CallManagerRegisterDevice(const std::string& ticket_id, int retries) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (device_->RegisterDevice(ticket_id, &error).empty())
return RetryRegister(ticket_id, retries, error.get());
setup_state_ = SetupState(SetupState::kSuccess);
@@ -314,7 +307,7 @@
Command* GetCommandInternal(const std::string& command_id,
const UserInfo& user_info,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
if (user_info.scope() != AuthScope::kOwner) {
auto it = command_owners_.find(command_id);
if (it == command_owners_.end())
@@ -332,7 +325,7 @@
bool CanAccessCommand(uint64_t owner_id,
const UserInfo& user_info,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
CHECK(user_info.scope() != AuthScope::kNone);
CHECK_NE(user_info.user_id(), 0u);
@@ -341,9 +334,8 @@
return true;
}
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kAccessDenied,
- "Need to be owner of the command.");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kAccessDenied,
+ "Need to be owner of the command.");
return false;
}
diff --git a/libweave/src/privet/cloud_delegate.h b/libweave/src/privet/cloud_delegate.h
index 3b80b2e..5f79a6d 100644
--- a/libweave/src/privet/cloud_delegate.h
+++ b/libweave/src/privet/cloud_delegate.h
@@ -37,7 +37,7 @@
virtual ~CloudDelegate();
using SuccessCallback = base::Callback<void(const base::DictionaryValue&)>;
- using ErrorCallback = base::Callback<void(chromeos::Error*)>;
+ using ErrorCallback = base::Callback<void(Error*)>;
class Observer {
public:
@@ -49,10 +49,10 @@
};
// Returns the model ID of the device.
- virtual bool GetModelId(std::string* id, chromeos::ErrorPtr* error) const = 0;
+ virtual bool GetModelId(std::string* id, ErrorPtr* error) const = 0;
// Returns the name of device.
- virtual bool GetName(std::string* name, chromeos::ErrorPtr* error) const = 0;
+ virtual bool GetName(std::string* name, ErrorPtr* error) const = 0;
// Returns the description of the device.
virtual std::string GetDescription() const = 0;
@@ -89,7 +89,7 @@
// Starts GCD setup.
virtual bool Setup(const std::string& ticket_id,
const std::string& user,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Returns cloud id if the registered device or empty string if unregistered.
virtual std::string GetCloudId() const = 0;
diff --git a/libweave/src/privet/mock_delegates.h b/libweave/src/privet/mock_delegates.h
index 3696276..94686c3 100644
--- a/libweave/src/privet/mock_delegates.h
+++ b/libweave/src/privet/mock_delegates.h
@@ -68,19 +68,16 @@
MOCK_CONST_METHOD0(GetPairingTypes, std::set<PairingType>());
MOCK_CONST_METHOD0(GetCryptoTypes, std::set<CryptoType>());
MOCK_CONST_METHOD1(IsValidPairingCode, bool(const std::string&));
- MOCK_METHOD5(StartPairing,
- bool(PairingType,
- CryptoType,
- std::string*,
- std::string*,
- chromeos::ErrorPtr*));
+ MOCK_METHOD5(
+ StartPairing,
+ bool(PairingType, CryptoType, std::string*, std::string*, ErrorPtr*));
MOCK_METHOD5(ConfirmPairing,
bool(const std::string&,
const std::string&,
std::string*,
std::string*,
- chromeos::ErrorPtr*));
- MOCK_METHOD2(CancelPairing, bool(const std::string&, chromeos::ErrorPtr*));
+ ErrorPtr*));
+ MOCK_METHOD2(CancelPairing, bool(const std::string&, ErrorPtr*));
MockSecurityDelegate() {
EXPECT_CALL(*this, CreateAccessToken(_, _))
@@ -120,9 +117,7 @@
MOCK_CONST_METHOD0(GetConnectionState, const ConnectionState&());
MOCK_CONST_METHOD0(GetSetupState, const SetupState&());
MOCK_METHOD3(ConfigureCredentials,
- bool(const std::string&,
- const std::string&,
- chromeos::ErrorPtr*));
+ bool(const std::string&, const std::string&, ErrorPtr*));
MOCK_CONST_METHOD0(GetCurrentlyConnectedSsid, std::string());
MOCK_CONST_METHOD0(GetHostedSsid, std::string());
MOCK_CONST_METHOD0(GetTypes, std::set<WifiType>());
@@ -144,8 +139,8 @@
class MockCloudDelegate : public CloudDelegate {
public:
- MOCK_CONST_METHOD2(GetModelId, bool(std::string*, chromeos::ErrorPtr*));
- MOCK_CONST_METHOD2(GetName, bool(std::string*, chromeos::ErrorPtr*));
+ MOCK_CONST_METHOD2(GetModelId, bool(std::string*, ErrorPtr*));
+ MOCK_CONST_METHOD2(GetName, bool(std::string*, ErrorPtr*));
MOCK_CONST_METHOD0(GetDescription, std::string());
MOCK_CONST_METHOD0(GetLocation, std::string());
MOCK_METHOD5(UpdateDeviceInfo,
@@ -160,10 +155,7 @@
MOCK_CONST_METHOD0(GetAnonymousMaxScope, AuthScope());
MOCK_CONST_METHOD0(GetConnectionState, const ConnectionState&());
MOCK_CONST_METHOD0(GetSetupState, const SetupState&());
- MOCK_METHOD3(Setup,
- bool(const std::string&,
- const std::string&,
- chromeos::ErrorPtr*));
+ MOCK_METHOD3(Setup, bool(const std::string&, const std::string&, ErrorPtr*));
MOCK_CONST_METHOD0(GetCloudId, std::string());
MOCK_CONST_METHOD0(GetState, const base::DictionaryValue&());
MOCK_CONST_METHOD0(GetCommandDef, const base::DictionaryValue&());
diff --git a/libweave/src/privet/privet_handler.cc b/libweave/src/privet/privet_handler.cc
index 9f22750..b83df36 100644
--- a/libweave/src/privet/privet_handler.cc
+++ b/libweave/src/privet/privet_handler.cc
@@ -158,8 +158,7 @@
return SplitAtFirst(auth_header, " ", true).second;
}
-std::unique_ptr<base::DictionaryValue> ErrorInfoToJson(
- const chromeos::Error& error) {
+std::unique_ptr<base::DictionaryValue> ErrorInfoToJson(const Error& error) {
std::unique_ptr<base::DictionaryValue> output{new base::DictionaryValue};
output->SetString(kErrorMessageKey, error.GetMessage());
output->SetString(kErrorCodeKey, error.GetCode());
@@ -167,13 +166,12 @@
}
// Creates JSON similar to GCD server error format.
-std::unique_ptr<base::DictionaryValue> ErrorToJson(
- const chromeos::Error& error) {
+std::unique_ptr<base::DictionaryValue> ErrorToJson(const Error& error) {
std::unique_ptr<base::DictionaryValue> output{ErrorInfoToJson(error)};
// Optional debug information.
std::unique_ptr<base::ListValue> errors{new base::ListValue};
- for (const chromeos::Error* it = &error; it; it = it->GetInnerError()) {
+ for (const Error* it = &error; it; it = it->GetInnerError()) {
std::unique_ptr<base::DictionaryValue> inner{ErrorInfoToJson(*it)};
tracked_objects::Location location{it->GetLocation().function_name.c_str(),
it->GetLocation().file_name.c_str(),
@@ -196,7 +194,7 @@
parent->Set(kErrorKey, ErrorToJson(*state.error()).release());
}
-void ReturnError(const chromeos::Error& error,
+void ReturnError(const Error& error,
const PrivetHandler::RequestCallback& callback) {
int code = http::kInternalServerError;
for (const auto& it : kReasonToCode) {
@@ -216,17 +214,17 @@
}
void OnCommandRequestFailed(const PrivetHandler::RequestCallback& callback,
- chromeos::Error* error) {
+ Error* error) {
if (error->HasError("gcd", "unknown_command")) {
- chromeos::ErrorPtr new_error = error->Clone();
- chromeos::Error::AddTo(&new_error, FROM_HERE, errors::kDomain,
- errors::kNotFound, "Unknown command ID");
+ ErrorPtr new_error = error->Clone();
+ Error::AddTo(&new_error, FROM_HERE, errors::kDomain, errors::kNotFound,
+ "Unknown command ID");
return ReturnError(*new_error, callback);
}
if (error->HasError("gcd", "access_denied")) {
- chromeos::ErrorPtr new_error = error->Clone();
- chromeos::Error::AddTo(&new_error, FROM_HERE, errors::kDomain,
- errors::kAccessDenied, error->GetMessage());
+ ErrorPtr new_error = error->Clone();
+ Error::AddTo(&new_error, FROM_HERE, errors::kDomain, errors::kAccessDenied,
+ error->GetMessage());
return ReturnError(*new_error, callback);
}
return ReturnError(*error, callback);
@@ -412,29 +410,29 @@
const std::string& auth_header,
const base::DictionaryValue* input,
const RequestCallback& callback) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!input) {
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain,
- errors::kInvalidFormat, "Malformed JSON");
+ Error::AddTo(&error, FROM_HERE, errors::kDomain, errors::kInvalidFormat,
+ "Malformed JSON");
return ReturnError(*error, callback);
}
auto handler = handlers_.find(api);
if (handler == handlers_.end()) {
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain,
- errors::kNotFound, "Path not found");
+ Error::AddTo(&error, FROM_HERE, errors::kDomain, errors::kNotFound,
+ "Path not found");
return ReturnError(*error, callback);
}
if (auth_header.empty()) {
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain,
- errors::kMissingAuthorization,
- "Authorization header must not be empty");
+ Error::AddTo(&error, FROM_HERE, errors::kDomain,
+ errors::kMissingAuthorization,
+ "Authorization header must not be empty");
return ReturnError(*error, callback);
}
std::string token = GetAuthTokenFromAuthHeader(auth_header);
if (token.empty()) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidAuthorization,
- "Invalid authorization header: %s", auth_header.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidAuthorization,
+ "Invalid authorization header: %s", auth_header.c_str());
return ReturnError(*error, callback);
}
UserInfo user_info;
@@ -442,27 +440,27 @@
base::Time time;
user_info = security_->ParseAccessToken(token, &time);
if (user_info.scope() == AuthScope::kNone) {
- chromeos::Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
- errors::kInvalidAuthorization,
- "Invalid access token: %s", token.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidAuthorization,
+ "Invalid access token: %s", token.c_str());
return ReturnError(*error, callback);
}
time += base::TimeDelta::FromSeconds(kAccessTokenExpirationSeconds);
time +=
base::TimeDelta::FromSeconds(kAccessTokenExpirationThresholdSeconds);
if (time < base::Time::Now()) {
- chromeos::Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
- errors::kAuthorizationExpired,
- "Token expired: %s", token.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kAuthorizationExpired, "Token expired: %s",
+ token.c_str());
return ReturnError(*error, callback);
}
}
if (handler->second.first > user_info.scope()) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidAuthorizationScope,
- "Scope '%s' does not allow '%s'",
- EnumToString(user_info.scope()).c_str(), api.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidAuthorizationScope,
+ "Scope '%s' does not allow '%s'",
+ EnumToString(user_info.scope()).c_str(), api.c_str());
return ReturnError(*error, callback);
}
(this->*handler->second.second)(*input, user_info, callback);
@@ -479,7 +477,7 @@
const RequestCallback& callback) {
base::DictionaryValue output;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
std::string name;
std::string model_id;
@@ -525,7 +523,7 @@
void PrivetHandler::HandlePairingStart(const base::DictionaryValue& input,
const UserInfo& user_info,
const RequestCallback& callback) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
std::string pairing_str;
input.GetString(kPairingKey, &pairing_str);
@@ -536,18 +534,18 @@
PairingType pairing;
std::set<PairingType> modes = security_->GetPairingTypes();
if (!StringToEnum(pairing_str, &pairing) || !ContainsKey(modes, pairing)) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
- kInvalidParamValueFormat, kPairingKey, pairing_str.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, kInvalidParamValueFormat,
+ kPairingKey, pairing_str.c_str());
return ReturnError(*error, callback);
}
CryptoType crypto;
std::set<CryptoType> cryptos = security_->GetCryptoTypes();
if (!StringToEnum(crypto_str, &crypto) || !ContainsKey(cryptos, crypto)) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
- kInvalidParamValueFormat, kCryptoKey, crypto_str.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, kInvalidParamValueFormat,
+ kCryptoKey, crypto_str.c_str());
return ReturnError(*error, callback);
}
@@ -573,7 +571,7 @@
std::string fingerprint;
std::string signature;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!security_->ConfirmPairing(id, commitment, &fingerprint, &signature,
&error)) {
return ReturnError(*error, callback);
@@ -591,7 +589,7 @@
std::string id;
input.GetString(kPairingSessionIdKey, &id);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!security_->CancelPairing(id, &error))
return ReturnError(*error, callback);
@@ -602,7 +600,7 @@
void PrivetHandler::HandleAuth(const base::DictionaryValue& input,
const UserInfo& user_info,
const RequestCallback& callback) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
std::string auth_code_type;
input.GetString(kAuthModeKey, &auth_code_type);
@@ -615,16 +613,16 @@
max_auth_scope = GetAnonymousMaxScope(*cloud_, wifi_);
} else if (auth_code_type == kAuthTypePairingValue) {
if (!security_->IsValidPairingCode(auth_code)) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidAuthCode,
- kInvalidParamValueFormat, kAuthCodeKey, auth_code.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidAuthCode, kInvalidParamValueFormat,
+ kAuthCodeKey, auth_code.c_str());
return ReturnError(*error, callback);
}
max_auth_scope = AuthScope::kOwner;
} else {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidAuthMode,
- kInvalidParamValueFormat, kAuthModeKey, auth_code_type.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidAuthMode, kInvalidParamValueFormat,
+ kAuthModeKey, auth_code_type.c_str());
return ReturnError(*error, callback);
}
@@ -634,18 +632,16 @@
AuthScope requested_auth_scope =
AuthScopeFromString(requested_scope, max_auth_scope);
if (requested_auth_scope == AuthScope::kNone) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidRequestedScope,
- kInvalidParamValueFormat, kAuthRequestedScopeKey,
- requested_scope.c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidRequestedScope, kInvalidParamValueFormat,
+ kAuthRequestedScopeKey, requested_scope.c_str());
return ReturnError(*error, callback);
}
if (requested_auth_scope > max_auth_scope) {
- chromeos::Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
- errors::kAccessDenied,
- "Scope '%s' is not allowed",
- EnumToString(requested_auth_scope).c_str());
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kAccessDenied, "Scope '%s' is not allowed",
+ EnumToString(requested_auth_scope).c_str());
return ReturnError(*error, callback);
}
@@ -664,7 +660,7 @@
const UserInfo& user_info,
const RequestCallback& callback) {
std::string name;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!cloud_->GetName(&name, &error))
return ReturnError(*error, callback);
input.GetString(kNameKey, &name);
@@ -683,16 +679,15 @@
const base::DictionaryValue* wifi = nullptr;
if (input.GetDictionary(kWifiKey, &wifi)) {
if (!wifi_ || wifi_->GetTypes().empty()) {
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain,
- errors::kSetupUnavailable,
- "WiFi setup unavailible");
+ Error::AddTo(&error, FROM_HERE, errors::kDomain,
+ errors::kSetupUnavailable, "WiFi setup unavailible");
return ReturnError(*error, callback);
}
wifi->GetString(kSetupStartSsidKey, &ssid);
if (ssid.empty()) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
- kInvalidParamValueFormat, kSetupStartSsidKey, "");
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, kInvalidParamValueFormat,
+ kSetupStartSsidKey, "");
return ReturnError(*error, callback);
}
wifi->GetString(kSetupStartPassKey, &passphrase);
@@ -702,9 +697,9 @@
if (input.GetDictionary(kGcdKey, ®istration)) {
registration->GetString(kSetupStartTicketIdKey, &ticket);
if (ticket.empty()) {
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
- kInvalidParamValueFormat, kSetupStartTicketIdKey, "");
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, kInvalidParamValueFormat,
+ kSetupStartTicketIdKey, "");
return ReturnError(*error, callback);
}
registration->GetString(kSetupStartUserKey, &user);
@@ -723,7 +718,7 @@
const std::string& ticket,
const std::string& user,
const RequestCallback& callback) const {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
if (!ssid.empty() && !wifi_->ConfigureCredentials(ssid, passphrase, &error))
return ReturnError(*error, callback);
@@ -803,10 +798,10 @@
const RequestCallback& callback) {
std::string id;
if (!input.GetString(kCommandsIdKey, &id)) {
- chromeos::ErrorPtr error;
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
- kInvalidParamValueFormat, kCommandsIdKey, id.c_str());
+ ErrorPtr error;
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, kInvalidParamValueFormat,
+ kCommandsIdKey, id.c_str());
return ReturnError(*error, callback);
}
cloud_->GetCommand(id, user_info,
@@ -827,10 +822,10 @@
const RequestCallback& callback) {
std::string id;
if (!input.GetString(kCommandsIdKey, &id)) {
- chromeos::ErrorPtr error;
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
- kInvalidParamValueFormat, kCommandsIdKey, id.c_str());
+ ErrorPtr error;
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain,
+ errors::kInvalidParams, kInvalidParamValueFormat,
+ kCommandsIdKey, id.c_str());
return ReturnError(*error, callback);
}
cloud_->CancelCommand(id, user_info,
diff --git a/libweave/src/privet/privet_handler_unittest.cc b/libweave/src/privet/privet_handler_unittest.cc
index 240da55..2980115 100644
--- a/libweave/src/privet/privet_handler_unittest.cc
+++ b/libweave/src/privet/privet_handler_unittest.cc
@@ -159,9 +159,8 @@
EXPECT_CALL(cloud_, GetConnectionState())
.WillRepeatedly(ReturnRef(gcd_disabled_state_));
auto set_error = [](const std::string&, const std::string&,
- chromeos::ErrorPtr* error) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- "setupUnavailable", "");
+ ErrorPtr* error) {
+ Error::AddTo(error, FROM_HERE, errors::kDomain, "setupUnavailable", "");
};
EXPECT_CALL(cloud_, Setup(_, _, _))
.WillRepeatedly(DoAll(Invoke(set_error), Return(false)));
@@ -479,8 +478,8 @@
}
TEST_F(PrivetHandlerSetupTest, StatusWifiError) {
- chromeos::ErrorPtr error;
- chromeos::Error::AddTo(&error, FROM_HERE, "test", "invalidPassphrase", "");
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, "test", "invalidPassphrase", "");
wifi_.setup_state_ = SetupState{std::move(error)};
const char kExpected[] = R"({
@@ -509,8 +508,8 @@
}
TEST_F(PrivetHandlerSetupTest, StatusGcdError) {
- chromeos::ErrorPtr error;
- chromeos::Error::AddTo(&error, FROM_HERE, "test", "invalidTicket", "");
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, "test", "invalidTicket", "");
cloud_.setup_state_ = SetupState{std::move(error)};
const char kExpected[] = R"({
@@ -569,9 +568,8 @@
'passphrase': 'testPass'
}
})";
- auto set_error = [](const std::string&, const std::string&,
- chromeos::ErrorPtr* error) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain, "deviceBusy", "");
+ auto set_error = [](const std::string&, const std::string&, ErrorPtr* error) {
+ Error::AddTo(error, FROM_HERE, errors::kDomain, "deviceBusy", "");
};
EXPECT_CALL(wifi_, ConfigureCredentials(_, _, _))
.WillOnce(DoAll(Invoke(set_error), Return(false)));
@@ -611,9 +609,8 @@
}
})";
- auto set_error = [](const std::string&, const std::string&,
- chromeos::ErrorPtr* error) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain, "deviceBusy", "");
+ auto set_error = [](const std::string&, const std::string&, ErrorPtr* error) {
+ Error::AddTo(error, FROM_HERE, errors::kDomain, "deviceBusy", "");
};
EXPECT_CALL(cloud_, Setup(_, _, _))
.WillOnce(DoAll(Invoke(set_error), Return(false)));
@@ -675,8 +672,8 @@
EXPECT_PRED2(IsEqualJson, "{'name':'test', 'id':'5'}",
HandleRequest("/privet/v3/commands/status", kInput));
- chromeos::ErrorPtr error;
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain, "notFound", "");
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, errors::kDomain, "notFound", "");
EXPECT_CALL(cloud_, GetCommand(_, _, _, _))
.WillOnce(RunCallback<3>(error.get()));
@@ -694,8 +691,8 @@
EXPECT_PRED2(IsEqualJson, kExpected,
HandleRequest("/privet/v3/commands/cancel", "{'id': '8'}"));
- chromeos::ErrorPtr error;
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain, "notFound", "");
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, errors::kDomain, "notFound", "");
EXPECT_CALL(cloud_, CancelCommand(_, _, _, _))
.WillOnce(RunCallback<3>(error.get()));
diff --git a/libweave/src/privet/privet_types.h b/libweave/src/privet/privet_types.h
index 7626400..b46e5b6 100644
--- a/libweave/src/privet/privet_types.h
+++ b/libweave/src/privet/privet_types.h
@@ -7,7 +7,7 @@
#include <string>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
namespace privet {
@@ -54,7 +54,7 @@
};
explicit ConnectionState(Status status) : status_(status) {}
- explicit ConnectionState(chromeos::ErrorPtr error)
+ explicit ConnectionState(ErrorPtr error)
: status_(kOffline), error_(std::move(error)) {}
Status status() const {
@@ -68,11 +68,11 @@
return status_ == status;
}
- const chromeos::Error* error() const { return error_.get(); }
+ const Error* error() const { return error_.get(); }
private:
Status status_;
- chromeos::ErrorPtr error_;
+ ErrorPtr error_;
};
class SetupState final {
@@ -84,7 +84,7 @@
};
explicit SetupState(Status status) : status_(status) {}
- explicit SetupState(chromeos::ErrorPtr error)
+ explicit SetupState(ErrorPtr error)
: status_(kNone), error_(std::move(error)) {}
Status status() const {
@@ -98,11 +98,11 @@
return status_ == status;
}
- const chromeos::Error* error() const { return error_.get(); }
+ const Error* error() const { return error_.get(); }
private:
Status status_;
- chromeos::ErrorPtr error_;
+ ErrorPtr error_;
};
} // namespace privet
diff --git a/libweave/src/privet/publisher.cc b/libweave/src/privet/publisher.cc
index b9f7080..9daed21 100644
--- a/libweave/src/privet/publisher.cc
+++ b/libweave/src/privet/publisher.cc
@@ -6,7 +6,7 @@
#include <map>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/mdns.h>
#include "libweave/src/privet/cloud_delegate.h"
diff --git a/libweave/src/privet/security_delegate.h b/libweave/src/privet/security_delegate.h
index e168a87..4dfd05c 100644
--- a/libweave/src/privet/security_delegate.h
+++ b/libweave/src/privet/security_delegate.h
@@ -44,16 +44,16 @@
CryptoType crypto,
std::string* session_id,
std::string* device_commitment,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
virtual bool ConfirmPairing(const std::string& session_id,
const std::string& client_commitment,
std::string* fingerprint,
std::string* signature,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
virtual bool CancelPairing(const std::string& session_id,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
};
} // namespace privet
diff --git a/libweave/src/privet/security_manager.cc b/libweave/src/privet/security_manager.cc
index 1343a7c..8f90cc4 100644
--- a/libweave/src/privet/security_manager.cc
+++ b/libweave/src/privet/security_manager.cc
@@ -87,15 +87,13 @@
// SecurityManager::KeyExchanger methods.
const std::string& GetMessage() override { return spake_.GetNextMessage(); }
- bool ProcessMessage(const std::string& message,
- chromeos::ErrorPtr* error) override {
+ bool ProcessMessage(const std::string& message, ErrorPtr* error) override {
switch (spake_.ProcessMessage(message)) {
case crypto::P224EncryptedKeyExchange::kResultPending:
return true;
case crypto::P224EncryptedKeyExchange::kResultFailed:
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kInvalidClientCommitment,
- spake_.error());
+ Error::AddTo(error, FROM_HERE, errors::kDomain,
+ errors::kInvalidClientCommitment, spake_.error());
return false;
default:
LOG(FATAL) << "SecurityManager uses only one round trip";
@@ -120,8 +118,7 @@
// SecurityManager::KeyExchanger methods.
const std::string& GetMessage() override { return password_; }
- bool ProcessMessage(const std::string& message,
- chromeos::ErrorPtr* error) override {
+ bool ProcessMessage(const std::string& message, ErrorPtr* error) override {
return true;
}
@@ -214,15 +211,14 @@
CryptoType crypto,
std::string* session_id,
std::string* device_commitment,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
if (!CheckIfPairingAllowed(error))
return false;
if (std::find(pairing_modes_.begin(), pairing_modes_.end(), mode) ==
pairing_modes_.end()) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kInvalidParams,
- "Pairing mode is not enabled");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
+ "Pairing mode is not enabled");
return false;
}
@@ -235,9 +231,8 @@
embedded_code_ = LoadEmbeddedCode(embedded_code_path_);
if (embedded_code_.empty()) { // File is not created yet.
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kDeviceBusy,
- "Embedded code is not ready");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kDeviceBusy,
+ "Embedded code is not ready");
return false;
}
@@ -252,9 +247,8 @@
code = base::StringPrintf("%04i", base::RandInt(0, 9999));
break;
default:
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kInvalidParams,
- "Unsupported pairing mode");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
+ "Unsupported pairing mode");
return false;
}
@@ -270,8 +264,8 @@
}
// Fall through...
default:
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kInvalidParams, "Unsupported crypto");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kInvalidParams,
+ "Unsupported crypto");
return false;
}
@@ -310,12 +304,12 @@
const std::string& client_commitment,
std::string* fingerprint,
std::string* signature,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
auto session = pending_sessions_.find(session_id);
if (session == pending_sessions_.end()) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::kDomain, errors::kUnknownSession,
- "Unknown session id: '%s'", session_id.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::kDomain,
+ errors::kUnknownSession, "Unknown session id: '%s'",
+ session_id.c_str());
return false;
}
CHECK(!certificate_fingerprint_.empty());
@@ -323,7 +317,7 @@
std::vector<uint8_t> commitment;
if (!Base64Decode(client_commitment, &commitment)) {
ClosePendingSession(session_id);
- chromeos::Error::AddToPrintf(
+ Error::AddToPrintf(
error, FROM_HERE, errors::kDomain, errors::kInvalidFormat,
"Invalid commitment string: '%s'", client_commitment.c_str());
return false;
@@ -332,9 +326,8 @@
if (!session->second->ProcessMessage(
std::string(commitment.begin(), commitment.end()), error)) {
ClosePendingSession(session_id);
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kCommitmentMismatch,
- "Pairing code or crypto implementation mismatch");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kCommitmentMismatch,
+ "Pairing code or crypto implementation mismatch");
return false;
}
@@ -356,7 +349,7 @@
}
bool SecurityManager::CancelPairing(const std::string& session_id,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
bool confirmed = CloseConfirmedSession(session_id);
bool pending = ClosePendingSession(session_id);
if (pending) {
@@ -366,9 +359,8 @@
CHECK(!confirmed || !pending);
if (confirmed || pending)
return true;
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::kDomain,
- errors::kUnknownSession,
- "Unknown session id: '%s'", session_id.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::kDomain, errors::kUnknownSession,
+ "Unknown session id: '%s'", session_id.c_str());
return false;
}
@@ -380,13 +372,13 @@
on_end_ = on_end;
}
-bool SecurityManager::CheckIfPairingAllowed(chromeos::ErrorPtr* error) {
+bool SecurityManager::CheckIfPairingAllowed(ErrorPtr* error) {
if (is_security_disabled_)
return true;
if (block_pairing_until_ > base::Time::Now()) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain,
- errors::kDeviceBusy, "Too many pairing attempts");
+ Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kDeviceBusy,
+ "Too many pairing attempts");
return false;
}
diff --git a/libweave/src/privet/security_manager.h b/libweave/src/privet/security_manager.h
index 3beacb6..f0a6de4 100644
--- a/libweave/src/privet/security_manager.h
+++ b/libweave/src/privet/security_manager.h
@@ -14,7 +14,7 @@
#include <base/callback.h>
#include <base/files/file_path.h>
#include <base/memory/weak_ptr.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/privet/security_delegate.h"
@@ -43,7 +43,7 @@
virtual const std::string& GetMessage() = 0;
virtual bool ProcessMessage(const std::string& message,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
virtual const std::string& GetKey() const = 0;
};
@@ -66,15 +66,14 @@
CryptoType crypto,
std::string* session_id,
std::string* device_commitment,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
bool ConfirmPairing(const std::string& session_id,
const std::string& client_commitment,
std::string* fingerprint,
std::string* signature,
- chromeos::ErrorPtr* error) override;
- bool CancelPairing(const std::string& session_id,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
+ bool CancelPairing(const std::string& session_id, ErrorPtr* error) override;
void RegisterPairingListeners(const PairingStartListener& on_start,
const PairingEndListener& on_end);
@@ -86,7 +85,7 @@
private:
FRIEND_TEST_ALL_PREFIXES(SecurityManagerTest, ThrottlePairing);
// Allows limited number of new sessions without successful authorization.
- bool CheckIfPairingAllowed(chromeos::ErrorPtr* error);
+ bool CheckIfPairingAllowed(ErrorPtr* error);
bool ClosePendingSession(const std::string& session_id);
bool CloseConfirmedSession(const std::string& session_id);
diff --git a/libweave/src/privet/security_manager_unittest.cc b/libweave/src/privet/security_manager_unittest.cc
index 0d13cfe..8ce0ba9 100644
--- a/libweave/src/privet/security_manager_unittest.cc
+++ b/libweave/src/privet/security_manager_unittest.cc
@@ -177,7 +177,7 @@
TEST_F(SecurityManagerTest, PairingNoSession) {
std::string fingerprint;
std::string signature;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(
security_.ConfirmPairing("123", "345", &fingerprint, &signature, &error));
EXPECT_EQ("unknownSession", error->GetCode());
@@ -251,7 +251,7 @@
auto pair = [this]() {
std::string session_id;
std::string device_commitment;
- chromeos::ErrorPtr error;
+ ErrorPtr error;
bool result = security_.StartPairing(PairingType::kEmbeddedCode,
CryptoType::kSpake_p224, &session_id,
&device_commitment, &error);
@@ -306,7 +306,7 @@
std::string session_id;
std::string device_commitment;
base::DeleteFile(embedded_code_path_, false);
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(security_.StartPairing(PairingType::kEmbeddedCode,
CryptoType::kSpake_p224, &session_id,
&device_commitment, &error));
diff --git a/libweave/src/privet/wifi_bootstrap_manager.cc b/libweave/src/privet/wifi_bootstrap_manager.cc
index 4a32fdc..d5f7916 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.cc
+++ b/libweave/src/privet/wifi_bootstrap_manager.cc
@@ -178,7 +178,7 @@
bool WifiBootstrapManager::ConfigureCredentials(const std::string& ssid,
const std::string& passphrase,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
setup_state_ = SetupState{SetupState::kInProgress};
// TODO(vitalybuka): Find more reliable way to finish request or move delay
// into PrivetHandler as it's very HTTP specific.
@@ -223,10 +223,9 @@
void WifiBootstrapManager::OnConnectTimeout() {
VLOG(1) << "Wifi timed out while connecting";
- chromeos::ErrorPtr error;
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain,
- errors::kInvalidState,
- "Failed to connect to provided network");
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, errors::kDomain, errors::kInvalidState,
+ "Failed to connect to provided network");
setup_state_ = SetupState{std::move(error)};
StartBootstrapping();
}
@@ -271,9 +270,9 @@
return;
case NetworkState::kFailure: {
// TODO(wiley) Pull error information from somewhere.
- chromeos::ErrorPtr error;
- chromeos::Error::AddTo(&error, FROM_HERE, errors::kDomain,
- errors::kInvalidState, "Unknown WiFi error");
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, errors::kDomain, errors::kInvalidState,
+ "Unknown WiFi error");
connection_state_ = ConnectionState{std::move(error)};
return;
}
@@ -284,10 +283,10 @@
connection_state_ = ConnectionState{ConnectionState::kOnline};
return;
}
- chromeos::ErrorPtr error;
- chromeos::Error::AddToPrintf(
- &error, FROM_HERE, errors::kDomain, errors::kInvalidState,
- "Unknown network state: %s", EnumToString(service_state).c_str());
+ ErrorPtr error;
+ Error::AddToPrintf(&error, FROM_HERE, errors::kDomain, errors::kInvalidState,
+ "Unknown network state: %s",
+ EnumToString(service_state).c_str());
connection_state_ = ConnectionState{std::move(error)};
}
diff --git a/libweave/src/privet/wifi_bootstrap_manager.h b/libweave/src/privet/wifi_bootstrap_manager.h
index aa47839..c6f97d7 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.h
+++ b/libweave/src/privet/wifi_bootstrap_manager.h
@@ -51,7 +51,7 @@
const SetupState& GetSetupState() const override;
bool ConfigureCredentials(const std::string& ssid,
const std::string& passphrase,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
std::string GetCurrentlyConnectedSsid() const override;
std::string GetHostedSsid() const override;
std::set<WifiType> GetTypes() const override;
diff --git a/libweave/src/privet/wifi_delegate.h b/libweave/src/privet/wifi_delegate.h
index ae71849..3a44dc4 100644
--- a/libweave/src/privet/wifi_delegate.h
+++ b/libweave/src/privet/wifi_delegate.h
@@ -32,7 +32,7 @@
// Final setup state can be retrieved with GetSetupState().
virtual bool ConfigureCredentials(const std::string& ssid,
const std::string& password,
- chromeos::ErrorPtr* error) = 0;
+ ErrorPtr* error) = 0;
// Returns SSID of the currently configured WiFi network. Empty string, if
// WiFi has not been configured yet.
diff --git a/libweave/src/states/state_manager.cc b/libweave/src/states/state_manager.cc
index 6f2646b..48dbc74 100644
--- a/libweave/src/states/state_manager.cc
+++ b/libweave/src/states/state_manager.cc
@@ -88,7 +88,7 @@
}
bool StateManager::SetProperties(const base::DictionaryValue& property_set,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
base::Time timestamp = base::Time::Now();
bool all_success = true;
for (base::DictionaryValue::Iterator it(property_set); !it.IsAtEnd();
@@ -107,30 +107,30 @@
bool StateManager::SetPropertyValue(const std::string& full_property_name,
const base::Value& value,
const base::Time& timestamp,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
auto parts = SplitAtFirst(full_property_name, ".", true);
const std::string& package_name = parts.first;
const std::string& property_name = parts.second;
const bool split = (full_property_name.find(".") != std::string::npos);
if (full_property_name.empty() || (split && property_name.empty())) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::state::kDomain,
- errors::state::kPropertyNameMissing,
- "Property name is missing");
+ Error::AddTo(error, FROM_HERE, errors::state::kDomain,
+ errors::state::kPropertyNameMissing,
+ "Property name is missing");
return false;
}
if (!split || package_name.empty()) {
- chromeos::Error::AddTo(error, FROM_HERE, errors::state::kDomain,
- errors::state::kPackageNameMissing,
- "Package name is missing in the property name");
+ Error::AddTo(error, FROM_HERE, errors::state::kDomain,
+ errors::state::kPackageNameMissing,
+ "Package name is missing in the property name");
return false;
}
StatePackage* package = FindPackage(package_name);
if (package == nullptr) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
- errors::state::kPropertyNotDefined,
- "Unknown state property package '%s'",
- package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
+ errors::state::kPropertyNotDefined,
+ "Unknown state property package '%s'",
+ package_name.c_str());
return false;
}
if (!package->SetPropertyValue(property_name, value, error))
@@ -154,22 +154,21 @@
bool StateManager::LoadStateDefinition(const base::DictionaryValue& json,
const std::string& category,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
base::DictionaryValue::Iterator iter(json);
while (!iter.IsAtEnd()) {
std::string package_name = iter.key();
if (package_name.empty()) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomain,
- kInvalidPackageError,
- "State package name is empty");
+ Error::AddTo(error, FROM_HERE, kErrorDomain, kInvalidPackageError,
+ "State package name is empty");
return false;
}
const base::DictionaryValue* package_dict = nullptr;
if (!iter.value().GetAsDictionary(&package_dict)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
- errors::json::kObjectExpected,
- "State package '%s' must be an object",
- package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kObjectExpected,
+ "State package '%s' must be an object",
+ package_name.c_str());
return false;
}
StatePackage* package = FindOrCreatePackage(package_name);
@@ -185,70 +184,67 @@
}
bool StateManager::LoadStateDefinition(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<const base::DictionaryValue> json =
LoadJsonDict(json_file_path, error);
if (!json)
return false;
std::string category = json_file_path.BaseName().RemoveExtension().value();
if (category == kDefaultCategory) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomain,
- kInvalidCategoryError,
- "Invalid state category specified in '%s'",
- json_file_path.value().c_str());
+ Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kInvalidCategoryError,
+ "Invalid state category specified in '%s'",
+ json_file_path.value().c_str());
return false;
}
if (!LoadStateDefinition(*json, category, error)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
- "Failed to load file '%s'",
- json_file_path.value().c_str());
+ Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
+ "Failed to load file '%s'",
+ json_file_path.value().c_str());
return false;
}
return true;
}
bool StateManager::LoadBaseStateDefinition(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<const base::DictionaryValue> json =
LoadJsonDict(json_file_path, error);
if (!json)
return false;
if (!LoadStateDefinition(*json, kDefaultCategory, error)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
- "Failed to load file '%s'",
- json_file_path.value().c_str());
+ Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
+ "Failed to load file '%s'",
+ json_file_path.value().c_str());
return false;
}
return true;
}
bool StateManager::LoadStateDefaults(const base::DictionaryValue& json,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
base::DictionaryValue::Iterator iter(json);
while (!iter.IsAtEnd()) {
std::string package_name = iter.key();
if (package_name.empty()) {
- chromeos::Error::AddTo(error, FROM_HERE, kErrorDomain,
- kInvalidPackageError,
- "State package name is empty");
+ Error::AddTo(error, FROM_HERE, kErrorDomain, kInvalidPackageError,
+ "State package name is empty");
return false;
}
const base::DictionaryValue* package_dict = nullptr;
if (!iter.value().GetAsDictionary(&package_dict)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
- errors::json::kObjectExpected,
- "State package '%s' must be an object",
- package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kObjectExpected,
+ "State package '%s' must be an object",
+ package_name.c_str());
return false;
}
StatePackage* package = FindPackage(package_name);
if (package == nullptr) {
- chromeos::Error::AddToPrintf(
- error, FROM_HERE, errors::json::kDomain,
- errors::json::kObjectExpected,
- "Providing values for undefined state package '%s'",
- package_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kObjectExpected,
+ "Providing values for undefined state package '%s'",
+ package_name.c_str());
return false;
}
if (!package->AddValuesFromJson(package_dict, error))
@@ -259,15 +255,15 @@
}
bool StateManager::LoadStateDefaults(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<const base::DictionaryValue> json =
LoadJsonDict(json_file_path, error);
if (!json)
return false;
if (!LoadStateDefaults(*json, error)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
- "Failed to load file '%s'",
- json_file_path.value().c_str());
+ Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
+ "Failed to load file '%s'",
+ json_file_path.value().c_str());
return false;
}
return true;
diff --git a/libweave/src/states/state_manager.h b/libweave/src/states/state_manager.h
index 30825bd..1668bb2 100644
--- a/libweave/src/states/state_manager.h
+++ b/libweave/src/states/state_manager.h
@@ -14,7 +14,7 @@
#include <base/callback.h>
#include <base/macros.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include <weave/state.h>
#include "libweave/src/states/state_change_queue_interface.h"
@@ -39,7 +39,7 @@
// State overrides.
void AddOnChangedCallback(const base::Closure& callback) override;
bool SetProperties(const base::DictionaryValue& property_set,
- chromeos::ErrorPtr* error) override;
+ ErrorPtr* error) override;
std::unique_ptr<base::DictionaryValue> GetStateValuesAsJson() const override;
// Initializes the state manager and load device state fragments.
@@ -73,33 +73,31 @@
bool SetPropertyValue(const std::string& full_property_name,
const base::Value& value,
const base::Time& timestamp,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Loads a device state fragment from a JSON object. |category| represents
// a device daemon providing the state fragment or empty string for the
// base state fragment.
bool LoadStateDefinition(const base::DictionaryValue& json,
const std::string& category,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Loads a device state fragment JSON file. The file name (without extension)
// is used as the state fragment category.
bool LoadStateDefinition(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Loads the base device state fragment JSON file. This state fragment
// defines the standard state properties from the 'base' package as defined
// by GCD specification.
bool LoadBaseStateDefinition(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Loads state default values from JSON object.
- bool LoadStateDefaults(const base::DictionaryValue& json,
- chromeos::ErrorPtr* error);
+ bool LoadStateDefaults(const base::DictionaryValue& json, ErrorPtr* error);
// Loads state default values from JSON file.
- bool LoadStateDefaults(const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error);
+ bool LoadStateDefaults(const base::FilePath& json_file_path, ErrorPtr* error);
// Finds a package by its name. Returns nullptr if not found.
StatePackage* FindPackage(const std::string& package_name);
diff --git a/libweave/src/states/state_manager_unittest.cc b/libweave/src/states/state_manager_unittest.cc
index 95f85a5..cf3d904 100644
--- a/libweave/src/states/state_manager_unittest.cc
+++ b/libweave/src/states/state_manager_unittest.cc
@@ -69,13 +69,13 @@
void LoadStateDefinition(const base::DictionaryValue* json,
const std::string& category,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
ASSERT_TRUE(mgr_->LoadStateDefinition(*json, category, error));
}
bool SetPropertyValue(const std::string& name,
const base::Value& value,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
return mgr_->SetPropertyValue(name, value, timestamp_, error);
}
@@ -154,14 +154,14 @@
}
TEST_F(StateManagerTest, SetPropertyValue_Error_NoName) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(SetPropertyValue("", base::FundamentalValue{0}, &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
EXPECT_EQ(errors::state::kPropertyNameMissing, error->GetCode());
}
TEST_F(StateManagerTest, SetPropertyValue_Error_NoPackage) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(
SetPropertyValue("state_property", base::FundamentalValue{0}, &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
@@ -169,7 +169,7 @@
}
TEST_F(StateManagerTest, SetPropertyValue_Error_UnknownPackage) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(
SetPropertyValue("power.level", base::FundamentalValue{0}, &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
@@ -177,7 +177,7 @@
}
TEST_F(StateManagerTest, SetPropertyValue_Error_UnknownProperty) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(
SetPropertyValue("base.level", base::FundamentalValue{0}, &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
diff --git a/libweave/src/states/state_package.cc b/libweave/src/states/state_package.cc
index e20d267..2a9ce95 100644
--- a/libweave/src/states/state_package.cc
+++ b/libweave/src/states/state_package.cc
@@ -18,7 +18,7 @@
}
bool StatePackage::AddSchemaFromJson(const base::DictionaryValue* json,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
ObjectSchema schema;
if (!schema.FromJson(json, nullptr, error))
return false;
@@ -26,10 +26,10 @@
// Scan first to make sure we have no property redefinitions.
for (const auto& pair : schema.GetProps()) {
if (types_.GetProp(pair.first)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
- errors::state::kPropertyRedefinition,
- "State property '%s.%s' is already defined",
- name_.c_str(), pair.first.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
+ errors::state::kPropertyRedefinition,
+ "State property '%s.%s' is already defined",
+ name_.c_str(), pair.first.c_str());
return false;
}
}
@@ -45,7 +45,7 @@
}
bool StatePackage::AddValuesFromJson(const base::DictionaryValue* json,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
for (base::DictionaryValue::Iterator it(*json); !it.IsAtEnd(); it.Advance()) {
if (!SetPropertyValue(it.key(), it.value(), error))
return false;
@@ -65,13 +65,13 @@
std::unique_ptr<base::Value> StatePackage::GetPropertyValue(
const std::string& property_name,
- chromeos::ErrorPtr* error) const {
+ ErrorPtr* error) const {
auto it = values_.find(property_name);
if (it == values_.end()) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
- errors::state::kPropertyNotDefined,
- "State property '%s.%s' is not defined",
- name_.c_str(), property_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
+ errors::state::kPropertyNotDefined,
+ "State property '%s.%s' is not defined", name_.c_str(),
+ property_name.c_str());
return nullptr;
}
@@ -80,13 +80,13 @@
bool StatePackage::SetPropertyValue(const std::string& property_name,
const base::Value& value,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
auto it = values_.find(property_name);
if (it == values_.end()) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
- errors::state::kPropertyNotDefined,
- "State property '%s.%s' is not defined",
- name_.c_str(), property_name.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::state::kDomain,
+ errors::state::kPropertyNotDefined,
+ "State property '%s.%s' is not defined", name_.c_str(),
+ property_name.c_str());
return false;
}
auto new_value = it->second->GetPropType()->CreatePropValue(value, error);
diff --git a/libweave/src/states/state_package.h b/libweave/src/states/state_package.h
index 0ee7cc9..70e4df2 100644
--- a/libweave/src/states/state_package.h
+++ b/libweave/src/states/state_package.h
@@ -10,7 +10,7 @@
#include <string>
#include <base/macros.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
#include "libweave/src/commands/object_schema.h"
#include "libweave/src/commands/prop_values.h"
@@ -30,13 +30,11 @@
// Loads state property definitions from a JSON object and adds them
// to the current package.
- bool AddSchemaFromJson(const base::DictionaryValue* json,
- chromeos::ErrorPtr* error);
+ bool AddSchemaFromJson(const base::DictionaryValue* json, ErrorPtr* error);
// Loads a set of state property values from a JSON object and assigns them
// to existing properties. A property must be defined prior to loading its
// value. We use this when we load default values during buffet startup.
- bool AddValuesFromJson(const base::DictionaryValue* json,
- chromeos::ErrorPtr* error);
+ bool AddValuesFromJson(const base::DictionaryValue* json, ErrorPtr* error);
// Returns a set of state properties and their values as a JSON object.
// After being aggregated across multiple packages, this becomes the device
@@ -57,12 +55,12 @@
// include the package name as part of the property name.
std::unique_ptr<base::Value> GetPropertyValue(
const std::string& property_name,
- chromeos::ErrorPtr* error) const;
+ ErrorPtr* error) const;
// Sets the value for a specific state property. |property_name| must not
// include the package name as part of the property name.
bool SetPropertyValue(const std::string& property_name,
const base::Value& value,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
std::shared_ptr<const PropValue> GetProperty(
const std::string& property_name) const {
diff --git a/libweave/src/states/state_package_unittest.cc b/libweave/src/states/state_package_unittest.cc
index d6978c0..45914bc 100644
--- a/libweave/src/states/state_package_unittest.cc
+++ b/libweave/src/states/state_package_unittest.cc
@@ -213,7 +213,7 @@
TEST_F(StatePackageTest, AddSchemaFromJson_Error_Redefined) {
auto dict = CreateDictionaryValue("{'color':['white', 'blue', 'red']}");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(package_->AddSchemaFromJson(dict.get(), &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
EXPECT_EQ(errors::state::kPropertyRedefinition, error->GetCode());
@@ -221,7 +221,7 @@
TEST_F(StatePackageTest, AddValuesFromJson_Error_Undefined) {
auto dict = CreateDictionaryValue("{'brightness':'medium'}");
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_FALSE(package_->AddValuesFromJson(dict.get(), &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
EXPECT_EQ(errors::state::kPropertyNotDefined, error->GetCode());
@@ -236,7 +236,7 @@
}
TEST_F(StatePackageTest, GetPropertyValue_Unknown) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
EXPECT_EQ(nullptr, package_->GetPropertyValue("volume", &error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
EXPECT_EQ(errors::state::kPropertyNotDefined, error->GetCode());
@@ -275,7 +275,7 @@
}
TEST_F(StatePackageTest, SetPropertyValue_Error_TypeMismatch) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(
package_->SetPropertyValue("color", base::FundamentalValue{12}, &error));
EXPECT_EQ(errors::commands::kDomain, error->GetDomain());
@@ -289,7 +289,7 @@
}
TEST_F(StatePackageTest, SetPropertyValue_Error_OutOfRange) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(
package_->SetPropertyValue("iso", base::FundamentalValue{150}, &error));
EXPECT_EQ(errors::commands::kDomain, error->GetDomain());
@@ -297,31 +297,31 @@
}
TEST_F(StatePackageTest, SetPropertyValue_Error_Object_TypeMismatch) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(package_->SetPropertyValue(
"direction",
*CreateDictionaryValue("{'altitude': 45.0, 'azimuth': '15'}"), &error));
EXPECT_EQ(errors::commands::kDomain, error->GetDomain());
EXPECT_EQ(errors::commands::kInvalidPropValue, error->GetCode());
- const chromeos::Error* inner = error->GetInnerError();
+ const Error* inner = error->GetInnerError();
EXPECT_EQ(errors::commands::kDomain, inner->GetDomain());
EXPECT_EQ(errors::commands::kTypeMismatch, inner->GetCode());
}
TEST_F(StatePackageTest, SetPropertyValue_Error_Object_OutOfRange) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(package_->SetPropertyValue(
"direction",
*CreateDictionaryValue("{'altitude': 100.0, 'azimuth': 290.0}"), &error));
EXPECT_EQ(errors::commands::kDomain, error->GetDomain());
EXPECT_EQ(errors::commands::kInvalidPropValue, error->GetCode());
- const chromeos::Error* inner = error->GetInnerError();
+ const Error* inner = error->GetInnerError();
EXPECT_EQ(errors::commands::kDomain, inner->GetDomain());
EXPECT_EQ(errors::commands::kOutOfRange, inner->GetCode());
}
TEST_F(StatePackageTest, SetPropertyValue_Error_Object_UnknownProperty) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(package_->SetPropertyValue(
"direction", *CreateDictionaryValue(
"{'altitude': 10.0, 'azimuth': 20.0, 'spin': 30.0}"),
@@ -340,7 +340,7 @@
}
TEST_F(StatePackageTest, SetPropertyValue_Error_Object_MissingProperty) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(package_->SetPropertyValue(
"direction", *CreateDictionaryValue("{'altitude': 10.0}"), &error));
EXPECT_EQ(errors::commands::kDomain, error->GetDomain());
@@ -348,7 +348,7 @@
}
TEST_F(StatePackageTest, SetPropertyValue_Error_Unknown) {
- chromeos::ErrorPtr error;
+ ErrorPtr error;
ASSERT_FALSE(package_->SetPropertyValue("volume", base::FundamentalValue{100},
&error));
EXPECT_EQ(errors::state::kDomain, error->GetDomain());
diff --git a/libweave/src/utils.cc b/libweave/src/utils.cc
index ea31476..dd62f88 100644
--- a/libweave/src/utils.cc
+++ b/libweave/src/utils.cc
@@ -33,12 +33,12 @@
std::unique_ptr<base::DictionaryValue> LoadJsonDict(
const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::string json_string;
if (!base::ReadFileToString(json_file_path, &json_string)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
- "Failed to read file '%s'",
- json_file_path.value().c_str());
+ Error::AddToPrintf(error, FROM_HERE, kErrorDomain, kFileReadError,
+ "Failed to read file '%s'",
+ json_file_path.value().c_str());
return {};
}
return LoadJsonDict(json_string, error);
@@ -46,25 +46,25 @@
std::unique_ptr<base::DictionaryValue> LoadJsonDict(
const std::string& json_string,
- chromeos::ErrorPtr* error) {
+ ErrorPtr* error) {
std::unique_ptr<base::DictionaryValue> result;
std::string error_message;
auto value = base::JSONReader::ReadAndReturnError(
json_string, base::JSON_PARSE_RFC, nullptr, &error_message);
if (!value) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
- errors::json::kParseError,
- "Error parsing JSON string '%s' (%zu): %s",
- LimitString(json_string, kMaxStrLen).c_str(),
- json_string.size(), error_message.c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kParseError,
+ "Error parsing JSON string '%s' (%zu): %s",
+ LimitString(json_string, kMaxStrLen).c_str(),
+ json_string.size(), error_message.c_str());
return result;
}
base::DictionaryValue* dict_value = nullptr;
if (!value->GetAsDictionary(&dict_value)) {
- chromeos::Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
- errors::json::kObjectExpected,
- "JSON string '%s' is not a JSON object",
- LimitString(json_string, kMaxStrLen).c_str());
+ Error::AddToPrintf(error, FROM_HERE, errors::json::kDomain,
+ errors::json::kObjectExpected,
+ "JSON string '%s' is not a JSON object",
+ LimitString(json_string, kMaxStrLen).c_str());
return result;
} else {
// |value| is now owned by |dict_value|.
diff --git a/libweave/src/utils.h b/libweave/src/utils.h
index a06ad7c..7ef4fa1 100644
--- a/libweave/src/utils.h
+++ b/libweave/src/utils.h
@@ -10,7 +10,7 @@
#include <base/values.h>
#include <base/files/file_path.h>
-#include <chromeos/errors/error.h>
+#include <weave/error.h>
namespace weave {
@@ -31,12 +31,12 @@
// in error details in |error|.
std::unique_ptr<base::DictionaryValue> LoadJsonDict(
const base::FilePath& json_file_path,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
// Helper function to load a JSON dictionary from a string.
std::unique_ptr<base::DictionaryValue> LoadJsonDict(
const std::string& json_string,
- chromeos::ErrorPtr* error);
+ ErrorPtr* error);
} // namespace weave