| Index: chrome/browser/autofill/autofill_dialog_controller_mac.mm | 
| =================================================================== | 
| --- chrome/browser/autofill/autofill_dialog_controller_mac.mm	(revision 40742) | 
| +++ chrome/browser/autofill/autofill_dialog_controller_mac.mm	(working copy) | 
| @@ -13,6 +13,7 @@ | 
| #import "chrome/browser/cocoa/disclosure_view_controller.h" | 
| #import "chrome/browser/cocoa/section_separator_view.h" | 
| #import "chrome/browser/cocoa/window_size_autosaver.h" | 
| +#include "chrome/browser/pref_service.h" | 
| #include "chrome/browser/profile.h" | 
| #include "chrome/common/pref_names.h" | 
| #include "grit/generated_resources.h" | 
| @@ -24,13 +25,17 @@ | 
|  | 
| @implementation AutoFillDialogController | 
|  | 
| +@synthesize auxiliaryEnabled = auxiliaryEnabled_; | 
| + | 
| + (void)showAutoFillDialogWithObserver:(AutoFillDialogObserver*)observer | 
| autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles | 
| -                     creditCards:(const std::vector<CreditCard*>&)creditCards { | 
| +                     creditCards:(const std::vector<CreditCard*>&)creditCards | 
| +                         profile:(Profile*)profile { | 
| AutoFillDialogController* controller = | 
| [AutoFillDialogController controllerWithObserver:observer | 
| -                                      autoFillProfiles:profiles | 
| -                                           creditCards:creditCards]; | 
| +          autoFillProfiles:profiles | 
| +               creditCards:creditCards | 
| +                   profile:profile]; | 
|  | 
| // Only run modal dialog if it is not already being shown. | 
| if (![controller isWindowLoaded]) { | 
| @@ -78,6 +83,8 @@ | 
| [creditCardFormViewController copyModelToCreditCard:&creditCards_[j]]; | 
| j++; | 
| } | 
| +    profile_->GetPrefs()->SetBoolean(prefs::kAutoFillAuxiliaryProfilesEnabled, | 
| +                                     auxiliaryEnabled_); | 
| observer_->OnAutoFillDialogApply(&profiles_, &creditCards_); | 
| } | 
| [self closeDialog]; | 
| @@ -221,13 +228,15 @@ | 
| + (AutoFillDialogController*)controllerWithObserver: | 
| (AutoFillDialogObserver*)observer | 
| autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles | 
| -           creditCards:(const std::vector<CreditCard*>&)creditCards { | 
| +      creditCards:(const std::vector<CreditCard*>&)creditCards | 
| +      profile:(Profile*)profile { | 
|  | 
| // Deallocation is done upon window close.  See |windowWillClose:|. | 
| AutoFillDialogController* controller = | 
| [[self alloc] initWithObserver:observer | 
| autoFillProfiles:profiles | 
| -                         creditCards:creditCards]; | 
| +                         creditCards:creditCards | 
| +                             profile:profile]; | 
| return controller; | 
| } | 
|  | 
| @@ -237,7 +246,9 @@ | 
| // |creditCards| are non-retained immutable list of credit card info. | 
| - (id)initWithObserver:(AutoFillDialogObserver*)observer | 
| autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles | 
| -           creditCards:(const std::vector<CreditCard*>&)creditCards { | 
| +           creditCards:(const std::vector<CreditCard*>&)creditCards | 
| +               profile:(Profile*)profile { | 
| +  CHECK(profile); | 
| // Use initWithWindowNibPath: instead of initWithWindowNibName: so we | 
| // can override it in a unit test. | 
| NSString* nibpath = [mac_util::MainAppBundle() | 
| @@ -256,6 +267,12 @@ | 
| for (j = creditCards.begin(); j != creditCards.end(); ++j) | 
| creditCards_.push_back(**j); | 
|  | 
| +    profile_ = profile; | 
| + | 
| +    // Use property here to trigger KVO binding. | 
| +    [self setAuxiliaryEnabled:profile_->GetPrefs()->GetBoolean( | 
| +        prefs::kAutoFillAuxiliaryProfilesEnabled)]; | 
| + | 
| // Initialize array of sub-controllers. | 
| addressFormViewControllers_.reset([[NSMutableArray array] retain]); | 
|  | 
|  |