Home | History | Annotate | Download | only in first_run
      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.
     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
     48 bool FirstRun::IsOrganicFirstRun() {
     49   // We treat all installs as organic.
     50   return true;
     51 }
     52 
     53 // static
     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