diff options
author | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-28 20:13:17 +0000 |
---|---|---|
committer | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-28 20:13:17 +0000 |
commit | 6a91ac8944f8aa2b79ae3b877c9b0b0ad55bd856 (patch) | |
tree | aa087644340141345b2433ccc0cd863bb0fb9391 /chrome/browser | |
parent | c537cac7151ecd8711b6408e51bfdd0f58b41bfb (diff) | |
download | chromium_src-6a91ac8944f8aa2b79ae3b877c9b0b0ad55bd856.zip chromium_src-6a91ac8944f8aa2b79ae3b877c9b0b0ad55bd856.tar.gz chromium_src-6a91ac8944f8aa2b79ae3b877c9b0b0ad55bd856.tar.bz2 |
If default browser is set to FF, and Chrome is run as first-run with an empty profile, import ignores FF data and imports from Safari instead.
BUG=61112
TEST=see bug.
Review URL: http://codereview.chromium.org/4206002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64298 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/cocoa/search_engine_dialog_controller.h | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/search_engine_dialog_controller.mm | 14 | ||||
-rw-r--r-- | chrome/browser/importer/importer_list.cc | 15 |
3 files changed, 22 insertions, 10 deletions
diff --git a/chrome/browser/cocoa/search_engine_dialog_controller.h b/chrome/browser/cocoa/search_engine_dialog_controller.h index a410614..0cc06f2 100644 --- a/chrome/browser/cocoa/search_engine_dialog_controller.h +++ b/chrome/browser/cocoa/search_engine_dialog_controller.h @@ -6,6 +6,7 @@ #include <vector> +#import "base/ref_counted.h" #import "base/scoped_nsobject.h" #include "base/scoped_ptr.h" @@ -27,7 +28,7 @@ class TemplateURLModel; TemplateURLModel* searchEnginesModel_; // Bridge to the C++ world. - scoped_ptr<SearchEngineDialogControllerBridge> bridge_; + scoped_refptr<SearchEngineDialogControllerBridge> bridge_; // Offered search engine choices. std::vector<const TemplateURL*> choices_; 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 { diff --git a/chrome/browser/importer/importer_list.cc b/chrome/browser/importer/importer_list.cc index f529284..6ac6517 100644 --- a/chrome/browser/importer/importer_list.cc +++ b/chrome/browser/importer/importer_list.cc @@ -35,9 +35,9 @@ ImporterList::~ImporterList() { } void ImporterList::DetectSourceProfiles() { +// The first run import will automatically take settings from the first +// profile detected, which should be the user's current default. #if defined(OS_WIN) - // The order in which detect is called determines the order - // in which the options appear in the dropdown combo-box if (ShellIntegration::IsFirefoxDefaultBrowser()) { DetectFirefoxProfiles(); DetectIEProfiles(); @@ -47,10 +47,15 @@ void ImporterList::DetectSourceProfiles() { } // TODO(brg) : Current UI requires win_util. DetectGoogleToolbarProfiles(); +#elif defined(OS_MACOSX) + if (ShellIntegration::IsFirefoxDefaultBrowser()) { + DetectFirefoxProfiles(); + DetectSafariProfiles(); + } else { + DetectSafariProfiles(); + DetectFirefoxProfiles(); + } #else -#if defined(OS_MACOSX) - DetectSafariProfiles(); -#endif DetectFirefoxProfiles(); #endif } |