Libnotify supports a timeout parameter which allows developers to control for how long the notification will stay. Some DEs has also implemented options to create persistent notification if the value is -1 for this parameter. Which is particularly helpful in GNOME since they removed System Tray altogether. Developers can create persistent notification instead of Tray Icon if the timeout is supported.

Please add this.
shell/browser/notifications/notification.h
class NotificationPresenter;
struct NotificationAction {
  base::string16 type;
  base::string16 text;
};
struct NotificationOptions {
  base::string16 title;
  base::string16 subtitle;
  base::string16 msg;
  std::string tag;
  bool silent;
  GURL icon_url;
  SkBitmap icon;
  bool has_reply;
  base::string16 reply_placeholder;
  base::string16 sound;
  base::string16 urgency;  
  std::vector<NotificationAction> actions;
  base::string16 close_button_text;
  NotificationOptions();
  ~NotificationOptions();
};
class Notification {