| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/first_run/first_run.h" | 5 #include "chrome/browser/first_run/first_run.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 #include "googleurl/src/gurl.h" | 58 #include "googleurl/src/gurl.h" |
| 59 | 59 |
| 60 using content::UserMetricsAction; | 60 using content::UserMetricsAction; |
| 61 | 61 |
| 62 namespace { | 62 namespace { |
| 63 | 63 |
| 64 // Flags for functions of similar name. | 64 // Flags for functions of similar name. |
| 65 bool should_show_welcome_page_ = false; | 65 bool should_show_welcome_page_ = false; |
| 66 bool should_do_autofill_personal_data_manager_first_run_ = false; | 66 bool should_do_autofill_personal_data_manager_first_run_ = false; |
| 67 | 67 |
| 68 // Flags indicating whether a first-run profile auto import was performed, and |
| 69 // whether the importer process exited successfully. |
| 70 bool did_perform_profile_import = false; |
| 71 bool profile_import_exited_successfully = false; |
| 72 |
| 68 // Helper class that performs delayed first-run tasks that need more of the | 73 // Helper class that performs delayed first-run tasks that need more of the |
| 69 // chrome infrastructure to be up and running before they can be attempted. | 74 // chrome infrastructure to be up and running before they can be attempted. |
| 70 class FirstRunDelayedTasks : public content::NotificationObserver { | 75 class FirstRunDelayedTasks : public content::NotificationObserver { |
| 71 public: | 76 public: |
| 72 enum Tasks { | 77 enum Tasks { |
| 73 NO_TASK, | 78 NO_TASK, |
| 74 INSTALL_EXTENSIONS | 79 INSTALL_EXTENSIONS |
| 75 }; | 80 }; |
| 76 | 81 |
| 77 explicit FirstRunDelayedTasks(Tasks task) { | 82 explicit FirstRunDelayedTasks(Tasks task) { |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 dont_import_items, | 693 dont_import_items, |
| 689 importer::SEARCH_ENGINES, | 694 importer::SEARCH_ENGINES, |
| 690 items); | 695 items); |
| 691 SetImportItem(user_prefs, | 696 SetImportItem(user_prefs, |
| 692 prefs::kImportBookmarks, | 697 prefs::kImportBookmarks, |
| 693 import_items, | 698 import_items, |
| 694 dont_import_items, | 699 dont_import_items, |
| 695 importer::FAVORITES, | 700 importer::FAVORITES, |
| 696 items); | 701 items); |
| 697 | 702 |
| 698 internal::ImportSettings(profile, importer_host, importer_list, items); | 703 profile_import_exited_successfully = |
| 704 internal::ImportSettings(profile, importer_host, importer_list, items); |
| 705 DCHECK(profile_import_exited_successfully); |
| 699 } | 706 } |
| 700 | 707 |
| 701 content::RecordAction(UserMetricsAction("FirstRunDef_Accept")); | 708 content::RecordAction(UserMetricsAction("FirstRunDef_Accept")); |
| 702 | 709 |
| 703 process_singleton->Unlock(); | 710 process_singleton->Unlock(); |
| 704 first_run::CreateSentinel(); | 711 first_run::CreateSentinel(); |
| 705 #endif // !defined(USE_AURA) | 712 #endif // !defined(USE_AURA) |
| 713 did_perform_profile_import = true; |
| 706 } | 714 } |
| 707 | 715 |
| 708 void DoPostImportTasks(Profile* profile, bool make_chrome_default) { | 716 void DoPostImportTasks(Profile* profile, bool make_chrome_default) { |
| 709 if (make_chrome_default && | 717 if (make_chrome_default && |
| 710 ShellIntegration::CanSetAsDefaultBrowser() == | 718 ShellIntegration::CanSetAsDefaultBrowser() == |
| 711 ShellIntegration::SET_DEFAULT_UNATTENDED) { | 719 ShellIntegration::SET_DEFAULT_UNATTENDED) { |
| 712 ShellIntegration::SetAsDefaultBrowser(); | 720 ShellIntegration::SetAsDefaultBrowser(); |
| 713 } | 721 } |
| 714 | 722 |
| 715 #if !defined(USE_AURA) | 723 #if !defined(USE_AURA) |
| (...skipping 12 matching lines...) Expand all Loading... |
| 728 TemplateURLServiceFactory::GetForProfile(profile); | 736 TemplateURLServiceFactory::GetForProfile(profile); |
| 729 if (template_url && template_url->GetDefaultSearchProvider()) | 737 if (template_url && template_url->GetDefaultSearchProvider()) |
| 730 FirstRunBubbleLauncher::ShowFirstRunBubbleSoon(); | 738 FirstRunBubbleLauncher::ShowFirstRunBubbleSoon(); |
| 731 SetShouldShowWelcomePage(); | 739 SetShouldShowWelcomePage(); |
| 732 SetShouldDoPersonalDataManagerFirstRun(); | 740 SetShouldDoPersonalDataManagerFirstRun(); |
| 733 #endif // !defined(USE_AURA) | 741 #endif // !defined(USE_AURA) |
| 734 | 742 |
| 735 internal::DoPostImportPlatformSpecificTasks(); | 743 internal::DoPostImportPlatformSpecificTasks(); |
| 736 } | 744 } |
| 737 | 745 |
| 746 bool DidPerformProfileImport(bool* exited_successfully) { |
| 747 if (exited_successfully) |
| 748 *exited_successfully = profile_import_exited_successfully; |
| 749 return did_perform_profile_import; |
| 750 } |
| 751 |
| 738 } // namespace first_run | 752 } // namespace first_run |
| OLD | NEW |