Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5243)

Unified Diff: chrome/browser/notifications/notification_builder_mac.h

Issue 2080733002: Revert of Make the notification builder more XPC friendly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/notifications/notification_builder_mac.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/notifications/notification_builder_mac.h
diff --git a/chrome/browser/notifications/notification_builder_mac.h b/chrome/browser/notifications/notification_builder_mac.h
new file mode 100644
index 0000000000000000000000000000000000000000..692e02128691c8cfa889c8bb8db8e1777e570c94
--- /dev/null
+++ b/chrome/browser/notifications/notification_builder_mac.h
@@ -0,0 +1,73 @@
+// Copyright 2016 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.
+
+#ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_BUILDER_MAC_H_
+#define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_BUILDER_MAC_H_
+
+#import <Foundation/Foundation.h>
+
+#include "base/mac/scoped_nsobject.h"
+
+@class NSUserNotification;
+
+namespace notification_builder {
+extern NSString* const kNotificationOrigin;
+extern NSString* const kNotificationId;
+extern NSString* const kNotificationProfileId;
+extern NSString* const kNotificationIncognito;
+} // notification_builder
+
+// Provides a marshallable way for storing the information required to construct
+// a NSUSerNotification that is to be displayed on the system.
+//
+// A quick example:
+// base::scoped_nsobject<NotificationBuilder> builder(
+// [[NotificationBuilder alloc] init]);
+// [builder setTitle:@"Hello"];
+//
+// // Build a notification out of the data.
+// NSUserNotification* notification =
+// [builder buildUserNotification];
+//
+// // Serialize a notification out of the data.
+// NSDictionary* notificationData = [builder buildDictionary];
+//
+// // Deserialize the |notificationData| in to a new builder.
+// base::scoped_nsobject<NotificationBuilder> finalBuilder(
+// [[NotificationBuilder alloc] initWithData:notificationData]);
+@interface NotificationBuilder : NSObject
+
+// Initializes an empty builder.
+- (instancetype)init;
+
+// Initializes a builder by deserializing |data|. The |data| must have been
+// generated by calling the buildDictionary function on another builder
+// instance.
+- (instancetype)initWithDictionary:(NSDictionary*)data;
+
+// Setters
+- (void)setTitle:(NSString*)title;
+- (void)setSubTitle:(NSString*)subTitle;
+- (void)setContextMessage:(NSString*)contextMessage;
+- (void)setIcon:(NSImage*)icon;
+- (void)setButtons:(NSString*)primaryButton
+ secondaryButton:(NSString*)secondaryButton;
+- (void)setTag:(NSString*)tag;
+- (void)setOrigin:(NSString*)origin;
+- (void)setNotificationId:(NSString*)notificationId;
+- (void)setProfileId:(NSString*)profileId;
+- (void)setIncognito:(BOOL)incognito;
+
+// Returns a notification ready to be displayed out of the provided
+// |notificationData|.
+- (NSUserNotification*)buildUserNotification;
+
+// Returns a representation of a notification that can be serialized.
+// Another instance of NotificationBuilder can read this directly and generate
+// a notification out of it via the |buildbuildUserNotification| method.
+- (NSDictionary*)buildDictionary;
+
+@end
+
+#endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_BUILDER_MAC_H_
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/notifications/notification_builder_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698