blob: a53cabf177892303d81a04678faeacbfcefc557c [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/task_manager/providers/worker_task.h"
#include <string>
#include "base/notreached.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"
namespace task_manager {
namespace {
int GetTaskTitlePrefixMessageId(Task::Type task_type) {
switch (task_type) {
case Task::Type::DEDICATED_WORKER:
return IDS_TASK_MANAGER_DEDICATED_WORKER_PREFIX;
case Task::Type::SHARED_WORKER:
return IDS_TASK_MANAGER_SHARED_WORKER_PREFIX;
case Task::Type::SERVICE_WORKER:
return IDS_TASK_MANAGER_SERVICE_WORKER_PREFIX;
default:
NOTREACHED();
}
}
std::u16string GetTaskTitle(const GURL& script_url, Task::Type task_type) {
return l10n_util::GetStringFUTF16(GetTaskTitlePrefixMessageId(task_type),
base::UTF8ToUTF16(script_url.spec()));
}
} // namespace
WorkerTask::WorkerTask(base::ProcessHandle handle,
Task::Type task_type,
int render_process_id)
: Task(GetTaskTitle(/*script_url=*/GURL(), task_type),
/*icon=*/nullptr,
handle),
task_type_(task_type),
render_process_id_(render_process_id) {}
WorkerTask::~WorkerTask() = default;
Task::Type WorkerTask::GetType() const {
return task_type_;
}
int WorkerTask::GetChildProcessUniqueID() const {
return render_process_id_;
}
void WorkerTask::SetScriptUrl(const GURL& script_url) {
set_title(GetTaskTitle(script_url, task_type_));
}
} // namespace task_manager