| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include <string> | 5 #include <string> | 
| 6 | 6 | 
| 7 #include "win8/metro_driver/stdafx.h" | 7 #include "win8/metro_driver/stdafx.h" | 
| 8 #include "win8/metro_driver/toast_notification_handler.h" | 8 #include "win8/metro_driver/toast_notification_handler.h" | 
| 9 | 9 | 
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 93 } | 93 } | 
| 94 | 94 | 
| 95 }  // namespace | 95 }  // namespace | 
| 96 | 96 | 
| 97 ToastNotificationHandler::DesktopNotification::DesktopNotification( | 97 ToastNotificationHandler::DesktopNotification::DesktopNotification( | 
| 98     const char* notification_origin, | 98     const char* notification_origin, | 
| 99     const char* notification_icon, | 99     const char* notification_icon, | 
| 100     const wchar_t* notification_title, | 100     const wchar_t* notification_title, | 
| 101     const wchar_t* notification_body, | 101     const wchar_t* notification_body, | 
| 102     const wchar_t* notification_display_source, | 102     const wchar_t* notification_display_source, | 
| 103     const char* notification_id) | 103     const char* notification_id, | 
|  | 104     base::win::MetroNotificationClickedHandler handler, | 
|  | 105     const wchar_t* handler_context) | 
| 104     : origin_url(notification_origin), | 106     : origin_url(notification_origin), | 
| 105       icon_url(notification_icon), | 107       icon_url(notification_icon), | 
| 106       title(notification_title), | 108       title(notification_title), | 
| 107       body(notification_body), | 109       body(notification_body), | 
| 108       display_source(notification_display_source), | 110       display_source(notification_display_source), | 
| 109       id(notification_id) { | 111       id(notification_id), | 
|  | 112       notification_handler(handler) { | 
|  | 113   if (handler_context) | 
|  | 114     notification_context = handler_context; | 
| 110 } | 115 } | 
| 111 | 116 | 
|  | 117 ToastNotificationHandler::DesktopNotification::DesktopNotification() | 
|  | 118     : notification_handler(NULL) { | 
|  | 119 } | 
| 112 | 120 | 
| 113 ToastNotificationHandler::ToastNotificationHandler() { | 121 ToastNotificationHandler::ToastNotificationHandler() { | 
| 114   DVLOG(1) << __FUNCTION__; | 122   DVLOG(1) << __FUNCTION__; | 
| 115 } | 123 } | 
| 116 | 124 | 
| 117 ToastNotificationHandler::~ToastNotificationHandler() { | 125 ToastNotificationHandler::~ToastNotificationHandler() { | 
| 118   DVLOG(1) << __FUNCTION__; | 126   DVLOG(1) << __FUNCTION__; | 
| 119 | 127 | 
| 120   if (notifier_ && notification_) | 128   if (notifier_ && notification_) | 
| 121     CancelNotification(); | 129     CancelNotification(); | 
| 122 } | 130 } | 
| 123 | 131 | 
| 124 void ToastNotificationHandler::DisplayNotification( | 132 void ToastNotificationHandler::DisplayNotification( | 
| 125     const DesktopNotification& notification) { | 133     const DesktopNotification& notification) { | 
| 126   DVLOG(1) << __FUNCTION__; | 134   DVLOG(1) << __FUNCTION__; | 
| 127 | 135 | 
| 128   DCHECK(notifier_.Get() == NULL); | 136   DCHECK(notifier_.Get() == NULL); | 
| 129   DCHECK(notification_.Get() == NULL); | 137   DCHECK(notification_.Get() == NULL); | 
| 130 | 138 | 
|  | 139   notification_info_ = notification; | 
|  | 140 | 
| 131   mswr::ComPtr<winui::Notifications::IToastNotificationManagerStatics> | 141   mswr::ComPtr<winui::Notifications::IToastNotificationManagerStatics> | 
| 132       toast_manager; | 142       toast_manager; | 
| 133 | 143 | 
| 134   HRESULT hr = winrt_utils::CreateActivationFactory( | 144   HRESULT hr = winrt_utils::CreateActivationFactory( | 
| 135       RuntimeClass_Windows_UI_Notifications_ToastNotificationManager, | 145       RuntimeClass_Windows_UI_Notifications_ToastNotificationManager, | 
| 136       toast_manager.GetAddressOf()); | 146       toast_manager.GetAddressOf()); | 
| 137   CheckHR(hr); | 147   CheckHR(hr); | 
| 138 | 148 | 
| 139   mswr::ComPtr<winxml::Dom::IXmlDocument> toast_xml; | 149   mswr::ComPtr<winxml::Dom::IXmlDocument> toast_xml; | 
| 140   hr = toast_manager->GetTemplateContent( | 150   hr = toast_manager->GetTemplateContent( | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 223 } | 233 } | 
| 224 | 234 | 
| 225 HRESULT ToastNotificationHandler::OnActivate( | 235 HRESULT ToastNotificationHandler::OnActivate( | 
| 226     winui::Notifications::IToastNotification* notification, | 236     winui::Notifications::IToastNotification* notification, | 
| 227     IInspectable* inspectable) { | 237     IInspectable* inspectable) { | 
| 228   // TODO(ananta) | 238   // TODO(ananta) | 
| 229   // We should pass back information from the notification like the source url | 239   // We should pass back information from the notification like the source url | 
| 230   // etc to ChromeAppView which would enable it to ensure that the | 240   // etc to ChromeAppView which would enable it to ensure that the | 
| 231   // correct tab in chrome is activated. | 241   // correct tab in chrome is activated. | 
| 232   DVLOG(1) << __FUNCTION__; | 242   DVLOG(1) << __FUNCTION__; | 
|  | 243 | 
|  | 244   if (notification_info_.notification_handler) { | 
|  | 245     notification_info_.notification_handler( | 
|  | 246         notification_info_.notification_context.c_str()); | 
|  | 247   } | 
| 233   return S_OK; | 248   return S_OK; | 
| 234 } | 249 } | 
| OLD | NEW | 
|---|