12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Copyright 2022 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 CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_
- #define CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_
- #include "base/callback_list.h"
- #include "base/sequence_checker.h"
- #include "chrome/browser/browser_process_platform_part_base.h"
- #include "chrome/browser/ui/browser_list_observer.h"
- class Browser;
- class BrowserProcessPlatformPartChromeOS
- : public BrowserProcessPlatformPartBase {
- public:
- BrowserProcessPlatformPartChromeOS();
- BrowserProcessPlatformPartChromeOS(
- const BrowserProcessPlatformPartChromeOS&) = delete;
- BrowserProcessPlatformPartChromeOS& operator=(
- const BrowserProcessPlatformPartChromeOS&) = delete;
- ~BrowserProcessPlatformPartChromeOS() override;
- protected:
- // Returns true if we can restore URLs for `profile`. Restoring URLs should
- // only be allowed for regular signed-in users. This is currently virtual as
- // lacros-chrome and ash-chrome check this in different ways.
- // TODO(tluk): Have both ash-chrome and lacros-chrome share the same profile
- // check code.
- virtual bool CanRestoreUrlsForProfile(const Profile* profile) const;
- private:
- // An observer that restores urls based on the on startup setting after a new
- // browser is added to the BrowserList.
- class BrowserRestoreObserver : public BrowserListObserver {
- public:
- explicit BrowserRestoreObserver(const BrowserProcessPlatformPartChromeOS*
- browser_process_platform_part);
- ~BrowserRestoreObserver() override;
- protected:
- // BrowserListObserver:
- void OnBrowserAdded(Browser* browser) override;
- private:
- // Returns true, if the url defined in the on startup setting should be
- // opened. Otherwise, returns false.
- bool ShouldRestoreUrls(Browser* browser) const;
- // Returns true, if the url defined in the on startup setting should be
- // opened in a new browser. Otherwise, returns false.
- bool ShouldOpenUrlsInNewBrowser(Browser* browser) const;
- // Restores urls based on the on startup setting.
- void RestoreUrls(Browser* browser);
- // Called when a session is restored.
- void OnSessionRestoreDone(Profile* profile, int num_tabs_restored);
- const raw_ptr<const BrowserProcessPlatformPartChromeOS>
- browser_process_platform_part_;
- base::CallbackListSubscription on_session_restored_callback_subscription_;
- };
- BrowserRestoreObserver browser_restore_observer_;
- };
- #endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_
|