Index: trunk/src/chrome/browser/first_run/first_run_linux.cc |
=================================================================== |
--- trunk/src/chrome/browser/first_run/first_run_linux.cc (revision 201967) |
+++ trunk/src/chrome/browser/first_run/first_run_linux.cc (working copy) |
@@ -31,6 +31,37 @@ |
return true; |
} |
+// TODO(port): This is just a piece of the silent import functionality from |
+// ImportSettings for Windows. It would be nice to get the rest of it ported. |
+bool ImportBookmarks(const base::FilePath& import_bookmarks_path) { |
+ const CommandLine& cmdline = *CommandLine::ForCurrentProcess(); |
+ CommandLine import_cmd(cmdline.GetProgram()); |
+ |
+ // Propagate user data directory switch. |
+ if (cmdline.HasSwitch(switches::kUserDataDir)) { |
+ import_cmd.AppendSwitchPath(switches::kUserDataDir, |
+ cmdline.GetSwitchValuePath(switches::kUserDataDir)); |
+ } |
+ // Since ImportSettings is called before the local state is stored on disk |
+ // we pass the language as an argument. GetApplicationLocale checks the |
+ // current command line as fallback. |
+ import_cmd.AppendSwitchASCII(switches::kLang, |
+ g_browser_process->GetApplicationLocale()); |
+ |
+ import_cmd.CommandLine::AppendSwitchPath(switches::kImportFromFile, |
+ import_bookmarks_path); |
+ |
+ // The importer doesn't need to do any background networking tasks so disable |
+ // them. |
+ import_cmd.CommandLine::AppendSwitch(switches::kDisableBackgroundNetworking); |
+ |
+ // Time to launch the process that is going to do the import. We'll wait |
+ // for the process to return. |
+ base::LaunchOptions options; |
+ options.wait = true; |
+ return base::LaunchProcess(import_cmd, options, NULL); |
+} |
+ |
base::FilePath MasterPrefsPath() { |
// The standard location of the master prefs is next to the chrome binary. |
base::FilePath master_prefs; |