Chromium Code Reviews| Index: chrome/browser/first_run/first_run.cc |
| diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc |
| index ee7d583d66f39f3215a253656bbbd7baae6f6449..e292aae29eafac0deafef1052bb49d9530b3c659 100644 |
| --- a/chrome/browser/first_run/first_run.cc |
| +++ b/chrome/browser/first_run/first_run.cc |
| @@ -46,6 +46,7 @@ |
| #include "chrome/browser/ui/global_error/global_error_service_factory.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" |
| +#include "chrome/common/chrome_constants.h" |
| #include "chrome/common/chrome_paths.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/pref_names.h" |
| @@ -447,30 +448,6 @@ void ProcessDefaultBrowserPolicy(bool make_chrome_default_for_user) { |
| } |
| } |
| -bool IsFirstRunSentinelPresent() { |
| - base::FilePath first_run_sentinel; |
| - // Treat sentinel as being present if the path can't be obtained. |
| - if (!first_run::internal::GetFirstRunSentinelFilePath(&first_run_sentinel) || |
| - base::PathExists(first_run_sentinel)) { |
| - return true; |
| - } |
| - // Sentinel is truly absent if there's no legacy path or legacy doesn't exist. |
| - base::FilePath legacy_first_run_sentinel; |
| - if (!first_run::internal::GetLegacyFirstRunSentinelFilePath( |
| - &legacy_first_run_sentinel) || |
| - !base::PathExists(legacy_first_run_sentinel)) { |
| - return false; |
| - } |
| - // Migrate the legacy sentinel to the new location if it was found. This does |
| - // a copy instead of a move to avoid breaking the developer build case where |
| - // the First Run sentinel is dropped beside chrome.exe by a build action |
| - // (i.e., at the legacy path). |
| - bool migrated = base::CopyFile(legacy_first_run_sentinel, first_run_sentinel); |
| - DPCHECK(migrated); |
| - // Sentinel is present regardless of whether or not it was migrated. |
| - return true; |
| -} |
| - |
| } // namespace |
| namespace first_run { |
| @@ -565,11 +542,17 @@ void SetupMasterPrefsFromInstallPrefs( |
| &out_prefs->suppress_default_browser_prompt_for_version); |
| } |
| +bool GetFirstRunSentinelFilePath(base::FilePath* path) { |
| + base::FilePath user_data_dir; |
| + if (PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) |
| + *path = user_data_dir.Append(chrome::kFirstRunSentinel); |
| + return !path->empty(); |
|
grt (UTC plus 2)
2014/03/27 15:35:20
it's not safe to assume that the caller passes in
msw
2014/03/28 00:04:11
Done (restored the original pattern).
|
| +} |
| + |
| bool CreateSentinel() { |
| base::FilePath first_run_sentinel; |
| - if (!internal::GetFirstRunSentinelFilePath(&first_run_sentinel)) |
| - return false; |
| - return base::WriteFile(first_run_sentinel, "", 0) != -1; |
| + return GetFirstRunSentinelFilePath(&first_run_sentinel) && |
| + base::WriteFile(first_run_sentinel, "", 0) != -1; |
|
grt (UTC plus 2)
2014/03/27 15:35:20
nit: either 4-space indent or wrap the whole thing
msw
2014/03/28 00:04:11
Done (4-space indent).
|
| } |
| // -- Platform-specific functions -- |
| @@ -596,20 +579,15 @@ MasterPrefs::MasterPrefs() |
| MasterPrefs::~MasterPrefs() {} |
| bool IsChromeFirstRun() { |
| - if (internal::first_run_ != internal::FIRST_RUN_UNKNOWN) |
| - return internal::first_run_ == internal::FIRST_RUN_TRUE; |
| - |
| - internal::first_run_ = internal::FIRST_RUN_FALSE; |
| - |
| - base::FilePath first_run_sentinel; |
| - const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| - if (command_line->HasSwitch(switches::kForceFirstRun)) { |
| - internal::first_run_ = internal::FIRST_RUN_TRUE; |
| - } else if (!command_line->HasSwitch(switches::kNoFirstRun) && |
| - !IsFirstRunSentinelPresent()) { |
| - internal::first_run_ = internal::FIRST_RUN_TRUE; |
| + if (internal::first_run_ == internal::FIRST_RUN_UNKNOWN) { |
| + internal::first_run_ = internal::FIRST_RUN_FALSE; |
| + const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| + if (command_line->HasSwitch(switches::kForceFirstRun) || |
| + (!command_line->HasSwitch(switches::kNoFirstRun) && |
| + !internal::IsFirstRunSentinelPresent())) { |
| + internal::first_run_ = internal::FIRST_RUN_TRUE; |
| + } |
| } |
| - |
| return internal::first_run_ == internal::FIRST_RUN_TRUE; |
| } |
| @@ -637,9 +615,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { |
| bool RemoveSentinel() { |
| base::FilePath first_run_sentinel; |
| - if (!internal::GetFirstRunSentinelFilePath(&first_run_sentinel)) |
| - return false; |
| - return base::DeleteFile(first_run_sentinel, false); |
| + return internal::GetFirstRunSentinelFilePath(&first_run_sentinel) && |
| + base::DeleteFile(first_run_sentinel, false); |
|
grt (UTC plus 2)
2014/03/27 15:35:20
same indentation nit
msw
2014/03/28 00:04:11
Done.
|
| } |
| bool SetShowFirstRunBubblePref(FirstRunBubbleOptions show_bubble_option) { |