summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorcmasone@google.com <cmasone@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-04 01:00:01 +0000
committercmasone@google.com <cmasone@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-04 01:00:01 +0000
commit30f547c74f572bd5cee6c552c0eee3c96a35cd4e (patch)
tree27de7fde958bccbe56feb26897104d597341c0f2 /chrome/browser
parent952bec23adeaecbd0a22b6970abc1340076f3b23 (diff)
downloadchromium_src-30f547c74f572bd5cee6c552c0eee3c96a35cd4e.zip
chromium_src-30f547c74f572bd5cee6c552c0eee3c96a35cd4e.tar.gz
chromium_src-30f547c74f572bd5cee6c552c0eee3c96a35cd4e.tar.bz2
[ChromeOS] Keep logging inside the user's home dir, even after a browser crash
BUG=50866 TEST=Boot, log in, check that logging goes to /home/chronos/user/chrome_log. Crash the browser. After it comes back, verify that the browser process has created a new log file in /home/chronos/user and is writing to it. Review URL: http://codereview.chromium.org/3063014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54854 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/browser_main.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc
index 591d0f9..51ebf44 100644
--- a/chrome/browser/browser_main.cc
+++ b/chrome/browser/browser_main.cc
@@ -67,6 +67,7 @@
#include "chrome/common/env_vars.h"
#include "chrome/common/json_pref_store.h"
#include "chrome/common/jstemplate_builder.h"
+#include "chrome/common/logging_chrome.h"
#include "chrome/common/main_function_params.h"
#include "chrome/common/net/net_resource_provider.h"
#include "chrome/common/pref_names.h"
@@ -1035,6 +1036,18 @@ int BrowserMain(const MainFunctionParams& parameters) {
parsed_command_line.GetSwitchValueASCII(switches::kLoginUser);
LOG(INFO) << "Relaunching browser for user: " << username;
chromeos::UserManager::Get()->UserLoggedIn(username);
+
+ // Redirect logs.
+ FilePath user_data_dir;
+ PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
+ ProfileManager* profile_manager = g_browser_process->profile_manager();
+ // The default profile will have been changed because the ProfileManager
+ // will process the notification that the UserManager sends out.
+
+ logging::RedirectChromeLogging(
+ user_data_dir.Append(profile_manager->GetCurrentProfileDir()),
+ *(CommandLine::ForCurrentProcess()),
+ logging::DELETE_OLD_LOG_FILE);
}
#endif