Beispiel #1
0
jobject ClientHandler::getBrowser(CefRefPtr<CefBrowser> browser) {
  jobject jbrowser = NULL;
  BEGIN_ENV(env)
  JNI_CALL_METHOD(env, 
                  jhandler_, 
                  "getBrowser", 
                  "(I)Lorg/cef/browser/CefBrowser;", 
                  Object, 
                  jbrowser, 
                  browser->GetIdentifier());
  END_ENV(env)
  return jbrowser;
}
Beispiel #2
0
CefRefPtr<CefDownloadHandler> ClientHandler::GetDownloadHandler() {
  CefRefPtr<CefDownloadHandler> result = NULL;
  BEGIN_ENV(env)
  jobject handler = NULL;
  JNI_CALL_METHOD(env, jhandler_, "getDownloadHandler", "()Lorg/cef/handler/CefDownloadHandler;", Object, handler);
  if (handler) {
    result = GetCefFromJNIObject<CefDownloadHandler>(env, handler, "CefDownloadHandler");
    if (!result.get()) {
      result = new DownloadHandler(env, handler);
      SetCefForJNIObject(env, handler, result.get(), "CefDownloadHandler");
    }
  }
  END_ENV(env)
  return result;
}
Beispiel #3
0
size_t WriteHandler::Write(const void* ptr, size_t size, size_t n) {
  base::AutoLock lock_scope(lock_);
  size_t rv = n;
  BEGIN_ENV(env)
  jbyteArray jbyteArray = env->NewByteArray((jsize)(size * n));
  env->SetByteArrayRegion(jbyteArray, 0, (jsize)(size * n), (const jbyte*)ptr);

  JNI_CALL_VOID_METHOD_EX(env, jOutputStream_, "write", "([B)V", jbyteArray);
  if (env->ExceptionOccurred()) {
    env->ExceptionClear();
    rv = 0;
  }
  offset_ += (rv * size);
  END_ENV(env)

  return rv;
}
Beispiel #4
0
int WriteHandler::Flush() {
  BEGIN_ENV(env)
  JNI_CALL_VOID_METHOD(env, jOutputStream_, "flush", "()V");
  END_ENV(env)
  return 0;
}
Beispiel #5
0
ClientHandler::~ClientHandler() {
  BEGIN_ENV(env)
  env->DeleteGlobalRef(jhandler_);
  END_ENV(env)
}