// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/chromeos/notifications/system_notification_factory.h" #include "base/utf_string_conversions.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "grit/browser_resources.h" #include "net/base/escape.h" namespace chromeos { using WebKit::WebTextDirection; // static Notification SystemNotificationFactory::Create( const GURL& icon, const string16& title, const string16& text, NotificationDelegate* delegate) { string16 content_url = DesktopNotificationService::CreateDataUrl( icon, title, text, WebKit::WebTextDirectionDefault); return Notification(GURL(), GURL(content_url), string16(), string16(), delegate); } // static Notification SystemNotificationFactory::Create( const GURL& icon, const string16& title, const string16& text, const string16& link, NotificationDelegate* delegate) { // Create an icon notification with or without a footer link // See code in DesktopNotificationService::CreateDataUrl WebTextDirection dir = WebKit::WebTextDirectionDefault; std::vector<std::string> subst; int resource = IDR_NOTIFICATION_ICON_HTML; subst.push_back(icon.spec()); subst.push_back(EscapeForHTML(UTF16ToUTF8(title))); subst.push_back(EscapeForHTML(UTF16ToUTF8(text))); // icon float position subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? "right" : "left"); // body text direction subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? "rtl" : "ltr"); // if link is not empty, then use template with link if (!link.empty()) { resource = IDR_NOTIFICATION_ICON_LINK_HTML; subst.push_back(EscapeForHTML(UTF16ToUTF8(link))); } string16 content_url = DesktopNotificationService::CreateDataUrl(resource, subst); return Notification(GURL(), GURL(content_url), string16(), string16(), delegate); } } // namespace chromeos