OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/field_trial.h" | 10 #include "base/field_trial.h" |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 return StringPiece(lazy_dir_lister.Pointer()->html_data); | 169 return StringPiece(lazy_dir_lister.Pointer()->html_data); |
170 | 170 |
171 return ResourceBundle::GetSharedInstance().GetRawDataResource(key); | 171 return ResourceBundle::GetSharedInstance().GetRawDataResource(key); |
172 } | 172 } |
173 #endif | 173 #endif |
174 | 174 |
175 } // namespace | 175 } // namespace |
176 | 176 |
177 // Main routine for running as the Browser process. | 177 // Main routine for running as the Browser process. |
178 int BrowserMain(const MainFunctionParams& parameters) { | 178 int BrowserMain(const MainFunctionParams& parameters) { |
179 CommandLine& parsed_command_line = parameters.command_line_; | 179 const CommandLine& parsed_command_line = parameters.command_line_; |
180 | 180 |
181 // WARNING: If we get a WM_ENDSESSION objects created on the stack here | 181 // WARNING: If we get a WM_ENDSESSION objects created on the stack here |
182 // are NOT deleted. If you need something to run during WM_ENDSESSION add it | 182 // are NOT deleted. If you need something to run during WM_ENDSESSION add it |
183 // to browser_shutdown::Shutdown or BrowserProcess::EndSession. | 183 // to browser_shutdown::Shutdown or BrowserProcess::EndSession. |
184 | 184 |
185 // TODO(beng, brettw): someday, break this out into sub functions with well | 185 // TODO(beng, brettw): someday, break this out into sub functions with well |
186 // defined roles (e.g. pre/post-profile startup, etc). | 186 // defined roles (e.g. pre/post-profile startup, etc). |
187 | 187 |
188 #ifdef TRACK_ALL_TASK_OBJECTS | 188 #ifdef TRACK_ALL_TASK_OBJECTS |
189 // Start tracking the creation and deletion of Task instance. | 189 // Start tracking the creation and deletion of Task instance. |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 // Flush the message loop which lets the UserDataDirDialog close. | 320 // Flush the message loop which lets the UserDataDirDialog close. |
321 MessageLoop::current()->Run(); | 321 MessageLoop::current()->Run(); |
322 | 322 |
323 ResourceBundle::CleanupSharedInstance(); | 323 ResourceBundle::CleanupSharedInstance(); |
324 | 324 |
325 if (!user_data_dir.empty()) { | 325 if (!user_data_dir.empty()) { |
326 // Because of the way CommandLine parses, it's sufficient to append a new | 326 // Because of the way CommandLine parses, it's sufficient to append a new |
327 // --user-data-dir switch. The last flag of the same name wins. | 327 // --user-data-dir switch. The last flag of the same name wins. |
328 // TODO(tc): It would be nice to remove the flag we don't want, but that | 328 // TODO(tc): It would be nice to remove the flag we don't want, but that |
329 // sounds risky if we parse differently than CommandLineToArgvW. | 329 // sounds risky if we parse differently than CommandLineToArgvW. |
330 std::wstring new_command_line = | 330 CommandLine new_command_line = parsed_command_line; |
331 parsed_command_line.command_line_string(); | 331 new_command_line.AppendSwitchWithValue(switches::kUserDataDir, |
332 CommandLine::AppendSwitchWithValue(&new_command_line, | 332 user_data_dir); |
333 switches::kUserDataDir, user_data_dir); | |
334 base::LaunchApp(new_command_line, false, false, NULL); | 333 base::LaunchApp(new_command_line, false, false, NULL); |
335 } | 334 } |
336 | 335 |
337 return ResultCodes::NORMAL_EXIT; | 336 return ResultCodes::NORMAL_EXIT; |
338 #endif | 337 #endif |
339 } | 338 } |
340 | 339 |
341 PrefService* user_prefs = profile->GetPrefs(); | 340 PrefService* user_prefs = profile->GetPrefs(); |
342 DCHECK(user_prefs); | 341 DCHECK(user_prefs); |
343 | 342 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 metrics->Stop(); | 540 metrics->Stop(); |
542 | 541 |
543 // browser_shutdown takes care of deleting browser_process, so we need to | 542 // browser_shutdown takes care of deleting browser_process, so we need to |
544 // release it. | 543 // release it. |
545 browser_process.release(); | 544 browser_process.release(); |
546 browser_shutdown::Shutdown(); | 545 browser_shutdown::Shutdown(); |
547 | 546 |
548 return result_code; | 547 return result_code; |
549 } | 548 } |
550 | 549 |
OLD | NEW |