aw_browser_main_parts.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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
  3. // found in the LICENSE file.
  4. #ifndef ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
  5. #define ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_
  6. #include <memory>
  7. #include "android_webview/browser/aw_browser_process.h"
  8. #include "base/compiler_specific.h"
  9. #include "base/memory/raw_ptr.h"
  10. #include "base/task/single_thread_task_executor.h"
  11. #include "content/public/browser/browser_main_parts.h"
  12. namespace crash_reporter {
  13. class ChildExitObserver;
  14. }
  15. namespace metrics {
  16. class MemoryMetricsLogger;
  17. }
  18. namespace android_webview {
  19. class AwBrowserProcess;
  20. class AwContentBrowserClient;
  21. class AwBrowserMainParts : public content::BrowserMainParts {
  22. public:
  23. explicit AwBrowserMainParts(AwContentBrowserClient* browser_client);
  24. AwBrowserMainParts(const AwBrowserMainParts&) = delete;
  25. AwBrowserMainParts& operator=(const AwBrowserMainParts&) = delete;
  26. ~AwBrowserMainParts() override;
  27. // Overriding methods from content::BrowserMainParts.
  28. int PreEarlyInitialization() override;
  29. int PreCreateThreads() override;
  30. int PreMainMessageLoopRun() override;
  31. void WillRunMainMessageLoop(
  32. std::unique_ptr<base::RunLoop>& run_loop) override;
  33. void PostCreateThreads() override;
  34. private:
  35. void RegisterSyntheticTrials();
  36. // Android specific UI SingleThreadTaskExecutor.
  37. std::unique_ptr<base::SingleThreadTaskExecutor> main_task_executor_;
  38. raw_ptr<AwContentBrowserClient> browser_client_;
  39. std::unique_ptr<metrics::MemoryMetricsLogger> metrics_logger_;
  40. std::unique_ptr<AwBrowserProcess> browser_process_;
  41. std::unique_ptr<crash_reporter::ChildExitObserver> child_exit_observer_;
  42. };
  43. } // namespace android_webview
  44. #endif // ANDROID_WEBVIEW_BROWSER_AW_BROWSER_MAIN_PARTS_H_