| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 | 8 |
| 9 // TODO(port): move more code in back from the first_run_win.cc module. | 9 // TODO(port): move more code in back from the first_run_win.cc module. |
| 10 | 10 |
| 11 #if defined(OS_WIN) | 11 #if defined(OS_WIN) |
| 12 #include "chrome/installer/util/google_update_settings.h" | 12 #include "chrome/installer/util/google_update_settings.h" |
| 13 #include "chrome/installer/util/install_util.h" | 13 #include "chrome/installer/util/install_util.h" |
| 14 #endif | 14 #endif |
| 15 | 15 |
| 16 #include "base/command_line.h" | 16 #include "base/command_line.h" |
| 17 #include "base/file_util.h" | 17 #include "base/file_util.h" |
| 18 #include "base/path_service.h" | 18 #include "base/path_service.h" |
| 19 #include "base/utf_string_conversions.h" | 19 #include "base/utf_string_conversions.h" |
| 20 #include "chrome/browser/importer/importer.h" | 20 #include "chrome/browser/importer/importer.h" |
| 21 #include "chrome/browser/metrics/user_metrics.h" | 21 #include "chrome/browser/metrics/user_metrics.h" |
| 22 #include "chrome/browser/prefs/pref_service.h" | 22 #include "chrome/browser/prefs/pref_service.h" |
| 23 #include "chrome/browser/process_singleton.h" | 23 #include "chrome/browser/process_singleton.h" |
| 24 #include "chrome/browser/profile_manager.h" | 24 #include "chrome/browser/profile_manager.h" |
| 25 #include "chrome/browser/search_engines/template_url_model.h" |
| 25 #include "chrome/browser/shell_integration.h" | 26 #include "chrome/browser/shell_integration.h" |
| 26 #include "chrome/common/chrome_paths.h" | 27 #include "chrome/common/chrome_paths.h" |
| 27 #include "chrome/common/chrome_switches.h" | 28 #include "chrome/common/chrome_switches.h" |
| 28 #include "chrome/common/pref_names.h" | 29 #include "chrome/common/pref_names.h" |
| 29 #include "chrome/installer/util/master_preferences.h" | 30 #include "chrome/installer/util/master_preferences.h" |
| 30 #include "chrome/installer/util/util_constants.h" | 31 #include "chrome/installer/util/util_constants.h" |
| 31 | 32 |
| 32 namespace { | 33 namespace { |
| 33 | 34 |
| 34 // The kSentinelFile file absence will tell us it is a first run. | 35 // The kSentinelFile file absence will tell us it is a first run. |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 // Bookmarks are never imported, unless turned on in master_preferences. | 558 // Bookmarks are never imported, unless turned on in master_preferences. |
| 558 if (import_items & importer::FAVORITES) | 559 if (import_items & importer::FAVORITES) |
| 559 items = items | importer::FAVORITES; | 560 items = items | importer::FAVORITES; |
| 560 | 561 |
| 561 ImportSettings(profile, importer_host, items); | 562 ImportSettings(profile, importer_host, items); |
| 562 } | 563 } |
| 563 | 564 |
| 564 UserMetrics::RecordAction(UserMetricsAction("FirstRunDef_Accept")); | 565 UserMetrics::RecordAction(UserMetricsAction("FirstRunDef_Accept")); |
| 565 | 566 |
| 566 // Launch the search engine dialog only if build is organic, and user has not | 567 // Launch the search engine dialog only if build is organic, and user has not |
| 567 // already set search preferences. | 568 // already set preferences. |
| 568 if (IsOrganic() && !local_state_file_exists) { | 569 if (IsOrganic() && !local_state_file_exists) { |
| 569 // The home page string may be set in the preferences, but the user should | 570 // The home page string may be set in the preferences, but the user should |
| 570 // initially use Chrome with the NTP as home page in organic builds. | 571 // initially use Chrome with the NTP as home page in organic builds. |
| 571 profile->GetPrefs()->SetBoolean(prefs::kHomePageIsNewTabPage, true); | 572 profile->GetPrefs()->SetBoolean(prefs::kHomePageIsNewTabPage, true); |
| 572 ShowFirstRunDialog(profile, randomize_search_engine_experiment); | 573 ShowFirstRunDialog(profile, randomize_search_engine_experiment); |
| 573 } | 574 } |
| 574 | 575 |
| 575 if (make_chrome_default) | 576 if (make_chrome_default) |
| 576 ShellIntegration::SetAsDefaultBrowser(); | 577 ShellIntegration::SetAsDefaultBrowser(); |
| 577 | 578 |
| 578 FirstRun::SetShowFirstRunBubblePref(true); | 579 // Don't display the minimal bubble if there is no default search provider. |
| 579 // Set the first run bubble to minimal. | 580 TemplateURLModel* search_engines_model = profile->GetTemplateURLModel(); |
| 580 FirstRun::SetMinimalFirstRunBubblePref(); | 581 if (search_engines_model && |
| 582 search_engines_model->GetDefaultSearchProvider()) { |
| 583 FirstRun::SetShowFirstRunBubblePref(true); |
| 584 // Set the first run bubble to minimal. |
| 585 FirstRun::SetMinimalFirstRunBubblePref(); |
| 586 } |
| 581 FirstRun::SetShowWelcomePagePref(); | 587 FirstRun::SetShowWelcomePagePref(); |
| 582 FirstRun::SetPersonalDataManagerFirstRunPref(); | 588 FirstRun::SetPersonalDataManagerFirstRunPref(); |
| 583 | 589 |
| 584 process_singleton->Unlock(); | 590 process_singleton->Unlock(); |
| 585 FirstRun::CreateSentinel(); | 591 FirstRun::CreateSentinel(); |
| 586 } | 592 } |
| 587 | 593 |
| 588 #if defined(OS_POSIX) | 594 #if defined(OS_POSIX) |
| 589 namespace { | 595 namespace { |
| 590 | 596 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 647 if (!observer->ended()) { | 653 if (!observer->ended()) { |
| 648 observer->set_should_quit_message_loop(); | 654 observer->set_should_quit_message_loop(); |
| 649 MessageLoop::current()->Run(); | 655 MessageLoop::current()->Run(); |
| 650 } | 656 } |
| 651 | 657 |
| 652 // Unfortunately there's no success/fail signal in ImporterHost. | 658 // Unfortunately there's no success/fail signal in ImporterHost. |
| 653 return true; | 659 return true; |
| 654 } | 660 } |
| 655 | 661 |
| 656 #endif // OS_POSIX | 662 #endif // OS_POSIX |
| OLD | NEW |