summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 21:57:19 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 21:58:26 +0000
commit57051da86e70fb49d8679b2367239d9c612e082b (patch)
tree20b3de1df2be2a15037c77e1c3e7e7319ef5d672 /dbus
parent5b6ce11b90bceaa4d5e4353c574a97117ffe9481 (diff)
downloadchromium_src-57051da86e70fb49d8679b2367239d9c612e082b.zip
chromium_src-57051da86e70fb49d8679b2367239d9c612e082b.tar.gz
chromium_src-57051da86e70fb49d8679b2367239d9c612e082b.tar.bz2
Reduce DBus ObjectUnknown ERROR to WARNING
BUG=401571 Review URL: https://codereview.chromium.org/455533002 Cr-Commit-Position: refs/heads/master@{#288446} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288446 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus')
-rw-r--r--dbus/object_proxy.cc19
-rw-r--r--dbus/object_proxy.h3
2 files changed, 16 insertions, 6 deletions
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc
index 5167cab..d0b660b 100644
--- a/dbus/object_proxy.cc
+++ b/dbus/object_proxy.cc
@@ -24,6 +24,7 @@ namespace dbus {
namespace {
const char kErrorServiceUnknown[] = "org.freedesktop.DBus.Error.ServiceUnknown";
+const char kErrorObjectUnknown[] = "org.freedesktop.DBus.Error.UnknownObject";
// Used for success ratio histograms. 1 for success, 0 for failure.
const int kSuccessRatioHistogramMaxValue = 2;
@@ -561,12 +562,20 @@ void ObjectProxy::LogMethodCallFailure(
const base::StringPiece& method_name,
const base::StringPiece& error_name,
const base::StringPiece& error_message) const {
- if (ignore_service_unknown_errors_ && error_name == kErrorServiceUnknown)
+ if (ignore_service_unknown_errors_ &&
+ (error_name == kErrorServiceUnknown || error_name == kErrorObjectUnknown))
return;
- LOG(ERROR) << "Failed to call method: "
- << interface_name << "." << method_name
- << ": object_path= " << object_path_.value()
- << ": " << error_name << ": " << error_message;
+ logging::LogSeverity severity = logging::LOG_ERROR;
+ // "UnknownObject" indicates that an object or service is no longer available,
+ // e.g. a Shill network service has gone out of range. Treat these as warnings
+ // not errors.
+ if (error_name == kErrorObjectUnknown)
+ severity = logging::LOG_WARNING;
+ std::ostringstream msg;
+ msg << "Failed to call method: " << interface_name << "." << method_name
+ << ": object_path= " << object_path_.value()
+ << ": " << error_name << ": " << error_message;
+ logging::LogAtLevel(severity, msg.str());
}
void ObjectProxy::OnCallMethodError(const std::string& interface_name,
diff --git a/dbus/object_proxy.h b/dbus/object_proxy.h
index 48c9c03..2d4ea68 100644
--- a/dbus/object_proxy.h
+++ b/dbus/object_proxy.h
@@ -46,7 +46,8 @@ class CHROME_DBUS_EXPORT ObjectProxy
// Options to be OR-ed together when calling Bus::GetObjectProxyWithOptions().
// Set the IGNORE_SERVICE_UNKNOWN_ERRORS option to silence logging of
- // org.freedesktop.DBus.Error.ServiceUnknown errors.
+ // org.freedesktop.DBus.Error.ServiceUnknown errors and
+ // org.freedesktop.DBus.Error.ObjectUnknown errors.
enum Options {
DEFAULT_OPTIONS = 0,
IGNORE_SERVICE_UNKNOWN_ERRORS = 1 << 0