Commit 4133081a authored by Aya ElAttar's avatar Aya ElAttar Committed by Commit Bot

Modified WebApps to publish disabled apps

Modified WebApps publisher to publish Chrome OS WebApps as disabled by
policy, if they has is_disabled set.

Bug: 1069605
Change-Id: Ib30a6d8498ad9e2792aaf6a44b7020c618321c76
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2153157Reviewed-by: default avatarSergey Poromov <poromov@chromium.org>
Reviewed-by: default avatarNancy Wang <nancylingwang@chromium.org>
Commit-Queue: Aya Elsayed <ayaelattar@google.com>
Cr-Commit-Position: refs/heads/master@{#761056}
parent a22dbe0a
......@@ -83,6 +83,15 @@ apps::mojom::InstallSource GetHighestPriorityInstallSource(
}
}
apps::mojom::Readiness GetWebAppCrOsReadiness(
const web_app::WebApp* web_app,
const apps::mojom::Readiness readiness) {
DCHECK(web_app->chromeos_data().has_value());
return web_app->chromeos_data().value().is_disabled
? apps::mojom::Readiness::kDisabledByPolicy
: readiness;
}
} // namespace
namespace apps {
......@@ -457,7 +466,11 @@ void WebApps::OnContentSettingChanged(
void WebApps::OnWebAppInstalled(const web_app::AppId& app_id) {
const web_app::WebApp* web_app = GetWebApp(app_id);
if (web_app && Accepts(app_id)) {
Publish(Convert(web_app, apps::mojom::Readiness::kReady), subscribers_);
apps::mojom::Readiness readiness = apps::mojom::Readiness::kReady;
readiness = web_app::IsChromeOs()
? GetWebAppCrOsReadiness(web_app, readiness)
: readiness;
Publish(Convert(web_app, readiness), subscribers_);
}
}
......@@ -490,6 +503,25 @@ void WebApps::OnAppRegistrarDestroyed() {
registrar_observer_.RemoveAll();
}
// If is_disabled is set, the app backed by |app_id| is published with readiness
// kDisabledByPolicy, otherwise it's published with readiness kReady.
void WebApps::OnWebAppDisabledStateChanged(const web_app::AppId& app_id,
bool is_disabled) {
if (!web_app::IsChromeOs()) {
return;
}
const web_app::WebApp* web_app = GetWebApp(app_id);
if (!web_app || !Accepts(app_id)) {
return;
}
const apps::mojom::Readiness readiness =
is_disabled ? apps::mojom::Readiness::kDisabledByPolicy
: apps::mojom::Readiness::kReady;
Publish(Convert(web_app, readiness), subscribers_);
}
void WebApps::OnPackageInstalled(
const arc::mojom::ArcPackageInfo& package_info) {
ApplyChromeBadge(package_info.package_name);
......@@ -621,7 +653,10 @@ void WebApps::ConvertWebApps(apps::mojom::Readiness readiness,
std::vector<apps::mojom::AppPtr>* apps_out) {
for (const web_app::WebApp& web_app : GetRegistrar().AllApps()) {
if (!web_app.is_in_sync_install()) {
apps_out->push_back(Convert(&web_app, readiness));
apps_out->push_back(
Convert(&web_app, web_app::IsChromeOs()
? GetWebAppCrOsReadiness(&web_app, readiness)
: readiness));
}
}
}
......
......@@ -108,6 +108,8 @@ class WebApps : public apps::PublisherBase,
void OnWebAppInstalled(const web_app::AppId& app_id) override;
void OnWebAppWillBeUninstalled(const web_app::AppId& app_id) override;
void OnAppRegistrarDestroyed() override;
void OnWebAppDisabledStateChanged(const web_app::AppId& app_id,
bool is_disabled) override;
// TODO(loyso): Implement app->last_launch_time field for the new system.
// ArcAppListPrefs::Observer overrides.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment