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 3// found in the LICENSE file. 4// 5// Sync protocol datatype extension for apps. 6 7// Update proto_value_conversions{.h,.cc,_unittest.cc} if you change 8// any fields in this file. 9 10syntax = "proto2"; 11 12option optimize_for = LITE_RUNTIME; 13option retain_unknown_fields = true; 14 15package sync_pb; 16 17import "extension_specifics.proto"; 18 19// Settings related to push notifications for apps. 20message AppNotificationSettings { 21 // DEPRECATED: Use oauth_client_id below. 22 // Whether or not the user has setup notifications at least once. 23 // The value for this field will start out false and will be set 24 // to true when the user accepts receiving notifications for the 25 // first time and then it will always remain true. 26 optional bool initial_setup_done = 1; 27 28 // Whether or not the user has disabled notifications. 29 optional bool disabled = 2; 30 31 // OAuth2 client id to which the user granted the notification permission. 32 // This field will start out empty. 33 // It will be set when the user accepts receiving notifications. 34 // This field is used when the user revokes the notifications permission. 35 // Note that it is never cleared after it was set once. Hence, the presence 36 // of this field can be used to determine if the user has setup notifications 37 // at least once for the given app. 38 optional string oauth_client_id = 3; 39} 40 41// Properties of app sync objects. 42// 43// For now, an app is just an extension. We keep the two data types 44// separate for future-proofing purposes. 45message AppSpecifics { 46 // Extension data. 47 optional ExtensionSpecifics extension = 1; 48 49 // Notification settings. 50 optional AppNotificationSettings notification_settings = 2; 51 52 // This controls where on a page this application icon will appear. 53 optional string app_launch_ordinal = 3; 54 55 // This specifics which page the application icon will appear on in the NTP. 56 // This values only provide the order within the application pages, not within 57 // all of the panels in the NTP. 58 optional string page_ordinal = 4; 59 60 // The possible launch types for an app. 61 // This enum should be kept in sync with extensions::LaunchType. 62 enum LaunchType { 63 PINNED = 0; 64 REGULAR = 1; 65 FULLSCREEN = 2; 66 WINDOW = 3; 67 } 68 69 // This describes how the extension should be launched. 70 optional LaunchType launch_type = 5; 71 72 // This is the url of a bookmark app. If this exists, the app is a bookmark 73 // app. 74 optional string bookmark_app_url = 6; 75 76 // This is the description of a bookmark app. 77 optional string bookmark_app_description = 7; 78} 79