// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_SHELL_BROWSER_SHELL_BROWSER_MAIN_PARTS_H_ #define CONTENT_SHELL_BROWSER_SHELL_BROWSER_MAIN_PARTS_H_ #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "content/public/browser/browser_main_parts.h" #include "content/public/common/main_function_params.h" #include "content/shell/browser/shell_browser_context.h" #if defined(OS_ANDROID) namespace breakpad { class CrashDumpManager; } #endif namespace base { class Thread; } namespace net { class NetLog; } namespace content { class ShellDevToolsDelegate; class ShellBrowserMainParts : public BrowserMainParts { public: explicit ShellBrowserMainParts(const MainFunctionParams& parameters); ~ShellBrowserMainParts() override; // BrowserMainParts overrides. void PreEarlyInitialization() override; void PreMainMessageLoopStart() override; void PostMainMessageLoopStart() override; void PreMainMessageLoopRun() override; bool MainMessageLoopRun(int* result_code) override; void PostMainMessageLoopRun() override; ShellDevToolsDelegate* devtools_delegate() { return devtools_delegate_.get(); } ShellBrowserContext* browser_context() { return browser_context_.get(); } ShellBrowserContext* off_the_record_browser_context() { return off_the_record_browser_context_.get(); } net::NetLog* net_log() { return net_log_.get(); } protected: virtual void InitializeBrowserContexts(); virtual void InitializeMessageLoopContext(); void set_browser_context(ShellBrowserContext* context) { browser_context_.reset(context); } void set_off_the_record_browser_context(ShellBrowserContext* context) { off_the_record_browser_context_.reset(context); } private: #if defined(OS_ANDROID) scoped_ptr crash_dump_manager_; #endif scoped_ptr net_log_; scoped_ptr browser_context_; scoped_ptr off_the_record_browser_context_; // For running content_browsertests. const MainFunctionParams parameters_; bool run_message_loop_; scoped_ptr devtools_delegate_; DISALLOW_COPY_AND_ASSIGN(ShellBrowserMainParts); }; } // namespace content #endif // CONTENT_SHELL_BROWSER_SHELL_BROWSER_MAIN_PARTS_H_