Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/notifications/notification_platform_bridge_linux.h" | |
| 6 | |
| 7 #include "base/strings/utf_string_conversions.h" | |
| 8 #include "chrome/browser/notifications/notification.h" | |
| 9 | |
| 10 namespace { | |
| 11 | |
| 12 const char kFreedesktopNotificationsName[] = "org.freedesktop.Notifications"; | |
| 13 const char kFreedesktopNotificationsPath[] = "/org/freedesktop/Notifications"; | |
| 14 | |
| 15 } // anonymous namespace | |
|
Lei Zhang
2017/04/04 07:47:21
s/anonymous //
Tom (Use chromium acct)
2017/04/04 21:47:10
Done.
| |
| 16 | |
| 17 // static | |
| 18 NotificationPlatformBridge* NotificationPlatformBridge::Create() { | |
| 19 GDBusProxy* notification_proxy = g_dbus_proxy_new_for_bus_sync( | |
| 20 G_BUS_TYPE_SESSION, | |
| 21 static_cast<GDBusProxyFlags>(G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | | |
| 22 G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS | | |
| 23 G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START), | |
| 24 nullptr, kFreedesktopNotificationsName, kFreedesktopNotificationsPath, | |
| 25 kFreedesktopNotificationsName, nullptr, nullptr); | |
| 26 if (notification_proxy) | |
|
Lei Zhang
2017/04/04 07:47:21
braces, or
if (!notification_proxy)
return null
Tom (Use chromium acct)
2017/04/04 21:47:10
Done.
| |
| 27 return new NotificationPlatformBridgeLinux( | |
| 28 message_center::MessageCenter::Get(), notification_proxy); | |
| 29 return nullptr; | |
|
Peter Beverloo
2017/04/04 13:34:46
If my understanding is correct, this means that No
Tom (Use chromium acct)
2017/04/04 21:47:10
Yes
Peter Beverloo
2017/04/04 21:55:09
It's still a bit cumbersome, but following Chromiu
| |
| 30 } | |
| 31 | |
| 32 NotificationPlatformBridgeLinux::NotificationPlatformBridgeLinux( | |
| 33 message_center::MessageCenter* message_center, | |
| 34 GDBusProxy* notification_proxy) | |
| 35 : message_center_(message_center), notification_proxy_(notification_proxy) { | |
| 36 (void)message_center_; // Silence the unused warning. | |
|
Lei Zhang
2017/04/04 07:47:21
Is this because we plan to use |message_center_| i
Tom (Use chromium acct)
2017/04/04 21:47:10
Yes, but I think my understanding of MessageCenter
| |
| 37 } | |
| 38 | |
| 39 NotificationPlatformBridgeLinux::~NotificationPlatformBridgeLinux() { | |
| 40 g_object_unref(notification_proxy_); | |
| 41 } | |
| 42 | |
| 43 void NotificationPlatformBridgeLinux::Display( | |
| 44 NotificationCommon::Type notification_type, | |
| 45 const std::string& notification_id, | |
| 46 const std::string& profile_id, | |
| 47 bool is_incognito, | |
| 48 const Notification& notification) { | |
| 49 // TODO(thomasanderson): Add a complete implementation. | |
| 50 g_dbus_proxy_call( | |
| 51 notification_proxy_, "Notify", | |
| 52 g_variant_new("(susssasa{sv}i)", "", 0, "", | |
| 53 base::UTF16ToUTF8(notification.title()).c_str(), | |
| 54 base::UTF16ToUTF8(notification.message()).c_str(), nullptr, | |
| 55 nullptr, -1), | |
| 56 G_DBUS_CALL_FLAGS_NONE, -1, nullptr, nullptr, nullptr); | |
| 57 } | |
| 58 | |
| 59 void NotificationPlatformBridgeLinux::Close( | |
| 60 const std::string& profile_id, | |
| 61 const std::string& notification_id) { | |
| 62 NOTIMPLEMENTED(); | |
| 63 } | |
| 64 | |
| 65 void NotificationPlatformBridgeLinux::GetDisplayed( | |
| 66 const std::string& profile_id, | |
| 67 bool incognito, | |
| 68 const DisplayedNotificationsCallback& callback) const { | |
| 69 NOTIMPLEMENTED(); | |
|
Peter Beverloo
2017/04/04 13:34:46
nit: the |callback| has an argument to indicate wh
Tom (Use chromium acct)
2017/04/04 21:47:10
Done.
| |
| 70 } | |
| OLD | NEW |