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

Side by Side Diff: chrome/browser/extensions/extension_sync_data.cc

Issue 8727024: Save the oauth client id used in App Notification setup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed nits Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_sync_data.h" 5 #include "chrome/browser/extensions/extension_sync_data.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/sync/protocol/app_specifics.pb.h" 9 #include "chrome/browser/sync/protocol/app_specifics.pb.h"
10 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" 10 #include "chrome/browser/sync/protocol/extension_specifics.pb.h"
11 11
12 ExtensionSyncData::ExtensionSyncData() 12 ExtensionSyncData::ExtensionSyncData()
13 : uninstalled_(false), 13 : uninstalled_(false),
14 enabled_(false), 14 enabled_(false),
15 incognito_enabled_(false), 15 incognito_enabled_(false),
16 type_(Extension::SYNC_TYPE_NONE), 16 type_(Extension::SYNC_TYPE_NONE),
17 notifications_initial_setup_done_(false),
18 notifications_disabled_(false) { 17 notifications_disabled_(false) {
19 } 18 }
20 19
21 ExtensionSyncData::ExtensionSyncData(const SyncData& sync_data) 20 ExtensionSyncData::ExtensionSyncData(const SyncData& sync_data)
22 : uninstalled_(false), 21 : uninstalled_(false),
23 enabled_(false), 22 enabled_(false),
24 incognito_enabled_(false), 23 incognito_enabled_(false),
25 type_(Extension::SYNC_TYPE_NONE), 24 type_(Extension::SYNC_TYPE_NONE),
26 notifications_initial_setup_done_(false),
27 notifications_disabled_(false) { 25 notifications_disabled_(false) {
28 PopulateFromSyncData(sync_data); 26 PopulateFromSyncData(sync_data);
29 } 27 }
30 28
31 ExtensionSyncData::ExtensionSyncData(const SyncChange& sync_change) 29 ExtensionSyncData::ExtensionSyncData(const SyncChange& sync_change)
32 : uninstalled_(sync_change.change_type() == SyncChange::ACTION_DELETE) { 30 : uninstalled_(sync_change.change_type() == SyncChange::ACTION_DELETE) {
33 PopulateFromSyncData(sync_change.sync_data()); 31 PopulateFromSyncData(sync_change.sync_data());
34 } 32 }
35 33
36 ExtensionSyncData::ExtensionSyncData(const Extension& extension, 34 ExtensionSyncData::ExtensionSyncData(const Extension& extension,
37 bool enabled, 35 bool enabled,
38 bool incognito_enabled, 36 bool incognito_enabled,
39 bool notifications_initial_setup_done, 37 const std::string& notifications_client_id,
40 bool notifications_disabled) 38 bool notifications_disabled)
41 : id_(extension.id()), 39 : id_(extension.id()),
42 uninstalled_(false), 40 uninstalled_(false),
43 enabled_(enabled), 41 enabled_(enabled),
44 incognito_enabled_(incognito_enabled), 42 incognito_enabled_(incognito_enabled),
45 type_(extension.GetSyncType()), 43 type_(extension.GetSyncType()),
46 version_(*extension.version()), 44 version_(*extension.version()),
47 update_url_(extension.update_url()), 45 update_url_(extension.update_url()),
48 name_(extension.name()), 46 name_(extension.name()),
49 notifications_initial_setup_done_(notifications_initial_setup_done), 47 notifications_client_id_(notifications_client_id),
50 notifications_disabled_(notifications_disabled) { 48 notifications_disabled_(notifications_disabled) {
51 } 49 }
52 50
53 ExtensionSyncData::~ExtensionSyncData() {} 51 ExtensionSyncData::~ExtensionSyncData() {}
54 52
55 void ExtensionSyncData::PopulateAppSpecifics( 53 void ExtensionSyncData::PopulateAppSpecifics(
56 sync_pb::AppSpecifics* specifics) const { 54 sync_pb::AppSpecifics* specifics) const {
57 DCHECK(specifics); 55 DCHECK(specifics);
58 sync_pb::AppNotificationSettings* notif_settings = 56 sync_pb::AppNotificationSettings* notif_settings =
59 specifics->mutable_notification_settings(); 57 specifics->mutable_notification_settings();
60 notif_settings->set_initial_setup_done(notifications_initial_setup_done_); 58 if (!notifications_client_id_.empty())
59 notif_settings->set_oauth_client_id(notifications_client_id_);
61 notif_settings->set_disabled(notifications_disabled_); 60 notif_settings->set_disabled(notifications_disabled_);
62 PopulateSyncSpecifics(specifics->mutable_extension()); 61 PopulateSyncSpecifics(specifics->mutable_extension());
63 } 62 }
64 63
65 void ExtensionSyncData::PopulateSyncSpecifics( 64 void ExtensionSyncData::PopulateSyncSpecifics(
66 sync_pb::ExtensionSpecifics* specifics) const { 65 sync_pb::ExtensionSpecifics* specifics) const {
67 DCHECK(Extension::IdIsValid(id_)); 66 DCHECK(Extension::IdIsValid(id_));
68 specifics->set_id(id_); 67 specifics->set_id(id_);
69 specifics->set_update_url(update_url_.spec()); 68 specifics->set_update_url(update_url_.spec());
70 specifics->set_version(version_.GetString()); 69 specifics->set_version(version_.GetString());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 const sync_pb::EntitySpecifics& entity_specifics = sync_data.GetSpecifics(); 122 const sync_pb::EntitySpecifics& entity_specifics = sync_data.GetSpecifics();
124 sync_pb::ExtensionSpecifics extension_expecifics; 123 sync_pb::ExtensionSpecifics extension_expecifics;
125 if (entity_specifics.HasExtension(sync_pb::extension)) { 124 if (entity_specifics.HasExtension(sync_pb::extension)) {
126 extension_expecifics = entity_specifics.GetExtension(sync_pb::extension); 125 extension_expecifics = entity_specifics.GetExtension(sync_pb::extension);
127 type_ = Extension::SYNC_TYPE_EXTENSION; 126 type_ = Extension::SYNC_TYPE_EXTENSION;
128 } else if (entity_specifics.HasExtension(sync_pb::app)) { 127 } else if (entity_specifics.HasExtension(sync_pb::app)) {
129 sync_pb::AppSpecifics app_specifics = entity_specifics.GetExtension( 128 sync_pb::AppSpecifics app_specifics = entity_specifics.GetExtension(
130 sync_pb::app); 129 sync_pb::app);
131 extension_expecifics = app_specifics.extension(); 130 extension_expecifics = app_specifics.extension();
132 type_ = Extension::SYNC_TYPE_APP; 131 type_ = Extension::SYNC_TYPE_APP;
133 notifications_initial_setup_done_ = 132 if (app_specifics.has_notification_settings() &&
134 app_specifics.has_notification_settings() && 133 app_specifics.notification_settings().has_oauth_client_id()) {
135 app_specifics.notification_settings().has_initial_setup_done() && 134 notifications_client_id_ =
136 app_specifics.notification_settings().initial_setup_done(); 135 app_specifics.notification_settings().oauth_client_id();
136 }
137
137 notifications_disabled_ = 138 notifications_disabled_ =
138 app_specifics.has_notification_settings() && 139 app_specifics.has_notification_settings() &&
139 app_specifics.notification_settings().has_disabled() && 140 app_specifics.notification_settings().has_disabled() &&
140 app_specifics.notification_settings().disabled(); 141 app_specifics.notification_settings().disabled();
141 } else { 142 } else {
142 LOG(FATAL) << "Attempt to sync bad EntitySpecifics."; 143 LOG(FATAL) << "Attempt to sync bad EntitySpecifics.";
143 } 144 }
144 PopulateFromExtensionSpecifics(extension_expecifics); 145 PopulateFromExtensionSpecifics(extension_expecifics);
145 } 146 }
146
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_sync_data.h ('k') | chrome/browser/extensions/extension_sync_data_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698