| 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 "base/base_switches.h" | 5 #include "base/base_switches.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/debug/debugger.h" | 7 #include "base/debug/debugger.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/hi_res_timer_manager.h" | 9 #include "base/hi_res_timer_manager.h" |
| 10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 #include <Carbon/Carbon.h> | 35 #include <Carbon/Carbon.h> |
| 36 #include <signal.h> | 36 #include <signal.h> |
| 37 #include <unistd.h> | 37 #include <unistd.h> |
| 38 | 38 |
| 39 #include "base/mac/mac_util.h" | 39 #include "base/mac/mac_util.h" |
| 40 #include "base/mac/scoped_nsautorelease_pool.h" | 40 #include "base/mac/scoped_nsautorelease_pool.h" |
| 41 #include "third_party/mach_override/mach_override.h" | 41 #include "third_party/mach_override/mach_override.h" |
| 42 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | 42 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
| 43 #endif // OS_MACOSX | 43 #endif // OS_MACOSX |
| 44 | 44 |
| 45 namespace content { |
| 46 |
| 45 namespace { | 47 namespace { |
| 46 | 48 |
| 47 #if defined(OS_MACOSX) | 49 #if defined(OS_MACOSX) |
| 48 | 50 |
| 49 CFArrayRef ChromeTISCreateInputSourceList( | 51 CFArrayRef ChromeTISCreateInputSourceList( |
| 50 CFDictionaryRef properties, | 52 CFDictionaryRef properties, |
| 51 Boolean includeAllInstalled) { | 53 Boolean includeAllInstalled) { |
| 52 CFTypeRef values[] = { CFSTR("") }; | 54 CFTypeRef values[] = { CFSTR("") }; |
| 53 return CFArrayCreate( | 55 return CFArrayCreate( |
| 54 kCFAllocatorDefault, values, arraysize(values), &kCFTypeArrayCallBacks); | 56 kCFAllocatorDefault, values, arraysize(values), &kCFTypeArrayCallBacks); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 process_times_->AddTime(base::TimeTicks::Now() - begin_process_message_); | 117 process_times_->AddTime(base::TimeTicks::Now() - begin_process_message_); |
| 116 } | 118 } |
| 117 | 119 |
| 118 private: | 120 private: |
| 119 base::TimeTicks begin_process_message_; | 121 base::TimeTicks begin_process_message_; |
| 120 base::Histogram* const process_times_; | 122 base::Histogram* const process_times_; |
| 121 DISALLOW_COPY_AND_ASSIGN(RendererMessageLoopObserver); | 123 DISALLOW_COPY_AND_ASSIGN(RendererMessageLoopObserver); |
| 122 }; | 124 }; |
| 123 | 125 |
| 124 // mainline routine for running as the Renderer process | 126 // mainline routine for running as the Renderer process |
| 125 int RendererMain(const content::MainFunctionParams& parameters) { | 127 int RendererMain(const MainFunctionParams& parameters) { |
| 126 TRACE_EVENT_BEGIN_ETW("RendererMain", 0, ""); | 128 TRACE_EVENT_BEGIN_ETW("RendererMain", 0, ""); |
| 127 | 129 |
| 128 const CommandLine& parsed_command_line = parameters.command_line; | 130 const CommandLine& parsed_command_line = parameters.command_line; |
| 129 | 131 |
| 130 #if defined(OS_MACOSX) | 132 #if defined(OS_MACOSX) |
| 131 base::mac::ScopedNSAutoreleasePool* pool = parameters.autorelease_pool; | 133 base::mac::ScopedNSAutoreleasePool* pool = parameters.autorelease_pool; |
| 132 InstallFrameworkHacks(); | 134 InstallFrameworkHacks(); |
| 133 #endif // OS_MACOSX | 135 #endif // OS_MACOSX |
| 134 | 136 |
| 135 #if defined(OS_CHROMEOS) | 137 #if defined(OS_CHROMEOS) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 147 // This function allows pausing execution using the --renderer-startup-dialog | 149 // This function allows pausing execution using the --renderer-startup-dialog |
| 148 // flag allowing us to attach a debugger. | 150 // flag allowing us to attach a debugger. |
| 149 // Do not move this function down since that would mean we can't easily debug | 151 // Do not move this function down since that would mean we can't easily debug |
| 150 // whatever occurs before it. | 152 // whatever occurs before it. |
| 151 HandleRendererErrorTestParameters(parsed_command_line); | 153 HandleRendererErrorTestParameters(parsed_command_line); |
| 152 | 154 |
| 153 RendererMainPlatformDelegate platform(parameters); | 155 RendererMainPlatformDelegate platform(parameters); |
| 154 | 156 |
| 155 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager = | 157 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager = |
| 156 webkit::ppapi::PpapiInterfaceFactoryManager::GetInstance(); | 158 webkit::ppapi::PpapiInterfaceFactoryManager::GetInstance(); |
| 157 content::GetContentClient()->renderer()->RegisterPPAPIInterfaceFactories( | 159 GetContentClient()->renderer()->RegisterPPAPIInterfaceFactories( |
| 158 factory_manager); | 160 factory_manager); |
| 159 | 161 |
| 160 base::StatsCounterTimer stats_counter_timer("Content.RendererInit"); | 162 base::StatsCounterTimer stats_counter_timer("Content.RendererInit"); |
| 161 base::StatsScope<base::StatsCounterTimer> startup_timer(stats_counter_timer); | 163 base::StatsScope<base::StatsCounterTimer> startup_timer(stats_counter_timer); |
| 162 | 164 |
| 163 RendererMessageLoopObserver task_observer; | 165 RendererMessageLoopObserver task_observer; |
| 164 #if defined(OS_MACOSX) | 166 #if defined(OS_MACOSX) |
| 165 // As long as we use Cocoa in the renderer (for the forseeable future as of | 167 // As long as we use Cocoa in the renderer (for the forseeable future as of |
| 166 // now; see http://crbug.com/13890 for info) we need to have a UI loop. | 168 // now; see http://crbug.com/13890 for info) we need to have a UI loop. |
| 167 MessageLoop main_message_loop(MessageLoop::TYPE_UI); | 169 MessageLoop main_message_loop(MessageLoop::TYPE_UI); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 // For convenience, we print the stack trace for crashes. We can't get | 219 // For convenience, we print the stack trace for crashes. We can't get |
| 218 // symbols when the sandbox is enabled, so only try when the sandbox is | 220 // symbols when the sandbox is enabled, so only try when the sandbox is |
| 219 // disabled. | 221 // disabled. |
| 220 base::EnableInProcessStackDumping(); | 222 base::EnableInProcessStackDumping(); |
| 221 #endif | 223 #endif |
| 222 } | 224 } |
| 223 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 225 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
| 224 RenderProcessImpl render_process; | 226 RenderProcessImpl render_process; |
| 225 new RenderThreadImpl(); | 227 new RenderThreadImpl(); |
| 226 #endif | 228 #endif |
| 227 new content::BrowserPluginManagerImpl(); | 229 new BrowserPluginManagerImpl(); |
| 228 | 230 |
| 229 platform.RunSandboxTests(); | 231 platform.RunSandboxTests(); |
| 230 | 232 |
| 231 startup_timer.Stop(); // End of Startup Time Measurement. | 233 startup_timer.Stop(); // End of Startup Time Measurement. |
| 232 | 234 |
| 233 if (run_loop) { | 235 if (run_loop) { |
| 234 #if defined(OS_MACOSX) | 236 #if defined(OS_MACOSX) |
| 235 if (pool) | 237 if (pool) |
| 236 pool->Recycle(); | 238 pool->Recycle(); |
| 237 #endif | 239 #endif |
| 238 TRACE_EVENT_BEGIN_ETW("RendererMain.START_MSG_LOOP", 0, 0); | 240 TRACE_EVENT_BEGIN_ETW("RendererMain.START_MSG_LOOP", 0, 0); |
| 239 MessageLoop::current()->Run(); | 241 MessageLoop::current()->Run(); |
| 240 TRACE_EVENT_END_ETW("RendererMain.START_MSG_LOOP", 0, 0); | 242 TRACE_EVENT_END_ETW("RendererMain.START_MSG_LOOP", 0, 0); |
| 241 } | 243 } |
| 242 } | 244 } |
| 243 platform.PlatformUninitialize(); | 245 platform.PlatformUninitialize(); |
| 244 TRACE_EVENT_END_ETW("RendererMain", 0, ""); | 246 TRACE_EVENT_END_ETW("RendererMain", 0, ""); |
| 245 return 0; | 247 return 0; |
| 246 } | 248 } |
| 249 |
| 250 } // namespace content |
| OLD | NEW |