blob: 3c9fa16659aa614f2dd4d0370a287d8d48a6d009 [file] [log] [blame]
// Copyright 2025 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/aw_navigation_client.h"
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "content/public/browser/page.h"
#include "content/public/browser/web_contents.h"
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "android_webview/browser_jni_headers/AwNavigationClient_jni.h"
using base::android::AttachCurrentThread;
using base::android::ConvertUTF8ToJavaString;
namespace android_webview {
AwNavigationClient::AwNavigationClient(JNIEnv* env,
const jni_zero::JavaRef<jobject>& obj)
: java_ref_(env, obj) {}
void AwNavigationClient::OnFirstContentfulPaint(
content::Page& page,
const base::TimeDelta& duration) {
JNIEnv* env = AttachCurrentThread();
Java_AwNavigationClient_onFirstContentfulPaint(
env, java_ref_.get(env), page.GetJavaPage(), duration.InMilliseconds());
}
void AwNavigationClient::OnLargestContentfulPaint(
content::Page& page,
const base::TimeDelta& duration) {
JNIEnv* env = AttachCurrentThread();
Java_AwNavigationClient_onLargestContentfulPaint(
env, java_ref_.get(env), page.GetJavaPage(), duration.InMilliseconds());
}
void AwNavigationClient::OnPerformanceMark(content::Page& page,
std::string mark_name,
const base::TimeDelta& mark_time) {
JNIEnv* env = AttachCurrentThread();
Java_AwNavigationClient_onPerformanceMark(
env, java_ref_.get(env), page.GetJavaPage(),
ConvertUTF8ToJavaString(env, mark_name), mark_time.InMilliseconds());
}
} // namespace android_webview