// Copyright (c) 2017 The Chromium Embedded Framework 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 "CefFrame_N.h" #include "include/cef_frame.h" #include "jni_scoped_helpers.h" #include "jni_util.h" namespace { CefRefPtr GetSelf(jlong self) { return reinterpret_cast(self); } void ClearSelf(JNIEnv* env, jobject obj) { SetCefForJNIObject(env, obj, nullptr, "CefFrame"); } } // namespace JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1Dispose(JNIEnv* env, jobject obj, jlong self) { ClearSelf(env, obj); } JNIEXPORT jstring JNICALL Java_org_cef_browser_CefFrame_1N_N_1GetIdentifier(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return nullptr; return NewJNIString(env, frame->GetIdentifier()); } JNIEXPORT jstring JNICALL Java_org_cef_browser_CefFrame_1N_N_1GetURL(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return nullptr; return NewJNIString(env, frame->GetURL()); } JNIEXPORT jstring JNICALL Java_org_cef_browser_CefFrame_1N_N_1GetName(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return nullptr; return NewJNIString(env, frame->GetName()); } JNIEXPORT jboolean JNICALL Java_org_cef_browser_CefFrame_1N_N_1IsMain(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return JNI_FALSE; return frame->IsMain() ? JNI_TRUE : JNI_FALSE; } JNIEXPORT jboolean JNICALL Java_org_cef_browser_CefFrame_1N_N_1IsValid(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return JNI_FALSE; return frame->IsValid() ? JNI_TRUE : JNI_FALSE; } JNIEXPORT jboolean JNICALL Java_org_cef_browser_CefFrame_1N_N_1IsFocused(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return JNI_FALSE; return frame->IsFocused() ? JNI_TRUE : JNI_FALSE; } JNIEXPORT jobject JNICALL Java_org_cef_browser_CefFrame_1N_N_1GetParent(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return nullptr; CefRefPtr parent = frame->GetParent(); if (!parent) return nullptr; ScopedJNIFrame jparent(env, parent); return jparent.Release(); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1ExecuteJavaScript(JNIEnv* env, jobject obj, jlong self, jstring code, jstring url, jint line) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->ExecuteJavaScript(GetJNIString(env, code), GetJNIString(env, url), line); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1Undo(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->Undo(); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1Redo(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->Redo(); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1Cut(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->Cut(); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1Copy(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->Copy(); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1Paste(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->Paste(); } JNIEXPORT void JNICALL Java_org_cef_browser_CefFrame_1N_N_1SelectAll(JNIEnv* env, jobject obj, jlong self) { CefRefPtr frame = GetSelf(self); if (!frame) return; frame->SelectAll(); }