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

Side by Side Diff: chrome/app/chrome_main_delegate.cc

Issue 314253003: Remove memory_watcher tool as well as --memory-profile command line flag. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile issue on non-ChromeOS platforms Created 6 years, 6 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
« no previous file with comments | « build/all.gyp ('k') | chrome/browser/chrome_content_browser_client.cc » ('j') | 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) 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/app/chrome_main_delegate.h" 5 #include "chrome/app/chrome_main_delegate.h"
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/cpu.h" 9 #include "base/cpu.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 29 matching lines...) Expand all
40 #include "content/public/common/content_paths.h" 40 #include "content/public/common/content_paths.h"
41 #include "ui/base/ui_base_switches.h" 41 #include "ui/base/ui_base_switches.h"
42 42
43 #if defined(OS_WIN) 43 #if defined(OS_WIN)
44 #include <atlbase.h> 44 #include <atlbase.h>
45 #include <malloc.h> 45 #include <malloc.h>
46 #include <algorithm> 46 #include <algorithm>
47 #include "base/strings/string_util.h" 47 #include "base/strings/string_util.h"
48 #include "chrome/common/child_process_logging.h" 48 #include "chrome/common/child_process_logging.h"
49 #include "sandbox/win/src/sandbox.h" 49 #include "sandbox/win/src/sandbox.h"
50 #include "tools/memory_watcher/memory_watcher.h"
51 #include "ui/base/resource/resource_bundle_win.h" 50 #include "ui/base/resource/resource_bundle_win.h"
52 #endif 51 #endif
53 52
54 #if defined(OS_MACOSX) 53 #if defined(OS_MACOSX)
55 #include "base/mac/mac_util.h" 54 #include "base/mac/mac_util.h"
56 #include "base/mac/os_crash_dumps.h" 55 #include "base/mac/os_crash_dumps.h"
57 #include "chrome/app/chrome_main_mac.h" 56 #include "chrome/app/chrome_main_mac.h"
58 #include "chrome/browser/mac/relauncher.h" 57 #include "chrome/browser/mac/relauncher.h"
59 #include "chrome/common/chrome_paths_internal.h" 58 #include "chrome/common/chrome_paths_internal.h"
60 #include "chrome/common/mac/cfbundle_blocker.h" 59 #include "chrome/common/mac/cfbundle_blocker.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 base::LazyInstance<chrome::ChromeBreakpadClient>::Leaky 126 base::LazyInstance<chrome::ChromeBreakpadClient>::Leaky
128 g_chrome_breakpad_client = LAZY_INSTANCE_INITIALIZER; 127 g_chrome_breakpad_client = LAZY_INSTANCE_INITIALIZER;
129 #endif 128 #endif
130 129
131 extern int NaClMain(const content::MainFunctionParams&); 130 extern int NaClMain(const content::MainFunctionParams&);
132 extern int ServiceProcessMain(const content::MainFunctionParams&); 131 extern int ServiceProcessMain(const content::MainFunctionParams&);
133 132
134 namespace { 133 namespace {
135 134
136 #if defined(OS_WIN) 135 #if defined(OS_WIN)
137 const wchar_t kProfilingDll[] = L"memory_watcher.dll";
138
139 // Load the memory profiling DLL. All it needs to be activated
140 // is to be loaded. Return true on success, false otherwise.
141 bool LoadMemoryProfiler() {
142 HMODULE prof_module = LoadLibrary(kProfilingDll);
143 return prof_module != NULL;
144 }
145
146 // Early versions of Chrome incorrectly registered a chromehtml: URL handler, 136 // Early versions of Chrome incorrectly registered a chromehtml: URL handler,
147 // which gives us nothing but trouble. Avoid launching chrome this way since 137 // which gives us nothing but trouble. Avoid launching chrome this way since
148 // some apps fail to properly escape arguments. 138 // some apps fail to properly escape arguments.
149 bool HasDeprecatedArguments(const std::wstring& command_line) { 139 bool HasDeprecatedArguments(const std::wstring& command_line) {
150 const wchar_t kChromeHtml[] = L"chromehtml:"; 140 const wchar_t kChromeHtml[] = L"chromehtml:";
151 std::wstring command_line_lower = command_line; 141 std::wstring command_line_lower = command_line;
152 // We are only searching for ASCII characters so this is OK. 142 // We are only searching for ASCII characters so this is OK.
153 StringToLowerASCII(&command_line_lower); 143 StringToLowerASCII(&command_line_lower);
154 std::wstring::size_type pos = command_line_lower.find(kChromeHtml); 144 std::wstring::size_type pos = command_line_lower.find(kChromeHtml);
155 return (pos != std::wstring::npos); 145 return (pos != std::wstring::npos);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 // we want to assign a score that is somewhat representative for debugging. 208 // we want to assign a score that is somewhat representative for debugging.
219 score = kRendererScore; 209 score = kRendererScore;
220 } else { 210 } else {
221 NOTREACHED() << "Unknown process type"; 211 NOTREACHED() << "Unknown process type";
222 } 212 }
223 if (score > -1) 213 if (score > -1)
224 base::AdjustOOMScore(base::GetCurrentProcId(), score); 214 base::AdjustOOMScore(base::GetCurrentProcId(), score);
225 } 215 }
226 #endif // defined(OS_LINUX) 216 #endif // defined(OS_LINUX)
227 217
228 // Enable the heap profiler if the appropriate command-line switch is
229 // present, bailing out of the app we can't.
230 void EnableHeapProfiler(const CommandLine& command_line) {
231 #if defined(OS_WIN)
232 if (command_line.HasSwitch(switches::kMemoryProfiling))
233 if (!LoadMemoryProfiler())
234 exit(-1);
235 #endif
236 }
237
238 // Returns true if this subprocess type needs the ResourceBundle initialized 218 // Returns true if this subprocess type needs the ResourceBundle initialized
239 // and resources loaded. 219 // and resources loaded.
240 bool SubprocessNeedsResourceBundle(const std::string& process_type) { 220 bool SubprocessNeedsResourceBundle(const std::string& process_type) {
241 return 221 return
242 #if defined(OS_WIN) || defined(OS_MACOSX) 222 #if defined(OS_WIN) || defined(OS_MACOSX)
243 // Windows needs resources for the default/null plugin. 223 // Windows needs resources for the default/null plugin.
244 // Mac needs them for the plugin process name. 224 // Mac needs them for the plugin process name.
245 process_type == switches::kPluginProcess || 225 process_type == switches::kPluginProcess ||
246 // Needed for scrollbar related images. 226 // Needed for scrollbar related images.
247 process_type == switches::kWorkerProcess || 227 process_type == switches::kWorkerProcess ||
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 #endif 645 #endif
666 646
667 // Initialize the user data dir for any process type that needs it. 647 // Initialize the user data dir for any process type that needs it.
668 if (chrome::ProcessNeedsProfileDir(process_type)) 648 if (chrome::ProcessNeedsProfileDir(process_type))
669 InitializeUserDataDir(); 649 InitializeUserDataDir();
670 650
671 stats_counter_timer_.reset(new base::StatsCounterTimer("Chrome.Init")); 651 stats_counter_timer_.reset(new base::StatsCounterTimer("Chrome.Init"));
672 startup_timer_.reset(new base::StatsScope<base::StatsCounterTimer> 652 startup_timer_.reset(new base::StatsScope<base::StatsCounterTimer>
673 (*stats_counter_timer_)); 653 (*stats_counter_timer_));
674 654
675 // Enable the heap profiler as early as possible!
676 EnableHeapProfiler(command_line);
677
678 // Enable Message Loop related state asap. 655 // Enable Message Loop related state asap.
679 if (command_line.HasSwitch(switches::kMessageLoopHistogrammer)) 656 if (command_line.HasSwitch(switches::kMessageLoopHistogrammer))
680 base::MessageLoop::EnableHistogrammer(true); 657 base::MessageLoop::EnableHistogrammer(true);
681 658
682 #if !defined(OS_ANDROID) 659 #if !defined(OS_ANDROID)
683 // Android does InitLogging when library is loaded. Skip here. 660 // Android does InitLogging when library is loaded. Skip here.
684 logging::OldFileDeletionState file_state = 661 logging::OldFileDeletionState file_state =
685 logging::APPEND_TO_OLD_LOG_FILE; 662 logging::APPEND_TO_OLD_LOG_FILE;
686 if (process_type.empty()) { 663 if (process_type.empty()) {
687 file_state = logging::DELETE_OLD_LOG_FILE; 664 file_state = logging::DELETE_OLD_LOG_FILE;
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
918 } 895 }
919 896
920 content::ContentUtilityClient* 897 content::ContentUtilityClient*
921 ChromeMainDelegate::CreateContentUtilityClient() { 898 ChromeMainDelegate::CreateContentUtilityClient() {
922 #if defined(CHROME_MULTIPLE_DLL_BROWSER) 899 #if defined(CHROME_MULTIPLE_DLL_BROWSER)
923 return NULL; 900 return NULL;
924 #else 901 #else
925 return g_chrome_content_utility_client.Pointer(); 902 return g_chrome_content_utility_client.Pointer();
926 #endif 903 #endif
927 } 904 }
OLDNEW
« no previous file with comments | « build/all.gyp ('k') | chrome/browser/chrome_content_browser_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698