| // Copyright 2017 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 "components/heap_profiling/heap_profiling_test_shim.h" | 
 |  | 
 | #include "base/android/jni_string.h" | 
 | #include "components/heap_profiling/test_driver.h" | 
 | #include "components/services/heap_profiling/public/cpp/settings.h" | 
 | #include "jni/HeapProfilingTestShim_jni.h" | 
 |  | 
 | using base::android::JavaParamRef; | 
 | using base::android::ScopedJavaLocalRef; | 
 |  | 
 | static jlong JNI_HeapProfilingTestShim_Init(JNIEnv* env, | 
 |                                             const JavaParamRef<jobject>& obj) { | 
 |   HeapProfilingTestShim* profiler = new HeapProfilingTestShim(env, obj); | 
 |   return reinterpret_cast<intptr_t>(profiler); | 
 | } | 
 |  | 
 | HeapProfilingTestShim::HeapProfilingTestShim(JNIEnv* env, jobject obj) {} | 
 |  | 
 | HeapProfilingTestShim::~HeapProfilingTestShim() {} | 
 |  | 
 | void HeapProfilingTestShim::Destroy(JNIEnv* env, | 
 |                                     const JavaParamRef<jobject>& obj) { | 
 |   delete this; | 
 | } | 
 |  | 
 | jboolean HeapProfilingTestShim::RunTestForMode( | 
 |     JNIEnv* env, | 
 |     const base::android::JavaParamRef<jobject>& obj, | 
 |     const base::android::JavaParamRef<jstring>& mode, | 
 |     jboolean dynamically_start_profiling, | 
 |     const base::android::JavaParamRef<jstring>& stack_mode, | 
 |     jboolean should_sample, | 
 |     jboolean sample_everything) { | 
 |   heap_profiling::TestDriver driver; | 
 |   heap_profiling::TestDriver::Options options; | 
 |   options.mode = heap_profiling::ConvertStringToMode( | 
 |       base::android::ConvertJavaStringToUTF8(mode)); | 
 |   options.stack_mode = heap_profiling::ConvertStringToStackMode( | 
 |       base::android::ConvertJavaStringToUTF8(stack_mode)); | 
 |   options.profiling_already_started = !dynamically_start_profiling; | 
 |   options.should_sample = should_sample; | 
 |   options.sample_everything = sample_everything; | 
 |   return driver.RunTest(options); | 
 | } |