diff options
Diffstat (limited to 'chrome/browser/cocoa/search_engine_dialog_controller.mm')
| -rw-r--r-- | chrome/browser/cocoa/search_engine_dialog_controller.mm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/chrome/browser/cocoa/search_engine_dialog_controller.mm b/chrome/browser/cocoa/search_engine_dialog_controller.mm index 044bb58..0888050 100644 --- a/chrome/browser/cocoa/search_engine_dialog_controller.mm +++ b/chrome/browser/cocoa/search_engine_dialog_controller.mm @@ -40,7 +40,9 @@ const int kLogoLabelHeight = 25; - (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 @@ void SearchEngineDialogControllerBridge::OnTemplateURLModelChanged() { 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 @@ void SearchEngineDialogControllerBridge::OnTemplateURLModelChanged() { 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 { |
