| Index: chrome/browser/cocoa/sync_customize_controller.mm
|
| diff --git a/chrome/browser/cocoa/sync_customize_controller.mm b/chrome/browser/cocoa/sync_customize_controller.mm
|
| index 5cefaceb1b5c12218286906a19ec6025a5380170..9bb7cfe2a7477bd16788b5ad40340c4a9561079e 100644
|
| --- a/chrome/browser/cocoa/sync_customize_controller.mm
|
| +++ b/chrome/browser/cocoa/sync_customize_controller.mm
|
| @@ -22,6 +22,7 @@
|
| @synthesize preferencesRegistered = preferencesRegistered_;
|
| @synthesize autofillRegistered = autofillRegistered_;
|
| @synthesize themesRegistered = themesRegistered_;
|
| +@synthesize extensionsRegistered = extensionsRegistered_;
|
|
|
| // If you add another ***Preferred variable, you must update okEnabled and
|
| // keyPathsForValuesAffectingOkEnabled below.
|
| @@ -29,19 +30,21 @@
|
| @synthesize preferencesPreferred = preferencesPreferred_;
|
| @synthesize autofillPreferred = autofillPreferred_;
|
| @synthesize themesPreferred = themesPreferred_;
|
| +@synthesize extensionsPreferred = extensionsPreferred_;
|
|
|
| // The OK button should be clickable if and only if there's at least one
|
| // datatype chosen to sync.
|
| - (BOOL)okEnabled {
|
| return bookmarksPreferred_ || preferencesPreferred_ || autofillPreferred_ ||
|
| - themesPreferred_;
|
| + themesPreferred_ || extensionsPreferred_;
|
| }
|
|
|
| // Naming convention; makes okEnabled get updated whenever any of the below
|
| // "Preferred" variables are updated.
|
| + (NSSet*)keyPathsForValuesAffectingOkEnabled {
|
| return [NSSet setWithObjects:@"bookmarksPreferred", @"preferencesPreferred",
|
| - @"autofillPreferred", @"themesPreferred", nil];
|
| + @"autofillPreferred", @"themesPreferred",
|
| + @"extensionsPreferred", nil];
|
| }
|
|
|
| - (id)initWithProfileSyncService:(ProfileSyncService*)syncService {
|
| @@ -100,6 +103,7 @@
|
| syncable::PREFERENCES,
|
| syncable::AUTOFILL,
|
| syncable::THEMES,
|
| + syncable::EXTENSIONS,
|
| };
|
| DCHECK(std::includes(expected_types,
|
| expected_types + arraysize(expected_types),
|
| @@ -114,6 +118,8 @@
|
| syncable::AUTOFILL)];
|
| [self setThemesRegistered:ContainsKey(registered_types,
|
| syncable::THEMES)];
|
| + [self setExtensionsRegistered:ContainsKey(registered_types,
|
| + syncable::EXTENSIONS)];
|
|
|
| syncable::ModelTypeSet preferred_types;
|
| syncService_->GetPreferredDataTypes(&preferred_types);
|
| @@ -128,6 +134,8 @@
|
| syncable::AUTOFILL)];
|
| [self setThemesPreferred:ContainsKey(preferred_types,
|
| syncable::THEMES)];
|
| + [self setExtensionsPreferred:ContainsKey(preferred_types,
|
| + syncable::EXTENSIONS)];
|
| }
|
|
|
| - (void)windowWillClose:(NSNotification*)notification {
|
| @@ -158,6 +166,9 @@
|
| if ([self themesPreferred]) {
|
| preferred_types.insert(syncable::THEMES);
|
| }
|
| + if ([self extensionsPreferred]) {
|
| + preferred_types.insert(syncable::EXTENSIONS);
|
| + }
|
| syncService_->ChangePreferredDataTypes(preferred_types);
|
| [self endSheet];
|
| }
|
|
|