summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chrome_browser_main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chrome_browser_main.cc')
-rw-r--r--chrome/browser/chrome_browser_main.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 111768c..8946237 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -1144,6 +1144,9 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() {
#endif
process_singleton_.reset(new ProcessSingleton(user_data_dir_));
+ // Ensure ProcessSingleton won't process messages too early. It will be
+ // unlocked in PostBrowserStart().
+ process_singleton_->Lock(NULL);
is_first_run_ = first_run::IsChromeFirstRun() ||
parsed_command_line().HasSwitch(switches::kFirstRun);
@@ -1375,6 +1378,8 @@ void ChromeBrowserMainParts::PreBrowserStart() {
void ChromeBrowserMainParts::PostBrowserStart() {
for (size_t i = 0; i < chrome_extra_parts_.size(); ++i)
chrome_extra_parts_[i]->PostBrowserStart();
+ // Allow ProcessSingleton to process messages.
+ process_singleton_->Unlock();
}
int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {