#include "content/browser/browser_main_runner_impl.h"
#include <memory>
#include "base/allocator/partition_alloc_features.h"
#include "base/base_switches.h"
#include "base/check.h"
#include "base/command_line.h"
#include "base/debug/debugger.h"
#include "base/debug/leak_annotations.h"
#include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h"
#include "base/run_loop.h"
#include "base/synchronization/atomic_flag.h"
#include "base/time/time.h"
#include "base/trace_event/heap_profiler_allocation_context_tracker.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "components/tracing/common/tracing_switches.h"
#include "content/browser/browser_main_loop.h"
#include "content/browser/tracing/startup_tracing_controller.h"
#include "content/common/content_switches_internal.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
#include "services/tracing/public/cpp/trace_startup_config.h"
#include "third_party/skia/include/core/SkGraphics.h"
#include "ui/base/ime/init/input_method_initializer.h"
#include "ui/gfx/font_util.h"
#if BUILDFLAG(IS_ANDROID)
#include "content/browser/android/tracing_controller_android.h"
#endif
#if BUILDFLAG(IS_WIN)
#include "base/win/win_util.h"
#include "base/win/windows_version.h"
#include "ui/base/win/scoped_ole_initializer.h"
#endif
namespace content {
namespace {
base::AtomicFlag& GetExitedMainMessageLoopFlag() { … }
}
std::unique_ptr<BrowserMainRunnerImpl> BrowserMainRunnerImpl::Create() { … }
BrowserMainRunnerImpl::BrowserMainRunnerImpl()
: … { … }
BrowserMainRunnerImpl::~BrowserMainRunnerImpl() { … }
int BrowserMainRunnerImpl::Initialize(MainFunctionParams parameters) { … }
#if BUILDFLAG(IS_ANDROID)
void BrowserMainRunnerImpl::SynchronouslyFlushStartupTasks() {
main_loop_->SynchronouslyFlushStartupTasks();
}
#endif
int BrowserMainRunnerImpl::Run() { … }
void BrowserMainRunnerImpl::Shutdown() { … }
std::unique_ptr<BrowserMainRunner> BrowserMainRunner::Create() { … }
bool BrowserMainRunner::ExitedMainMessageLoop() { … }
}