blob: 2420ea444e9ab4a33ec412fa17a617e88de12cdd [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "android_webview/browser/prefetch/aw_prefetch_manager.h"
#include "android_webview/browser/prefetch/aw_prefetch_prefs.h"
#include "base/android/jni_string.h"
#include "base/no_destructor.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/testing_pref_service.h"
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "android_webview/test/webview_instrumentation_test_native_jni/AwPrefetchTestUtil_jni.h"
namespace android_webview {
static void JNI_AwPrefetchTestUtil_SetLatestPrefetchInfoForTesting(
JNIEnv* env,
const std::string& origin,
bool javascript_enabled) {
static base::NoDestructor<TestingPrefServiceSimple> testing_prefs;
static bool registered = false;
if (!registered) {
testing_prefs->registry()->RegisterStringPref(
prefs::kAwPrefetchLatestOrigin, "");
testing_prefs->registry()->RegisterBooleanPref(
prefs::kAwPrefetchLatestJavascriptEnabled, false);
registered = true;
}
testing_prefs->SetString(prefs::kAwPrefetchLatestOrigin, origin);
testing_prefs->SetBoolean(prefs::kAwPrefetchLatestJavascriptEnabled,
javascript_enabled);
AwPrefetchManager::SetPrefServiceForTesting(testing_prefs.get());
}
static void JNI_AwPrefetchTestUtil_ClearLatestPrefetchInfoForTesting(
JNIEnv* env) {
AwPrefetchManager::SetPrefServiceForTesting(nullptr);
}
} // namespace android_webview
DEFINE_JNI(AwPrefetchTestUtil)