commit d9d6c29881e3d198a4234aa62e4fdef199e36c7d
Author: naumueller
Date: Mon Feb 23 15:33:15 2026 +0100
Initial commit
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..480bdf5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,39 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+.kotlin
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..ab1f416
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..be90e44
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+Virtueller Gesundheitsassistent
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..0a1a6f2
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..15ded96
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/health.db b/data/health.db
new file mode 100644
index 0000000..f50df25
Binary files /dev/null and b/data/health.db differ
diff --git a/lib/chromiumembedded-java-cef-cffac273e4f9.zip b/lib/chromiumembedded-java-cef-cffac273e4f9.zip
new file mode 100644
index 0000000..08e278f
Binary files /dev/null and b/lib/chromiumembedded-java-cef-cffac273e4f9.zip differ
diff --git a/lib/jcef/src/LICENSE.txt b/lib/jcef/src/LICENSE.txt
new file mode 100644
index 0000000..a5d84ad
--- /dev/null
+++ b/lib/jcef/src/LICENSE.txt
@@ -0,0 +1,29 @@
+// Copyright (c) 2008-2013 Marshall A. Greenblatt. Portions Copyright (c)
+// 2006-2009 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the name Chromium Embedded
+// Framework nor the names of its contributors may be used to endorse
+// or promote products derived from this software without specific prior
+// written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/lib/jcef/src/README.txt b/lib/jcef/src/README.txt
new file mode 100644
index 0000000..e69de29
diff --git a/lib/jcef/src/bin/gluegen-rt-natives-windows-amd64.jar b/lib/jcef/src/bin/gluegen-rt-natives-windows-amd64.jar
new file mode 100644
index 0000000..992a566
Binary files /dev/null and b/lib/jcef/src/bin/gluegen-rt-natives-windows-amd64.jar differ
diff --git a/lib/jcef/src/bin/gluegen-rt.jar b/lib/jcef/src/bin/gluegen-rt.jar
new file mode 100644
index 0000000..2025bf8
Binary files /dev/null and b/lib/jcef/src/bin/gluegen-rt.jar differ
diff --git a/lib/jcef/src/bin/jcef-tests.jar b/lib/jcef/src/bin/jcef-tests.jar
new file mode 100644
index 0000000..c95c50e
Binary files /dev/null and b/lib/jcef/src/bin/jcef-tests.jar differ
diff --git a/lib/jcef/src/bin/jcef.jar b/lib/jcef/src/bin/jcef.jar
new file mode 100644
index 0000000..e69c943
Binary files /dev/null and b/lib/jcef/src/bin/jcef.jar differ
diff --git a/lib/jcef/src/bin/jogl-all-natives-windows-amd64.jar b/lib/jcef/src/bin/jogl-all-natives-windows-amd64.jar
new file mode 100644
index 0000000..d8f66a1
Binary files /dev/null and b/lib/jcef/src/bin/jogl-all-natives-windows-amd64.jar differ
diff --git a/lib/jcef/src/bin/jogl-all.jar b/lib/jcef/src/bin/jogl-all.jar
new file mode 100644
index 0000000..64503dd
Binary files /dev/null and b/lib/jcef/src/bin/jogl-all.jar differ
diff --git a/lib/jcef/src/bin/lib/win64/bootstrap.exe b/lib/jcef/src/bin/lib/win64/bootstrap.exe
new file mode 100644
index 0000000..f3b83b3
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/bootstrap.exe differ
diff --git a/lib/jcef/src/bin/lib/win64/bootstrapc.exe b/lib/jcef/src/bin/lib/win64/bootstrapc.exe
new file mode 100644
index 0000000..58a1c6d
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/bootstrapc.exe differ
diff --git a/lib/jcef/src/bin/lib/win64/chrome_100_percent.pak b/lib/jcef/src/bin/lib/win64/chrome_100_percent.pak
new file mode 100644
index 0000000..9004ee4
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/chrome_100_percent.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/chrome_200_percent.pak b/lib/jcef/src/bin/lib/win64/chrome_200_percent.pak
new file mode 100644
index 0000000..098e655
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/chrome_200_percent.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/chrome_elf.dll b/lib/jcef/src/bin/lib/win64/chrome_elf.dll
new file mode 100644
index 0000000..f39a4b2
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/chrome_elf.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/d3dcompiler_47.dll b/lib/jcef/src/bin/lib/win64/d3dcompiler_47.dll
new file mode 100644
index 0000000..7af054f
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/d3dcompiler_47.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/dxcompiler.dll b/lib/jcef/src/bin/lib/win64/dxcompiler.dll
new file mode 100644
index 0000000..84c68f1
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/dxcompiler.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/dxil.dll b/lib/jcef/src/bin/lib/win64/dxil.dll
new file mode 100644
index 0000000..02d2be9
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/dxil.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/icudtl.dat b/lib/jcef/src/bin/lib/win64/icudtl.dat
new file mode 100644
index 0000000..d1a12cb
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/icudtl.dat differ
diff --git a/lib/jcef/src/bin/lib/win64/jcef.dll b/lib/jcef/src/bin/lib/win64/jcef.dll
new file mode 100644
index 0000000..d989ed3
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/jcef.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/jcef_helper.exe b/lib/jcef/src/bin/lib/win64/jcef_helper.exe
new file mode 100644
index 0000000..5297fa7
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/jcef_helper.exe differ
diff --git a/lib/jcef/src/bin/lib/win64/libEGL.dll b/lib/jcef/src/bin/lib/win64/libEGL.dll
new file mode 100644
index 0000000..b32e335
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/libEGL.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/libGLESv2.dll b/lib/jcef/src/bin/lib/win64/libGLESv2.dll
new file mode 100644
index 0000000..4b986c5
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/libGLESv2.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/libcef.dll b/lib/jcef/src/bin/lib/win64/libcef.dll
new file mode 100644
index 0000000..0dc0a84
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/libcef.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/libcef.lib b/lib/jcef/src/bin/lib/win64/libcef.lib
new file mode 100644
index 0000000..145d590
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/libcef.lib differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/af.pak b/lib/jcef/src/bin/lib/win64/locales/af.pak
new file mode 100644
index 0000000..fd33915
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/af.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/af_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/af_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/af_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/af_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/af_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/af_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/af_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/af_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/af_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/am.pak b/lib/jcef/src/bin/lib/win64/locales/am.pak
new file mode 100644
index 0000000..8a4e4fe
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/am.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/am_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/am_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/am_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/am_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/am_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/am_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/am_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/am_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/am_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ar.pak b/lib/jcef/src/bin/lib/win64/locales/ar.pak
new file mode 100644
index 0000000..81a267d
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ar.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ar_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ar_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ar_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ar_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ar_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ar_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ar_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ar_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ar_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bg.pak b/lib/jcef/src/bin/lib/win64/locales/bg.pak
new file mode 100644
index 0000000..433f348
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bg.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bg_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/bg_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bg_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bg_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/bg_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bg_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bg_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/bg_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bg_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bn.pak b/lib/jcef/src/bin/lib/win64/locales/bn.pak
new file mode 100644
index 0000000..59271b2
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bn.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bn_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/bn_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bn_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bn_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/bn_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bn_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/bn_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/bn_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/bn_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ca.pak b/lib/jcef/src/bin/lib/win64/locales/ca.pak
new file mode 100644
index 0000000..b0b0e83
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ca.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ca_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ca_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ca_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ca_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ca_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ca_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ca_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ca_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ca_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/cs.pak b/lib/jcef/src/bin/lib/win64/locales/cs.pak
new file mode 100644
index 0000000..c81a3d5
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/cs.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/cs_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/cs_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/cs_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/cs_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/cs_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/cs_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/cs_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/cs_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/cs_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/da.pak b/lib/jcef/src/bin/lib/win64/locales/da.pak
new file mode 100644
index 0000000..f080c25
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/da.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/da_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/da_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/da_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/da_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/da_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/da_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/da_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/da_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/da_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/de.pak b/lib/jcef/src/bin/lib/win64/locales/de.pak
new file mode 100644
index 0000000..67c6fe5
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/de.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/de_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/de_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/de_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/de_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/de_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/de_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/de_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/de_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/de_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/el.pak b/lib/jcef/src/bin/lib/win64/locales/el.pak
new file mode 100644
index 0000000..169741f
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/el.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/el_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/el_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/el_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/el_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/el_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/el_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/el_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/el_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/el_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-GB.pak b/lib/jcef/src/bin/lib/win64/locales/en-GB.pak
new file mode 100644
index 0000000..cec85f4
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-GB.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-GB_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/en-GB_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-GB_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-GB_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/en-GB_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-GB_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-GB_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/en-GB_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-GB_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-US.pak b/lib/jcef/src/bin/lib/win64/locales/en-US.pak
new file mode 100644
index 0000000..209c8a1
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-US.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-US_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/en-US_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-US_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-US_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/en-US_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-US_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/en-US_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/en-US_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/en-US_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es-419.pak b/lib/jcef/src/bin/lib/win64/locales/es-419.pak
new file mode 100644
index 0000000..8e6fbcb
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es-419.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es-419_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/es-419_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es-419_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es-419_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/es-419_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es-419_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es-419_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/es-419_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es-419_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es.pak b/lib/jcef/src/bin/lib/win64/locales/es.pak
new file mode 100644
index 0000000..e6e7129
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/es_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/es_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/es_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/es_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/es_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/et.pak b/lib/jcef/src/bin/lib/win64/locales/et.pak
new file mode 100644
index 0000000..a664c3d
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/et.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/et_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/et_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/et_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/et_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/et_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/et_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/et_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/et_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/et_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fa.pak b/lib/jcef/src/bin/lib/win64/locales/fa.pak
new file mode 100644
index 0000000..47d1615
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fa.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fa_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/fa_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fa_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fa_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/fa_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fa_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fa_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/fa_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fa_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fi.pak b/lib/jcef/src/bin/lib/win64/locales/fi.pak
new file mode 100644
index 0000000..da75dad
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fi.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fi_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/fi_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fi_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fi_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/fi_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fi_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fi_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/fi_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fi_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fil.pak b/lib/jcef/src/bin/lib/win64/locales/fil.pak
new file mode 100644
index 0000000..eaccb64
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fil.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fil_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/fil_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fil_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fil_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/fil_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fil_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fil_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/fil_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fil_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fr.pak b/lib/jcef/src/bin/lib/win64/locales/fr.pak
new file mode 100644
index 0000000..b7d80b6
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fr.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fr_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/fr_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fr_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fr_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/fr_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fr_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/fr_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/fr_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/fr_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/gu.pak b/lib/jcef/src/bin/lib/win64/locales/gu.pak
new file mode 100644
index 0000000..3b247d8
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/gu.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/gu_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/gu_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/gu_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/gu_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/gu_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/gu_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/gu_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/gu_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/gu_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/he.pak b/lib/jcef/src/bin/lib/win64/locales/he.pak
new file mode 100644
index 0000000..ac8c874
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/he.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/he_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/he_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/he_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/he_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/he_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/he_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/he_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/he_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/he_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hi.pak b/lib/jcef/src/bin/lib/win64/locales/hi.pak
new file mode 100644
index 0000000..f632333
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hi.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hi_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/hi_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hi_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hi_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/hi_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hi_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hi_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/hi_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hi_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hr.pak b/lib/jcef/src/bin/lib/win64/locales/hr.pak
new file mode 100644
index 0000000..207bd81
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hr.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hr_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/hr_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hr_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hr_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/hr_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hr_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hr_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/hr_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hr_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hu.pak b/lib/jcef/src/bin/lib/win64/locales/hu.pak
new file mode 100644
index 0000000..a00ada7
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hu.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hu_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/hu_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hu_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hu_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/hu_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hu_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/hu_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/hu_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/hu_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/id.pak b/lib/jcef/src/bin/lib/win64/locales/id.pak
new file mode 100644
index 0000000..6edbdef
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/id.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/id_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/id_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/id_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/id_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/id_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/id_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/id_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/id_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/id_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/it.pak b/lib/jcef/src/bin/lib/win64/locales/it.pak
new file mode 100644
index 0000000..1bd65d4
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/it.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/it_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/it_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/it_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/it_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/it_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/it_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/it_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/it_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/it_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ja.pak b/lib/jcef/src/bin/lib/win64/locales/ja.pak
new file mode 100644
index 0000000..fb1c704
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ja.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ja_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ja_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ja_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ja_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ja_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ja_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ja_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ja_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ja_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/kn.pak b/lib/jcef/src/bin/lib/win64/locales/kn.pak
new file mode 100644
index 0000000..c670af2
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/kn.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/kn_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/kn_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/kn_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/kn_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/kn_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/kn_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/kn_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/kn_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/kn_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ko.pak b/lib/jcef/src/bin/lib/win64/locales/ko.pak
new file mode 100644
index 0000000..46d5157
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ko.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ko_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ko_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ko_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ko_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ko_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ko_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ko_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ko_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ko_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lt.pak b/lib/jcef/src/bin/lib/win64/locales/lt.pak
new file mode 100644
index 0000000..1b1e585
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lt.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lt_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/lt_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lt_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lt_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/lt_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lt_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lt_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/lt_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lt_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lv.pak b/lib/jcef/src/bin/lib/win64/locales/lv.pak
new file mode 100644
index 0000000..0a9924e
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lv.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lv_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/lv_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lv_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lv_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/lv_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lv_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/lv_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/lv_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/lv_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ml.pak b/lib/jcef/src/bin/lib/win64/locales/ml.pak
new file mode 100644
index 0000000..363c564
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ml.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ml_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ml_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ml_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ml_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ml_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ml_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ml_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ml_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ml_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/mr.pak b/lib/jcef/src/bin/lib/win64/locales/mr.pak
new file mode 100644
index 0000000..dfffc16
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/mr.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/mr_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/mr_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/mr_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/mr_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/mr_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/mr_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/mr_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/mr_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/mr_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ms.pak b/lib/jcef/src/bin/lib/win64/locales/ms.pak
new file mode 100644
index 0000000..56de735
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ms.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ms_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ms_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ms_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ms_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ms_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ms_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ms_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ms_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ms_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nb.pak b/lib/jcef/src/bin/lib/win64/locales/nb.pak
new file mode 100644
index 0000000..24b740d
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nb.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nb_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/nb_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nb_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nb_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/nb_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nb_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nb_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/nb_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nb_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nl.pak b/lib/jcef/src/bin/lib/win64/locales/nl.pak
new file mode 100644
index 0000000..0fb0026
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nl.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nl_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/nl_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nl_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nl_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/nl_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nl_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/nl_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/nl_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/nl_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pl.pak b/lib/jcef/src/bin/lib/win64/locales/pl.pak
new file mode 100644
index 0000000..bcc9bb6
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pl.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pl_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/pl_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pl_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pl_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/pl_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pl_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pl_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/pl_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pl_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-BR.pak b/lib/jcef/src/bin/lib/win64/locales/pt-BR.pak
new file mode 100644
index 0000000..62c3e20
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-BR.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-BR_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/pt-BR_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-BR_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-BR_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/pt-BR_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-BR_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-BR_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/pt-BR_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-BR_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-PT.pak b/lib/jcef/src/bin/lib/win64/locales/pt-PT.pak
new file mode 100644
index 0000000..cc87810
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-PT.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-PT_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/pt-PT_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-PT_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-PT_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/pt-PT_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-PT_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/pt-PT_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/pt-PT_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/pt-PT_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ro.pak b/lib/jcef/src/bin/lib/win64/locales/ro.pak
new file mode 100644
index 0000000..7d15953
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ro.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ro_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ro_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ro_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ro_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ro_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ro_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ro_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ro_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ro_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ru.pak b/lib/jcef/src/bin/lib/win64/locales/ru.pak
new file mode 100644
index 0000000..19dc25b
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ru.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ru_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ru_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ru_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ru_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ru_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ru_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ru_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ru_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ru_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sk.pak b/lib/jcef/src/bin/lib/win64/locales/sk.pak
new file mode 100644
index 0000000..a1d053e
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sk.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sk_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/sk_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sk_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sk_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/sk_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sk_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sk_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/sk_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sk_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sl.pak b/lib/jcef/src/bin/lib/win64/locales/sl.pak
new file mode 100644
index 0000000..8613d58
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sl.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sl_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/sl_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sl_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sl_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/sl_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sl_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sl_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/sl_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sl_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sr.pak b/lib/jcef/src/bin/lib/win64/locales/sr.pak
new file mode 100644
index 0000000..6cd7982
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sr.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sr_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/sr_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sr_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sr_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/sr_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sr_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sr_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/sr_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sr_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sv.pak b/lib/jcef/src/bin/lib/win64/locales/sv.pak
new file mode 100644
index 0000000..d79a770
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sv.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sv_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/sv_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sv_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sv_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/sv_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sv_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sv_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/sv_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sv_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sw.pak b/lib/jcef/src/bin/lib/win64/locales/sw.pak
new file mode 100644
index 0000000..a4b55b0
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sw.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sw_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/sw_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sw_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sw_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/sw_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sw_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/sw_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/sw_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/sw_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ta.pak b/lib/jcef/src/bin/lib/win64/locales/ta.pak
new file mode 100644
index 0000000..f69d34c
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ta.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ta_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ta_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ta_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ta_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ta_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ta_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ta_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ta_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ta_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/te.pak b/lib/jcef/src/bin/lib/win64/locales/te.pak
new file mode 100644
index 0000000..3ecbbac
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/te.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/te_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/te_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/te_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/te_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/te_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/te_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/te_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/te_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/te_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/th.pak b/lib/jcef/src/bin/lib/win64/locales/th.pak
new file mode 100644
index 0000000..6deecf5
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/th.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/th_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/th_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/th_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/th_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/th_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/th_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/th_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/th_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/th_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/tr.pak b/lib/jcef/src/bin/lib/win64/locales/tr.pak
new file mode 100644
index 0000000..f85b190
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/tr.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/tr_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/tr_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/tr_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/tr_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/tr_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/tr_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/tr_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/tr_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/tr_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/uk.pak b/lib/jcef/src/bin/lib/win64/locales/uk.pak
new file mode 100644
index 0000000..7e9465d
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/uk.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/uk_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/uk_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/uk_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/uk_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/uk_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/uk_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/uk_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/uk_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/uk_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ur.pak b/lib/jcef/src/bin/lib/win64/locales/ur.pak
new file mode 100644
index 0000000..726e37b
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ur.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ur_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/ur_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ur_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ur_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/ur_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ur_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/ur_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/ur_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/ur_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/vi.pak b/lib/jcef/src/bin/lib/win64/locales/vi.pak
new file mode 100644
index 0000000..ea8d504
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/vi.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/vi_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/vi_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/vi_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/vi_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/vi_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/vi_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/vi_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/vi_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/vi_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-CN.pak b/lib/jcef/src/bin/lib/win64/locales/zh-CN.pak
new file mode 100644
index 0000000..9a842f9
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-CN.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-CN_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/zh-CN_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-CN_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-CN_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/zh-CN_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-CN_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-CN_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/zh-CN_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-CN_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-TW.pak b/lib/jcef/src/bin/lib/win64/locales/zh-TW.pak
new file mode 100644
index 0000000..9cb551b
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-TW.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-TW_FEMININE.pak b/lib/jcef/src/bin/lib/win64/locales/zh-TW_FEMININE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-TW_FEMININE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-TW_MASCULINE.pak b/lib/jcef/src/bin/lib/win64/locales/zh-TW_MASCULINE.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-TW_MASCULINE.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/locales/zh-TW_NEUTER.pak b/lib/jcef/src/bin/lib/win64/locales/zh-TW_NEUTER.pak
new file mode 100644
index 0000000..9d122de
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/locales/zh-TW_NEUTER.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/resources.pak b/lib/jcef/src/bin/lib/win64/resources.pak
new file mode 100644
index 0000000..ee01451
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/resources.pak differ
diff --git a/lib/jcef/src/bin/lib/win64/v8_context_snapshot.bin b/lib/jcef/src/bin/lib/win64/v8_context_snapshot.bin
new file mode 100644
index 0000000..1e354ee
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/v8_context_snapshot.bin differ
diff --git a/lib/jcef/src/bin/lib/win64/vk_swiftshader.dll b/lib/jcef/src/bin/lib/win64/vk_swiftshader.dll
new file mode 100644
index 0000000..20d4242
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/vk_swiftshader.dll differ
diff --git a/lib/jcef/src/bin/lib/win64/vk_swiftshader_icd.json b/lib/jcef/src/bin/lib/win64/vk_swiftshader_icd.json
new file mode 100644
index 0000000..525fbc5
--- /dev/null
+++ b/lib/jcef/src/bin/lib/win64/vk_swiftshader_icd.json
@@ -0,0 +1 @@
+{"file_format_version": "1.0.0", "ICD": {"library_path": ".\\vk_swiftshader.dll", "api_version": "1.0.5"}}
\ No newline at end of file
diff --git a/lib/jcef/src/bin/lib/win64/vulkan-1.dll b/lib/jcef/src/bin/lib/win64/vulkan-1.dll
new file mode 100644
index 0000000..8f3fb24
Binary files /dev/null and b/lib/jcef/src/bin/lib/win64/vulkan-1.dll differ
diff --git a/lib/jcef/src/bin/tests/detailed/BrowserFrame.java b/lib/jcef/src/bin/tests/detailed/BrowserFrame.java
new file mode 100644
index 0000000..dedcd1f
--- /dev/null
+++ b/lib/jcef/src/bin/tests/detailed/BrowserFrame.java
@@ -0,0 +1,138 @@
+// Copyright (c) 2018 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.
+
+package tests.detailed;
+
+import org.cef.CefApp;
+import org.cef.browser.CefBrowser;
+import org.cef.handler.CefLifeSpanHandlerAdapter;
+
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+
+public class BrowserFrame extends JFrame {
+ private volatile boolean isClosed_ = false;
+ private CefBrowser browser_ = null;
+ private static int browserCount_ = 0;
+ private Runnable afterParentChangedAction_ = null;
+
+ public BrowserFrame() {
+ this(null);
+ }
+
+ public BrowserFrame(String title) {
+ super(title);
+
+ // Browser window closing works as follows:
+ // 1. Clicking the window X button calls WindowAdapter.windowClosing.
+ // 2. WindowAdapter.windowClosing calls CefBrowser.close(false).
+ // 3. CEF calls CefLifeSpanHandler.doClose() which calls CefBrowser.doClose()
+ // which returns true (canceling the close).
+ // 4. CefBrowser.doClose() triggers another call to WindowAdapter.windowClosing.
+ // 5. WindowAdapter.windowClosing calls CefBrowser.close(true).
+ // 6. For windowed browsers CEF destroys the native window handle. For OSR
+ // browsers CEF calls CefLifeSpanHandler.doClose() which calls
+ // CefBrowser.doClose() again which returns false (allowing the close).
+ // 7. CEF calls CefLifeSpanHandler.onBeforeClose and the browser is destroyed.
+ //
+ // On macOS pressing Cmd+Q results in a call to CefApp.handleBeforeTerminate
+ // which calls CefBrowser.close(true) for each existing browser. CEF then calls
+ // CefLifeSpanHandler.onBeforeClose and the browser is destroyed.
+ //
+ // Application shutdown works as follows:
+ // 1. CefLifeSpanHandler.onBeforeClose calls CefApp.getInstance().dispose()
+ // when the last browser window is destroyed.
+ // 2. CefAppHandler.stateHasChanged terminates the application by calling
+ // System.exit(0) when the state changes to CefAppState.TERMINATED.
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if (browser_ == null) {
+ // If there's no browser we can dispose immediately.
+ isClosed_ = true;
+ System.out.println("BrowserFrame.windowClosing Frame.dispose");
+ dispose();
+ return;
+ }
+
+ boolean isClosed = isClosed_;
+
+ if (isClosed) {
+ // Cause browser.doClose() to return false so that OSR browsers
+ // can close.
+ browser_.setCloseAllowed();
+ }
+
+ // Results in another call to this method.
+ System.out.println("BrowserFrame.windowClosing CefBrowser.close(" + isClosed + ")");
+ browser_.close(isClosed);
+ if (!isClosed_) {
+ isClosed_ = true;
+ }
+ if (isClosed) {
+ // Dispose after the 2nd call to this method.
+ System.out.println("BrowserFrame.windowClosing Frame.dispose");
+ dispose();
+ }
+ }
+ });
+ }
+
+ public void setBrowser(CefBrowser browser) {
+ if (browser_ == null) browser_ = browser;
+
+ browser_.getClient().removeLifeSpanHandler();
+ browser_.getClient().addLifeSpanHandler(new CefLifeSpanHandlerAdapter() {
+ @Override
+ public void onAfterCreated(CefBrowser browser) {
+ System.out.println("BrowserFrame.onAfterCreated id=" + browser.getIdentifier());
+ browserCount_++;
+ }
+
+ @Override
+ public void onAfterParentChanged(CefBrowser browser) {
+ System.out.println(
+ "BrowserFrame.onAfterParentChanged id=" + browser.getIdentifier());
+ if (afterParentChangedAction_ != null) {
+ SwingUtilities.invokeLater(afterParentChangedAction_);
+ afterParentChangedAction_ = null;
+ }
+ }
+
+ @Override
+ public boolean doClose(CefBrowser browser) {
+ boolean result = browser.doClose();
+ System.out.println("BrowserFrame.doClose id=" + browser.getIdentifier()
+ + " CefBrowser.doClose=" + result);
+ return result;
+ }
+
+ @Override
+ public void onBeforeClose(CefBrowser browser) {
+ System.out.println("BrowserFrame.onBeforeClose id=" + browser.getIdentifier());
+ if (--browserCount_ == 0) {
+ System.out.println("BrowserFrame.onBeforeClose CefApp.dispose");
+ CefApp.getInstance().dispose();
+ }
+ }
+ });
+ }
+
+ public void removeBrowser(Runnable r) {
+ System.out.println("BrowserFrame.removeBrowser");
+ afterParentChangedAction_ = r;
+ remove(browser_.getUIComponent());
+ // The removeNotify() notification should be sent as a result of calling remove().
+ // However, it isn't in all cases so we do it manually here.
+ browser_.getUIComponent().removeNotify();
+ browser_ = null;
+ }
+
+ public CefBrowser getBrowser() {
+ return browser_;
+ }
+}
diff --git a/lib/jcef/src/bin/tests/detailed/MainFrame.java b/lib/jcef/src/bin/tests/detailed/MainFrame.java
new file mode 100644
index 0000000..77d76ab
--- /dev/null
+++ b/lib/jcef/src/bin/tests/detailed/MainFrame.java
@@ -0,0 +1,349 @@
+// Copyright (c) 2013 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.
+
+package tests.detailed;
+
+import org.cef.CefApp;
+import org.cef.CefApp.CefVersion;
+import org.cef.CefBrowserSettings;
+import org.cef.CefClient;
+import org.cef.CefSettings;
+import org.cef.CefSettings.ColorType;
+import org.cef.OS;
+import org.cef.browser.CefBrowser;
+import org.cef.browser.CefFrame;
+import org.cef.browser.CefMessageRouter;
+import org.cef.browser.CefRequestContext;
+import org.cef.handler.CefDisplayHandlerAdapter;
+import org.cef.handler.CefFocusHandlerAdapter;
+import org.cef.handler.CefLoadHandlerAdapter;
+import org.cef.handler.CefRequestContextHandlerAdapter;
+import org.cef.network.CefCookieManager;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.GraphicsConfiguration;
+import java.awt.KeyboardFocusManager;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.io.File;
+import java.lang.Thread.UncaughtExceptionHandler;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
+
+import tests.detailed.dialog.DownloadDialog;
+import tests.detailed.handler.AppHandler;
+import tests.detailed.handler.ContextMenuHandler;
+import tests.detailed.handler.DragHandler;
+import tests.detailed.handler.JSDialogHandler;
+import tests.detailed.handler.KeyboardHandler;
+import tests.detailed.handler.MessageRouterHandler;
+import tests.detailed.handler.MessageRouterHandlerEx;
+import tests.detailed.handler.RequestHandler;
+import tests.detailed.ui.ControlPanel;
+import tests.detailed.ui.MenuBar;
+import tests.detailed.ui.StatusPanel;
+import tests.detailed.util.DataUri;
+
+public class MainFrame extends BrowserFrame {
+ private static final long serialVersionUID = -2295538706810864538L;
+ public static void main(String[] args) {
+ // Perform startup initialization on platforms that require it.
+ if (!CefApp.startup(args)) {
+ System.out.println("Startup initialization failed!");
+ return;
+ }
+
+ // OSR mode is enabled by default on Linux.
+ // and disabled by default on Windows and Mac OS X.
+ boolean osrEnabledArg = false;
+ boolean transparentPaintingEnabledArg = false;
+ boolean createImmediately = false;
+ int windowless_frame_rate = 0;
+ for (String arg : args) {
+ arg = arg.toLowerCase();
+ if (arg.equals("--off-screen-rendering-enabled")) {
+ osrEnabledArg = true;
+ } else if (arg.equals("--transparent-painting-enabled")) {
+ transparentPaintingEnabledArg = true;
+ } else if (arg.equals("--create-immediately")) {
+ createImmediately = true;
+ } else if (arg.equals("--windowless-frame-rate-60")) {
+ windowless_frame_rate = 60;
+ }
+ }
+
+ System.out.println("Offscreen rendering " + (osrEnabledArg ? "enabled" : "disabled"));
+
+ // MainFrame keeps all the knowledge to display the embedded browser
+ // frame.
+ final MainFrame frame = new MainFrame(osrEnabledArg, transparentPaintingEnabledArg,
+ createImmediately, windowless_frame_rate, args);
+ frame.setSize(800, 600);
+ frame.setVisible(true);
+
+ if (osrEnabledArg && windowless_frame_rate != 0) {
+ frame.getBrowser().getWindowlessFrameRate().thenAccept(
+ framerate -> System.out.println("Framerate is:" + framerate));
+
+ frame.getBrowser().setWindowlessFrameRate(2);
+ frame.getBrowser().getWindowlessFrameRate().thenAccept(
+ framerate -> System.out.println("Framerate is:" + framerate));
+
+ frame.getBrowser().setWindowlessFrameRate(windowless_frame_rate);
+ }
+ }
+
+ private final CefClient client_;
+ private String errorMsg_ = "";
+ private ControlPanel control_pane_;
+ private StatusPanel status_panel_;
+ private boolean browserFocus_ = true;
+ private boolean osr_enabled_;
+ private boolean transparent_painting_enabled_;
+ private JPanel contentPanel_;
+ private JFrame fullscreenFrame_;
+
+ public MainFrame(boolean osrEnabled, boolean transparentPaintingEnabled,
+ boolean createImmediately, int windowless_frame_rate, String[] args) {
+ this.osr_enabled_ = osrEnabled;
+ this.transparent_painting_enabled_ = transparentPaintingEnabled;
+
+ CefApp myApp;
+ if (CefApp.getState() != CefApp.CefAppState.INITIALIZED) {
+ // 1) CefApp is the entry point for JCEF. You can pass
+ // application arguments to it, if you want to handle any
+ // chromium or CEF related switches/attributes in
+ // the native world.
+ CefSettings settings = new CefSettings();
+ settings.windowless_rendering_enabled = osrEnabled;
+ // try to load URL "about:blank" to see the background color
+ settings.background_color = settings.new ColorType(100, 255, 242, 211);
+ myApp = CefApp.getInstance(args, settings);
+
+ CefVersion version = myApp.getVersion();
+ System.out.println("Using:\n" + version);
+
+ // We're registering our own AppHandler because we want to
+ // add an own schemes (search:// and client://) and its corresponding
+ // protocol handlers. So if you enter "search:something on the web", your
+ // search request "something on the web" is forwarded to www.google.com
+ CefApp.addAppHandler(new AppHandler(args));
+ } else {
+ myApp = CefApp.getInstance();
+ }
+
+ // By calling the method createClient() the native part
+ // of JCEF/CEF will be initialized and an instance of
+ // CefClient will be created. You can create one to many
+ // instances of CefClient.
+ client_ = myApp.createClient();
+
+ // 2) You have the ability to pass different handlers to your
+ // instance of CefClient. Each handler is responsible to
+ // deal with different informations (e.g. keyboard input).
+ //
+ // For each handler (with more than one method) adapter
+ // classes exists. So you don't need to override methods
+ // you're not interested in.
+ DownloadDialog downloadDialog = new DownloadDialog(this);
+ client_.addContextMenuHandler(new ContextMenuHandler(this));
+ client_.addDownloadHandler(downloadDialog);
+ client_.addDragHandler(new DragHandler());
+ client_.addJSDialogHandler(new JSDialogHandler());
+ client_.addKeyboardHandler(new KeyboardHandler());
+ client_.addRequestHandler(new RequestHandler(this));
+
+ // Beside the normal handler instances, we're registering a MessageRouter
+ // as well. That gives us the opportunity to reply to JavaScript method
+ // calls (JavaScript binding). We're using the default configuration, so
+ // that the JavaScript binding methods "cefQuery" and "cefQueryCancel"
+ // are used.
+ CefMessageRouter msgRouter = CefMessageRouter.create();
+ msgRouter.addHandler(new MessageRouterHandler(), true);
+ msgRouter.addHandler(new MessageRouterHandlerEx(client_), false);
+ client_.addMessageRouter(msgRouter);
+
+ // 2.1) We're overriding CefDisplayHandler as nested anonymous class
+ // to update our address-field, the title of the panel as well
+ // as for updating the status-bar on the bottom of the browser
+ client_.addDisplayHandler(new CefDisplayHandlerAdapter() {
+ @Override
+ public void onAddressChange(CefBrowser browser, CefFrame frame, String url) {
+ control_pane_.setAddress(browser, url);
+ }
+ @Override
+ public void onTitleChange(CefBrowser browser, String title) {
+ setTitle(title);
+ }
+ @Override
+ public void onStatusMessage(CefBrowser browser, String value) {
+ status_panel_.setStatusText(value);
+ }
+ @Override
+ public void onFullscreenModeChange(CefBrowser browser, boolean fullscreen) {
+ setBrowserFullscreen(fullscreen);
+ }
+ });
+
+ // 2.2) To disable/enable navigation buttons and to display a prgress bar
+ // which indicates the load state of our website, we're overloading
+ // the CefLoadHandler as nested anonymous class. Beside this, the
+ // load handler is responsible to deal with (load) errors as well.
+ // For example if you navigate to a URL which does not exist, the
+ // browser will show up an error message.
+ client_.addLoadHandler(new CefLoadHandlerAdapter() {
+ @Override
+ public void onLoadingStateChange(CefBrowser browser, boolean isLoading,
+ boolean canGoBack, boolean canGoForward) {
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ control_pane_.update(browser, isLoading, canGoBack, canGoForward);
+ status_panel_.setIsInProgress(isLoading);
+
+ if (!isLoading && !errorMsg_.isEmpty()) {
+ browser.loadURL(DataUri.create("text/html", errorMsg_));
+ errorMsg_ = "";
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onLoadError(CefBrowser browser, CefFrame frame, ErrorCode errorCode,
+ String errorText, String failedUrl) {
+ if (errorCode != ErrorCode.ERR_NONE && errorCode != ErrorCode.ERR_ABORTED
+ && frame == browser.getMainFrame()) {
+ errorMsg_ = "";
+ errorMsg_ += "Error while loading";
+ errorMsg_ += "";
+ errorMsg_ += "
" + errorCode + "
";
+ errorMsg_ += "
Failed to load " + failedUrl + "
";
+ errorMsg_ += "
" + (errorText == null ? "" : errorText) + "
";
+ errorMsg_ += "";
+ browser.stopLoad();
+ }
+ }
+ });
+
+ CefBrowserSettings browserSettings = new CefBrowserSettings();
+ browserSettings.windowless_frame_rate = windowless_frame_rate;
+
+ // Create the browser.
+ CefBrowser browser = client_.createBrowser("http://www.google.com", osrEnabled,
+ transparentPaintingEnabled, null, browserSettings);
+ setBrowser(browser);
+
+ // Set up the UI for this example implementation.
+ contentPanel_ = createContentPanel();
+ getContentPane().add(contentPanel_, BorderLayout.CENTER);
+
+ // Clear focus from the browser when the address field gains focus.
+ control_pane_.getAddressField().addFocusListener(new FocusAdapter() {
+ @Override
+ public void focusGained(FocusEvent e) {
+ if (!browserFocus_) return;
+ browserFocus_ = false;
+ KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
+ control_pane_.getAddressField().requestFocus();
+ }
+ });
+
+ // Clear focus from the address field when the browser gains focus.
+ client_.addFocusHandler(new CefFocusHandlerAdapter() {
+ @Override
+ public void onGotFocus(CefBrowser browser) {
+ if (browserFocus_) return;
+ browserFocus_ = true;
+ KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
+ browser.setFocus(true);
+ }
+
+ @Override
+ public void onTakeFocus(CefBrowser browser, boolean next) {
+ browserFocus_ = false;
+ }
+ });
+
+ if (createImmediately) browser.createImmediately();
+
+ // Add the browser to the UI.
+ contentPanel_.add(getBrowser().getUIComponent(), BorderLayout.CENTER);
+
+ MenuBar menuBar = new MenuBar(
+ this, browser, control_pane_, downloadDialog, CefCookieManager.getGlobalManager());
+
+ menuBar.addBookmark("Binding Test", "client://tests/binding_test.html");
+ menuBar.addBookmark("Binding Test 2", "client://tests/binding_test2.html");
+ menuBar.addBookmark("Download Test", "https://cef-builds.spotifycdn.com/index.html");
+ menuBar.addBookmark("Login Test (username:pumpkin, password:pie)",
+ "http://www.colostate.edu/~ric/protect/your.html");
+ menuBar.addBookmark("Certificate-error Test", "https://www.k2go.de");
+ menuBar.addBookmark("Resource-Handler Test", "http://www.foo.bar/");
+ menuBar.addBookmark("Resource-Handler Set Error Test", "http://seterror.test/");
+ menuBar.addBookmark(
+ "Scheme-Handler Test 1: (scheme \"client\")", "client://tests/handler.html");
+ menuBar.addBookmark(
+ "Scheme-Handler Test 2: (scheme \"search\")", "search://do a barrel roll/");
+ menuBar.addBookmark("Spellcheck Test", "client://tests/spellcheck.html");
+ menuBar.addBookmark("LocalStorage Test", "client://tests/localstorage.html");
+ menuBar.addBookmark("Transparency Test", "client://tests/transparency.html");
+ menuBar.addBookmark("Fullscreen Test",
+ "https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_fullscreen2");
+ menuBar.addBookmarkSeparator();
+ menuBar.addBookmark(
+ "javachromiumembedded", "https://github.com/chromiumembedded/java-cef");
+ menuBar.addBookmark("chromiumembedded", "https://github.com/chromiumembedded/cef");
+ setJMenuBar(menuBar);
+ }
+
+ private JPanel createContentPanel() {
+ JPanel contentPanel = new JPanel(new BorderLayout());
+ control_pane_ = new ControlPanel(getBrowser());
+ status_panel_ = new StatusPanel();
+ contentPanel.add(control_pane_, BorderLayout.NORTH);
+ contentPanel.add(status_panel_, BorderLayout.SOUTH);
+ return contentPanel;
+ }
+
+ public boolean isOsrEnabled() {
+ return osr_enabled_;
+ }
+
+ public boolean isTransparentPaintingEnabled() {
+ return transparent_painting_enabled_;
+ }
+
+ public void setBrowserFullscreen(boolean fullscreen) {
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ Component browserUI = getBrowser().getUIComponent();
+ if (fullscreen) {
+ if (fullscreenFrame_ == null) {
+ fullscreenFrame_ = new JFrame();
+ fullscreenFrame_.setUndecorated(true);
+ fullscreenFrame_.setResizable(true);
+ }
+ GraphicsConfiguration gc = MainFrame.this.getGraphicsConfiguration();
+ fullscreenFrame_.setBounds(gc.getBounds());
+ gc.getDevice().setFullScreenWindow(fullscreenFrame_);
+
+ contentPanel_.remove(browserUI);
+ fullscreenFrame_.add(browserUI);
+ fullscreenFrame_.setVisible(true);
+ fullscreenFrame_.validate();
+ } else {
+ fullscreenFrame_.remove(browserUI);
+ fullscreenFrame_.setVisible(false);
+ contentPanel_.add(browserUI, BorderLayout.CENTER);
+ contentPanel_.validate();
+ }
+ }
+ });
+ }
+}
diff --git a/lib/jcef/src/bin/tests/detailed/dialog/CertErrorDialog.java b/lib/jcef/src/bin/tests/detailed/dialog/CertErrorDialog.java
new file mode 100644
index 0000000..4c78ea7
--- /dev/null
+++ b/lib/jcef/src/bin/tests/detailed/dialog/CertErrorDialog.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2014 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.
+
+package tests.detailed.dialog;
+
+import org.cef.callback.CefCallback;
+import org.cef.handler.CefLoadHandler.ErrorCode;
+
+import java.awt.Frame;
+
+import javax.swing.JOptionPane;
+
+public class CertErrorDialog implements Runnable {
+ private final Frame owner_;
+ private final ErrorCode cert_error_;
+ private final String request_url_;
+ private final CefCallback callback_;
+
+ public CertErrorDialog(
+ Frame owner, ErrorCode cert_error, String request_url, CefCallback callback) {
+ owner_ = owner;
+ cert_error_ = cert_error;
+ request_url_ = request_url;
+ callback_ = callback;
+ }
+
+ @Override
+ public void run() {
+ int dialogResult = JOptionPane.showConfirmDialog(owner_,
+ "An certificate error (" + cert_error_ + ") occurreed "
+ + "while requesting\n" + request_url_ + "\nDo you want to proceed anyway?",
+ "Certificate error", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
+ if (dialogResult == JOptionPane.YES_OPTION) {
+ callback_.Continue();
+ } else {
+ callback_.cancel();
+ }
+ }
+}
diff --git a/lib/jcef/src/bin/tests/detailed/dialog/CookieManagerDialog.java b/lib/jcef/src/bin/tests/detailed/dialog/CookieManagerDialog.java
new file mode 100644
index 0000000..279ebbf
--- /dev/null
+++ b/lib/jcef/src/bin/tests/detailed/dialog/CookieManagerDialog.java
@@ -0,0 +1,148 @@
+// Copyright (c) 2014 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.
+
+package tests.detailed.dialog;
+
+import org.cef.callback.CefCookieVisitor;
+import org.cef.misc.BoolRef;
+import org.cef.network.CefCookie;
+import org.cef.network.CefCookieManager;
+
+import java.awt.BorderLayout;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Date;
+import java.util.Vector;
+
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.table.AbstractTableModel;
+
+@SuppressWarnings("serial")
+public class CookieManagerDialog extends JDialog {
+ private static int testCookieId = 1;
+ private final CefCookieManager manager;
+ private final CookieTableModel tblModel = new CookieTableModel();
+
+ public CookieManagerDialog(Frame owner, String title, CefCookieManager cookieManager) {
+ super(owner, title, false);
+ setLayout(new BorderLayout());
+ setSize(800, 600);
+ manager = cookieManager;
+
+ JTable cookieTable = new JTable(tblModel);
+ cookieTable.setFillsViewportHeight(true);
+
+ JPanel controlPanel = new JPanel();
+ controlPanel.setLayout(new BoxLayout(controlPanel, BoxLayout.X_AXIS));
+ JButton delButton = new JButton("Delete cookies");
+ delButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ tblModel.removeCookies();
+ }
+ });
+ controlPanel.add(delButton);
+
+ JButton testCreateCookie = new JButton("Add test cookie");
+ testCreateCookie.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ Date now = new Date();
+ Date expires = new Date(now.getTime() + 86400000);
+ String name = "testNo" + testCookieId++;
+ CefCookie cookie = new CefCookie(name, "testCookie", ".test.cookie", "/", false,
+ true, now, now, true, expires);
+ if (manager.setCookie("http://my.test.cookie", cookie)) {
+ tblModel.visit(cookie, 1, 1, new BoolRef());
+ }
+ }
+ });
+ controlPanel.add(testCreateCookie);
+
+ JButton doneButton = new JButton("Done");
+ doneButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ setVisible(false);
+ }
+ });
+ controlPanel.add(doneButton);
+
+ add(new JScrollPane(cookieTable));
+ add(controlPanel, BorderLayout.SOUTH);
+
+ if (manager == null) throw new NullPointerException("Cookie manager is null");
+ manager.visitAllCookies(tblModel);
+ }
+
+ private class CookieTableModel extends AbstractTableModel implements CefCookieVisitor {
+ private final String[] columnNames;
+ private Vector
+
Please note: If you leave this page (myQuery enabled) and you return
+ after a while - without closing the browser - the JavaScript binding is
+ still enabled.
+Second message router:
+
+
+
+
+
+
+
+
diff --git a/lib/jcef/src/bin/tests/detailed/handler/localstorage.html b/lib/jcef/src/bin/tests/detailed/handler/localstorage.html
new file mode 100644
index 0000000..87c6e68
--- /dev/null
+++ b/lib/jcef/src/bin/tests/detailed/handler/localstorage.html
@@ -0,0 +1,24 @@
+
+
+
+Click the "Add Line" button to add a line or the "Clear" button to clear.
+This data will persist across sessions if a cache path was specified.
+
+
+
+
+
+
diff --git a/lib/jcef/src/bin/tests/detailed/handler/logo.png b/lib/jcef/src/bin/tests/detailed/handler/logo.png
new file mode 100644
index 0000000..a2a15f4
Binary files /dev/null and b/lib/jcef/src/bin/tests/detailed/handler/logo.png differ
diff --git a/lib/jcef/src/bin/tests/detailed/handler/spellcheck.html b/lib/jcef/src/bin/tests/detailed/handler/spellcheck.html
new file mode 100644
index 0000000..6334135
--- /dev/null
+++ b/lib/jcef/src/bin/tests/detailed/handler/spellcheck.html
@@ -0,0 +1,14 @@
+
+
+Spellcheck Test
+
+
+
+The next paragraph contains some text to be validated against the spell-checker.
+ Click into the following box. To replace a misspelled word use the
+right-mouse-click.
+
+This is a misspelled paragrapph. Withh maany errors Click into this bogx
+to ttest it.
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+
+
Interfaces (italic)
+
Classes
+
Enums
+
Exceptions
+
Errors
+
Annotation Types
+
+
+
+
Class/Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+
+
Class inheritance diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class/interface declaration
+
Class/interface description
+
+
+
Nested Class Summary
+
Field Summary
+
Constructor Summary
+
Method Summary
+
+
+
Field Detail
+
Constructor Detail
+
Method Detail
+
+
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Annotation Type
+
Each annotation type has its own separate page with the following sections:
+
+
Annotation Type declaration
+
Annotation Type description
+
Required Element Summary
+
Optional Element Summary
+
Element Detail
+
+
+
+
Enum
+
Each enum has its own separate page with the following sections:
+
+
Enum declaration
+
Enum description
+
Enum Constant Summary
+
Enum Constant Detail
+
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+
+
+
Index
+
The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+
+
+
Prev/Next
+
These links take you to the next or previous class, interface, package, or related page.
+
+
+
Frames/No Frames
+
These links show and hide the HTML frames. All pages are available with or without frames.
+
+
+
All Classes
+
The All Classes link shows all classes and interfaces except non-static nested types.
+
+
+
Serialized Form
+
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
The below classes implement support for routing aynchronous messages between
+ JavaScript running in the renderer process and C++ running in the browser
+ process.
To persist session cookies (cookies without an expiry date or validity
+ interval) by default when using the global cookie manager set this value to
+ true.
CefApp is in its shutdown process. All CefClients and CefBrowser
+ instances will be disposed. No new CefClient or CefBrowser is allowed to
+ be created. The message loop will be performed until all CefClients and
+ all CefBrowsers are disposed completely.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefApp.CefAppState c : CefApp.CefAppState.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public static void addAppHandler(CefAppHandler appHandler)
+ throws java.lang.IllegalStateException
+
Assign an AppHandler to CefApp. The AppHandler can be used to evaluate
+ application arguments, to register your own schemes and to hook into the
+ shutdown sequence. See CefAppHandler for more details.
+
+ This method must be called before CefApp is initialized. CefApp will be
+ initialized automatically if you call createClient() the first time.
+
+
Parameters:
+
appHandler - An instance of CefAppHandler.
+
Throws:
+
java.lang.IllegalStateException - in case of CefApp is already initialized
protected final void clientWasDisposed(CefClient client)
+
This method is called by a CefClient if it was disposed. This causes
+ CefApp to clean up its list of available client instances. If all clients
+ are disposed, CefApp will be shutdown.
To shutdown the system, it's important to call the dispose
+ method. Calling this method closes all client instances with
+ and all browser instances each client owns. After that the
+ message loop is terminated and CEF is shutdown.
public boolean registerSchemeHandlerFactory(java.lang.String schemeName,
+ java.lang.String domainName,
+ CefSchemeHandlerFactory factory)
+
Register a scheme handler factory for the specified |scheme_name| and
+ optional |domain_name|. An empty |domain_name| value for a standard scheme
+ will cause the factory to match all domain names. The |domain_name| value
+ will be ignored for non-standard schemes. If |scheme_name| is a built-in
+ scheme and no handler is returned by |factory| then the built-in scheme
+ handler factory will be called. If |scheme_name| is a custom scheme then
+ also implement the CefApp::OnRegisterCustomSchemes() method in all
+ processes. This function may be called multiple times to change or remove
+ the factory that matches the specified |scheme_name| and optional
+ |domain_name|. Returns false if an error occurs. This function may be
+ called on any thread in the browser process.
public static final boolean startup(java.lang.String[] args)
+
This method must be called at the beginning of the main() method to perform platform-
+ specific startup initialization. On Linux this initializes Xlib multithreading and on
+ macOS this dynamically loads the CEF framework.
public class CefBrowserSettings
+extends java.lang.Object
+
Browser initialization settings. Specify NULL or 0 to get the recommended
+ default values. The consequences of using custom values may not be well
+ tested. Many of these and other settings can also configured using command-
+ line switches.
The maximum rate in frames per second (fps) that CefRenderHandler::OnPaint
+ will be called for a windowless browser. The actual fps may be lower if
+ the browser cannot generate frames at the requested rate. The minimum
+ value is 1 and the maximum value is 60 (default 30). This value can also
+ be changed dynamically via CefBrowser#setWindowlessFrameRate
Called when a browser has received a request to close.
+
+ If CEF created an OS window for the browser returning false will send an OS close
+ notification to the browser window's top-level owner (e.g. WM_CLOSE on Windows, performClose:
+ on OS-X and "delete_event" on Linux). If no OS window exists (window rendering disabled)
+ returning false will cause the browser object to be destroyed immediately. Return true if the
+ browser is parented to another window and that other window needs to receive close
+ notification via some non-standard technique.
Return the handler for printing on Linux. If a print handler is not
+ provided then printing will not be supported on the Linux platform.
+ This method is a callback method and is called by
+ the native code.
Called on the IO thread before a resource request is initiated. The |browser| and |frame|
+ values represent the source of the request. If this callback returns null the same method
+ will be called on the associated CefRequestContextHandler, if any.
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
isNavigation - True if the resource request is a navigation.
+
isDownload - True if the resource request is a download.
+
requestInitiator - The origin (scheme + domain) of the page that initiated the request.
+
disableDefaultHandling - Set to true to disable default handling of the request, in
+ which case it will need to be handled via
+ CefResourceRequestHandler.getResourceHandler or it will be canceled.
Called on the UI thread before browser navigation.
+
+ CefLoadHandler.onLoadingStateChange() will be called twice in all cases. If the navigation is
+ allowed CefLoadHandler.onLoadStart() and CefLoadHandler.onLoadEnd() will be called. If the
+ navigation is canceled CefLoadHandler.onLoadError() will be called with an errorCode value of
+ ERR_ABORTED.
Called just before a browser is destroyed.
+
+ Release all references to the browser object and do not attempt to execute any methods on the
+ browser object after this callback returns. If this is a modal window and a custom modal loop
+ implementation was provided in runModal() this callback should be used to exit the custom
+ modal loop. See doClose() documentation for additional usage information.
Called before a download begins. Return true and execute |callback| either
+ asynchronously or in this method to continue or cancel the download.
+ Return false to proceed with default handling (cancel with Alloy style,
+ download shelf with Chrome style). Do not keep a reference to
+ downloadItem outside of this method.
Called to run a dialog asking the user if they want to leave a page. Return
+ false to use the default dialog implementation. Return true if the
+ application will use a custom dialog or if the callback has been executed
+ immediately. Custom dialogs may be either modal or modeless. If a custom
+ dialog is used the application must execute callback once the custom
+ dialog is dismissed.
Called on the UI thread to handle requests for URLs with an invalid SSL certificate. If
+ "ignore-certificate-errors" command-line switch is set all invalid certificates will be
+ accepted without calling this method.
callback - Call CefCallback.Continue() either in this method or at a later time
+ to continue or cancel the request. If null the error cannot be recovered from and the
+ request will be canceled automatically.
+
Returns:
+
True to handle the request (callback must be executed) or false to reject it.
Called to execute a command selected from the context menu. Return true if
+ the command was handled or false for the default implementation. See
+ cef_menu_id_t for the command ids that have default implementations. All
+ user-defined command ids should be between MENU_ID_USER_FIRST and
title - to be used for the dialog and may be empty to show the default
+ title ("Open" or "Save" depending on the mode).
+
defaultFilePath - is the path with optional directory and/or file name
+ component that should be initially selected in the dialog.
+
acceptFilters - are used to restrict the selectable file types and may
+ any combination of (a) valid lower-cased MIME types (e.g. "text/*" or
+ "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c)
+ combined description and file extension delimited using "|" and ";" (e.g.
+ "Image Types|.png;.gif;.jpg").
+
acceptExtensions - provides the semicolon-delimited expansion of MIME
+ types to file extensions (if known, or empty string otherwise).
+
acceptDescriptions - provides the descriptions for MIME types (if known,
+ or empty string otherwise). For example, the "image/*" mime type might
+ have extensions ".png;.jpg;.bmp;..." and description "Image Files".
+
callback - is a callback handler for handling own file dialogs.
+
Returns:
+
To display a custom dialog return true and execute callback.
+ To display the default dialog return false.
Called to run a JavaScript dialog. Set suppress_message to true and
+ return false to suppress the message (suppressing messages is preferable
+ to immediately executing the callback as this is used to detect presumably
+ malicious behavior like spamming alert messages in onbeforeunload). Set
+ suppress_message to false and return false to use the default
+ implementation (the default implementation will show one modal dialog at a
+ time and suppress any additional dialog requests until the displayed dialog
+ is dismissed). Return true if the application will use a custom dialog or
+ if the callback has been executed immediately. Custom dialogs may be either
+ modal or modeless. If a custom dialog is used the application must execute
+ callback once the custom dialog is dismissed.
Called when the browser is done loading a frame. The frameIdentifer value will never be
+ empty. Multiple frames may be loading at the same time. Sub-frames may start or continue
+ loading after the main frame load has ended. This method will always be called for all frames
+ irrespective of whether the request completes successfully.
Called when the loading state has changed. This callback will be executed twice -- once when
+ loading is initiated either programmatically or by user action, and once when loading is
+ terminated due to completion, cancellation of failure.
Called when the browser begins loading a frame. The frameIdentifer value will never be empty.
+ Multiple frames may be loading at the same time. Sub-frames may start or continue loading
+ after the main frame load has ended. This method may not be called for a particular frame if
+ the load request for that frame fails. For notification of overall browser load status use
+ onLoadingStateChange instead.
Implement this method to handle mouse events on Windows.
+
+ The method is called in case of the following events:
+ MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED and MOUSE_WHEEL for a
+ horizontal wheel movement.
event - A mouse event like MouseEvent.MOUSE_MOVED.
+
screenX - The absolute X position on the screen.
+
screenY - The absolute Y position on the screen.
+
modifier - The modifier keys down during event (e.g. Shift, Ctrl).
+
button - An integer indicating which mouse button state changed.
+ If parameter event is set to MouseEvent.MOUSE_WHEEL, the value of this
+ parameter specifies the rotation indicator (negative value for left scroll
+ and positive value for right scroll).
Called on the UI thread before OnBeforeBrowse in certain limited cases
+ where navigating a new or different browser might be desirable. This
+ includes user-initiated navigation that might open in a special way (e.g.
+ links clicked via middle-click or ctrl + left-click) and certain types of
+ cross-origin navigation initiated from the renderer process (e.g.
+ navigating the top-level frame to/from a file URL).
Called when printing has started. This method will be called before the other onPrint*()
+ methods and irrespective of how printing was initiated (e.g. CefBrowser::print(), JavaScript
+ window.print() or PDF extension print button).
Called to cancel any pending dialogs and reset any saved dialog state. Will
+ be called due to events like page navigation irregardless of whether any
+ dialogs are currently pending.
Called when the user starts dragging content in the web view. Contextual
+ information about the dragged content is supplied by dragData.
+ OS APIs that run a system message loop may be used within the
+ StartDragging call.
+
+ Return false to abort the drag operation. Don't call any of
+ CefBrowser-dragSource*Ended* methods after returning false.
+
+ Return true to handle the drag operation. Call
+ CefBrowser.dragSourceEndedAt and CefBrowser.ragSourceSystemDragEnded either
+ synchronously or asynchronously to inform the web view that the drag
+ operation has ended.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefSettings.LogSeverity c : CefSettings.LogSeverity.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public class CefSettings
+extends java.lang.Object
+
Initialization settings. Specify NULL or 0 to get the recommended default
+ values. Many of these and other settings can also configured using command-
+ line switches.
To persist session cookies (cookies without an expiry date or validity
+ interval) by default when using the global cookie manager set this value to
+ true.
Opaque background color used for accelerated content. By default the
+ background color will be white. Only the RGB compontents of the specified
+ value will be used. The alpha component must greater than 0 to enable use
+ of the background color but will be otherwise ignored.
The path to a separate executable that will be launched for sub-processes.
+ By default the browser process executable is used. See the comments on
+ CefExecuteProcess() for details. Also configurable using the
+ "browser-subprocess-path" command-line switch.
The location where cache data will be stored on disk. If empty an in-memory
+ cache will be used for some features and a temporary disk cache for others.
+ HTML5 databases such as localStorage will only persist across sessions if a
+ cache path is specified. If this is set and root_cache_path is also set, the cache_path
+ directory must reside within root_cache_path.
Specify an ID to enable Chrome policy management via Platform and OS-user
+ policies. On Windows, this is a registry key like
+ "SOFTWARE\\Policies\\Google\\Chrome". On MacOS, this is a bundle ID like
+ "com.google.Chrome". On Linux, this is an absolute directory path like
+ "/etc/opt/chrome/policies". Only supported with Chrome style. See
+ https://support.google.com/chrome/a/answer/9037717 for details.
+
+ Chrome Browser Cloud Management integration, when enabled via the
+ "enable-chrome-browser-cloud-management" command-line flag, will also use
+ the specified ID. See https://support.google.com/chrome/a/answer/9116814
+ for details.
Set to true to disable configuration of browser process features using
+ standard CEF and Chromium command-line arguments. Configuration can still
+ be specified using CEF data structures or via the
+ CefApp::OnBeforeCommandLineProcessing() method.
Custom flags that will be used when initializing the V8 JavaScript engine.
+ The consequences of using custom flags may not be well tested. Also
+ configurable using the "js-flags" command-line switch.
The locale string that will be passed to Blink. If empty the default
+ locale of "en-US" will be used. This value is ignored on Linux where locale
+ is determined using environment variable parsing with the precedence order:
+ LANGUAGE, LC_ALL, LC_MESSAGES and LANG. Also configurable using the "lang"
+ command-line switch.
The fully qualified path for the locales directory. If this value is empty
+ the locales directory must be located in the module directory. This value
+ is ignored on Mac OS X where pack files are always loaded from the app
+ bundle Resources directory. Also configurable using the "locales-dir-path"
+ command-line switch.
The directory and file name to use for the debug log. If empty, the
+ default name of "debug.log" will be used and the file will be written
+ to the application directory. Also configurable using the "log-file"
+ command-line switch.
The log severity. Only messages of this severity level or higher will be
+ logged. Also configurable using the "log-severity" command-line switch with
+ a value of "verbose", "info", "warning", "error", "error-report" or
+ "disable".
To persist session cookies (cookies without an expiry date or validity
+ interval) by default when using the global cookie manager set this value to
+ true. Session cookies are generally intended to be transient and most Web
+ browsers do not persist them. A |cache_path| value must also be specified to
+ enable this feature. Also configurable using the "persist-session-cookies"
+ command-line switch.
Set to a value between 1024 and 65535 to enable remote debugging on the
+ specified port. For example, if 8080 is specified the remote debugging URL
+ will be http: *localhost:8080. CEF can be remotely debugged from any CEF or
+ Chrome browser window. Also configurable using the "remote-debugging-port"
+ command-line switch.
The fully qualified path for the resources directory. If this value is
+ empty the cef.pak and/or devtools_resources.pak files must be located in
+ the module directory on Windows/Linux or the app bundle Resources directory
+ on Mac OS X. Also configurable using the "resources-dir-path" command-line
+ switch.
The root directory for installation-specific data and the parent directory
+ for profile-specific data. All CefSettings.cache_path and
+ CefRequestContextSettings.cache_path values must have this parent
+ directory in common. If this value is empty and CefSettings.cache_path is
+ non-empty then it will default to the CefSettings.cache_path value. Any
+ non-empty value must be an absolute path. If both values are empty then
+ the default platform-specific directory will be used
+ ("~/.config/cef_user_data" directory on Linux, "~/Library/Application
+ Support/CEF/User Data" directory on MacOS, "AppData\Local\CEF\User Data"
+ directory under the user profile directory on Windows). Use of the default
+ directory is not recommended in production applications (see below).
+
+ Multiple application instances writing to the same root_cache_path
+ directory could result in data corruption. A process singleton lock based
+ on the root_cache_path value is therefore used to protect against this.
+ This singleton behavior applies to all CEF-based applications using
+ version 120 or newer. You should customize root_cache_path for your
+ application and implement CefAppHandler::
+ onAlreadyRunningAppRelaunch, which will then be called on any app relaunch
+ with the same root_cache_path value.
+
+ Failure to set the root_cache_path value correctly may result in startup
+ crashes or other unexpected behaviors (for example, the sandbox blocking
+ read/write access to certain files).
The number of stack trace frames to capture for uncaught exceptions.
+ Specify a positive value to enable the CefV8ContextHandler::
+ OnUncaughtException() callback. Specify 0 (default value) and
+ OnUncaughtException() will not be called. Also configurable using the
+ "uncaught-exception-stack-size" command-line switch.
Value that will be returned as the User-Agent HTTP header. If empty the
+ default User-Agent string will be used. Also configurable using the
+ "user-agent" command-line switch.
Value that will be inserted as the product portion of the default
+ User-Agent string. If empty the Chromium product version will be used. If
+ |userAgent| is specified this value will be ignored. Also configurable
+ using the "user_agent_product" command-line switch.
Set to true to enable windowless (off-screen) rendering support. Do not
+ enable this value if the application does not use windowless rendering as
+ it may reduce rendering performance on some systems.
public class SystemBootstrap
+extends java.lang.Object
+
To allow customization of System.load() calls by supplying a different
+ implementation. You'll want to call setLoader with your custom
+ implementation before calling into any other CEF classes which then in turn
+ will start triggering libraries to be loaded at runtime.
Call to immediately create the underlying browser object. By default the
+ browser object will be created when the parent container is displayed for
+ the first time.
Captures a screenshot-like image of the currently displayed content and returns it.
+
+ If executed on the AWT Event Thread, this returns an immediately resolved CompletableFuture. If executed from another thread, the CompletableFuture returned is resolved as soon as the screenshot
+ has been taken (which must happen on the event thread).
+
+ The generated screenshot can either be returned as-is, containing all natively-rendered
+ pixels, or it can be scaled to match the logical width and height of the window.
+ This distinction is only relevant in case of differing logical and physical resolutions
+ (for example with HiDPI/Retina displays, which have a scaling factor of for example 2
+ between the logical width of a window (ex. 400px) and the actual number of pixels in
+ each row (ex. 800px with a scaling factor of 2)).
+
+
Parameters:
+
nativeResolution - whether to return an image at full native resolution (true)
+ or a scaled-down version whose width and height are equal to the logical size
+ of the screenshotted browser window
+
Returns:
+
the screenshot image
+
Throws:
+
java.lang.UnsupportedOperationException - if not supported
void executeJavaScript(java.lang.String code,
+ java.lang.String url,
+ int line)
+
Execute a string of JavaScript code in this frame. The url
+ parameter is the URL where the script in question can be found, if any.
+ The renderer may request this URL to show the developer the source of the
+ error. The line parameter is the base line number to use for error
+ reporting.
+
+
Parameters:
+
code - The code to be executed.
+
url - The URL where the script in question can be found.
+
line - The base line number to use for error reporting.
Retrieves the request context used by this browser instance. May be the
+ global request context if this browser does not have a specific request
+ context.
Returns the maximum rate in frames per second (fps) that CefRenderHandler::onPaint
+ will be called for a windowless browser. The actual fps may be lower if the browser cannot
+ generate frames at the requested rate. The minimum value is 1, and the maximum value is 60
+ (default 30).
+
+
Returns:
+
the framerate, 0 if an error occurs
+
Throws:
+
java.lang.UnsupportedOperationException - if not supported
Call to run a file chooser dialog. Only a single file chooser dialog may be
+ pending at any given time.The dialog will be initiated asynchronously on
+ the UI thread.
+
+
Parameters:
+
mode - represents the type of dialog to display.
+
title - to be used for the dialog and may be empty to show the
+ default title ("Open" or "Save" depending on the mode).
+
defaultFilePath - is the path with optional directory and/or file name
+ component that should be initially selected in the dialog.
+
acceptFilters - are used to restrict the selectable file types and may
+ any combination of (a) valid lower-cased MIME types (e.g. "text/*" or
+ "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c)
+ combined description and file extension delimited using "|" and ";" (e.g.
+ "Image Types|.png;.gif;.jpg").
+
selectedAcceptFilter - is the 0-based index of the filter that should
+ be selected by default.
+
callback - will be executed after the dialog is dismissed or
+ immediately if another dialog is already pending.
Set the maximum rate in frames per second (fps) that CefRenderHandler::onPaint
+ will be called for a windowless browser. The actual fps may be
+ lower if the browser cannot generate frames at the requested rate. The
+ minimum value is 1, and the maximum value is 60 (default 30).
+
+
Parameters:
+
frameRate - the maximum frame rate
+
Throws:
+
java.lang.UnsupportedOperationException - if not supported
Save this frame's HTML source to a temporary file and open it in the
+ default text viewing application. This method can only be called from the
+ browser process.
Add an event listener for DevTools protocol events. Events by default are disabled
+ and need to be enabled on a per domain basis, e.g. by sending Network.enable to enable
+ network related events.
public java.util.concurrent.CompletableFuture<java.lang.String> executeDevToolsMethod(java.lang.String method)
+
Execute a method call over the DevTools protocol. See the DevTools protocol documentation
+ for details of supported methods and the expected syntax for parameters.
+
+
If an error occurs the returned future is completed exceptionally, otherwise its value is
+ asynchronously set to the method result.
+
+
Call #addEventListener(String, EventListener) to subscribe to events.
+
+
Parameters:
+
method - the method name
+
Returns:
+
return a future with the method result if the method was executed successfully
public java.util.concurrent.CompletableFuture<java.lang.String> executeDevToolsMethod(java.lang.String method,
+ java.lang.String parametersAsJson)
+
Execute a method call over the DevTools protocol. See the DevTools protocol documentation
+ for details of supported methods and the expected syntax for parameters.
+
+
If an error occurs the returned future is completed exceptionally, otherwise its value is
+ asynchronously set to the method result.
+
+
Call #addEventListener(String, EventListener) to subscribe to events.
+
+
Parameters:
+
method - the method name
+
parametersAsJson - JSON object with parameters, or null if no parameters are needed
+
Returns:
+
return a future with the method result if the method was executed successfully
void executeJavaScript(java.lang.String code,
+ java.lang.String url,
+ int line)
+
Execute a string of JavaScript code in this frame. The url
+ parameter is the URL where the script in question can be found, if any.
+ The renderer may request this URL to show the developer the source of the
+ error. The line parameter is the base line number to use for error
+ reporting.
+
+
Parameters:
+
code - The code to be executed.
+
url - The URL where the script in question can be found.
+
line - The base line number to use for error reporting.
Returns the name for this frame. If the frame has an assigned name (for
+ example, set via the iframe "name" attribute) then that value will be
+ returned. Otherwise a unique name will be constructed based on the frame
+ parent hierarchy. The main (top-level) frame will always have an empty name
+ value.
public abstract class CefMessageRouter
+extends java.lang.Object
+
The below classes implement support for routing aynchronous messages between
+ JavaScript running in the renderer process and C++ running in the browser
+ process. An application interacts with the router by passing it data from
+ standard CEF C++ callbacks (OnBeforeBrowse, OnProcessMessageRecieved,
+ OnContextCreated, etc). The renderer-side router supports generic JavaScript
+ callback registration and execution while the browser-side router supports
+ application-specific logic via one or more application-provided Handler
+ instances.
+
+ The renderer-side router implementation exposes a query function and a cancel
+ function via the JavaScript 'window' object:
+
+ // Create and send a new query.
+ var request_id = window.cefQuery({
+ request: 'my_request',
+ persistent: false,
+ onSuccess: function(response) {},
+ onFailure: function(error_code, error_message) {}
+ });
+
+ // Optionally cancel the query.
+ window.cefQueryCancel(request_id);
+
+ When |window.cefQuery| is executed the request is sent asynchronously to one
+ or more C++ Handler objects registered in the browser process. Each C++
+ Handler can choose to either handle or ignore the query in the
+ Handler::OnQuery callback. If a Handler chooses to handle the query then it
+ should execute Callback::Success when a response is available or
+ Callback::Failure if an error occurs. This will result in asynchronous
+ execution of the associated JavaScript callback in the renderer process. Any
+ queries unhandled by C++ code in the browser process will be automatically
+ canceled and the associated JavaScript onFailure callback will be executed
+ with an error code of -1.
+
+ Queries can be either persistent or non-persistent. If the query is
+ persistent than the callbacks will remain registered until one of the
+ following conditions are met:
+
+ A. The query is canceled in JavaScript using the |window.cefQueryCancel|
+ function.
+ B. The query is canceled in C++ code using the Callback::Failure function.
+ C. The context associated with the query is released due to browser
+ destruction, navigation or renderer process termination.
+
+ If the query is non-persistent then the registration will be removed after
+ the JavaScript callback is executed a single time. If a query is canceled for
+ a reason other than Callback::Failure being executed then the associated
+ Handler's OnQueryCanceled method will be called.
+
+ Some possible usage patterns include:
+
+ One-time Request. Use a non-persistent query to send a JavaScript request.
+ The Handler evaluates the request and returns the response. The query is
+ then discarded.
+
+ Broadcast. Use a persistent query to register as a JavaScript broadcast
+ receiver. The Handler keeps track of all registered Callbacks and executes
+ them sequentially to deliver the broadcast message.
+
+ Subscription. Use a persistent query to register as a JavaScript subscription
+ receiver. The Handler initiates the subscription feed on the first request
+ and delivers responses to all registered subscribers as they become
+ available. The Handler cancels the subscription feed when there are no
+ longer any registered JavaScript receivers.
+
+ Message routing occurs on a per-browser and per-context basis. Consequently,
+ additional application logic can be applied by restricting which browser or
+ context instances are passed into the router. If you choose to use this
+ approach do so cautiously. In order for the router to function correctly any
+ browser or context instance passed into a single router callback must then
+ be passed into all router callbacks.
+
+ There is generally no need to have multiple renderer-side routers unless you
+ wish to have multiple bindings with different JavaScript function names. It
+ can be useful to have multiple browser-side routers with different client-
+ provided Handler instances when implementing different behaviors on a per-
+ browser basis.
+
+ This implementation places no formatting restrictions on payload content.
+ An application may choose to exchange anything from simple formatted
+ strings to serialized XML or JSON data.
+
+
+ EXAMPLE USAGE
+
+ 1. Define the router configuration. You can optionally specify settings
+ like the JavaScript function names. The configuration must be the same in
+ both the browser and renderer processes. If using multiple routers in the
+ same application make sure to specify unique function names for each
+ router configuration.
+
+ // Example config object showing the default values.
+ CefMessageRouterConfig config = new CefMessageRouterConfig();
+ config.jsQueryFunction = "cefQuery";
+ config.jsCancelFunction = "cefQueryCancel";
+
+ 2. Create an instance of CefMessageRouter in the browser process.
+
+ messageRouter_ = CefMessageRouter.create(config);
+
+ 3. Register one or more Handlers. The Handler instances must either outlive
+ the router or be removed from the router before they're deleted.
+
+ messageRouter_.addHandler(myHandler);
+
+ 4. Add your message router to all CefClient instances you want to get your
+ JavaScript code be handled.
+
+ myClient.addMessageRouter(messageRouter_);
+
+ 4. Execute the query function from JavaScript code.
+
+ window.cefQuery({request: 'my_request',
+ persistent: false,
+ onSuccess: function(response) { print(response); },
+ onFailure: function(error_code, error_message) {} });
+
+ 5. Handle the query in your CefMessageRouterHandler.onQuery implementation
+ and execute the appropriate callback either immediately or asynchronously.
+
+ public boolean onQuery(CefBrowser browser,
+ long query_id,
+ String request,
+ boolean persistent,
+ CefQueryCallback callback) {
+ if (request.indexOf("my_request") == 0) {
+ callback.success("my_response");
+ return true;
+ }
+ return false; // Not handled.
+ }
+
+ 6. Notice that the success callback is executed in JavaScript.
Cancel all pending queries associated with either |browser| or |handler|. If both |browser|
+ and |handler| are NULL all pending queries will be canceled. onQueryCanceled will be called
+ and the associated JavaScript onFailure callback will be executed in all cases with an error
+ code of -1.
Remove an existing query handler. Any pending queries associated with the handler will be
+ canceled. onQueryCanceled will be called and the associated JavaScript onFailure callback
+ will be executed with an error code of -1.
public abstract class CefRequestContext
+extends java.lang.Object
+
A request context provides request handling for a set of related browser
+ objects. A request context is specified when creating a new browser object
+ via the CefClient.createBrowser method. Browser objects with different
+ request contexts will never be hosted in the same render process. Browser
+ objects with the same request context may or may not be hosted in the same
+ render process depending on the process model. Browser objects created
+ indirectly via the JavaScript window.open function or targeted links will
+ share the same render process and the same request context as the source
+ browser. When running in single-process mode there is only a single render
+ process (the main process) and so all browsers created in single-process mode
+ will share the same request context. This will be the first request context
+ passed into the CefClient.createBrowser method and all other request
+ context objects will be ignored.
public abstract boolean canSetPreference(java.lang.String name)
+
Returns true if the preference with the specified |name| can be modified
+ using setPreference. As one example preferences set via the command-line
+ usually cannot be modified. This method must be called on the browser
+ process UI thread, otherwise it will always return false.
public abstract java.util.Map<java.lang.String,java.lang.Object> getAllPreferences(boolean includeDefaults)
+
Returns all preferences as a dictionary. If |includeDefaults| is true then
+ preferences currently at their default value will be included. The returned
+ object can be modified but modifications will not persist. This method must
+ be called on the browser process UI thread, otherwise it will always return null.
public abstract java.lang.Object getPreference(java.lang.String name)
+
Returns the value for the preference with the specified |name|. Returns
+ NULL if the preference does not exist.
+ This method must be called on the browser process UI thread, otherwise it will always return
+ null.
public abstract boolean hasPreference(java.lang.String name)
+
Returns true if a preference with the specified |name| exists.
+
+ This method must be called on the browser process UI thread, otherwise it will always return
+ false. It is easiest to ensure the correct calling thread by using a callback method invoked
+ by the browser process UI thread, such as CefLifeSpanHandler.onAfterCreated(CefBrowser), to
+ configure the preferences.
public abstract java.lang.String setPreference(java.lang.String name,
+ java.lang.Object value)
+
Set the |value| associated with preference |name|. Returns null if the
+ value is set successfully, an error string otherwise. If |value| is NULL the
+ preference will be restored to its default value. If setting the preference
+ fails then a detailed description of the problem will be returned.
+ This method must be called on the browser process UI thread, otherwise it will always return
+ an error string.
The below classes implement support for routing aynchronous messages between
+ JavaScript running in the renderer process and C++ running in the browser
+ process.
downloadPath - Set it to the full file path for the download
+ including the file name or leave blank to use the suggested name and
+ the default temp directory.
+
showDialog - Set it to true if you do wish to show the default
+ "Save As" dialog.
Class used to create and/or parse command line arguments. Arguments with
+ '--', '-' and, on Windows, '/' prefixes are considered switches. Switches
+ will always precede any arguments without switch prefixes. Switches can
+ optionally have a value specified using the '=' delimiter (e.g.
+ "-switch=value"). An argument of "--" will terminate switch parsing with all
+ subsequent tokens, regardless of prefix, being interpreted as non-switch
+ arguments. Switch names are considered case-insensitive.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefContextMenuParams.MediaType c : CefContextMenuParams.MediaType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns flags representing the actions supported by the editable node, if
+ any, that the context menu was invoked on. See EditStateFlags for possible
+ values.
Returns flags representing the actions supported by the media element, if
+ any, that the context menu was invoked on. See MediaStateFlags for possible
+ values.
Returns the source URL, if any, for the element that the context menu was
+ invoked on. Example of elements with source URLs are img, audio, and video.
boolean visit(CefCookie cookie,
+ int count,
+ int total,
+ BoolRef delete)
+
Method that will be called once for each cookie. |count| is the 0-based
+ index for the current cookie. |total| is the total number of cookies.
+ Set |deleteCookie| to true to delete the cookie currently being visited.
+ Return false to stop visiting cookies. This method may never be called if
+ no cookies are found.
public abstract int getFileContents(java.io.OutputStream writer)
+
Write the contents of the file being dragged out of the web view into
+ |writer|. Returns the number of bytes sent to |writer|. If |writer| is
+ NULL this method will return the size of the file contents in bytes.
+ Call getFileName() to get a suggested name for the file.
+
+
Parameters:
+
writer - Writes the contents into this object.
+
Returns:
+
The number of bytes sent to writer. If writer is NULL the size of
+ the file contents in bytes is returned.
Reset the file contents. You should do this before calling
+ CefBrowser.dragTargetDragEnter as the web view does not allow us to
+ drag in this kind of data.
Continue the file selection with the specified file_paths. This may be
+ a single value or a list of values depending on the dialog mode. An empty
+ value is treated the same as calling Cancel().
+
+
Parameters:
+
filePaths - list of selected file paths or an empty list.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefMenuModel.MenuItemType c : CefMenuModel.MenuItemType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Supports creation and modification of menus. See cef_menu_id_t for the
+ command ids that have default implementations. All user-defined command ids
+ should be between MENU_ID_USER_FIRST and MENU_ID_USER_LAST. The methods of
+ this class can only be accessed on the browser process the UI thread.
boolean insertRadioItemAt(int index,
+ int command_id,
+ java.lang.String label,
+ int group_id)
+
Insert a radio item in the menu at the specified |index|. Only a single
+ item with the specified |group_id| can be checked at a time. Returns true
+ on success.
Method that will be executed when the PDF printing has completed. |path|
+ is the output path. |ok| will be true if the printing completed
+ successfully or false otherwise.
+
+
Parameters:
+
path - The path of the PDF file that was written.
+
ok - True if printing completed or false otherwise.
Callback for asynchronous continuation of Read(). If |bytes_read| == 0
+ the response will be considered complete. If |bytes_read| > 0 then Read()
+ will be called again until the request is complete (based on either the
+ result or the expected content length). If |bytes_read| < 0 then the
+ request will fail and the |bytes_read| value will be treated as the error
+ code.
Callback for asynchronous continuation of Skip(). If |bytes_skipped| > 0
+ then either Skip() will be called again until the requested number of
+ bytes have been skipped or the request will proceed. If |bytes_skipped|
+ <= 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE.
Called asynchronously after the file dialog is dismissed. If the selection
+ was successful filePaths will be a single value or a list of values
+ depending on the dialog mode. If the selection was cancelled filePaths
+ will be empty.
Return a new resource handler instance to handle the request or NULL to allow default
+ handling of the request.
+
+
Parameters:
+
browser - The corresponding browser, or NULL if the request did not originate from a
+ browser window (for example, if the request came from CefURLRequest).
+
frame - The frame generating the event, or NULL if the request did not originate from a
+ browser window (for example, if the request came from CefURLRequest). Instance only
+ valid within the scope of this method.
+
schemeName - Name of the scheme being created.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
Register a custom scheme. This method should not be called for the built-in
+ HTTP, HTTPS, FILE, FTP, ABOUT and DATA schemes.
+
+ If |isStandard| is true the scheme will be treated as a standard scheme.
+ Standard schemes are subject to URL canonicalization and parsing rules as
+ defined in the Common Internet Scheme Syntax RFC 1738 Section 3.1 available
+ at http://www.ietf.org/rfc/rfc1738.txt
+
+ In particular, the syntax for standard scheme URLs must be of the form:
+
+ Standard scheme URLs must have a host component that is a fully qualified
+ domain name as defined in Section 3.5 of RFC 1034 [13] and Section 2.1 of
+ RFC 1123. These URLs will be canonicalized to "scheme://host/path" in the
+ simplest case and "scheme://username:password@host:port/path" in the most
+ explicit case. For example, "scheme:host/path" and "scheme:///host/path"
+ will both be canonicalized to "scheme://host/path". The origin of a
+ standard scheme URL is the combination of scheme, host and port (i.e.,
+ "scheme://host:port" in the most explicit case).
+
+ For non-standard scheme URLs only the "scheme:" component is parsed and
+ canonicalized. The remainder of the URL will be passed to the handler
+ as-is. For example, "scheme:///some%20text" will remain the same.
+ Non-standard scheme URLs cannot be used as a target for form submission.
+
+ If |isLocal| is true the scheme will be treated with the same security
+ rules as those applied to "file" URLs. Normal pages cannot link to or
+ access local URLs. Also, by default, local URLs can only perform
+ XMLHttpRequest calls to the same URL (origin + path) that originated the
+ request. To allow XMLHttpRequest calls from a local URL to other URLs with
+ the same origin set the CefSettings.file_access_from_file_urls_allowed
+ value to true. To allow XMLHttpRequest calls from a local URL to all
+ origins set the CefSettings.universal_access_from_file_urls_allowed value
+ to true.
+
+ If |isDisplayIsolated| is true the scheme can only be displayed from
+ other content hosted with the same scheme. For example, pages in other
+ origins cannot create iframes or hyperlinks to URLs with the scheme. For
+ schemes that must be accessible from other schemes set this value to false,
+ set |is_cors_enabled| to true, and use CORS "Access-Control-Allow-Origin"
+ headers to further restrict access.
+
+ If |isSecure| is true the scheme will be treated with the same security
+ rules as those applied to "https" URLs. For example, loading this scheme
+ from other secure schemes will not trigger mixed content warnings.
+
+ If |isCorsEnabled| is true the scheme that can be sent CORS requests.
+ This value should be true in most cases where |isStandard| is true.
+
+ If |isCspBypassing| is true the scheme can bypass Content-Security-Policy
+ (CSP) checks. This value should be false in most cases where |isStandard|
+ is true.
+
+ If |is_fetch_enabled| is true the scheme can perform Fetch API requests.
+
+ This function may be called on any thread. It should only be called once
+ per unique |schemeName| value. If |schemeName| is already registered or
+ if an error occurs this method will return false.
public interface CefURLRequestClient
+extends CefNative
+
Interface that should be implemented by the CefURLRequest client. The
+ methods of this class will be called on the same thread that created the
+ request unless otherwise documented.
Called on the IO thread when the browser needs credentials from the user.
+ |isProxy| indicates whether the host is a proxy server. |host| contains the
+ hostname and |port| contains the port number. Return true to continue the
+ request and call CefAuthCallback::Continue() when the authentication
+ information is available. Return false to cancel the request. This method
+ will only be called for requests initiated from the browser process.
void onDownloadData(CefURLRequest request,
+ byte[] data,
+ int data_length)
+
Called when some part of the response is read. |data| contains the current
+ bytes received since the last call. This method will not be called if the
+ UR_FLAG_NO_DOWNLOAD_DATA flag is set on the request.
void onDownloadProgress(CefURLRequest request,
+ int current,
+ int total)
+
Notifies the client of download progress. |current| denotes the number of
+ bytes received up to the call and |total| is the expected total size of the
+ response (or -1 if not determined).
Notifies the client that the request has completed. Use the
+ CefURLRequest::GetRequestStatus method to determine if the request was
+ successful or not.
void onUploadProgress(CefURLRequest request,
+ int current,
+ int total)
+
Notifies the client of upload progress. |current| denotes the number of
+ bytes sent so far and |total| is the total size of uploading data (or -1 if
+ chunked upload is enabled). This method will only be called if the
+ UR_FLAG_REPORT_UPLOAD_PROGRESS flag is set on the request.
Implement this method to provide app-specific behavior when an already
+ running app is relaunched with the same CefSettings.root_cache_path value.
+ For example, activate an existing app window or create a new app window.
+ |command_line| will be read-only. Do not keep a reference to
+ |command_line| outside of this method. Return true if the relaunch is
+ handled or false for default relaunch behavior. Default behavior will
+ create a new default styled Chrome window.
+
+ To avoid cache corruption only a single app instance is allowed to run for
+ a given CefSettings.root_cache_path value. On relaunch the app checks a
+ process singleton lock and then forwards the new launch arguments to the
+ already running app process before exiting early. Client apps should
+ therefore check the CefInitialize() return value for early exit before
+ proceeding.
Provides an opportunity to view and/or modify command-line arguments before
+ processing by CEF and Chromium. The |process_type| value will be empty for
+ the browser process. Be cautious when using this method to modify
+ command-line arguments for non-browser processes as this may result in
+ undefined behavior including crashes.
+
+
Parameters:
+
process_type - type of process (empty for browser process).
Provides an opportunity to hook into the native shutdown process. This
+ method is invoked if the user tries to terminate the app by sending the
+ corresponding key code (e.g. on Mac: CMD+Q) or something similar. If you
+ want to proceed with the default behavior of the native system, return
+ false. If you want to abort the terminate or if you want to implement your
+ own shutdown sequence return true and do the cleanup on your own.
+
+
Returns:
+
false to proceed with the default behavior, true to abort
+ terminate.
Provides an opportunity to register custom schemes. Do not keep a reference
+ to the |registrar| object. This method is called on the main thread for
+ each process and the registered schemes should be the same across all
+ processes.
Called from any thread when work has been scheduled for the browser process
+ main (UI) thread. This callback should schedule a
+ CefApp.DoMessageLoopWork() call to happen on the main (UI) thread.
+ |delay_ms| is the requested delay in milliseconds. If |delay_ms| is <= 0
+ then the call should happen reasonably soon. If |delay_ms| is > 0 then the
+ call should be scheduled to happen after the specified delay and any
+ currently pending scheduled call should be cancelled.
Implement this method to get state changes of the CefApp.
+ See CefApp.CefAppState for a complete list of possible states.
+
+ For example, this method can be used e.g. to get informed if CefApp has
+ completed its initialization or its shutdown process.
public abstract class CefAppHandlerAdapter
+extends java.lang.Object
+implements CefAppHandler
+
An abstract adapter class for managing app handler events.
+ The methods in this class are using a default implementation.
+ This class exists as convenience for creating handler objects.
Implement this method to provide app-specific behavior when an already
+ running app is relaunched with the same CefSettings.root_cache_path value.
+ For example, activate an existing app window or create a new app window.
+ |command_line| will be read-only. Do not keep a reference to
+ |command_line| outside of this method. Return true if the relaunch is
+ handled or false for default relaunch behavior. Default behavior will
+ create a new default styled Chrome window.
+
+ To avoid cache corruption only a single app instance is allowed to run for
+ a given CefSettings.root_cache_path value. On relaunch the app checks a
+ process singleton lock and then forwards the new launch arguments to the
+ already running app process before exiting early. Client apps should
+ therefore check the CefInitialize() return value for early exit before
+ proceeding.
Provides an opportunity to view and/or modify command-line arguments before
+ processing by CEF and Chromium. The |process_type| value will be empty for
+ the browser process. Be cautious when using this method to modify
+ command-line arguments for non-browser processes as this may result in
+ undefined behavior including crashes.
Provides an opportunity to hook into the native shutdown process. This
+ method is invoked if the user tries to terminate the app by sending the
+ corresponding key code (e.g. on Mac: CMD+Q) or something similar. If you
+ want to proceed with the default behavior of the native system, return
+ false. If you want to abort the terminate or if you want to implement your
+ own shutdown sequence return true and do the cleanup on your own.
Provides an opportunity to register custom schemes. Do not keep a reference
+ to the |registrar| object. This method is called on the main thread for
+ each process and the registered schemes should be the same across all
+ processes.
Called from any thread when work has been scheduled for the browser process
+ main (UI) thread. This callback should schedule a
+ CefApp.DoMessageLoopWork() call to happen on the main (UI) thread.
+ |delay_ms| is the requested delay in milliseconds. If |delay_ms| is <= 0
+ then the call should happen reasonably soon. If |delay_ms| is > 0 then the
+ call should be scheduled to happen after the specified delay and any
+ currently pending scheduled call should be cancelled.
Implement this method to get state changes of the CefApp.
+ See CefApp.CefAppState for a complete list of possible states.
+
+ For example, this method can be used e.g. to get informed if CefApp has
+ completed its initialization or its shutdown process.
Return the handler for printing on Linux. If a print handler is not
+ provided then printing will not be supported on the Linux platform.
+ This method is a callback method and is called by
+ the native code.
Called to execute a command selected from the context menu. Return true if
+ the command was handled or false for the default implementation. See
+ cef_menu_id_t for the command ids that have default implementations. All
+ user-defined command ids should be between MENU_ID_USER_FIRST and
+
+
Parameters:
+
browser - The browser generating the event.
+
frame - The frame generating the event. Instance only valid within the scope
+ of this method.
+
params - Will have the same values that were passed to onBeforeContextMenu().
+ Instance only valid within the scope of this method.
+
commandId - The id of the command.
+
eventFlags - A combination of event flags defined in EventFlags
+
Returns:
+
true if the command was handled or false for the default implementation.
public abstract class CefContextMenuHandlerAdapter
+extends java.lang.Object
+implements CefContextMenuHandler
+
An abstract adapter class for receiving context menu events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called to execute a command selected from the context menu. Return true if
+ the command was handled or false for the default implementation. See
+ cef_menu_id_t for the command ids that have default implementations. All
+ user-defined command ids should be between MENU_ID_USER_FIRST and
Implement this interface to filter cookies that may be sent or received from resource requests.
+ The methods of this class will be called on the IO thread.
Called on the IO thread after a resource response is received. The |browser| and |frame|
+ values represent the source of the request, and may be null for requests originating from
+ service workers or CefURLRequest.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
response - The request response. Cannot be modified in this callback. Instance only
+ valid within the scope of this method.
+
cookie - The cookie that will be sent with the request. Cannot be modified in this
+ callback. Instance only valid within the scope of this method.
+
Returns:
+
True if the cookie can be saved or false otherwise.
Called on the IO thread before a resource request is sent. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
cookie - The cookie that will be sent with the request. Cannot be modified in this
+ callback. Instance only valid within the scope of this method.
+
Returns:
+
True if the cookie can be sent or false otherwise.
public abstract class CefCookieAccessFilterAdapter
+extends java.lang.Object
+implements CefCookieAccessFilter
+
An abstract adapter class for cookie access filter events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called on the IO thread after a resource response is received. The |browser| and |frame|
+ values represent the source of the request, and may be null for requests originating from
+ service workers or CefURLRequest.
Called on the IO thread before a resource request is sent. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefDialogHandler.FileDialogMode c : CefDialogHandler.FileDialogMode.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
title - to be used for the dialog and may be empty to show the default
+ title ("Open" or "Save" depending on the mode).
+
defaultFilePath - is the path with optional directory and/or file name
+ component that should be initially selected in the dialog.
+
acceptFilters - are used to restrict the selectable file types and may
+ any combination of (a) valid lower-cased MIME types (e.g. "text/*" or
+ "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c)
+ combined description and file extension delimited using "|" and ";" (e.g.
+ "Image Types|.png;.gif;.jpg").
+
acceptExtensions - provides the semicolon-delimited expansion of MIME
+ types to file extensions (if known, or empty string otherwise).
+
acceptDescriptions - provides the descriptions for MIME types (if known,
+ or empty string otherwise). For example, the "image/*" mime type might
+ have extensions ".png;.jpg;.bmp;..." and description "Image Files".
+
callback - is a callback handler for handling own file dialogs.
+
Returns:
+
To display a custom dialog return true and execute callback.
+ To display the default dialog return false.
public abstract class CefDisplayHandlerAdapter
+extends java.lang.Object
+implements CefDisplayHandler
+
An abstract adapter class for receiving display events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called before a download begins. Return true and execute |callback| either
+ asynchronously or in this method to continue or cancel the download.
+ Return false to proceed with default handling (cancel with Alloy style,
+ download shelf with Chrome style). Do not keep a reference to
+ downloadItem outside of this method.
+
+
Parameters:
+
browser - The desired browser.
+
downloadItem - The item to be downloaded. Do not keep a reference to it outside this
+ method.
+
suggestedName - is the suggested name for the download file.
+
callback - start the download by calling the Continue method
public abstract class CefDownloadHandlerAdapter
+extends java.lang.Object
+implements CefDownloadHandler
+
An abstract adapter class for receiving download events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called before a download begins. Return true and execute |callback| either
+ asynchronously or in this method to continue or cancel the download.
+ Return false to proceed with default handling (cancel with Alloy style,
+ download shelf with Chrome style). Do not keep a reference to
+ downloadItem outside of this method.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefFocusHandler.FocusSource c : CefFocusHandler.FocusSource.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public abstract class CefFocusHandlerAdapter
+extends java.lang.Object
+implements CefFocusHandler
+
An abstract adapter class for receiving focus events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefJSDialogHandler.JSDialogType c : CefJSDialogHandler.JSDialogType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Called to run a dialog asking the user if they want to leave a page. Return
+ false to use the default dialog implementation. Return true if the
+ application will use a custom dialog or if the callback has been executed
+ immediately. Custom dialogs may be either modal or modeless. If a custom
+ dialog is used the application must execute callback once the custom
+ dialog is dismissed.
+
+
Parameters:
+
browser - The corresponding browser.
+
message_text - The text to be displayed.
+
is_reload - true if the page is reloaded.
+
callback - execute callback once the custom dialog is dismissed.
+
Returns:
+
false to use the default dialog implementation. Return true if the
+ application will use a custom dialog.
Called to run a JavaScript dialog. Set suppress_message to true and
+ return false to suppress the message (suppressing messages is preferable
+ to immediately executing the callback as this is used to detect presumably
+ malicious behavior like spamming alert messages in onbeforeunload). Set
+ suppress_message to false and return false to use the default
+ implementation (the default implementation will show one modal dialog at a
+ time and suppress any additional dialog requests until the displayed dialog
+ is dismissed). Return true if the application will use a custom dialog or
+ if the callback has been executed immediately. Custom dialogs may be either
+ modal or modeless. If a custom dialog is used the application must execute
+ callback once the custom dialog is dismissed.
+
+
Parameters:
+
browser - The corresponding browser.
+
origin_url - The originating url.
+
dialog_type - the dialog type.
+
message_text - the text to be displayed.
+
default_prompt_text - value will be specified for prompt dialogs only.
+
callback - execute callback once the custom dialog is dismissed.
+
suppress_message - set to true to suppress displaying the message.
+
Returns:
+
false to use the default dialog implementation. Return true if the
+ application will use a custom dialog.
Called to cancel any pending dialogs and reset any saved dialog state. Will
+ be called due to events like page navigation irregardless of whether any
+ dialogs are currently pending.
public abstract class CefJSDialogHandlerAdapter
+extends java.lang.Object
+implements CefJSDialogHandler
+
An abstract adapter class for receiving javascript dialog requests.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called to run a dialog asking the user if they want to leave a page. Return
+ false to use the default dialog implementation. Return true if the
+ application will use a custom dialog or if the callback has been executed
+ immediately. Custom dialogs may be either modal or modeless. If a custom
+ dialog is used the application must execute callback once the custom
+ dialog is dismissed.
Called to run a JavaScript dialog. Set suppress_message to true and
+ return false to suppress the message (suppressing messages is preferable
+ to immediately executing the callback as this is used to detect presumably
+ malicious behavior like spamming alert messages in onbeforeunload). Set
+ suppress_message to false and return false to use the default
+ implementation (the default implementation will show one modal dialog at a
+ time and suppress any additional dialog requests until the displayed dialog
+ is dismissed). Return true if the application will use a custom dialog or
+ if the callback has been executed immediately. Custom dialogs may be either
+ modal or modeless. If a custom dialog is used the application must execute
+ callback once the custom dialog is dismissed.
Called to cancel any pending dialogs and reset any saved dialog state. Will
+ be called due to events like page navigation irregardless of whether any
+ dialogs are currently pending.
Notification that a character was typed. Use this for text input. Key
+ down events may generate 0, 1, or more than one character event
+ depending on the key, locale, and operating system.
Notification that a key was pressed. This does not necessarily
+ correspond to a character depending on the key and language. Use
+ KEYEVENT_CHAR for character input.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefKeyboardHandler.CefKeyEvent.EventType c : CefKeyboardHandler.CefKeyEvent.EventType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Indicates whether the event is considered a "system key" event (see
+ http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for details).
+ This value will always be false on non-Windows platforms.
The Windows key code for the key event. This value is used by the DOM
+ specification. Sometimes it comes directly from the event (i.e. on
+ Windows) and sometimes it's determined using a mapping function. See
+ WebCore/platform/chromium/KeyboardCodes.h for the list of values.
public abstract class CefKeyboardHandlerAdapter
+extends java.lang.Object
+implements CefKeyboardHandler
+
An abstract adapter class for receiving keyboard events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Implement this interface to handle events related to browser life span. The methods of this class
+ will be called on the UI thread unless otherwise indicated.
Called when a browser has received a request to close.
+
+ If CEF created an OS window for the browser returning false will send an OS close
+ notification to the browser window's top-level owner (e.g. WM_CLOSE on Windows, performClose:
+ on OS-X and "delete_event" on Linux). If no OS window exists (window rendering disabled)
+ returning false will cause the browser object to be destroyed immediately. Return true if the
+ browser is parented to another window and that other window needs to receive close
+ notification via some non-standard technique.
+
+
Parameters:
+
browser - The browser generating the event.
+
Returns:
+
False to send an OS close notification to the browser window's top-level owner.
Called just before a browser is destroyed.
+
+ Release all references to the browser object and do not attempt to execute any methods on the
+ browser object after this callback returns. If this is a modal window and a custom modal loop
+ implementation was provided in runModal() this callback should be used to exit the custom
+ modal loop. See doClose() documentation for additional usage information.
public abstract class CefLifeSpanHandlerAdapter
+extends java.lang.Object
+implements CefLifeSpanHandler
+
An abstract adapter class for receiving life span events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called when a browser has received a request to close.
+
+ If CEF created an OS window for the browser returning false will send an OS close
+ notification to the browser window's top-level owner (e.g. WM_CLOSE on Windows, performClose:
+ on OS-X and "delete_event" on Linux). If no OS window exists (window rendering disabled)
+ returning false will cause the browser object to be destroyed immediately. Return true if the
+ browser is parented to another window and that other window needs to receive close
+ notification via some non-standard technique.
Called just before a browser is destroyed.
+
+ Release all references to the browser object and do not attempt to execute any methods on the
+ browser object after this callback returns. If this is a modal window and a custom modal loop
+ implementation was provided in runModal() this callback should be used to exit the custom
+ modal loop. See doClose() documentation for additional usage information.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefLoadHandler.ErrorCode c : CefLoadHandler.ErrorCode.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
void onLoadEnd(CefBrowser browser,
+ CefFrame frame,
+ int httpStatusCode)
+
Called when the browser is done loading a frame. The frameIdentifer value will never be
+ empty. Multiple frames may be loading at the same time. Sub-frames may start or continue
+ loading after the main frame load has ended. This method will always be called for all frames
+ irrespective of whether the request completes successfully.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
Called when the loading state has changed. This callback will be executed twice -- once when
+ loading is initiated either programmatically or by user action, and once when loading is
+ terminated due to completion, cancellation of failure.
Called when the browser begins loading a frame. The frameIdentifer value will never be empty.
+ Multiple frames may be loading at the same time. Sub-frames may start or continue loading
+ after the main frame load has ended. This method may not be called for a particular frame if
+ the load request for that frame fails. For notification of overall browser load status use
+ onLoadingStateChange instead.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
public abstract class CefLoadHandlerAdapter
+extends java.lang.Object
+implements CefLoadHandler
+
An abstract adapter class for receiving load events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called when the browser is done loading a frame. The frameIdentifer value will never be
+ empty. Multiple frames may be loading at the same time. Sub-frames may start or continue
+ loading after the main frame load has ended. This method will always be called for all frames
+ irrespective of whether the request completes successfully.
Called when the loading state has changed. This callback will be executed twice -- once when
+ loading is initiated either programmatically or by user action, and once when loading is
+ terminated due to completion, cancellation of failure.
Called when the browser begins loading a frame. The frameIdentifer value will never be empty.
+ Multiple frames may be loading at the same time. Sub-frames may start or continue loading
+ after the main frame load has ended. This method may not be called for a particular frame if
+ the load request for that frame fails. For notification of overall browser load status use
+ onLoadingStateChange instead.
Called when the browser receives a JavaScript query.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
queryId - The unique ID for the query.
+
persistent - True if the query is persistent.
+
callback - Object used to continue or cancel the query asynchronously.
+
Returns:
+
True to handle the query or false to propagate the query to other registered
+ handlers, if any. If no handlers return true from this method then the query will be
+ automatically canceled with an error code of -1 delivered to the JavaScript onFailure
+ callback.
An abstract adapter class for receiving message router events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
queryId - The unique ID for the query.
+
persistent - True if the query is persistent.
+
callback - Object used to continue or cancel the query asynchronously.
+
Returns:
+
True to handle the query or false to propagate the query to other registered
+ handlers, if any. If no handlers return true from this method then the query will be
+ automatically canceled with an error code of -1 delivered to the JavaScript onFailure
+ callback.
Called when printing has started. This method will be called before the other onPrint*()
+ methods and irrespective of how printing was initiated (e.g. CefBrowser::print(), JavaScript
+ window.print() or PDF extension print button).
An abstract adapter class for receiving print events on Linux.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called when printing has started. This method will be called before the other onPrint*()
+ methods and irrespective of how printing was initiated (e.g. CefBrowser::print(), JavaScript
+ window.print() or PDF extension print button).
boolean startDragging(CefBrowser browser,
+ CefDragData dragData,
+ int mask,
+ int x,
+ int y)
+
Called when the user starts dragging content in the web view. Contextual
+ information about the dragged content is supplied by dragData.
+ OS APIs that run a system message loop may be used within the
+ StartDragging call.
+
+ Return false to abort the drag operation. Don't call any of
+ CefBrowser-dragSource*Ended* methods after returning false.
+
+ Return true to handle the drag operation. Call
+ CefBrowser.dragSourceEndedAt and CefBrowser.ragSourceSystemDragEnded either
+ synchronously or asynchronously to inform the web view that the drag
+ operation has ended.
+
+
Parameters:
+
browser - The browser generating the event.
+
dragData - Contextual information about the dragged content
+
mask - Describes the allowed operation (none, move, copy, link).
+
x - Coordinate within CefBrowser
+
y - Coordinate within CefBrowser
+
Returns:
+
false to abort the drag operation or true to handle the drag operation.
public abstract class CefRenderHandlerAdapter
+extends java.lang.Object
+implements CefRenderHandler
+
An abstract adapter class for receiving render events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called when the user starts dragging content in the web view. Contextual
+ information about the dragged content is supplied by dragData.
+ OS APIs that run a system message loop may be used within the
+ StartDragging call.
+
+ Return false to abort the drag operation. Don't call any of
+ CefBrowser-dragSource*Ended* methods after returning false.
+
+ Return true to handle the drag operation. Call
+ CefBrowser.dragSourceEndedAt and CefBrowser.ragSourceSystemDragEnded either
+ synchronously or asynchronously to inform the web view that the drag
+ operation has ended.
Called on the IO thread before a resource request is initiated. The |browser| and |frame|
+ values represent the source of the request. This method will not be called if the client
+ associated with |browser| returns a non-null value from
+ CefRequestHandler.getResourceRequestHandler for the same request (identified by
+ CefRequest.getIdentifier).
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
isNavigation - True if the resource request is a navigation.
+
isDownload - True if the resource request is a download.
+
requestInitiator - The origin (scheme + domain) of the page that initiated the request.
+
disableDefaultHandling - Set to true to disable default handling of the request, in
+ which case it will need to be handled via
+ CefResourceRequestHandler.getResourceHandler or it will be canceled.
public abstract class CefRequestContextHandlerAdapter
+extends java.lang.Object
+implements CefRequestContextHandler
+
An abstract adapter class for receiving browser request context events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called on the IO thread before a resource request is initiated. The |browser| and |frame|
+ values represent the source of the request. This method will not be called if the client
+ associated with |browser| returns a non-null value from
+ CefRequestHandler.getResourceRequestHandler for the same request (identified by
+ CefRequest.getIdentifier).
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
isNavigation - True if the resource request is a navigation.
+
isDownload - True if the resource request is a download.
+
requestInitiator - The origin (scheme + domain) of the page that initiated the request.
+
disableDefaultHandling - Set to true to disable default handling of the request, in
+ which case it will need to be handled via
+ CefResourceRequestHandler.getResourceHandler or it will be canceled.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefRequestHandler.TerminationStatus c : CefRequestHandler.TerminationStatus.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Called on the IO thread before a resource request is initiated. The |browser| and |frame|
+ values represent the source of the request. If this callback returns null the same method
+ will be called on the associated CefRequestContextHandler, if any.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
isNavigation - True if the resource request is a navigation.
+
isDownload - True if the resource request is a download.
+
requestInitiator - The origin (scheme + domain) of the page that initiated the request.
+
disableDefaultHandling - Set to true to disable default handling of the request, in
+ which case it will need to be handled via
+ CefResourceRequestHandler.getResourceHandler or it will be canceled.
Called on the UI thread before browser navigation.
+
+ CefLoadHandler.onLoadingStateChange() will be called twice in all cases. If the navigation is
+ allowed CefLoadHandler.onLoadStart() and CefLoadHandler.onLoadEnd() will be called. If the
+ navigation is canceled CefLoadHandler.onLoadError() will be called with an errorCode value of
+ ERR_ABORTED.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
user_gesture - True if the request was initiated by a user gesture.
+
is_redirect - True if the request was redirected.
+
Returns:
+
True to cancel the navigation or false to continue.
Called on the UI thread to handle requests for URLs with an invalid SSL certificate. If
+ "ignore-certificate-errors" command-line switch is set all invalid certificates will be
+ accepted without calling this method.
+
+
Parameters:
+
browser - The corresponding browser.
+
cert_error - Error code describing the error.
+
request_url - The requesting URL.
+
callback - Call CefCallback.Continue() either in this method or at a later time
+ to continue or cancel the request. If null the error cannot be recovered from and the
+ request will be canceled automatically.
+
Returns:
+
True to handle the request (callback must be executed) or false to reject it.
Called on the UI thread before OnBeforeBrowse in certain limited cases
+ where navigating a new or different browser might be desirable. This
+ includes user-initiated navigation that might open in a special way (e.g.
+ links clicked via middle-click or ctrl + left-click) and certain types of
+ cross-origin navigation initiated from the renderer process (e.g.
+ navigating the top-level frame to/from a file URL).
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method
+
user_gesture - True if the request was initiated by a user gesture.
public abstract class CefRequestHandlerAdapter
+extends java.lang.Object
+implements CefRequestHandler
+
An abstract adapter class for receiving browser request events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called on the IO thread before a resource request is initiated. The |browser| and |frame|
+ values represent the source of the request. If this callback returns null the same method
+ will be called on the associated CefRequestContextHandler, if any.
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
isNavigation - True if the resource request is a navigation.
+
isDownload - True if the resource request is a download.
+
requestInitiator - The origin (scheme + domain) of the page that initiated the request.
+
disableDefaultHandling - Set to true to disable default handling of the request, in
+ which case it will need to be handled via
+ CefResourceRequestHandler.getResourceHandler or it will be canceled.
Called on the UI thread before browser navigation.
+
+ CefLoadHandler.onLoadingStateChange() will be called twice in all cases. If the navigation is
+ allowed CefLoadHandler.onLoadStart() and CefLoadHandler.onLoadEnd() will be called. If the
+ navigation is canceled CefLoadHandler.onLoadError() will be called with an errorCode value of
+ ERR_ABORTED.
Called on the UI thread to handle requests for URLs with an invalid SSL certificate. If
+ "ignore-certificate-errors" command-line switch is set all invalid certificates will be
+ accepted without calling this method.
callback - Call CefCallback.Continue() either in this method or at a later time
+ to continue or cancel the request. If null the error cannot be recovered from and the
+ request will be canceled automatically.
+
Returns:
+
True to handle the request (callback must be executed) or false to reject it.
Called on the UI thread before OnBeforeBrowse in certain limited cases
+ where navigating a new or different browser might be desirable. This
+ includes user-initiated navigation that might open in a special way (e.g.
+ links clicked via middle-click or ctrl + left-click) and certain types of
+ cross-origin navigation initiated from the renderer process (e.g.
+ navigating the top-level frame to/from a file URL).
Implement this interface to handle custom resource requests. This interface is a "new" API and an
+ old API in one: the deprecated methods are part of the old API. The new API allows for parallel
+ processing of requests, because it does not channel all reads through a dedicated IO thread, and
+ it allows for skipping of bytes as part of handling Range requests.
Retrieve response header information. If the response length is not known set
+ |responseLength| to -1 and readResponse() will be called until it returns false. If the
+ response length is known set |responseLength| to a positive value and readResponse() will be
+ called until it returns false or the specified number of bytes have been read. Use the
+ |response| object to set the mime type, http status code and other optional header values.
+
+
Parameters:
+
response - The request response that should be returned. Instance only valid within the
+ scope of this method.
+
responseLength - Optionally set the response length if known.
+
redirectUrl - Optionally redirect the request to a new URL.
Read response data. If data is available immediately copy up to |bytesToRead| bytes into
+ |dataOut|, set |bytesRead| to the number of bytes copied, and return true. To read the data
+ at a later time store |dataOut|, set |bytesRead| to 0, return true and call the callback when
+ the data is available. To indicate response completion set |bytesRead| to 0 and return false.
+ To indicate failure set |bytesRead| to <0 (e.g. -2 for ERR_FAILED) and return false.
For
+ backwards compatibility set |bytesRead| to -1 and return false and the readResponse() method
+ will be called.
+
+
Parameters:
+
dataOut - Write data to this buffer. Buffer remains valid until either an immediate
+ response is delivered (return true) or the callback is called later when data is
+ available (return false).
+
bytesToRead - Size of the buffer.
+
bytesRead - Number of bytes written to the buffer.
+
callback - Callback to execute if data will be available asynchronously.
Skip response data when requested by a Range header. Skip over and discard |bytesToSkip|
+ bytes of response data. If data is available immediately set |bytesSkipped| to the number of
+ bytes skipped and return true. To read the data at a later time set |bytesSkipped| to 0,
+ return true and execute |callback| when the data is available. To indicate failure set
+ |bytesSkipped| to < 0 (e.g. -2 for ERR_FAILED) and return false.
+
+
Parameters:
+
bytesToSkip - Number of bytes to skip.
+
bytesSkipped - Number of bytes skipped.
+
callback - Callback to execute if data will be skipped asynchronously.
public abstract class CefResourceHandlerAdapter
+extends java.lang.Object
+implements CefResourceHandler
+
An abstract adapter class for receiving resource requests.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Retrieve response header information. If the response length is not known set
+ |responseLength| to -1 and readResponse() will be called until it returns false. If the
+ response length is known set |responseLength| to a positive value and readResponse() will be
+ called until it returns false or the specified number of bytes have been read. Use the
+ |response| object to set the mime type, http status code and other optional header values.
Read response data. If data is available immediately copy up to |bytesToRead| bytes into
+ |dataOut|, set |bytesRead| to the number of bytes copied, and return true. To read the data
+ at a later time store |dataOut|, set |bytesRead| to 0, return true and call the callback when
+ the data is available. To indicate response completion set |bytesRead| to 0 and return false.
+ To indicate failure set |bytesRead| to <0 (e.g. -2 for ERR_FAILED) and return false.
For
+ backwards compatibility set |bytesRead| to -1 and return false and the readResponse() method
+ will be called.
dataOut - Write data to this buffer. Buffer remains valid until either an immediate
+ response is delivered (return true) or the callback is called later when data is
+ available (return false).
+
bytesToRead - Size of the buffer.
+
bytesRead - Number of bytes written to the buffer.
+
callback - Callback to execute if data will be available asynchronously.
Read response data. If data is available immediately copy up to |bytesToRead| bytes into
+ |dataOut|, set |bytesRead| to the number of bytes copied, and return true. To read the data
+ at a later time set |bytesRead| to 0, return true and call CefCallback.Continue() when the
+ data is available. To indicate response completion return false.
Skip response data when requested by a Range header. Skip over and discard |bytesToSkip|
+ bytes of response data. If data is available immediately set |bytesSkipped| to the number of
+ bytes skipped and return true. To read the data at a later time set |bytesSkipped| to 0,
+ return true and execute |callback| when the data is available. To indicate failure set
+ |bytesSkipped| to < 0 (e.g. -2 for ERR_FAILED) and return false.
Implement this interface to handle events related to browser requests. The methods of this class
+ will be called on the IO thread unless otherwise indicated.
Called on the IO thread before a resource is loaded. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
Called on the IO thread before a resource is loaded. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
Called on the IO thread before a resource request is loaded. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest. To redirect or change the resource load optionally modify
+ |request|. Modification of the request URL will be treated as a redirect.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. May be modified in this callback. Instance only valid
+ within the scope of this method.
+
Returns:
+
To cancel the request return true otherwise return false.
Called on the IO thread to handle requests for URLs with an unknown protocol component. The
+ |browser| and |frame| values represent the source of the request, and may be null for
+ requests originating from service workers or CefURLRequest.
+
+ SECURITY WARNING: YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST
+ OR OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
allowOsExecution - Set to true to attempt execution via the registered
+ OS protocol handler, if any.
Called on the IO thread when a resource load has completed. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest. This method will be called for all requests, including requests
+ that are aborted due to CEF shutdown or destruction of the associated browser. In cases where
+ the associated browser is destroyed this callback may arrive after the
+ CefLifeSpanHandler.onBeforeClose callback for that browser. The CefFrame.isValid method can
+ be used to test for this situation, and care should be taken not to call |browser| or |frame|
+ methods that modify state (like loadURL, sendProcessMessage, etc.) if the frame is invalid.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
response - The request response. Cannot be modified in this callback. Instance only
+ valid within the scope of this method.
Called on the IO thread when a resource load is redirected. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest. The |request| parameter will contain the old URL and other
+ request-related information.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. Cannot be modified in this callback. Instance only valid
+ within the scope of this method.
+
response - The response that resulted in the redirect. Cannot be modified in this
+ callback. Instance only valid within the scope of this method.
+
new_url - Contains the new URL and can be changed if desired.
Called on the IO thread when a resource response is received. The |browser| and |frame|
+ values represent the source of the request, and may be null for requests originating from
+ service workers or CefURLRequest. To allow the resource load to proceed without modification
+ return false. To redirect or retry the resource load optionally modify |request| and return
+ true. Modification of the request URL will be treated as a redirect. Requests handled using
+ the default network loader cannot be redirected in this callback.
+
+
Parameters:
+
browser - The corresponding browser.
+
frame - The frame generating the event. Instance only valid within the scope of this
+ method.
+
request - The request itself. May be modified in this callback. Instance only valid
+ within the scope of this method.
+
response - The request response. Cannot be modified in this callback. Instance only
+ valid within the scope of this method.
public abstract class CefResourceRequestHandlerAdapter
+extends java.lang.Object
+implements CefResourceRequestHandler
+
An abstract adapter class for receiving browser request events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Called on the IO thread before a resource is loaded. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest.
Called on the IO thread before a resource is loaded. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest.
Called on the IO thread before a resource request is loaded. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest. To redirect or change the resource load optionally modify
+ |request|. Modification of the request URL will be treated as a redirect.
Called on the IO thread to handle requests for URLs with an unknown protocol component. The
+ |browser| and |frame| values represent the source of the request, and may be null for
+ requests originating from service workers or CefURLRequest.
+
+ SECURITY WARNING: YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST
+ OR OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION.
Called on the IO thread when a resource load has completed. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest. This method will be called for all requests, including requests
+ that are aborted due to CEF shutdown or destruction of the associated browser. In cases where
+ the associated browser is destroyed this callback may arrive after the
+ CefLifeSpanHandler.onBeforeClose callback for that browser. The CefFrame.isValid method can
+ be used to test for this situation, and care should be taken not to call |browser| or |frame|
+ methods that modify state (like loadURL, sendProcessMessage, etc.) if the frame is invalid.
Called on the IO thread when a resource load is redirected. The |browser| and |frame| values
+ represent the source of the request, and may be null for requests originating from service
+ workers or CefURLRequest. The |request| parameter will contain the old URL and other
+ request-related information.
Called on the IO thread when a resource response is received. The |browser| and |frame|
+ values represent the source of the request, and may be null for requests originating from
+ service workers or CefURLRequest. To allow the resource load to proceed without modification
+ return false. To redirect or retry the resource load optionally modify |request| and return
+ true. Modification of the request URL will be treated as a redirect. Requests handled using
+ the default network loader cannot be redirected in this callback.
void onMouseEvent(CefBrowser browser,
+ int event,
+ int screenX,
+ int screenY,
+ int modifier,
+ int button)
+
Implement this method to handle mouse events on Windows.
+
+ The method is called in case of the following events:
+ MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED and MOUSE_WHEEL for a
+ horizontal wheel movement.
+
+
Parameters:
+
browser - The browser generating the event.
+
event - A mouse event like MouseEvent.MOUSE_MOVED.
+
screenX - The absolute X position on the screen.
+
screenY - The absolute Y position on the screen.
+
modifier - The modifier keys down during event (e.g. Shift, Ctrl).
+
button - An integer indicating which mouse button state changed.
+ If parameter event is set to MouseEvent.MOUSE_WHEEL, the value of this
+ parameter specifies the rotation indicator (negative value for left scroll
+ and positive value for right scroll).
public abstract class CefWindowHandlerAdapter
+extends java.lang.Object
+implements CefWindowHandler
+
An abstract adapter class for receiving windowed render events.
+ The methods in this class are empty.
+ This class exists as convenience for creating handler objects.
Implement this method to handle mouse events on Windows.
+
+ The method is called in case of the following events:
+ MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED and MOUSE_WHEEL for a
+ horizontal wheel movement.
event - A mouse event like MouseEvent.MOUSE_MOVED.
+
screenX - The absolute X position on the screen.
+
screenY - The absolute Y position on the screen.
+
modifier - The modifier keys down during event (e.g. Shift, Ctrl).
+
button - An integer indicating which mouse button state changed.
+ If parameter event is set to MouseEvent.MOUSE_WHEEL, the value of this
+ parameter specifies the rotation indicator (negative value for left scroll
+ and positive value for right scroll).
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefPdfPrintSettings.MarginType c : CefPdfPrintSettings.MarginType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Set to true to print headers and footers or false to not print
+ headers and footers. Modify header_template and/or footer_template to
+ customize the display.
HTML template for the print header. Only displayed if
+ |display_header_footer| is true (1). Should be valid HTML markup with
+ the following classes used to inject printing values into them:
+
+ - date: formatted print date
+ - title: document title
+ - url: document location
+ - pageNumber: current page number
+ - totalPages: total pages in the document
+
+ For example, "" would generate a span containing
+ the title.
Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are printed
+ in the document order, not in the order specified, and no more than once.
+ Defaults to empty string, which implies the entire document is printed.
+ The page numbers are quietly capped to actual page count of the document,
+ and ranges beyond the end of the document are ignored. If this results in
+ no pages to print, an error is reported. It is an error to specify a range
+ with start greater than end.
Output paper size in inches. If either of these values is less than or
+ equal to zero then the default paper size (letter, 8.5 x 11 inches) will
+ be used.
The percentage to scale the PDF by before printing (e.g. .5 is 50%).
+ If this value is less than or equal to zero the default value of 1.0
+ will be used.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefPrintSettings.ColorModel c : CefPrintSettings.ColorModel.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefPrintSettings.DuplexMode c : CefPrintSettings.DuplexMode.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Set the printer printable area in device units.
+ Some platforms already provide flipped area. Set |landscape_needs_flip|
+ to false on those platforms to avoid double flipping.
If domain is empty a host cookie will be created instead of a domain
+ cookie. Domain cookies are stored with a leading "." and are visible to
+ sub-domains whereas host cookies are not.
public abstract boolean deleteCookies(java.lang.String url,
+ java.lang.String cookieName)
+
Delete all cookies that match the specified parameters. If both |url| and |cookieName| values
+ are specified all host and domain cookies matching both will be deleted. If only |url| is
+ specified all host cookies (but not domain cookies) irrespective of path will be deleted. If
+ |url| is empty all cookies for all hosts and domains will be deleted. Cookies can alternately
+ be deleted using the visit*Cookies() methods.
+
+
Parameters:
+
url - The cookie URL to delete or null.
+
cookieName - The cookie name to delete or null.
+
Returns:
+
False if a non-empty invalid URL is secified or if cookies cannot be accessed.
public abstract boolean setCookie(java.lang.String url,
+ CefCookie cookie)
+
Sets a cookie given a valid URL and explicit user-provided cookie attributes. This function
+ expects each attribute to be well-formed. It will check for disallowed characters (e.g. the
+ ';' character is disallowed within the cookie value attribute) and fail without setting the
+ cookie if such characters are found.
+
+
Parameters:
+
url - The cookie URL.
+
cookie - The cookie attributes.
+
Returns:
+
False if an invalid URL is specified or if cookies cannot be accessed.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefPostDataElement.Type c : CefPostDataElement.Type.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
If set 5XX redirect errors will be propagated to the observer instead of
+ automatically re-tried. This currently only applies for requests
+ originated in the browser process.
Policy for how the Referrer HTTP header value will be sent during navigation.
+ If the `--no-referrers` command-line flag is specified then the policy value
+ will be ignored and the Referrer value will never be sent.
public static final CefRequest.ReferrerPolicy REFERRER_POLICY_REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN
+
A slight variant on CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE:
+ If the request destination is HTTP, an HTTPS referrer will be cleared. If
+ the request's destination is cross-origin with the referrer (but does not
+ downgrade), the referrer's granularity will be stripped down to an origin
+ rather than a full URL. Same-origin requests will send the full referrer.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefRequest.ReferrerPolicy c : CefRequest.ReferrerPolicy.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefRequest.ResourceType c : CefRequest.ResourceType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefRequest.TransitionFlags c : CefRequest.TransitionFlags.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
Source is a subframe navigation. This is any content that is automatically
+ loaded in a non-toplevel frame. For example, if a page consists of several
+ frames containing ads, those ad URLs will have this transition type.
+ The user may not even realize the content in these pages is a separate
+ frame, so may not care about the URL.
Source is some other "explicit" navigation action such as creating a new
+ browser or using the LoadURL function. This is also the default value
+ for navigations where the actual type is unknown.
Source is a form submission by the user. NOTE: In some situations
+ submitting a form does not result in this transition type. This can happen
+ if the form uses a script to submit the contents.
Source is a link click or the JavaScript window.open function. This is
+ also the default value for requests like sub-resource loads that are not
+ navigations.
Source is a subframe navigation explicitly requested by the user that will
+ generate new navigation entries in the back/forward list. These are
+ probably more important than frames that were automatically loaded in
+ the background because the user probably cares about the fact that this
+ link was loaded.
Source is a "reload" of the page via the Reload function or by re-visiting
+ the same URL. NOTE: This is distinct from the concept of whether a
+ particular load uses "reload semantics" (i.e. bypasses cached data).
Any of the core values above can be augmented by one or more qualifiers
+ defined as TransitionFlags.
+ These qualifiers further define the transition.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefRequest.TransitionType c : CefRequest.TransitionType.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public abstract java.lang.String getHeaderByName(java.lang.String name)
+
Get the value for the specified response header field. The Referer value cannot be retrieved
+ using this method. Use getHeaderMap instead if there might be multiple values.
Returns the globally unique identifier for this request or 0 if not
+ specified. Can be used by CefRequestHandler implementations in the browser
+ process to track a single request across multiple callbacks.
Get the transition type for this request. Only available in the browser
+ process and only applies to requests that represent a main frame or
+ sub-frame navigation.
Set the referrer URL and policy. If non-empty the referrer URL must be
+ fully qualified with an HTTP or HTTPS scheme component. Any username,
+ password or ref component will be removed.
Returns the enum constant of this type with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this type. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
+
Returns:
+
the enum constant with the specified name
+
Throws:
+
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
+
java.lang.NullPointerException - if the argument is null
Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+
+for (CefURLRequest.Status c : CefURLRequest.Status.values())
+ System.out.println(c);
+
+
+
Returns:
+
an array containing the constants of this enum type, in the order they are declared
public abstract class CefURLRequest
+extends java.lang.Object
+
Class used to make a URL request. URL requests are not associated with a
+ browser instance so no CefClient callbacks will be executed. URL requests
+ can be created on any valid CEF thread in either the browser or render
+ process. Once created the methods of the URL request object must be accessed
+ on the same thread that created it.
Create a new URL request. Only GET, POST, HEAD, DELETE and PUT request
+ methods are supported. Multiple post data elements are not supported and
+ elements of type PDE_TYPE_FILE are only supported for requests originating
+ from the browser process. Requests originating from the render process will
+ receive the same handling as requests originating from Web content -- if
+ the response contains Content-Disposition or Mime-Type header values that
+ would not normally be rendered then the response may receive special
+ handling inside the browser (for example, via the file download code path
+ instead of the URL request code path). The |request| object will be marked
+ as read-only after calling this method.
Returns the response, or NULL if no response information is available.
+ Response information will only be available after the upload has completed.
+ The returned object is read-only and should not be modified.