| // Copyright 2018 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 "base/containers/contains.h" |
| #include "chrome/browser/browser_process.h" |
| #include "components/metrics_services_manager/metrics_services_manager.h" |
| #include "components/ukm/ukm_service.h" |
| |
| #include "chrome/browser/android/metrics/ukm_utils_for_test.h" |
| |
| // Must come after all headers that specialize FromJniType() / ToJniType(). |
| #include "chrome/browser/android/metrics/test_jni_headers/UkmUtilsForTest_jni.h" |
| |
| using base::android::JavaParamRef; |
| |
| namespace ukm { |
| |
| // static |
| bool UkmUtilsForTest::IsEnabled() { |
| auto* service = |
| g_browser_process->GetMetricsServicesManager()->GetUkmService(); |
| return service ? service->recording_enabled_ : false; |
| } |
| |
| // static |
| bool UkmUtilsForTest::HasSourceWithId(SourceId source_id) { |
| auto* service = |
| g_browser_process->GetMetricsServicesManager()->GetUkmService(); |
| DCHECK(service); |
| return base::Contains(service->sources(), source_id); |
| } |
| |
| // static |
| void UkmUtilsForTest::RecordSourceWithId(SourceId source_id) { |
| auto* service = |
| g_browser_process->GetMetricsServicesManager()->GetUkmService(); |
| DCHECK(service); |
| service->UpdateSourceURL(source_id, GURL("http://example.com")); |
| } |
| |
| // static |
| uint64_t UkmUtilsForTest::GetClientId() { |
| auto* service = |
| g_browser_process->GetMetricsServicesManager()->GetUkmService(); |
| DCHECK(service); |
| return service->client_id_; |
| } |
| |
| } // namespace ukm |
| |
| static jboolean JNI_UkmUtilsForTest_IsEnabled(JNIEnv*) { |
| return ukm::UkmUtilsForTest::IsEnabled(); |
| } |
| |
| static jboolean JNI_UkmUtilsForTest_HasSourceWithId(JNIEnv*, jlong source_id) { |
| ukm::SourceId source = static_cast<ukm::SourceId>(source_id); |
| return ukm::UkmUtilsForTest::HasSourceWithId(source); |
| } |
| |
| static void JNI_UkmUtilsForTest_RecordSourceWithId(JNIEnv*, jlong source_id) { |
| ukm::SourceId source = static_cast<ukm::SourceId>(source_id); |
| ukm::UkmUtilsForTest::RecordSourceWithId(source); |
| } |
| |
| static jlong JNI_UkmUtilsForTest_GetClientId(JNIEnv*) { |
| return ukm::UkmUtilsForTest::GetClientId(); |
| } |