blob: dedfe45409aa1654e78b6a1fd123f24ade4e17a7 [file] [log] [blame]
// Copyright 2021 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.
#include "chrome/browser/ui/webui/settings/chromeos/personalization_hub_handler.h"
#include "ash/constants/ash_features.h"
#include "ash/constants/personalization_entry_point.h"
#include "base/bind.h"
#include "chrome/browser/ash/web_applications/personalization_app/personalization_app_metrics.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/ash/system_web_apps/system_web_app_ui_utils.h"
#include "content/public/browser/web_ui.h"
namespace chromeos {
namespace settings {
PersonalizationHubHandler::PersonalizationHubHandler() = default;
PersonalizationHubHandler::~PersonalizationHubHandler() = default;
void PersonalizationHubHandler::RegisterMessages() {
DCHECK(ash::features::IsPersonalizationHubEnabled());
web_ui()->RegisterMessageCallback(
"openPersonalizationHub",
base::BindRepeating(
&PersonalizationHubHandler::HandleOpenPersonalizationHub,
base::Unretained(this)));
}
void PersonalizationHubHandler::HandleOpenPersonalizationHub(
const base::Value::List& args) {
CHECK_EQ(0U, args.size());
// Record entry point metric to Personalization Hub through Settings.
ash::personalization_app::LogPersonalizationEntryPoint(
ash::PersonalizationEntryPoint::kSettings);
ash::LaunchSystemWebAppAsync(Profile::FromWebUI(web_ui()),
ash::SystemWebAppType::PERSONALIZATION);
}
} // namespace settings
} // namespace chromeos