// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROME_BROWSER_MAIN_ANDROID_H_
#define CHROME_BROWSER_CHROME_BROWSER_MAIN_ANDROID_H_
#include <memory>
#include "base/android/scoped_java_ref.h"
#include "base/functional/callback_helpers.h"
#include "chrome/browser/chrome_browser_main.h"
namespace crash_reporter {
class ChildExitObserver;
}
class ChromeBrowserMainPartsAndroid : public ChromeBrowserMainParts {
public:
ChromeBrowserMainPartsAndroid(bool is_integration_test,
StartupData* startup_data);
ChromeBrowserMainPartsAndroid(const ChromeBrowserMainPartsAndroid&) = delete;
ChromeBrowserMainPartsAndroid& operator=(
const ChromeBrowserMainPartsAndroid&) = delete;
~ChromeBrowserMainPartsAndroid() override;
// content::BrowserMainParts overrides.
int PreCreateThreads() override;
void PostProfileInit(Profile* profile, bool is_initial_profile) override;
int PreEarlyInitialization() override;
// ChromeBrowserMainParts overrides.
void PostBrowserStart() override;
void ShowMissingLocaleMessageBox() override;
private:
std::unique_ptr<crash_reporter::ChildExitObserver> child_exit_observer_;
// Owns the Java ChromeBackupWatcher object and invokes destroy() on
// destruction.
base::ScopedClosureRunner backup_watcher_runner_;
};
#endif // CHROME_BROWSER_CHROME_BROWSER_MAIN_ANDROID_H_