Index: ash/public/cpp/shelf_types.h |
diff --git a/ash/public/cpp/shelf_types.h b/ash/public/cpp/shelf_types.h |
index a198dfa94601c8962f0120268bbd662ac8a9efea..1ccd5099e2ca4a46946099d4a7eabde8f384df17 100644 |
--- a/ash/public/cpp/shelf_types.h |
+++ b/ash/public/cpp/shelf_types.h |
@@ -138,8 +138,8 @@ enum ShelfItemStatus { |
// As an example, a remote desktop client may want each remote application to |
// have its own icon. |
struct ASH_PUBLIC_EXPORT ShelfID { |
- ShelfID(const std::string& app_id = std::string(), |
- const std::string& launch_id = std::string()); |
+ explicit ShelfID(const std::string& app_id = std::string(), |
+ const std::string& launch_id = std::string()); |
~ShelfID(); |
ShelfID(const ShelfID& other); |
@@ -153,6 +153,12 @@ struct ASH_PUBLIC_EXPORT ShelfID { |
// This is often used to determine if the id is invalid. |
bool IsNull() const; |
+ // Functions to [de]serialize ids as a string for window property usage, etc. |
+ // Serialization appends ids with a delimeter that must not be used in ids. |
+ // Deserialization returns an empty/null/default id for a null string input. |
+ std::string Serialize() const; |
+ static ShelfID Deserialize(const std::string* string); |
+ |
// The application id associated with a set of windows. |
std::string app_id; |
// An id passed on app launch, to support multiple shelf items per app. |