| 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.h" | 5 #include "chrome/browser/first_run.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 #include <shlobj.h> | 9 #include <shlobj.h> |
| 10 | 10 |
| (...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 process_singleton->Unlock(); | 675 process_singleton->Unlock(); |
| 676 FirstRun::CreateSentinel(); | 676 FirstRun::CreateSentinel(); |
| 677 } | 677 } |
| 678 | 678 |
| 679 bool FirstRun::ImportSettings(Profile* profile, int browser_type, | 679 bool FirstRun::ImportSettings(Profile* profile, int browser_type, |
| 680 int items_to_import, | 680 int items_to_import, |
| 681 const std::wstring& import_bookmarks_path, | 681 const std::wstring& import_bookmarks_path, |
| 682 HWND parent_window) { | 682 HWND parent_window) { |
| 683 const CommandLine& cmdline = *CommandLine::ForCurrentProcess(); | 683 const CommandLine& cmdline = *CommandLine::ForCurrentProcess(); |
| 684 CommandLine import_cmd(cmdline.GetProgram()); | 684 CommandLine import_cmd(cmdline.GetProgram()); |
| 685 // Propagate user data directory switch. | 685 |
| 686 if (cmdline.HasSwitch(switches::kUserDataDir)) { | 686 const char* kSwitchNames[] = { |
| 687 import_cmd.AppendSwitchWithValue( | 687 switches::kUserDataDir, |
| 688 switches::kUserDataDir, | 688 switches::kChromeFrame, |
| 689 cmdline.GetSwitchValueASCII(switches::kUserDataDir)); | 689 switches::kCountry, |
| 690 } | 690 }; |
| 691 import_cmd.CopySwitchesFrom(cmdline, kSwitchNames, arraysize(kSwitchNames)); |
| 691 | 692 |
| 692 // Since ImportSettings is called before the local state is stored on disk | 693 // Since ImportSettings is called before the local state is stored on disk |
| 693 // we pass the language as an argument. GetApplicationLocale checks the | 694 // we pass the language as an argument. GetApplicationLocale checks the |
| 694 // current command line as fallback. | 695 // current command line as fallback. |
| 695 import_cmd.AppendSwitchWithValue( | 696 import_cmd.AppendSwitchWithValue( |
| 696 switches::kLang, | 697 switches::kLang, |
| 697 ASCIIToWide(g_browser_process->GetApplicationLocale())); | 698 ASCIIToWide(g_browser_process->GetApplicationLocale())); |
| 698 | 699 |
| 699 if (items_to_import) { | 700 if (items_to_import) { |
| 700 import_cmd.CommandLine::AppendSwitchWithValue(switches::kImport, | 701 import_cmd.CommandLine::AppendSwitchWithValue(switches::kImport, |
| 701 EncodeImportParams(browser_type, items_to_import, parent_window)); | 702 EncodeImportParams(browser_type, items_to_import, parent_window)); |
| 702 } | 703 } |
| 703 | 704 |
| 704 if (!import_bookmarks_path.empty()) { | 705 if (!import_bookmarks_path.empty()) { |
| 705 import_cmd.CommandLine::AppendSwitchWithValue( | 706 import_cmd.CommandLine::AppendSwitchWithValue( |
| 706 switches::kImportFromFile, import_bookmarks_path.c_str()); | 707 switches::kImportFromFile, import_bookmarks_path.c_str()); |
| 707 } | 708 } |
| 708 | 709 |
| 709 if (cmdline.HasSwitch(switches::kChromeFrame)) { | |
| 710 import_cmd.AppendSwitch(switches::kChromeFrame); | |
| 711 } | |
| 712 | |
| 713 if (cmdline.HasSwitch(switches::kCountry)) { | |
| 714 import_cmd.AppendSwitchWithValue(switches::kCountry, | |
| 715 cmdline.GetSwitchValueASCII(switches::kCountry)); | |
| 716 } | |
| 717 | |
| 718 // Time to launch the process that is going to do the import. | 710 // Time to launch the process that is going to do the import. |
| 719 base::ProcessHandle import_process; | 711 base::ProcessHandle import_process; |
| 720 if (!base::LaunchApp(import_cmd, false, false, &import_process)) | 712 if (!base::LaunchApp(import_cmd, false, false, &import_process)) |
| 721 return false; | 713 return false; |
| 722 | 714 |
| 723 // Activate the importer monitor. It awakes periodically in another thread | 715 // Activate the importer monitor. It awakes periodically in another thread |
| 724 // and checks that the importer UI is still pumping messages. | 716 // and checks that the importer UI is still pumping messages. |
| 725 if (parent_window) | 717 if (parent_window) |
| 726 HungImporterMonitor hang_monitor(parent_window, import_process); | 718 HungImporterMonitor hang_monitor(parent_window, import_process); |
| 727 | 719 |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1062 | 1054 |
| 1063 Upgrade::TryResult Upgrade::ShowTryChromeDialog(size_t version) { | 1055 Upgrade::TryResult Upgrade::ShowTryChromeDialog(size_t version) { |
| 1064 if (version > 10000) { | 1056 if (version > 10000) { |
| 1065 // This is a test value. We want to make sure we exercise | 1057 // This is a test value. We want to make sure we exercise |
| 1066 // returning this early. See EarlyReturnTest test harness. | 1058 // returning this early. See EarlyReturnTest test harness. |
| 1067 return Upgrade::TD_NOT_NOW; | 1059 return Upgrade::TD_NOT_NOW; |
| 1068 } | 1060 } |
| 1069 TryChromeDialog td; | 1061 TryChromeDialog td; |
| 1070 return td.ShowModal(); | 1062 return td.ShowModal(); |
| 1071 } | 1063 } |
| OLD | NEW |