|  | // Copyright 2024 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef IOS_CHROME_APP_APP_LIFETIME_OBSERVER_H_ | 
|  | #define IOS_CHROME_APP_APP_LIFETIME_OBSERVER_H_ | 
|  |  | 
|  | #import <UIKit/UIKit.h> | 
|  |  | 
|  | @class MemoryWarningHelper; | 
|  |  | 
|  | // Protocol representing a way to observer Application lifetime events. | 
|  | // | 
|  | // There is no way to register to observe those events, this protocol exists | 
|  | // to clean the public API of the MainController and ProfileController which | 
|  | // are the two classes that implements this protocol. | 
|  | @protocol AppLifetimeObserver | 
|  |  | 
|  | // Called when the application will resign being the active application. | 
|  | - (void)applicationWillResignActive:(UIApplication*)application; | 
|  |  | 
|  | // Called when the application is terminating. Gives a last opportunity to | 
|  | // save any pending state and to perform any necessary cleanup. | 
|  | - (void)applicationWillTerminate:(UIApplication*)application; | 
|  |  | 
|  | // Called when the application is going into the background. | 
|  | - (void)applicationDidEnterBackground:(UIApplication*)application | 
|  | memoryHelper:(MemoryWarningHelper*)memoryHelper; | 
|  |  | 
|  | // Called when the application is going into the foreground. | 
|  | - (void)applicationWillEnterForeground:(UIApplication*)application | 
|  | memoryHelper:(MemoryWarningHelper*)memoryHelper; | 
|  |  | 
|  | // Called when the application discards a set of scene sessions. These sessions | 
|  | // can no longer be accessed and all their associated data should be destroyed. | 
|  | - (void)application:(UIApplication*)application | 
|  | didDiscardSceneSessions:(NSSet<UISceneSession*>*)sceneSessions; | 
|  |  | 
|  | @end | 
|  |  | 
|  | #endif  // IOS_CHROME_APP_APP_LIFETIME_OBSERVER_H_ |