| Index: chrome/browser/notifications/notification_platform_bridge_linux.cc
|
| diff --git a/chrome/browser/notifications/notification_platform_bridge_linux.cc b/chrome/browser/notifications/notification_platform_bridge_linux.cc
|
| index 702228e4183037e870e76388cb13b04836e8339c..602b7b3047963c747b8d7246f67cdb8750e763af 100644
|
| --- a/chrome/browser/notifications/notification_platform_bridge_linux.cc
|
| +++ b/chrome/browser/notifications/notification_platform_bridge_linux.cc
|
| @@ -41,9 +41,33 @@
|
|
|
| namespace {
|
|
|
| +// DBus name / path.
|
| const char kFreedesktopNotificationsName[] = "org.freedesktop.Notifications";
|
| const char kFreedesktopNotificationsPath[] = "/org/freedesktop/Notifications";
|
|
|
| +// DBus methods.
|
| +const char kMethodCloseNotification[] = "CloseNotification";
|
| +const char kMethodGetCapabilities[] = "GetCapabilities";
|
| +const char kMethodNotify[] = "Notify";
|
| +const char kMethodGetServerInformation[] = "GetServerInformation";
|
| +
|
| +// DBus signals.
|
| +const char kSignalActionInvoked[] = "ActionInvoked";
|
| +const char kSignalNotificationClosed[] = "NotificationClosed";
|
| +
|
| +// Capabilities.
|
| +const char kCapabilityActionIcons[] = "action-icons";
|
| +const char kCapabilityActions[] = "actions";
|
| +const char kCapabilityBody[] = "body";
|
| +const char kCapabilityBodyHyperlinks[] = "body-hyperlinks";
|
| +const char kCapabilityBodyImages[] = "body-images";
|
| +const char kCapabilityBodyMarkup[] = "body-markup";
|
| +const char kCapabilityIconMulti[] = "icon-multi";
|
| +const char kCapabilityIconStatic[] = "icon-static";
|
| +const char kCapabilityPersistence[] = "persistence";
|
| +const char kCapabilitySound[] = "sound";
|
| +
|
| +// Button IDs.
|
| const char kDefaultButtonId[] = "default";
|
| const char kSettingsButtonId[] = "settings";
|
|
|
| @@ -350,7 +374,7 @@ class NotificationPlatformBridgeLinuxImpl
|
| }
|
|
|
| dbus::MethodCall get_capabilities_call(kFreedesktopNotificationsName,
|
| - "GetCapabilities");
|
| + kMethodGetCapabilities);
|
| std::unique_ptr<dbus::Response> capabilities_response =
|
| notification_proxy_->CallMethodAndBlock(
|
| &get_capabilities_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT);
|
| @@ -364,7 +388,7 @@ class NotificationPlatformBridgeLinuxImpl
|
| RecordMetricsForCapabilities();
|
|
|
| dbus::MethodCall get_server_information_call(kFreedesktopNotificationsName,
|
| - "GetServerInformation");
|
| + kMethodGetServerInformation);
|
| std::unique_ptr<dbus::Response> server_information_response =
|
| notification_proxy_->CallMethodAndBlock(
|
| &get_server_information_call,
|
| @@ -392,12 +416,12 @@ class NotificationPlatformBridgeLinuxImpl
|
| OnConnectionInitializationFinishedOnTaskRunner,
|
| this, ConnectionInitializationStatusCode::SUCCESS));
|
| notification_proxy_->ConnectToSignal(
|
| - kFreedesktopNotificationsName, "ActionInvoked",
|
| + kFreedesktopNotificationsName, kSignalActionInvoked,
|
| base::Bind(&NotificationPlatformBridgeLinuxImpl::OnActionInvoked, this),
|
| base::Bind(&NotificationPlatformBridgeLinuxImpl::OnSignalConnected,
|
| this));
|
| notification_proxy_->ConnectToSignal(
|
| - kFreedesktopNotificationsName, "NotificationClosed",
|
| + kFreedesktopNotificationsName, kSignalNotificationClosed,
|
| base::Bind(&NotificationPlatformBridgeLinuxImpl::OnNotificationClosed,
|
| this),
|
| base::Bind(&NotificationPlatformBridgeLinuxImpl::OnSignalConnected,
|
| @@ -434,7 +458,7 @@ class NotificationPlatformBridgeLinuxImpl
|
| notifications_.emplace(data, base::WrapUnique(data));
|
| }
|
|
|
| - dbus::MethodCall method_call(kFreedesktopNotificationsName, "Notify");
|
| + dbus::MethodCall method_call(kFreedesktopNotificationsName, kMethodNotify);
|
| dbus::MessageWriter writer(&method_call);
|
|
|
| // app_name passed implicitly via desktop-entry.
|
| @@ -449,9 +473,9 @@ class NotificationPlatformBridgeLinuxImpl
|
| base::UTF16ToUTF8(CreateNotificationTitle(*notification)));
|
|
|
| std::string body;
|
| - if (base::ContainsKey(capabilities_, "body")) {
|
| + if (base::ContainsKey(capabilities_, kCapabilityBody)) {
|
| body = base::UTF16ToUTF8(notification->message());
|
| - if (base::ContainsKey(capabilities_, "body-markup")) {
|
| + if (base::ContainsKey(capabilities_, kCapabilityBodyMarkup)) {
|
| base::ReplaceSubstringsAfterOffset(&body, 0, "&", "&");
|
| base::ReplaceSubstringsAfterOffset(&body, 0, "<", "<");
|
| base::ReplaceSubstringsAfterOffset(&body, 0, ">", ">");
|
| @@ -462,7 +486,7 @@ class NotificationPlatformBridgeLinuxImpl
|
| // Even-indexed elements in this vector are action IDs passed back to
|
| // us in OnActionInvoked(). Odd-indexed ones contain the button text.
|
| std::vector<std::string> actions;
|
| - if (base::ContainsKey(capabilities_, "actions")) {
|
| + if (base::ContainsKey(capabilities_, kCapabilityActions)) {
|
| data->action_start = data->action_end;
|
| for (const auto& button_info : notification->buttons()) {
|
| // FDO notification buttons can contain either an icon or a label,
|
| @@ -550,7 +574,7 @@ class NotificationPlatformBridgeLinuxImpl
|
| if (data->notification_id == notification_id &&
|
| data->profile_id == profile_id) {
|
| dbus::MethodCall method_call(kFreedesktopNotificationsName,
|
| - "CloseNotification");
|
| + kMethodCloseNotification);
|
| dbus::MessageWriter writer(&method_call);
|
| writer.AppendUint32(data->dbus_id);
|
| notification_proxy_->CallMethodAndBlock(
|
| @@ -700,27 +724,33 @@ class NotificationPlatformBridgeLinuxImpl
|
| void RecordMetricsForCapabilities() {
|
| // Histogram macros must be called with the same name for each
|
| // callsite, so we can't roll the below into a nice loop.
|
| - UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.ActionIcons",
|
| - base::ContainsKey(capabilities_, "action-icons"));
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "Notifications.Freedesktop.Capabilities.ActionIcons",
|
| + base::ContainsKey(capabilities_, kCapabilityActionIcons));
|
| UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.Actions",
|
| - base::ContainsKey(capabilities_, "actions"));
|
| + base::ContainsKey(capabilities_, kCapabilityActions));
|
| UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.Body",
|
| - base::ContainsKey(capabilities_, "body"));
|
| + base::ContainsKey(capabilities_, kCapabilityBody));
|
| UMA_HISTOGRAM_BOOLEAN(
|
| "Notifications.Freedesktop.Capabilities.BodyHyperlinks",
|
| - base::ContainsKey(capabilities_, "body-hyperlinks"));
|
| - UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.BodyImages",
|
| - base::ContainsKey(capabilities_, "body-images"));
|
| - UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.BodyMarkup",
|
| - base::ContainsKey(capabilities_, "body-markup"));
|
| - UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.IconMulti",
|
| - base::ContainsKey(capabilities_, "icon-multi"));
|
| - UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.IconStatic",
|
| - base::ContainsKey(capabilities_, "icon-static"));
|
| - UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.Persistence",
|
| - base::ContainsKey(capabilities_, "persistence"));
|
| + base::ContainsKey(capabilities_, kCapabilityBodyHyperlinks));
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "Notifications.Freedesktop.Capabilities.BodyImages",
|
| + base::ContainsKey(capabilities_, kCapabilityBodyImages));
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "Notifications.Freedesktop.Capabilities.BodyMarkup",
|
| + base::ContainsKey(capabilities_, kCapabilityBodyMarkup));
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "Notifications.Freedesktop.Capabilities.IconMulti",
|
| + base::ContainsKey(capabilities_, kCapabilityIconMulti));
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "Notifications.Freedesktop.Capabilities.IconStatic",
|
| + base::ContainsKey(capabilities_, kCapabilityIconStatic));
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "Notifications.Freedesktop.Capabilities.Persistence",
|
| + base::ContainsKey(capabilities_, kCapabilityPersistence));
|
| UMA_HISTOGRAM_BOOLEAN("Notifications.Freedesktop.Capabilities.Sound",
|
| - base::ContainsKey(capabilities_, "sound"));
|
| + base::ContainsKey(capabilities_, kCapabilitySound));
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|