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

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

Issue 1263403002: Stack sampling profiler: re-enable stack collection for stacks terminated by leaf functions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test unwinding Created 5 years, 4 months 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
OLDNEW
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 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 g_browser_process->CreateDevToolsHttpProtocolHandler( 533 g_browser_process->CreateDevToolsHttpProtocolHandler(
534 chrome::HOST_DESKTOP_TYPE_NATIVE, 534 chrome::HOST_DESKTOP_TYPE_NATIVE,
535 "127.0.0.1", 535 "127.0.0.1",
536 static_cast<uint16>(port)); 536 static_cast<uint16>(port));
537 } else { 537 } else {
538 DLOG(WARNING) << "Invalid http debugger port number " << port; 538 DLOG(WARNING) << "Invalid http debugger port number " << port;
539 } 539 }
540 } 540 }
541 } 541 }
542 542
543 base::StackSamplingProfiler::SamplingParams GetStartupSamplingParams() {
544 // Sample at 10Hz for 30 seconds.
545 base::StackSamplingProfiler::SamplingParams params;
546 params.initial_delay = base::TimeDelta::FromMilliseconds(0);
547 params.bursts = 1;
548 params.samples_per_burst = 300;
549 params.sampling_interval = base::TimeDelta::FromMilliseconds(100);
550 return params;
551 }
552
543 } // namespace 553 } // namespace
544 554
545 namespace chrome_browser { 555 namespace chrome_browser {
546 556
547 // This error message is not localized because we failed to load the 557 // This error message is not localized because we failed to load the
548 // localization data files. 558 // localization data files.
549 #if defined(OS_WIN) 559 #if defined(OS_WIN)
550 const char kMissingLocaleDataTitle[] = "Missing File Error"; 560 const char kMissingLocaleDataTitle[] = "Missing File Error";
551 #endif // defined(OS_WIN) 561 #endif // defined(OS_WIN)
552 562
553 #if defined(OS_WIN) 563 #if defined(OS_WIN)
554 // TODO(port) This should be used on Linux Aura as well. http://crbug.com/338969 564 // TODO(port) This should be used on Linux Aura as well. http://crbug.com/338969
555 const char kMissingLocaleDataMessage[] = 565 const char kMissingLocaleDataMessage[] =
556 "Unable to find locale data files. Please reinstall."; 566 "Unable to find locale data files. Please reinstall.";
557 #endif // defined(OS_WIN) 567 #endif // defined(OS_WIN)
558 568
559 } // namespace chrome_browser 569 } // namespace chrome_browser
560 570
561 // BrowserMainParts ------------------------------------------------------------ 571 // BrowserMainParts ------------------------------------------------------------
562 572
563 ChromeBrowserMainParts::ChromeBrowserMainParts( 573 ChromeBrowserMainParts::ChromeBrowserMainParts(
564 const content::MainFunctionParams& parameters) 574 const content::MainFunctionParams& parameters)
565 : parameters_(parameters), 575 : parameters_(parameters),
566 parsed_command_line_(parameters.command_line), 576 parsed_command_line_(parameters.command_line),
567 result_code_(content::RESULT_CODE_NORMAL_EXIT), 577 result_code_(content::RESULT_CODE_NORMAL_EXIT),
568 startup_watcher_(new StartupTimeBomb()), 578 startup_watcher_(new StartupTimeBomb()),
569 shutdown_watcher_(new ShutdownWatcherHelper()), 579 shutdown_watcher_(new ShutdownWatcherHelper()),
570 browser_field_trials_(parameters.command_line), 580 browser_field_trials_(parameters.command_line),
581 sampling_profiler_(
582 base::PlatformThread::CurrentId(),
583 GetStartupSamplingParams(),
584 metrics::CallStackProfileMetricsProvider::GetProfilerCallback(
585 metrics::CallStackProfileMetricsProvider::Params(
586 metrics::CallStackProfileMetricsProvider::PROCESS_STARTUP,
587 false))),
571 profile_(NULL), 588 profile_(NULL),
572 run_message_loop_(true), 589 run_message_loop_(true),
573 notify_result_(ProcessSingleton::PROCESS_NONE), 590 notify_result_(ProcessSingleton::PROCESS_NONE),
574 local_state_(NULL), 591 local_state_(NULL),
575 restart_last_session_(false) { 592 restart_last_session_(false) {
593 const version_info::Channel channel =
594 chrome::VersionInfo::GetChannel();
595 if (channel == version_info::Channel::UNKNOWN ||
596 channel == version_info::Channel::CANARY ||
597 channel == version_info::Channel::DEV) {
598 sampling_profiler_.Start();
599 }
600
576 // If we're running tests (ui_task is non-null). 601 // If we're running tests (ui_task is non-null).
577 if (parameters.ui_task) 602 if (parameters.ui_task)
578 browser_defaults::enable_help_app = false; 603 browser_defaults::enable_help_app = false;
579 604
580 // Chrome disallows cookies by default. All code paths that want to use 605 // Chrome disallows cookies by default. All code paths that want to use
581 // cookies need to go through one of Chrome's URLRequestContexts which have 606 // cookies need to go through one of Chrome's URLRequestContexts which have
582 // a ChromeNetworkDelegate attached that selectively allows cookies again. 607 // a ChromeNetworkDelegate attached that selectively allows cookies again.
583 net::URLRequest::SetDefaultCookiePolicyToBlock(); 608 net::URLRequest::SetDefaultCookiePolicyToBlock();
584 } 609 }
585 610
(...skipping 1212 matching lines...) Expand 10 before | Expand all | Expand 10 after
1798 chromeos::CrosSettings::Shutdown(); 1823 chromeos::CrosSettings::Shutdown();
1799 #endif // defined(OS_CHROMEOS) 1824 #endif // defined(OS_CHROMEOS)
1800 #endif // defined(OS_ANDROID) 1825 #endif // defined(OS_ANDROID)
1801 } 1826 }
1802 1827
1803 // Public members: 1828 // Public members:
1804 1829
1805 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { 1830 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) {
1806 chrome_extra_parts_.push_back(parts); 1831 chrome_extra_parts_.push_back(parts);
1807 } 1832 }
OLDNEW
« base/profiler/win32_stack_frame_unwinder_unittest.cc ('K') | « chrome/browser/chrome_browser_main.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698