• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/first_run/first_run.h"
6 
7 #include "base/command_line.h"
8 #include "base/file_path.h"
9 #include "base/file_util.h"
10 #include "base/path_service.h"
11 #include "base/process_util.h"
12 #include "base/string_piece.h"
13 #include "base/string_util.h"
14 #include "base/utf_string_conversions.h"
15 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/shell_integration.h"
17 #include "chrome/common/chrome_switches.h"
18 #include "chrome/installer/util/google_update_settings.h"
19 #include "content/common/result_codes.h"
20 #include "googleurl/src/gurl.h"
21 #include "ui/base/ui_base_switches.h"
22 
23 // TODO(port): This is just a piece of the silent import functionality from
24 // ImportSettings for Windows.  It would be nice to get the rest of it ported.
ImportBookmarks(const FilePath & import_bookmarks_path)25 bool FirstRun::ImportBookmarks(const FilePath& import_bookmarks_path) {
26   const CommandLine& cmdline = *CommandLine::ForCurrentProcess();
27   CommandLine import_cmd(cmdline.GetProgram());
28 
29   // Propagate user data directory switch.
30   if (cmdline.HasSwitch(switches::kUserDataDir)) {
31     import_cmd.AppendSwitchPath(switches::kUserDataDir,
32         cmdline.GetSwitchValuePath(switches::kUserDataDir));
33   }
34   // Since ImportSettings is called before the local state is stored on disk
35   // we pass the language as an argument. GetApplicationLocale checks the
36   // current command line as fallback.
37   import_cmd.AppendSwitchASCII(switches::kLang,
38                                g_browser_process->GetApplicationLocale());
39 
40   import_cmd.CommandLine::AppendSwitchPath(switches::kImportFromFile,
41                                            import_bookmarks_path);
42   // Time to launch the process that is going to do the import. We'll wait
43   // for the process to return.
44   return base::LaunchApp(import_cmd, true, false, NULL);
45 }
46 
47 // static
IsOrganicFirstRun()48 bool FirstRun::IsOrganicFirstRun() {
49   // We treat all installs as organic.
50   return true;
51 }
52 
53 // static
PlatformSetup()54 void FirstRun::PlatformSetup() {
55   // Things that Windows does here (creating a desktop icon, for example) are
56   // handled at install time on Linux.
57 }
58