blob: defa83d7ffa9420ba28c3188e5f0b1b4b41894fe [file] [log] [blame]
// Copyright 2020 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/search/task_module/task_module_handler.h"
#include "base/metrics/histogram_functions.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/task_module/task_module_service.h"
#include "chrome/browser/search/task_module/task_module_service_factory.h"
namespace {
const char* GetModuleName(task_module::mojom::TaskModuleType task_module_type) {
switch (task_module_type) {
case task_module::mojom::TaskModuleType::kRecipe:
return "RecipeTasks";
case task_module::mojom::TaskModuleType::kShopping:
return "ShoppingTasks";
default:
NOTREACHED();
}
}
} // namespace
TaskModuleHandler::TaskModuleHandler(
mojo::PendingReceiver<task_module::mojom::TaskModuleHandler>
pending_receiver,
Profile* profile)
: receiver_(this, std::move(pending_receiver)), profile_(profile) {}
TaskModuleHandler::~TaskModuleHandler() = default;
void TaskModuleHandler::GetPrimaryTask(
task_module::mojom::TaskModuleType task_module_type,
GetPrimaryTaskCallback callback) {
TaskModuleServiceFactory::GetForProfile(profile_)->GetPrimaryTask(
task_module_type, std::move(callback));
}
void TaskModuleHandler::DismissTask(
task_module::mojom::TaskModuleType task_module_type,
const std::string& task_name) {
TaskModuleServiceFactory::GetForProfile(profile_)->DismissTask(
task_module_type, task_name);
}
void TaskModuleHandler::RestoreTask(
task_module::mojom::TaskModuleType task_module_type,
const std::string& task_name) {
TaskModuleServiceFactory::GetForProfile(profile_)->RestoreTask(
task_module_type, task_name);
}
void TaskModuleHandler::OnTaskItemClicked(
task_module::mojom::TaskModuleType task_module_type,
uint32_t index) {
std::string task_item_name;
switch (task_module_type) {
case task_module::mojom::TaskModuleType::kRecipe:
task_item_name = "Recipe";
break;
case task_module::mojom::TaskModuleType::kShopping:
task_item_name = "Product";
break;
default:
NOTREACHED();
}
base::UmaHistogramCounts100(
base::StringPrintf("NewTabPage.%s.%sClick",
GetModuleName(task_module_type),
task_item_name.c_str()),
index);
}
void TaskModuleHandler::OnRelatedSearchClicked(
task_module::mojom::TaskModuleType task_module_type,
uint32_t index) {
base::UmaHistogramCounts100(
base::StringPrintf("NewTabPage.%s.RelatedSearchClick",
GetModuleName(task_module_type)),
index);
}