JNIEXPORT void JNICALL Java_org_cef_browser_CefBrowser_1N_N_1RunFileDialog (JNIEnv *env, jobject obj, jobject jmode, jstring jtitle, jstring jdefaultFileName , jobject jacceptTypes, jobject jcallback) { CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN(env, obj); std::vector<CefString> accept_types; GetJNIStringVector(env, jacceptTypes, accept_types); CefBrowserHost::FileDialogMode mode; if (IsJNIEnumValue(env, jmode, "org/cef/handler/CefDialogHandler$FileDialogMode", "FILE_DIALOG_OPEN")) { mode = FILE_DIALOG_OPEN; } else if (IsJNIEnumValue(env, jmode, "org/cef/handler/CefDialogHandler$FileDialogMode", "FILE_DIALOG_OPEN_MULTIPLE")) { mode = FILE_DIALOG_OPEN_MULTIPLE; } else if (IsJNIEnumValue(env, jmode, "org/cef/handler/CefDialogHandler$FileDialogMode", "FILE_DIALOG_SAVE")) { mode = FILE_DIALOG_SAVE; } else { mode = FILE_DIALOG_OPEN; } browser->GetHost()->RunFileDialog(mode, GetJNIString(env, jtitle), GetJNIString(env, jdefaultFileName), accept_types, new RunFileDialogCallback(env, jcallback)); }
JNIEXPORT void JNICALL Java_org_cef_network_CefCookieManager_1N_N_1SetSupportedSchemes( JNIEnv* env, jobject obj, jobject jschemes) { CefRefPtr<CefCookieManager> manager = GetCefFromJNIObject<CefCookieManager>(env, obj, "CefCookieManager"); if (!manager.get()) return; std::vector<CefString> schemes; GetJNIStringVector(env, jschemes, schemes); // TODO(JCEF): Expose the callback object. manager->SetSupportedSchemes(schemes, NULL); }
JNIEXPORT void JNICALL Java_org_cef_callback_CefFileDialogCallback_1N_N_1Continue( JNIEnv* env, jobject obj, jint selectedAcceptFilter, jobject jFilePaths) { CefRefPtr<CefFileDialogCallback> callback = GetCefFromJNIObject<CefFileDialogCallback>(env, obj, "CefFileDialogCallback"); if (!callback.get()) return; std::vector<CefString> filePaths; GetJNIStringVector(env, jFilePaths, filePaths); callback->Continue(selectedAcceptFilter, filePaths); // Clear the reference added in DialogHandler::OnFileDialog. SetCefForJNIObject<CefFileDialogCallback>(env, obj, NULL, "CefFileDialogCallback"); }