Index: chrome/browser/profiles/profile_impl.cc |
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc |
index 069c314d9eca0f93a22328d3e513dddf6cfc5afb..13a6503b06a43b6cb5e5576a6c706dc2c27cff2d 100644 |
--- a/chrome/browser/profiles/profile_impl.cc |
+++ b/chrome/browser/profiles/profile_impl.cc |
@@ -116,6 +116,7 @@ |
#include "chrome/browser/policy/schema_registry_service_factory.h" |
#include "components/policy/core/browser/browser_policy_connector.h" |
#if defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/login/login_utils.h" |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" |
#else |
@@ -278,7 +279,9 @@ void RegisterDomDistillerViewerSource(Profile* profile) { |
Profile* Profile::CreateProfile(const base::FilePath& path, |
Delegate* delegate, |
CreateMode create_mode) { |
- TRACE_EVENT0("browser", "Profile::CreateProfile") |
+ TRACE_EVENT_BEGIN1( |
+ "browser", "Profile::CreateProfile", "profile_path", path.value()); |
+ |
// Get sequenced task runner for making sure that file operations of |
// this profile (defined by |path|) are executed in expected order |
// (what was previously assured by the FILE thread). |
@@ -633,6 +636,14 @@ void ProfileImpl::DoFinalInit() { |
RegisterDomDistillerViewerSource(this); |
// Creation has been finished. |
+ TRACE_EVENT_END1( |
+ "browser", "Profile::CreateProfile", "profile_path", path_.value()); |
+ |
+#if defined(OS_CHROMEOS) |
+ if (chromeos::LoginUtils::Get()->RestartToApplyPerSessionFlagsIfNeed(this)) |
+ return; |
+#endif |
+ |
if (delegate_) { |
TRACE_EVENT0("browser", "ProfileImpl::DoFileInit:DelegateOnProfileCreated") |
delegate_->OnProfileCreated(this, true, IsNewProfile()); |