| Index: chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
 | 
| diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
 | 
| index d0d1db4421de04f419b2a30d3ee1ef747ae6e007..c86fa29cc7aeacf7e614be016a01df795a9e3d8f 100644
 | 
| --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
 | 
| +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
 | 
| @@ -97,6 +97,8 @@ NSRange ComponentToNSRange(const url_parse::Component& component) {
 | 
|    AutocompleteEditViewMac* edit_view_;  // weak, owns us.
 | 
|  }
 | 
|  - initWithEditView:(AutocompleteEditViewMac*)view;
 | 
| +- (void)windowDidResignKey:(NSNotification*)notification;
 | 
| +- (void)windowDidBecomeKey:(NSNotification*)notification;
 | 
|  @end
 | 
|  
 | 
|  AutocompleteEditViewMac::AutocompleteEditViewMac(
 | 
| @@ -122,6 +124,18 @@ AutocompleteEditViewMac::AutocompleteEditViewMac(
 | 
|  
 | 
|    // Needed so that editing doesn't lose the styling.
 | 
|    [field_ setAllowsEditingTextAttributes:YES];
 | 
| +
 | 
| +  // Track the window's key status for signalling focus changes to
 | 
| +  // |model_|.
 | 
| +  NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
 | 
| +  [nc addObserver:edit_helper_
 | 
| +         selector:@selector(windowDidResignKey:) 
 | 
| +             name:NSWindowDidResignKeyNotification
 | 
| +           object:[field_ window]];
 | 
| +  [nc addObserver:edit_helper_
 | 
| +         selector:@selector(windowDidBecomeKey:) 
 | 
| +             name:NSWindowDidBecomeKeyNotification
 | 
| +           object:[field_ window]];
 | 
|  }
 | 
|  
 | 
|  AutocompleteEditViewMac::~AutocompleteEditViewMac() {
 | 
| @@ -137,6 +151,9 @@ AutocompleteEditViewMac::~AutocompleteEditViewMac() {
 | 
|    // Disconnect field_ from edit_helper_ so that we don't get calls
 | 
|    // after destruction.
 | 
|    [field_ setDelegate:nil];
 | 
| +
 | 
| +  // Disconnect notifications so they don't signal a dead object.
 | 
| +  [[NSNotificationCenter defaultCenter] removeObserver:edit_helper_];
 | 
|  }
 | 
|  
 | 
|  void AutocompleteEditViewMac::SaveStateToTab(TabContents* tab) {
 | 
| @@ -440,7 +457,10 @@ void AutocompleteEditViewMac::OnEscapeKeyPressed() {
 | 
|    model_->OnEscapeKeyPressed();
 | 
|  }
 | 
|  void AutocompleteEditViewMac::OnSetFocus(bool f) {
 | 
| -  model_->OnSetFocus(f);
 | 
| +  // Only forward if we actually do have the focus.
 | 
| +  if ([field_ currentEditor]) {
 | 
| +    model_->OnSetFocus(f);
 | 
| +  }
 | 
|  }
 | 
|  void AutocompleteEditViewMac::OnKillFocus() {
 | 
|    // TODO(shess): This would seem to be a job for |model_|.
 | 
| @@ -537,4 +557,14 @@ void AutocompleteEditViewMac::FocusLocation() {
 | 
|    // it's set to the start of the text.
 | 
|  }
 | 
|  
 | 
| +// Signal that we've lost focus when the window resigns key.
 | 
| +- (void)windowDidResignKey:(NSNotification*)notification {
 | 
| +  edit_view_->OnKillFocus();
 | 
| +}
 | 
| +
 | 
| +// Signal that we may have regained focus.
 | 
| +- (void)windowDidBecomeKey:(NSNotification*)notification {
 | 
| +  edit_view_->OnSetFocus(false);
 | 
| +}
 | 
| +
 | 
|  @end
 | 
| 
 |