Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: chrome/browser/browser_main.cc

Issue 360035: Fix first run ui hanging. The threads need to get started earlier.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 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/browser_main.h" 5 #include "chrome/browser/browser_main.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 parsed_command_line.HasSwitch(switches::kShowIcons)) { 613 parsed_command_line.HasSwitch(switches::kShowIcons)) {
614 return HandleIconsCommands(parsed_command_line); 614 return HandleIconsCommands(parsed_command_line);
615 } else if (parsed_command_line.HasSwitch(switches::kMakeDefaultBrowser)) { 615 } else if (parsed_command_line.HasSwitch(switches::kMakeDefaultBrowser)) {
616 if (ShellIntegration::SetAsDefaultBrowser()) { 616 if (ShellIntegration::SetAsDefaultBrowser()) {
617 return ResultCodes::NORMAL_EXIT; 617 return ResultCodes::NORMAL_EXIT;
618 } else { 618 } else {
619 return ResultCodes::SHELL_INTEGRATION_FAILED; 619 return ResultCodes::SHELL_INTEGRATION_FAILED;
620 } 620 }
621 } 621 }
622 622
623 // Create the child threads. We need to do this since ChromeThread::PostTask
624 // silently deletes a posted task if the target message loop isn't created.
625 // Note: must be done before FirstRun code is run.
626 browser_process->db_thread();
627 browser_process->file_thread();
628 browser_process->io_thread();
629
623 // Importing other browser settings is done in a browser-like process 630 // Importing other browser settings is done in a browser-like process
624 // that exits when this task has finished. 631 // that exits when this task has finished.
625 #if defined(OS_WIN) 632 #if defined(OS_WIN)
626 if (parsed_command_line.HasSwitch(switches::kImport)) 633 if (parsed_command_line.HasSwitch(switches::kImport))
627 return FirstRun::ImportNow(profile, parsed_command_line); 634 return FirstRun::ImportNow(profile, parsed_command_line);
628 #endif 635 #endif
629 636
630 // When another process is running, use it instead of starting us. 637 // When another process is running, use it instead of starting us.
631 switch (process_singleton.NotifyOtherProcess()) { 638 switch (process_singleton.NotifyOtherProcess()) {
632 case ProcessSingleton::PROCESS_NONE: 639 case ProcessSingleton::PROCESS_NONE:
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 // Sets things up so that if we crash from this point on, a dialog will 701 // Sets things up so that if we crash from this point on, a dialog will
695 // popup asking the user to restart chrome. It is done this late to avoid 702 // popup asking the user to restart chrome. It is done this late to avoid
696 // testing against a bunch of special cases that are taken care early on. 703 // testing against a bunch of special cases that are taken care early on.
697 PrepareRestartOnCrashEnviroment(parsed_command_line); 704 PrepareRestartOnCrashEnviroment(parsed_command_line);
698 705
699 #if defined(OS_WIN) 706 #if defined(OS_WIN)
700 // Initialize Winsock. 707 // Initialize Winsock.
701 net::EnsureWinsockInit(); 708 net::EnsureWinsockInit();
702 #endif // defined(OS_WIN) 709 #endif // defined(OS_WIN)
703 710
704 // Create the child threads. We need to do this since ChromeThread::PostTask
705 // silently deletes a posted task if the target message loop isn't created.
706 browser_process->db_thread();
707 browser_process->file_thread();
708 browser_process->io_thread();
709
710 // Initialize and maintain DNS prefetcher module. 711 // Initialize and maintain DNS prefetcher module.
711 chrome_browser_net::DnsPrefetcherInit dns_prefetch(user_prefs, local_state); 712 chrome_browser_net::DnsPrefetcherInit dns_prefetch(user_prefs, local_state);
712 713
713 scoped_refptr<FieldTrial> http_prioritization_trial = 714 scoped_refptr<FieldTrial> http_prioritization_trial =
714 new FieldTrial("HttpPrioritization", 100); 715 new FieldTrial("HttpPrioritization", 100);
715 // Put 10% of people in the fallback experiment with the http prioritization 716 // Put 10% of people in the fallback experiment with the http prioritization
716 // code disabled. 717 // code disabled.
717 const int holdback_group = 718 const int holdback_group =
718 http_prioritization_trial->AppendGroup("_no_http_prioritization", 10); 719 http_prioritization_trial->AppendGroup("_no_http_prioritization", 10);
719 if (http_prioritization_trial->group() == holdback_group) { 720 if (http_prioritization_trial->group() == holdback_group) {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 if (metrics) 885 if (metrics)
885 metrics->Stop(); 886 metrics->Stop();
886 887
887 // browser_shutdown takes care of deleting browser_process, so we need to 888 // browser_shutdown takes care of deleting browser_process, so we need to
888 // release it. 889 // release it.
889 browser_process.release(); 890 browser_process.release();
890 browser_shutdown::Shutdown(); 891 browser_shutdown::Shutdown();
891 892
892 return result_code; 893 return result_code;
893 } 894 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698