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 76 77 78 79
|
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/android/jni_string.h"
#include "chrome/browser/task_manager/android/task_manager_observer_android.h"
#include "chrome/browser/task_manager/internal/android/jni/TaskManagerServiceBridge_jni.h"
#include "chrome/browser/task_manager/task_manager_interface.h"
#include "chrome/browser/task_manager/task_manager_observer.h"
#include "third_party/jni_zero/jni_zero.h"
namespace task_manager {
static jlong JNI_TaskManagerServiceBridge_AddObserver(
JNIEnv* env,
const jni_zero::JavaParamRef<jobject>& observer,
const jint refresh_time_millis,
const jint resource_flags) {
TaskManagerObserverAndroid* delegate =
new TaskManagerObserverAndroid(env, observer, refresh_time_millis,
static_cast<RefreshType>(resource_flags));
return reinterpret_cast<jlong>(delegate);
}
static void JNI_TaskManagerServiceBridge_RemoveObserver(JNIEnv* env,
const jlong ptr) {
TaskManagerObserverAndroid* delegate =
reinterpret_cast<TaskManagerObserverAndroid*>(ptr);
delete delegate;
}
static jni_zero::ScopedJavaLocalRef<jstring>
JNI_TaskManagerServiceBridge_GetTitle(JNIEnv* env, TaskId task_id) {
return base::android::ConvertUTF16ToJavaString(
env, TaskManagerInterface::GetTaskManager()->GetTitle(task_id));
}
static jlong JNI_TaskManagerServiceBridge_GetMemoryFootprintUsage(
JNIEnv* env,
TaskId task_id) {
return TaskManagerInterface::GetTaskManager()->GetMemoryFootprintUsage(
task_id);
}
static jdouble JNI_TaskManagerServiceBridge_GetPlatformIndependentCpuUsage(
JNIEnv* env,
TaskId task_id) {
return TaskManagerInterface::GetTaskManager()->GetPlatformIndependentCPUUsage(
task_id);
}
static jlong JNI_TaskManagerServiceBridge_GetNetworkUsage(JNIEnv* env,
TaskId task_id) {
return TaskManagerInterface::GetTaskManager()->GetNetworkUsage(task_id);
}
static jlong JNI_TaskManagerServiceBridge_GetProcessId(JNIEnv* env,
TaskId task_id) {
return TaskManagerInterface::GetTaskManager()->GetProcessId(task_id);
}
static jni_zero::ScopedJavaLocalRef<jobject>
JNI_TaskManagerServiceBridge_GetGpuMemoryUsage(JNIEnv* env, TaskId task_id) {
bool has_duplicates;
jlong bytes = TaskManagerInterface::GetTaskManager()->GetGpuMemoryUsage(
task_id, &has_duplicates);
return Java_GpuMemoryUsage_Constructor(env, bytes, has_duplicates);
}
static jboolean JNI_TaskManagerServiceBridge_IsTaskKillable(JNIEnv* env,
TaskId task_id) {
return TaskManagerInterface::GetTaskManager()->IsTaskKillable(task_id);
}
static void JNI_TaskManagerServiceBridge_KillTask(JNIEnv* env, TaskId task_id) {
TaskManagerInterface::GetTaskManager()->KillTask(task_id);
}
} // namespace task_manager
|