Index: chrome/browser/cocoa/search_engine_dialog_controller.mm |
=================================================================== |
--- chrome/browser/cocoa/search_engine_dialog_controller.mm (revision 64076) |
+++ chrome/browser/cocoa/search_engine_dialog_controller.mm (working copy) |
@@ -40,7 +40,9 @@ |
- (IBAction)searchEngineSelected:(id)sender; |
@end |
-class SearchEngineDialogControllerBridge : public TemplateURLModelObserver { |
+class SearchEngineDialogControllerBridge : |
+ public base::RefCounted<SearchEngineDialogControllerBridge>, |
+ public TemplateURLModelObserver { |
public: |
SearchEngineDialogControllerBridge(SearchEngineDialogController* controller); |
@@ -71,7 +73,7 @@ |
ofType:@"nib"]; |
self = [super initWithWindowNibPath:nibpath owner:self]; |
if (self != nil) { |
- bridge_.reset(new SearchEngineDialogControllerBridge(self)); |
+ bridge_ = new SearchEngineDialogControllerBridge(self); |
} |
return self; |
} |
@@ -85,11 +87,15 @@ |
searchEnginesModel_->AddObserver(bridge_.get()); |
if (searchEnginesModel_->loaded()) { |
- [self onTemplateURLModelChanged]; |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ NewRunnableMethod( |
+ bridge_.get(), |
+ &SearchEngineDialogControllerBridge::OnTemplateURLModelChanged)); |
} else { |
searchEnginesModel_->Load(); |
- MessageLoop::current()->Run(); |
} |
+ MessageLoop::current()->Run(); |
} |
- (void)onTemplateURLModelChanged { |