Index: chrome/browser/cocoa/preferences_window_controller.mm |
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm |
index 175835a0412eab1f7aab81f5fe0989d914d2fa33..95a2531f9ba03deba573483f2aa3cfc293331153 100644 |
--- a/chrome/browser/cocoa/preferences_window_controller.mm |
+++ b/chrome/browser/cocoa/preferences_window_controller.mm |
@@ -75,6 +75,11 @@ static const wchar_t* kGeneralPolicyConstrainedPrefs[] = { |
prefs::kHomePageIsNewTabPage |
}; |
+// Content page preferences that are potentially constrained by policy. |
+static const wchar_t* kContentPolicyConstrainedPrefs[] = { |
+ prefs::kSyncManaged |
+}; |
+ |
std::string GetNewTabUIURLString() { |
return URLFixerUpper::FixupURL(chrome::kChromeUINewTabURL, |
std::string()).possibly_invalid_spec(); |
@@ -411,6 +416,9 @@ class ManagedPrefsBannerState : public ManagedPrefsBannerBase { |
kGeneralPolicyConstrainedPrefs, |
arraysize(kGeneralPolicyConstrainedPrefs)); |
case OPTIONS_PAGE_CONTENT: |
+ return new ManagedPrefsBannerState(controller, page, prefs, |
+ kContentPolicyConstrainedPrefs, |
+ arraysize(kContentPolicyConstrainedPrefs)); |
break; |
case OPTIONS_PAGE_ADVANCED: |
break; |
@@ -1234,7 +1242,7 @@ const int kDisabledIndex = 1; |
- (void)stopSyncAlertDidEnd:(NSAlert*)alert |
returnCode:(int)returnCode |
contextInfo:(void*)contextInfo { |
- DCHECK(syncService_); |
+ DCHECK(syncService_ && !syncService_->IsManaged()); |
if (returnCode == NSAlertFirstButtonReturn) { |
syncService_->DisableForUser(); |
ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); |
@@ -1244,7 +1252,7 @@ const int kDisabledIndex = 1; |
// Called when the user clicks the multi-purpose sync button in the |
// "Personal Stuff" pane. |
- (IBAction)doSyncAction:(id)sender { |
- DCHECK(syncService_); |
+ DCHECK(syncService_ && !syncService_->IsManaged()); |
if (syncService_->HasSyncSetupCompleted()) { |
// If sync setup has completed that means the sync button was a |
// "stop syncing" button. Bring up a confirmation dialog before |
@@ -1282,7 +1290,7 @@ const int kDisabledIndex = 1; |
} |
- (IBAction)doSyncReauthentication:(id)sender { |
- DCHECK(syncService_); |
+ DCHECK(syncService_ && !syncService_->IsManaged()); |
syncService_->ShowLoginDialog(); |
} |
@@ -1710,6 +1718,7 @@ const int kDisabledIndex = 1; |
string16 statusLabel, linkLabel; |
sync_ui_util::MessageType status = |
sync_ui_util::GetStatusLabels(syncService_, &statusLabel, &linkLabel); |
+ bool managed = syncService_->IsManaged(); |
[syncButton_ setEnabled:!syncService_->WizardIsVisible()]; |
NSString* buttonLabel; |
@@ -1727,11 +1736,14 @@ const int kDisabledIndex = 1; |
IDS_SYNC_START_SYNC_BUTTON_LABEL); |
[syncCustomizeButton_ setHidden:true]; |
} |
+ [syncCustomizeButton_ setEnabled:!managed]; |
[syncButton_ setTitle:buttonLabel]; |
+ [syncButton_ setEnabled:!managed]; |
[syncStatus_ setStringValue:base::SysUTF16ToNSString(statusLabel)]; |
[syncLink_ setHidden:linkLabel.empty()]; |
[syncLink_ setTitle:base::SysUTF16ToNSString(linkLabel)]; |
+ [syncLink_ setEnabled:!managed]; |
NSButtonCell* syncLinkCell = static_cast<NSButtonCell*>([syncLink_ cell]); |
if (!syncStatusNoErrorBackgroundColor_) { |