// Copyright 2021 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_APPS_BROWSER_INSTANCE_BROWSER_APP_INSTANCE_OBSERVER_H_
#define CHROME_BROWSER_APPS_BROWSER_INSTANCE_BROWSER_APP_INSTANCE_OBSERVER_H_
namespace apps {
struct BrowserAppInstance;
struct BrowserWindowInstance;
// Observer interface to listen to |BrowserAppInstanceTracker| events.
class BrowserAppInstanceObserver {
public:
virtual ~BrowserAppInstanceObserver();
// Called when a new non-app browser window is created.
virtual void OnBrowserWindowAdded(const BrowserWindowInstance& instance);
// Called when a non-app browser window is updated.
virtual void OnBrowserWindowUpdated(const BrowserWindowInstance& instance);
// Called when a non-app browser window is closed.
virtual void OnBrowserWindowRemoved(const BrowserWindowInstance& instance);
// Called when a new app instance is started: a tab or a window is open, a tab
// navigates to a URL with an app.
virtual void OnBrowserAppAdded(const BrowserAppInstance& instance);
// Called when the app's window, app's tab, or a window containing the app's
// tab changes properties, or a tab gets moved between browsers.
virtual void OnBrowserAppUpdated(const BrowserAppInstance& instance);
// Called when an app instance is stopped: a tab or window is closed, a new
// windowed app is open, a tab navigates to a URL with an app.
virtual void OnBrowserAppRemoved(const BrowserAppInstance& instance);
};
} // namespace apps
#endif // CHROME_BROWSER_APPS_BROWSER_INSTANCE_BROWSER_APP_INSTANCE_OBSERVER_H_