OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chrome_browser_main.h" | 5 #include "chrome/browser/chrome_browser_main.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 // BrowserMainParts ------------------------------------------------------------ | 570 // BrowserMainParts ------------------------------------------------------------ |
571 | 571 |
572 ChromeBrowserMainParts::ChromeBrowserMainParts( | 572 ChromeBrowserMainParts::ChromeBrowserMainParts( |
573 const content::MainFunctionParams& parameters) | 573 const content::MainFunctionParams& parameters) |
574 : parameters_(parameters), | 574 : parameters_(parameters), |
575 parsed_command_line_(parameters.command_line), | 575 parsed_command_line_(parameters.command_line), |
576 result_code_(content::RESULT_CODE_NORMAL_EXIT), | 576 result_code_(content::RESULT_CODE_NORMAL_EXIT), |
577 startup_watcher_(new StartupTimeBomb()), | 577 startup_watcher_(new StartupTimeBomb()), |
578 shutdown_watcher_(new ShutdownWatcherHelper()), | 578 shutdown_watcher_(new ShutdownWatcherHelper()), |
579 browser_field_trials_(parameters.command_line), | 579 browser_field_trials_(parameters.command_line), |
| 580 sampling_profiler_(base::PlatformThread::CurrentId(), |
| 581 GetStartupSamplingParams()), |
580 profile_(NULL), | 582 profile_(NULL), |
581 run_message_loop_(true), | 583 run_message_loop_(true), |
582 notify_result_(ProcessSingleton::PROCESS_NONE), | 584 notify_result_(ProcessSingleton::PROCESS_NONE), |
583 local_state_(NULL), | 585 local_state_(NULL), |
584 restart_last_session_(false) { | 586 restart_last_session_(false) { |
| 587 sampling_profiler_.Start(); |
585 // If we're running tests (ui_task is non-null). | 588 // If we're running tests (ui_task is non-null). |
586 if (parameters.ui_task) | 589 if (parameters.ui_task) |
587 browser_defaults::enable_help_app = false; | 590 browser_defaults::enable_help_app = false; |
588 | 591 |
589 // Chrome disallows cookies by default. All code paths that want to use | 592 // Chrome disallows cookies by default. All code paths that want to use |
590 // cookies need to go through one of Chrome's URLRequestContexts which have | 593 // cookies need to go through one of Chrome's URLRequestContexts which have |
591 // a ChromeNetworkDelegate attached that selectively allows cookies again. | 594 // a ChromeNetworkDelegate attached that selectively allows cookies again. |
592 net::URLRequest::SetDefaultCookiePolicyToBlock(); | 595 net::URLRequest::SetDefaultCookiePolicyToBlock(); |
593 } | 596 } |
594 | 597 |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 } | 720 } |
718 #endif // defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) | 721 #endif // defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) |
719 | 722 |
720 // Record collected startup metrics. | 723 // Record collected startup metrics. |
721 startup_metric_utils::OnBrowserStartupComplete(is_first_run); | 724 startup_metric_utils::OnBrowserStartupComplete(is_first_run); |
722 | 725 |
723 // Deletes self. | 726 // Deletes self. |
724 new LoadCompleteListener(); | 727 new LoadCompleteListener(); |
725 } | 728 } |
726 | 729 |
| 730 // static |
| 731 base::StackSamplingProfiler::SamplingParams |
| 732 ChromeBrowserMainParts::GetStartupSamplingParams() { |
| 733 // Sample at 10Hz for 30 seconds. |
| 734 base::StackSamplingProfiler::SamplingParams params; |
| 735 params.initial_delay = base::TimeDelta::FromMilliseconds(0); |
| 736 params.bursts = 1; |
| 737 params.samples_per_burst = 300; |
| 738 params.sampling_interval = base::TimeDelta::FromMilliseconds(100); |
| 739 params.preserve_sample_ordering = false; |
| 740 return params; |
| 741 } |
| 742 |
727 // ----------------------------------------------------------------------------- | 743 // ----------------------------------------------------------------------------- |
728 // TODO(viettrungluu): move more/rest of BrowserMain() into BrowserMainParts. | 744 // TODO(viettrungluu): move more/rest of BrowserMain() into BrowserMainParts. |
729 | 745 |
730 #if defined(OS_WIN) | 746 #if defined(OS_WIN) |
731 #define DLLEXPORT __declspec(dllexport) | 747 #define DLLEXPORT __declspec(dllexport) |
732 | 748 |
733 // We use extern C for the prototype DLLEXPORT to avoid C++ name mangling. | 749 // We use extern C for the prototype DLLEXPORT to avoid C++ name mangling. |
734 extern "C" { | 750 extern "C" { |
735 DLLEXPORT void __cdecl RelaunchChromeBrowserWithNewCommandLineIfNeeded(); | 751 DLLEXPORT void __cdecl RelaunchChromeBrowserWithNewCommandLineIfNeeded(); |
736 } | 752 } |
(...skipping 993 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1730 chromeos::CrosSettings::Shutdown(); | 1746 chromeos::CrosSettings::Shutdown(); |
1731 #endif // defined(OS_CHROMEOS) | 1747 #endif // defined(OS_CHROMEOS) |
1732 #endif // defined(OS_ANDROID) | 1748 #endif // defined(OS_ANDROID) |
1733 } | 1749 } |
1734 | 1750 |
1735 // Public members: | 1751 // Public members: |
1736 | 1752 |
1737 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { | 1753 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { |
1738 chrome_extra_parts_.push_back(parts); | 1754 chrome_extra_parts_.push_back(parts); |
1739 } | 1755 } |
OLD | NEW |