Chromium Code Reviews| 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 aa3a6efc57271c5443f25d7acfd1bbb44f051a31..e6894ac353ac4e7d649908f65edf1012c360740e 100644 |
| --- a/chrome/browser/notifications/notification_platform_bridge_linux.cc |
| +++ b/chrome/browser/notifications/notification_platform_bridge_linux.cc |
| @@ -38,9 +38,29 @@ |
| namespace { |
| +// DBus names, paths, methods, and signals. |
|
Tom Anderson
2017/05/10 06:11:48
nit: give the methods and signals their own sectio
Lei Zhang
2017/05/10 21:11:56
Done.
|
| const char kFreedesktopNotificationsName[] = "org.freedesktop.Notifications"; |
| const char kFreedesktopNotificationsPath[] = "/org/freedesktop/Notifications"; |
| - |
| +const char kMethodCloseNotification[] = "CloseNotification"; |
| +const char kMethodGetCapabilities[] = "GetCapabilities"; |
| +const char kMethodNotify[] = "Notify"; |
| +const char kMethodGetServerInformation[] = "GetServerInformation"; |
| +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"; |
| @@ -337,7 +357,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); |
| @@ -351,7 +371,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, |
| @@ -379,12 +399,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, |
| @@ -421,7 +441,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. |
| @@ -435,9 +455,9 @@ class NotificationPlatformBridgeLinuxImpl |
| writer.AppendString(base::UTF16ToUTF8(notification->title())); |
| 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, ">", ">"); |
| @@ -448,7 +468,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, |
| @@ -536,7 +556,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( |
| @@ -686,27 +706,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)); |
| } |
| ////////////////////////////////////////////////////////////////////////////// |