1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
// Copyright 2023 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_WEB_APPLICATIONS_WEB_APP_REGISTRAR_OBSERVER_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_REGISTRAR_OBSERVER_H_
#include "base/observer_list_types.h"
#include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "components/webapps/common/web_app_id.h"
namespace base {
class Time;
}
namespace web_app {
class WebApp;
class WebAppRegistrarObserver : public base::CheckedObserver {
public:
// Called before any field of a web app is updated from the sync server.
// A call site may compare existing WebApp state from the registry against
// this new WebApp state with sync changes applied.
virtual void OnWebAppsWillBeUpdatedFromSync(
const std::vector<const WebApp*>& new_apps_state) {}
virtual void OnAppRegistrarDestroyed() = 0;
// Called after remembering the user choice to always launch an app via
// a given protocol.
virtual void OnWebAppProtocolSettingsChanged(const webapps::AppId& app_id) {}
// Called after the app's access to the File Handling API has changed, e.g. by
// a user selecting "always allow" in the prompt or after a policy update.
virtual void OnWebAppFileHandlerApprovalStateChanged(
const webapps::AppId& app_id) {}
// The disabled status WebApp::chromeos_data().is_disabled of the app backing
// |app_id| changed.
virtual void OnWebAppDisabledStateChanged(const webapps::AppId& app_id,
bool is_disabled) {}
virtual void OnWebAppsDisabledModeChanged() {}
virtual void OnWebAppLastBadgingTimeChanged(const webapps::AppId& app_id,
const base::Time& time) {}
virtual void OnWebAppLastLaunchTimeChanged(const webapps::AppId& app_id,
const base::Time& time) {}
virtual void OnWebAppFirstInstallTimeChanged(const webapps::AppId& app_id,
const base::Time& time) {}
virtual void OnWebAppUserDisplayModeChanged(
const webapps::AppId& app_id,
mojom::UserDisplayMode user_display_mode) {}
virtual void OnWebAppRunOnOsLoginModeChanged(
const webapps::AppId& app_id,
RunOnOsLoginMode run_on_os_login_mode) {}
// Called after the WebAppSettings policy has been updated. If a policy is set
// this event is also fired during browser startup after the policy has been
// applied.
virtual void OnWebAppSettingsPolicyChanged() {}
virtual void OnAlwaysShowToolbarInFullscreenChanged(
const webapps::AppId& app_id,
bool show) {}
// Called after the user link capturing preferences have been modified from
// various Chrome surfaces.
virtual void OnWebAppUserLinkCapturingPreferencesChanged(
const webapps::AppId& app_id,
bool is_preferred) {}
};
} // namespace web_app
#endif // CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_REGISTRAR_OBSERVER_H_
|