aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/embedding
diff options
context:
space:
mode:
authorJack Moffitt <jack@metajack.im>2014-08-28 09:34:23 -0600
committerJack Moffitt <jack@metajack.im>2014-09-08 20:21:42 -0600
commitc6ab60dbfc6da7b4f800c9e40893c8b58413960c (patch)
treed1d74076cf7fa20e4f77ec7cb82cae98b67362cb /src/components/embedding
parentdb2f642c32fc5bed445bb6f2e45b0f6f0b4342cf (diff)
downloadservo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.tar.gz
servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.zip
Cargoify servo
Diffstat (limited to 'src/components/embedding')
-rw-r--r--src/components/embedding/README.md12
-rw-r--r--src/components/embedding/browser.rs31
-rw-r--r--src/components/embedding/command_line.rs92
-rw-r--r--src/components/embedding/core.rs86
-rw-r--r--src/components/embedding/embedding.rs64
-rw-r--r--src/components/embedding/eutil.rs7
-rw-r--r--src/components/embedding/mem.rs56
-rw-r--r--src/components/embedding/request.rs21
-rw-r--r--src/components/embedding/string.rs177
-rw-r--r--src/components/embedding/task.rs12
-rw-r--r--src/components/embedding/types.rs1899
-rw-r--r--src/components/embedding/urlrequest.rs14
12 files changed, 0 insertions, 2471 deletions
diff --git a/src/components/embedding/README.md b/src/components/embedding/README.md
deleted file mode 100644
index a8ffd07fc82..00000000000
--- a/src/components/embedding/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-How to test:
-
-1. Go to http://cefbuilds.com/ and download a binary for your OS/arch
-2. Unpack the (huge) archive
-3. Create both Debug and Release build types for CEF (```./build.sh [Debug|Release]```)
-4. Build servo
-5. Run a CEF-based executable with the embedding crate preloaded:
- * Linux: ```LD_LIBRARY_PATH=/path/to/cef-bin-unpack-dir/out/$build_type LD_PRELOAD=/path/to/servo/build/libembedding-*.so [CEF EXE]```
-6. Enjoy CEF-powered crashes
-
-Notes:
-* Running with the Debug build in GDB is EXTREMELY slow on startup. Only use this if you are actively debugging an unimplemented CEF interaction.
diff --git a/src/components/embedding/browser.rs b/src/components/embedding/browser.rs
deleted file mode 100644
index 51f20208f67..00000000000
--- a/src/components/embedding/browser.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-use libc::{calloc, size_t,c_int};
-use std::mem;
-use types::{cef_browser_settings_t, cef_browser_t, cef_client_t, cef_request_context_t, cef_string_t, cef_window_info_t};
-
-#[no_mangle]
-pub extern "C" fn cef_browser_host_create_browser(_windowInfo: *const cef_window_info_t,
- _client: *mut cef_client_t,
- _url: *const cef_string_t,
- _settings: *const cef_browser_settings_t,
- _request_context: *mut cef_request_context_t)
- -> c_int {
- 0
-}
-
-#[no_mangle]
-pub extern "C" fn cef_browser_host_create_browser_sync(_windowInfo: *const cef_window_info_t,
- _client: *mut cef_client_t,
- _url: *const cef_string_t,
- _settings: *const cef_browser_settings_t,
- _request_context: *mut cef_request_context_t)
- -> *mut cef_browser_t {
- unsafe {
- let browser = calloc(1, mem::size_of::<cef_browser_t>() as size_t) as *mut cef_browser_t;
- browser
- }
-}
diff --git a/src/components/embedding/command_line.rs b/src/components/embedding/command_line.rs
deleted file mode 100644
index 755e2669624..00000000000
--- a/src/components/embedding/command_line.rs
+++ /dev/null
@@ -1,92 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use libc::{calloc, c_int, size_t};
-use std::mem;
-use std::string;
-use std::c_vec::CVec;
-use string::{cef_string_userfree_utf16_alloc, cef_string_utf16_set};
-use types::{cef_command_line_t, cef_string_t, cef_string_userfree_t, cef_string_utf16_t};
-
-type command_line_t = command_line;
-struct command_line {
- pub cl: cef_command_line_t,
- pub argc: c_int,
- pub argv: Vec<String>,
-}
-
-static mut GLOBAL_CMDLINE: Option<*mut command_line_t> = None;
-
-fn command_line_new() -> *mut command_line_t {
- unsafe {
- let cl = calloc(1, mem::size_of::<command_line>() as size_t) as *mut command_line_t;
- (*cl).cl.base.size = mem::size_of::<cef_command_line_t>() as size_t;
- cl
- }
-}
-
-pub fn command_line_init(argc: c_int, argv: *const *const u8) {
- unsafe {
- let mut a: Vec<String> = vec!();
- for i in range(0u, argc as uint) {
- a.push(string::raw::from_buf(*argv.offset(i as int) as *const u8));
- }
- let cl = command_line_new();
- (*cl).argc = argc;
- (*cl).argv = a;
- (*cl).cl.get_switch_value = command_line_get_switch_value;
- GLOBAL_CMDLINE = Some(cl);
- }
-}
-
-#[no_mangle]
-pub extern "C" fn command_line_get_switch_value(cmd: *mut cef_command_line_t, name: *const cef_string_t) -> *mut cef_string_userfree_t {
- if cmd.is_null() || name.is_null() {
- return 0 as *mut cef_string_userfree_t;
- }
- unsafe {
- //technically cef_string_t can be any type of character size
- //but the default cef callback uses utf16, so I'm jumping on board the SS Copy
- let cl: *mut command_line_t = mem::transmute(cmd);
- let cs: *const cef_string_utf16_t = mem::transmute(name);
- let opt = String::from_utf16(CVec::new((*cs).str, (*cs).length as uint).as_slice()).unwrap();
- //debug!("opt: {}", opt);
- for s in (*cl).argv.iter() {
- let o = s.as_slice().trim_left_chars('-');
- //debug!("arg: {}", o);
- if o.as_slice().starts_with(opt.as_slice()) {
- let string = cef_string_userfree_utf16_alloc() as *mut cef_string_utf16_t;
- let arg = o.slice_from(opt.len() + 1).as_bytes();
- arg.with_c_str(|c_str| {
- cef_string_utf16_set(mem::transmute(c_str), arg.len() as size_t, string, 1);
- });
- return string as *mut cef_string_userfree_t
- }
- }
- }
- return 0 as *mut cef_string_userfree_t;
-}
-
-#[no_mangle]
-pub extern "C" fn cef_command_line_create() -> *mut cef_command_line_t {
- unsafe {
- let cl = command_line_new();
- (*cl).cl.get_switch_value = command_line_get_switch_value;
- mem::transmute(cl)
- }
-}
-
-#[no_mangle]
-pub extern "C" fn cef_command_line_get_global() -> *mut cef_command_line_t {
- unsafe {
- match GLOBAL_CMDLINE {
- Some(scl) => {
- mem::transmute(scl)
- },
- None => {
- 0 as *mut cef_command_line_t
- }
- }
- }
-}
diff --git a/src/components/embedding/core.rs b/src/components/embedding/core.rs
deleted file mode 100644
index 9ff237f2d82..00000000000
--- a/src/components/embedding/core.rs
+++ /dev/null
@@ -1,86 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-use azure;
-use command_line::command_line_init;
-use eutil::fptr_is_null;
-use libc::{c_int, c_void};
-use native;
-use servo;
-use servo_util::opts;
-use std::mem;
-use types::{cef_app_t, cef_main_args_t, cef_settings_t};
-
-
-#[no_mangle]
-pub extern "C" fn cef_initialize(args: *const cef_main_args_t,
- _settings: *mut cef_settings_t,
- application: *mut cef_app_t,
- _windows_sandbox_info: *const c_void)
- -> c_int {
- if args.is_null() {
- return 0;
- }
- unsafe {
- command_line_init((*args).argc, (*args).argv);
- let cb = (*application).get_browser_process_handler;
- if !fptr_is_null(mem::transmute(cb)) {
- let handler = cb(application);
- if handler.is_not_null() {
- let hcb = (*handler).on_context_initialized;
- if !fptr_is_null(mem::transmute(hcb)) {
- hcb(handler);
- }
- }
- }
- }
- return 1
-}
-
-#[no_mangle]
-pub extern "C" fn cef_shutdown() {
-}
-
-#[no_mangle]
-pub extern "C" fn cef_run_message_loop() {
- let mut urls = Vec::new();
- urls.push("http://s27.postimg.org/vqbtrolyr/servo.jpg".to_string());
- let opts = opts::Opts {
- urls: urls,
- render_backend: azure::azure_hl::SkiaBackend,
- n_render_threads: 1,
- cpu_painting: false,
- tile_size: 512,
- device_pixels_per_px: None,
- time_profiler_period: None,
- memory_profiler_period: None,
- enable_experimental: false,
- layout_threads: 1,
- //layout_threads: cmp::max(rt::default_sched_threads() * 3 / 4, 1),
- exit_after_load: false,
- output_file: None,
- headless: false,
- hard_fail: false,
- bubble_inline_sizes_separately: false,
- show_debug_borders: false,
- enable_text_antialiasing: true,
- trace_layout: false,
- };
- native::start(0, 0 as *const *const u8, proc() {
- servo::run(opts);
- });
-}
-
-#[no_mangle]
-pub extern "C" fn cef_quit_message_loop() {
-}
-
-#[no_mangle]
-pub extern "C" fn cef_execute_process(_args: *const cef_main_args_t,
- _app: *mut cef_app_t,
- _windows_sandbox_info: *mut c_void)
- -> c_int {
- -1
-}
diff --git a/src/components/embedding/embedding.rs b/src/components/embedding/embedding.rs
deleted file mode 100644
index cfe105da7ea..00000000000
--- a/src/components/embedding/embedding.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#![crate_name = "embedding"]
-#![crate_type = "lib"]
-#![crate_type = "rlib"]
-#![crate_type = "dylib"]
-
-#![feature(globs, macro_rules, phase, thread_local)]
-
-#![allow(experimental)]
-
-#![feature(phase)]
-#[phase(plugin, link)]
-extern crate log;
-
-extern crate rustuv;
-
-extern crate servo_macros = "macros";
-extern crate servo;
-
-extern crate azure;
-extern crate geom;
-extern crate gfx;
-#[cfg(not(target_os="android"))]
-extern crate glfw;
-#[cfg(target_os="android")]
-extern crate glut;
-extern crate js;
-extern crate layers;
-extern crate opengles;
-extern crate png;
-extern crate script;
-
-extern crate servo_net = "net";
-extern crate servo_msg = "msg";
-extern crate servo_util = "util";
-extern crate style;
-extern crate sharegl;
-extern crate stb_image;
-
-extern crate green;
-extern crate native;
-extern crate libc;
-extern crate std_url = "url";
-
-#[cfg(target_os="macos")]
-extern crate core_graphics;
-#[cfg(target_os="macos")]
-extern crate core_text;
-
-pub mod browser;
-pub mod command_line;
-pub mod core;
-pub mod eutil;
-#[cfg(target_os="linux")] #[cfg(target_os="macos")]
-pub mod mem;
-pub mod request;
-pub mod string;
-pub mod task;
-pub mod types;
-pub mod urlrequest;
-
diff --git a/src/components/embedding/eutil.rs b/src/components/embedding/eutil.rs
deleted file mode 100644
index b71421f8c40..00000000000
--- a/src/components/embedding/eutil.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-pub fn fptr_is_null(fptr: *const u8) -> bool {
- fptr.is_null()
-}
diff --git a/src/components/embedding/mem.rs b/src/components/embedding/mem.rs
deleted file mode 100644
index a22d2b8c4de..00000000000
--- a/src/components/embedding/mem.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use libc::{c_void, size_t};
-use std::mem;
-use std::ptr::set_memory;
-
-extern "C" {
- fn tc_new(size: size_t) -> *mut c_void;
- fn tc_delete(mem: *mut c_void);
- fn tc_newarray(size: size_t) -> *mut c_void;
- fn tc_deletearray(mem: *mut c_void);
-}
-
-#[allow(experimental)]
-pub fn newarray0<T>(nmem: size_t) -> *mut T {
- let mem = newarray::<T>(nmem) as *mut T;
- unsafe {
- set_memory(mem, 0 as u8, nmem as uint);
- }
- mem
-}
-
-pub fn newarray<T>(nmem: size_t) -> *mut T {
- unsafe {
- tc_newarray(nmem * mem::size_of::<T>() as size_t) as *mut T
- }
-}
-
-#[allow(experimental)]
-pub fn new0<T>(nmem: size_t) -> *mut T {
- let mem = new(nmem * mem::size_of::<T>() as size_t) as *mut T;
- unsafe {
- set_memory(mem, 0 as u8, nmem as uint);
- }
- mem
-}
-
-pub fn new(size: size_t) -> *mut c_void {
- unsafe {
- tc_new(size)
- }
-}
-
-pub fn delete(mem: *mut c_void) {
- unsafe {
- tc_delete(mem)
- }
-}
-
-pub fn deletearray(mem: *mut c_void) {
- unsafe {
- tc_deletearray(mem)
- }
-}
diff --git a/src/components/embedding/request.rs b/src/components/embedding/request.rs
deleted file mode 100644
index 546047e7df0..00000000000
--- a/src/components/embedding/request.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-use types::{cef_post_data_element_t, cef_post_data_t, cef_request_t};
-
-#[no_mangle]
-pub extern "C" fn cef_request_create() -> *mut cef_request_t {
- 0 as *mut cef_request_t
-}
-
-#[no_mangle]
-pub extern "C" fn cef_post_data_create() -> *mut cef_post_data_t {
- 0 as *mut cef_post_data_t
-}
-
-#[no_mangle]
-pub extern "C" fn cef_post_data_element_create() -> *mut cef_post_data_element_t {
- 0 as *mut cef_post_data_element_t
-}
diff --git a/src/components/embedding/string.rs b/src/components/embedding/string.rs
deleted file mode 100644
index b878defb8b5..00000000000
--- a/src/components/embedding/string.rs
+++ /dev/null
@@ -1,177 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-use eutil::fptr_is_null;
-use libc::{size_t, c_int, c_ushort,c_void};
-use libc::types::os::arch::c95::wchar_t;
-use mem::{new0,newarray0,delete,deletearray};
-use std::mem;
-use std::ptr;
-use types::{cef_string_utf16_t, cef_string_utf8_t, cef_string_wide_t};
-use types::{cef_string_userfree_utf16_t, cef_string_userfree_utf8_t, cef_string_userfree_wide_t};
-
-//cef_string
-
-#[no_mangle]
-extern "C" fn string_wide_dtor(str: *mut wchar_t) {
- deletearray(str as *mut c_void)
-}
-
-#[no_mangle]
-extern "C" fn string_utf8_dtor(str: *mut u8) {
- deletearray(str as *mut c_void)
-}
-
-#[no_mangle]
-extern "C" fn string_utf16_dtor(str: *mut c_ushort) {
- deletearray(str as *mut c_void)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_userfree_wide_free(cs: *mut cef_string_userfree_wide_t) {
- cef_string_wide_clear(cs);
- delete(cs as *mut c_void)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_userfree_utf8_free(cs: *mut cef_string_userfree_utf8_t) {
- cef_string_utf8_clear(cs);
- delete(cs as *mut c_void)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_userfree_utf16_free(cs: *mut cef_string_userfree_utf16_t) {
- cef_string_utf16_clear(cs);
- delete(cs as *mut c_void)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_utf8_clear(cs: *mut cef_string_utf8_t) {
- unsafe {
- if !fptr_is_null(mem::transmute((*cs).dtor)) {
- let dtor = (*cs).dtor;
- dtor((*cs).str);
- }
- (*cs).length = 0;
- (*cs).str = 0 as *mut u8;
- (*cs).dtor = mem::transmute(0 as *const u8);
- }
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_userfree_utf8_alloc() -> *mut cef_string_utf8_t {
- #![inline(never)]
- new0::<cef_string_utf8_t>(1)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_utf8_set(src: *const u8, src_len: size_t, output: *mut cef_string_utf8_t, copy: c_int) -> c_int {
- cef_string_utf8_clear(output);
- unsafe {
- if copy != 0 {
- if !src.is_null() && src_len > 0 {
- (*output).str = newarray0::<u8>(src_len + 1);
- if (*output).str.is_null() {
- return 0;
- }
-
- ptr::copy_memory((*output).str, src, src_len as uint);
- (*output).length = src_len;
- (*output).dtor = string_utf8_dtor;
- }
- } else {
- (*output).str = mem::transmute(src);
- (*output).length = src_len;
- (*output).dtor = mem::transmute(0 as *const u8);
- }
- }
- return 1;
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_utf16_clear(cs: *mut cef_string_utf16_t) {
- unsafe {
- if !fptr_is_null(mem::transmute((*cs).dtor)) {
- let dtor = (*cs).dtor;
- dtor((*cs).str);
- }
- (*cs).length = 0;
- (*cs).str = 0 as *mut c_ushort;
- (*cs).dtor = mem::transmute(0 as *const u8);
- }
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_userfree_utf16_alloc() -> *mut cef_string_utf16_t {
- #![inline(never)]
- new0::<cef_string_utf16_t>(1)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_utf16_set(src: *const c_ushort, src_len: size_t, output: *mut cef_string_utf16_t, copy: c_int) -> c_int {
- cef_string_utf16_clear(output);
- unsafe {
- if copy != 0 {
- if !src.is_null() && src_len > 0 {
- (*output).str = newarray0::<c_ushort>(src_len + 1);
- if (*output).str.is_null() {
- return 0;
- }
-
- ptr::copy_memory((*output).str, src, src_len as uint);
- (*output).length = src_len;
- (*output).dtor = string_utf16_dtor;
- }
- } else {
- (*output).str = mem::transmute(src);
- (*output).length = src_len;
- (*output).dtor = mem::transmute(0 as *const u8);
- }
- }
- return 1;
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_wide_clear(cs: *mut cef_string_wide_t) {
- unsafe {
- if !fptr_is_null(mem::transmute((*cs).dtor)) {
- let dtor = (*cs).dtor;
- dtor((*cs).str);
- }
- (*cs).length = 0;
- (*cs).str = 0 as *mut wchar_t;
- (*cs).dtor = mem::transmute(0 as *const u8);
- }
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_userfree_wide_alloc() -> *mut cef_string_wide_t {
- #![inline(never)]
- new0::<cef_string_wide_t>(1)
-}
-
-#[no_mangle]
-pub extern "C" fn cef_string_wide_set(src: *const wchar_t, src_len: size_t, output: *mut cef_string_wide_t, copy: c_int) -> c_int {
- cef_string_wide_clear(output);
- unsafe {
- if copy != 0 {
- if !src.is_null() && src_len > 0 {
- (*output).str = newarray0::<wchar_t>(src_len + 1);
- if (*output).str.is_null() {
- return 0;
- }
-
- ptr::copy_memory((*output).str, src, src_len as uint);
- (*output).length = src_len;
- (*output).dtor = string_wide_dtor;
- }
- } else {
- (*output).str = mem::transmute(src);
- (*output).length = src_len;
- (*output).dtor = mem::transmute(0 as *const u8);
- }
- }
- return 1;
-}
diff --git a/src/components/embedding/task.rs b/src/components/embedding/task.rs
deleted file mode 100644
index 6992149d1b9..00000000000
--- a/src/components/embedding/task.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use libc::c_int;
-use types::cef_thread_id_t;
-
-//FIXME: this should check the current servo task I guess?
-#[no_mangle]
-pub extern "C" fn cef_currently_on(_tid: cef_thread_id_t) -> c_int {
- 1
-}
diff --git a/src/components/embedding/types.rs b/src/components/embedding/types.rs
deleted file mode 100644
index 46a7fa12af4..00000000000
--- a/src/components/embedding/types.rs
+++ /dev/null
@@ -1,1899 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use libc::{c_uint, c_ushort, c_int, c_double, size_t, c_void, c_longlong};
-use libc::types::os::arch::c95::wchar_t;
-
-pub type cef_string_map_t = c_void;
-pub type cef_string_list_t = c_void;
-pub type cef_text_input_context_t = c_void;
-pub type cef_event_handle_t = c_void;
-
-//these all need to be done...
-pub type cef_binary_value = *mut c_void;
-pub type cef_dictionary_value = *mut c_void;
-pub type cef_client_t = c_void;
-pub type cef_request_t = c_void;
-pub type cef_response_t = c_void;
-pub type cef_urlrequest_client_t = c_void;
-pub type cef_frame = *mut c_void;
-pub type cef_domnode = *mut c_void;
-pub type cef_load_handler = *mut c_void;
-pub type cef_request = *mut c_void;
-pub type cef_navigation_type = *mut c_void;
-pub type cef_request_context_t = c_void;
-pub type cef_window_info_t = c_void;
-pub type cef_browser_settings_t = c_void;
-pub type cef_v8context = *mut c_void;
-pub type cef_v8exception = *mut c_void;
-pub type cef_v8stack_trace = *mut c_void;
-pub type cef_window_handle_t = c_void; //FIXME: wtf is this
-
-pub type cef_string_t = cef_string_utf8; //FIXME: this is #defined...
-pub type cef_string_userfree_t = cef_string_t; //FIXME: this is #defined...
-
-pub type cef_string_utf8_t = cef_string_utf8;
-pub type cef_string_userfree_utf8_t = cef_string_utf8;
-pub struct cef_string_utf8 {
- pub str: *mut u8,
- pub length: size_t,
- pub dtor: extern "C" fn(str: *mut u8),
-}
-
-pub type cef_string_utf16_t = cef_string_utf16;
-pub type cef_string_userfree_utf16_t = cef_string_utf16;
-pub struct cef_string_utf16 {
- pub str: *mut c_ushort,
- pub length: size_t,
- pub dtor: extern "C" fn(str: *mut c_ushort),
-}
-
-pub type cef_string_wide_t = cef_string_wide;
-pub type cef_string_userfree_wide_t = cef_string_wide;
-pub struct cef_string_wide {
- pub str: *mut wchar_t,
- pub length: size_t,
- pub dtor: extern "C" fn(str: *mut wchar_t),
-}
-
-pub type cef_main_args_t = cef_main_args;
-pub struct cef_main_args {
- pub argc: c_int,
- pub argv: *const *const u8
-}
-
-pub type cef_color_t = c_uint;
-
-///
-// Existing thread IDs.
-///
-pub enum cef_thread_id_t {
-// BROWSER PROCESS THREADS -- Only available in the browser process.
-
- ///
- // The main thread in the browser. This will be the same as the main
- // application thread if CefInitialize() is called with a
- // CefSettings.multi_threaded_message_loop value of false.
- ///
- TID_UI,
-
- ///
- // Used to interact with the database.
- ///
- TID_DB,
-
- ///
- // Used to interact with the file system.
- ///
- TID_FILE,
-
- ///
- // Used for file system operations that block user interactions.
- // Responsiveness of this thread affects users.
- ///
- TID_FILE_USER_BLOCKING,
-
- ///
- // Used to launch and terminate browser processes.
- ///
- TID_PROCESS_LAUNCHER,
-
- ///
- // Used to handle slow HTTP cache operations.
- ///
- TID_CACHE,
-
- ///
- // Used to process IPC and network messages.
- ///
- TID_IO,
-
-// RENDER PROCESS THREADS -- Only available in the render process.
-
- ///
- // The main thread in the renderer. Used for all WebKit and V8 interaction.
- ///
- TID_RENDERER,
-}
-
-///
-// Navigation types.
-///
-pub enum cef_navigation_type_t {
- NAVIGATION_LINK_CLICKED = 0,
- NAVIGATION_FORM_SUBMITTED,
- NAVIGATION_BACK_FORWARD,
- NAVIGATION_RELOAD,
- NAVIGATION_FORM_RESUBMITTED,
- NAVIGATION_OTHER,
-}
-
-///
-// Mouse button types.
-///
-pub enum cef_mouse_button_type_t {
- MBT_LEFT = 0,
- MBT_MIDDLE,
- MBT_RIGHT,
-}
-
-///
-// Structure representing mouse event information.
-///
-pub type cef_mouse_event_t = cef_mouse_event;
-pub struct cef_mouse_event {
- ///
- // X coordinate relative to the left side of the view.
- ///
- pub x: c_int,
-
- ///
- // Y coordinate relative to the top side of the view.
- ///
- pub y: c_int,
-
- ///
- // Bit flags describing any pressed modifier keys. See
- // cef_event_flags_t for values.
- ///
- pub modifiers: c_uint,
-}
-
-///
-// Post data elements may represent either bytes or files.
-///
-pub enum cef_postdataelement_type_t {
- PDE_TYPE_EMPTY = 0,
- PDE_TYPE_BYTES,
- PDE_TYPE_FILE,
-}
-
-///
-// Flags used to customize the behavior of CefURLRequest.
-///
-pub enum cef_urlrequest_flags_t {
- ///
- // Default behavior.
- ///
- UR_FLAG_NONE = 0,
-
- ///
- // If set the cache will be skipped when handling the request.
- ///
- UR_FLAG_SKIP_CACHE = 1 << 0,
-
- ///
- // If set user name, password, and cookies may be sent with the request.
- ///
- UR_FLAG_ALLOW_CACHED_CREDENTIALS = 1 << 1,
-
- ///
- // If set cookies may be sent with the request and saved from the response.
- // UR_FLAG_ALLOW_CACHED_CREDENTIALS must also be set.
- ///
- UR_FLAG_ALLOW_COOKIES = 1 << 2,
-
- ///
- // If set upload progress events will be generated when a request has a body.
- ///
- UR_FLAG_REPORT_UPLOAD_PROGRESS = 1 << 3,
-
- ///
- // If set load timing info will be collected for the request.
- ///
- UR_FLAG_REPORT_LOAD_TIMING = 1 << 4,
-
- ///
- // If set the headers sent and received for the request will be recorded.
- ///
- UR_FLAG_REPORT_RAW_HEADERS = 1 << 5,
-
- ///
- // If set the CefURLRequestClient::OnDownloadData method will not be called.
- ///
- UR_FLAG_NO_DOWNLOAD_DATA = 1 << 6,
-
- ///
- // 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.
- ///
- UR_FLAG_NO_RETRY_ON_5XX = 1 << 7,
-}
-
-
-///
-// Flags that represent CefURLRequest status.
-///
-pub enum cef_urlrequest_status_t {
- ///
- // Unknown status.
- ///
- UR_UNKNOWN = 0,
-
- ///
- // Request succeeded.
- ///
- UR_SUCCESS,
-
- ///
- // An IO request is pending, and the caller will be informed when it is
- // completed.
- ///
- UR_IO_PENDING,
-
- ///
- // Request was canceled programatically.
- ///
- UR_CANCELED,
-
- ///
- // Request failed for some reason.
- ///
- UR_FAILED,
-}
-
-
-
-///
-// Supported error code values. See net\base\net_error_list.h for complete
-// descriptions of the error codes.
-///
-pub enum cef_errorcode_t {
- ERR_NONE = 0,
- ERR_FAILED = -2,
- ERR_ABORTED = -3,
- ERR_INVALID_ARGUMENT = -4,
- ERR_INVALID_HANDLE = -5,
- ERR_FILE_NOT_FOUND = -6,
- ERR_TIMED_OUT = -7,
- ERR_FILE_TOO_BIG = -8,
- ERR_UNEXPECTED = -9,
- ERR_ACCESS_DENIED = -10,
- ERR_NOT_IMPLEMENTED = -11,
- ERR_CONNECTION_CLOSED = -100,
- ERR_CONNECTION_RESET = -101,
- ERR_CONNECTION_REFUSED = -102,
- ERR_CONNECTION_ABORTED = -103,
- ERR_CONNECTION_FAILED = -104,
- ERR_NAME_NOT_RESOLVED = -105,
- ERR_INTERNET_DISCONNECTED = -106,
- ERR_SSL_PROTOCOL_ERROR = -107,
- ERR_ADDRESS_INVALID = -108,
- ERR_ADDRESS_UNREACHABLE = -109,
- ERR_SSL_CLIENT_AUTH_CERT_NEEDED = -110,
- ERR_TUNNEL_CONNECTION_FAILED = -111,
- ERR_NO_SSL_VERSIONS_ENABLED = -112,
- ERR_SSL_VERSION_OR_CIPHER_MISMATCH = -113,
- ERR_SSL_RENEGOTIATION_REQUESTED = -114,
- ERR_CERT_COMMON_NAME_INVALID = -200,
- ERR_CERT_DATE_INVALID = -201,
- ERR_CERT_AUTHORITY_INVALID = -202,
- ERR_CERT_CONTAINS_ERRORS = -203,
- ERR_CERT_NO_REVOCATION_MECHANISM = -204,
- ERR_CERT_UNABLE_TO_CHECK_REVOCATION = -205,
- ERR_CERT_REVOKED = -206,
- ERR_CERT_INVALID = -207,
- ERR_CERT_END = -208,
- ERR_INVALID_URL = -300,
- ERR_DISALLOWED_URL_SCHEME = -301,
- ERR_UNKNOWN_URL_SCHEME = -302,
- ERR_TOO_MANY_REDIRECTS = -310,
- ERR_UNSAFE_REDIRECT = -311,
- ERR_UNSAFE_PORT = -312,
- ERR_INVALID_RESPONSE = -320,
- ERR_INVALID_CHUNKED_ENCODING = -321,
- ERR_METHOD_NOT_SUPPORTED = -322,
- ERR_UNEXPECTED_PROXY_AUTH = -323,
- ERR_EMPTY_RESPONSE = -324,
- ERR_RESPONSE_HEADERS_TOO_BIG = -325,
- ERR_CACHE_MISS = -400,
- ERR_INSECURE_RESPONSE = -501,
-}
-
-
-///
-// Key event types.
-///
-pub enum cef_key_event_type_t {
- KEYEVENT_RAWKEYDOWN = 0,
- KEYEVENT_KEYDOWN,
- KEYEVENT_KEYUP,
- KEYEVENT_CHAR
-}
-
-///
-// Structure representing keyboard event information.
-///
-pub type cef_key_event_t = cef_key_event;
-pub struct cef_key_event {
- ///
- // The type of keyboard event.
- ///
- pub t: cef_key_event_type_t,
-
- ///
- // Bit flags describing any pressed modifier keys. See
- // cef_event_flags_t for values.
- ///
- pub modifiers: c_uint,
-
- ///
- // 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.
- ///
- pub windows_key_code: c_int,
-
- ///
- // The actual key code genenerated by the platform.
- ///
- pub native_key_code: c_int,
-
- ///
- // 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.
- ///
- pub is_system_key: c_int,
-
- ///
- // The character generated by the keystroke.
- ///
- pub character: c_ushort, //FIXME: can be wchar_t also?
-
- ///
- // Same as |character| but unmodified by any concurrently-held modifiers
- // (except shift). This is useful for working out shortcut keys.
- ///
- pub unmodified_character: c_ushort, //FIXME: can be wchar_t also?
-
- ///
- // True if the focus is currently on an editable field on the page. This is
- // useful for determining if standard key events should be intercepted.
- ///
- pub focus_on_editable_field: c_int,
-}
-
-///
-// Structure representing a rectangle.
-///
-pub type cef_rect_t = cef_rect;
-pub struct cef_rect {
- pub x: c_int,
- pub y: c_int,
- pub width: c_int,
- pub height: c_int,
-}
-
-///
-// Paint element types.
-///
-pub enum cef_paint_element_type_t {
- PET_VIEW = 0,
- PET_POPUP,
-}
-
-///
-// Supported file dialog modes.
-///
-pub enum cef_file_dialog_mode_t {
- ///
- // Requires that the file exists before allowing the user to pick it.
- ///
- FILE_DIALOG_OPEN = 0,
-
- ///
- // Like Open, but allows picking multiple files to open.
- ///
- FILE_DIALOG_OPEN_MULTIPLE,
-
- ///
- // Allows picking a nonexistent file, and prompts to overwrite if the file
- // already exists.
- ///
- FILE_DIALOG_SAVE,
-}
-
-///
-// Supported value types.
-///
-pub enum cef_value_type_t {
- VTYPE_INVALID = 0,
- VTYPE_NULL,
- VTYPE_BOOL,
- VTYPE_INT,
- VTYPE_DOUBLE,
- VTYPE_STRING,
- VTYPE_BINARY,
- VTYPE_DICTIONARY,
- VTYPE_LIST,
-}
-
-///
-// Existing process IDs.
-///
-pub enum cef_process_id_t {
- ///
- // Browser process.
- ///
- PID_BROWSER,
- ///
- // Renderer process.
- ///
- PID_RENDERER,
-}
-
-///
-// Log severity levels.
-///
-pub enum cef_log_severity_t {
- ///
- // Default logging (currently INFO logging).
- ///
- LOGSEVERITY_DEFAULT,
-
- ///
- // Verbose logging.
- ///
- LOGSEVERITY_VERBOSE,
-
- ///
- // INFO logging.
- ///
- LOGSEVERITY_INFO,
-
- ///
- // WARNING logging.
- ///
- LOGSEVERITY_WARNING,
-
- ///
- // ERROR logging.
- ///
- LOGSEVERITY_ERROR,
-
- ///
- // ERROR_REPORT logging.
- ///
- LOGSEVERITY_ERROR_REPORT,
-
- ///
- // Completely disable logging.
- ///
- LOGSEVERITY_DISABLE = 99
-}
-
-
-///
-// Structure representing a message. Can be used on any process and thread.
-///
-pub type cef_process_message_t = cef_process_message;
-pub struct cef_process_message {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns true (1) if this object is valid. Do not call any other functions
- // if this function returns false (0).
- ///
- pub is_valid: extern "C" fn(process_message: *mut cef_process_message) -> c_int,
-
- ///
- // Returns true (1) if the values of this object are read-only. Some APIs may
- // expose read-only objects.
- ///
- pub is_read_only: extern "C" fn(process_message: *mut cef_process_message) -> c_int,
-
- ///
- // Returns a writable copy of this object.
- ///
- pub copy: extern "C" fn(process_message: *mut cef_process_message) -> *mut cef_process_message,
-
- ///
- // Returns the message name.
- ///
- // The resulting string must be freed by calling cef_string_userfree_free().
- pub get_name: extern "C" fn(process_message: *mut cef_process_message) -> *mut cef_string_userfree_t,
-
- ///
- // Returns the list of arguments.
- ///
- pub get_argument_list: extern "C" fn(process_message: *mut cef_process_message) -> *mut cef_list_value,
-}
-
-///
-// 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.
-///
-pub type cef_settings_t = cef_settings;
-pub struct cef_settings {
- ///
- // Size of this structure.
- ///
- pub size: size_t,
-
- ///
- // Set to true (1) to use a single process for the browser and renderer. This
- // run mode is not officially supported by Chromium and is less stable than
- // the multi-process default. Also configurable using the "single-process"
- // command-line switch.
- ///
- pub single_process: c_int,
-
- ///
- // Set to true (1) to disable the sandbox for sub-processes. See
- // cef_sandbox_win.h for requirements to enable the sandbox on Windows. Also
- // configurable using the "no-sandbox" command-line switch.
- ///
- pub no_sandbox: c_int,
-
- ///
- // 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.
- ///
- pub browser_subprocess_path: cef_string_t,
-
- ///
- // Set to true (1) to have the browser process message loop run in a separate
- // thread. If false (0) than the CefDoMessageLoopWork() function must be
- // called from your application message loop.
- ///
- pub multi_threaded_message_loop: c_int,
-
- ///
- // Set to true (1) 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.
- ///
- pub command_line_args_disabled: c_int,
-
- ///
- // 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.
- ///
- pub cache_path: cef_string_t,
-
- ///
- // 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.
- ///
- pub persist_session_cookies: c_int,
-
- ///
- // 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.
- ///
- pub user_agent: cef_string_t,
-
- ///
- // 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 "product-version" command-line switch.
- ///
- pub product_version: cef_string_t,
-
- ///
- // The locale string that will be passed to WebKit. 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.
- ///
- pub locale: cef_string_t,
-
- ///
- // 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.
- ///
- pub log_file: cef_string_t,
-
- ///
- // 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".
- ///
- pub log_severity: cef_log_severity_t,
-
- ///
- // Enable DCHECK in release mode to ease debugging. Also configurable using the
- // "enable-release-dcheck" command-line switch.
- ///
- pub release_dcheck_enabled: c_int,
-
- ///
- // 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.
- ///
- pub javascript_flags: cef_string_t,
-
- ///
- // 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.
- ///
- pub resources_dir_path: cef_string_t,
-
- ///
- // 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.
- ///
- pub locales_dir_path: cef_string_t,
-
- ///
- // Set to true (1) to disable loading of pack files for resources and locales.
- // A resource bundle handler must be provided for the browser and render
- // processes via CefApp::GetResourceBundleHandler() if loading of pack files
- // is disabled. Also configurable using the "disable-pack-loading" command-
- // line switch.
- ///
- pub pack_loading_disabled: c_int,
-
- ///
- // 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.
- ///
- pub remote_debugging_port: c_int,
-
- ///
- // 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.
- ///
- pub uncaught_exception_stack_size: c_int,
-
- ///
- // By default CEF V8 references will be invalidated (the IsValid() method will
- // return false) after the owning context has been released. This reduces the
- // need for external record keeping and avoids crashes due to the use of V8
- // references after the associated context has been released.
- //
- // CEF currently offers two context safety implementations with different
- // performance characteristics. The default implementation (value of 0) uses a
- // map of hash values and should provide better performance in situations with
- // a small number contexts. The alternate implementation (value of 1) uses a
- // hidden value attached to each context and should provide better performance
- // in situations with a large number of contexts.
- //
- // If you need better performance in the creation of V8 references and you
- // plan to manually track context lifespan you can disable context safety by
- // specifying a value of -1.
- //
- // Also configurable using the "context-safety-implementation" command-line
- // switch.
- ///
- pub context_safety_implementation: c_int,
-
- ///
- // Set to true (1) to ignore errors related to invalid SSL certificates.
- // Enabling this setting can lead to potential security vulnerabilities like
- // "man in the middle" attacks. Applications that load content from the
- // internet should not enable this setting. Also configurable using the
- // "ignore-certificate-errors" command-line switch.
- ///
- pub ignore_certificate_errors: c_int,
-
- ///
- // 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.
- ///
- pub background_color: cef_color_t,
-}
-
-///
-// Structure defining the reference count implementation functions. All
-// framework structures must include the cef_base_t structure first.
-///
-pub type cef_base_t = cef_base;
-pub struct cef_base {
- ///
- // Size of the data structure.
- ///
- pub size: size_t,
-
- ///
- // Increment the reference count.
- ///
- pub add_ref: extern "C" fn(base: *mut cef_base) -> c_int,
-
- ///
- // Decrement the reference count. Delete this object when no references
- // remain.
- ///
- pub release: extern "C" fn(base: *mut cef_base) -> c_int,
-
- ///
- // Returns the current number of references.
- ///
- pub get_refct: extern "C" fn(base: *mut cef_base) -> c_int,
-}
-
-///
-// Structure 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. This structure can
-// be used before cef_initialize() is called.
-///
-pub type cef_command_line_t = cef_command_line;
-pub struct cef_command_line {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns true (1) if this object is valid. Do not call any other functions
- // if this function returns false (0).
- ///
- pub is_valid: extern "C" fn(cmd: *mut cef_command_line),
-
- ///
- // Returns true (1) if the values of this object are read-only. Some APIs may
- // expose read-only objects.
- ///
- pub is_read_only: extern "C" fn(cmd: *mut cef_command_line),
-
- ///
- // Returns a writable copy of this object.
- ///
- pub copy: extern "C" fn(cmd: *mut cef_command_line) -> *mut cef_command_line,
-
- ///
- // Initialize the command line with the specified |argc| and |argv| values.
- // The first argument must be the name of the program. This function is only
- // supported on non-Windows platforms.
- ///
- pub init_from_argv: extern "C" fn(cmd: *mut cef_command_line, argc: c_int, argv: *const u8),
-
- ///
- // Initialize the command line with the string returned by calling
- // GetCommandLineW(). This function is only supported on Windows.
- ///
- pub init_from_string: extern "C" fn(cmd: *mut cef_command_line, command_line: *const cef_string_t),
-
- ///
- // Reset the command-line switches and arguments but leave the program
- // component unchanged.
- ///
- pub reset: extern "C" fn(cmd: *mut cef_command_line),
-
- ///
- // Retrieve the original command line string as a vector of strings. The argv
- // array: { program, [(--|-|/)switch[=value]]*, [--], [argument]* }
- ///
- pub get_argv: extern "C" fn(cmd: *mut cef_command_line, argv: *mut cef_string_list_t),
-
- ///
- // Constructs and returns the represented command line string. Use this
- // function cautiously because quoting behavior is unclear.
- ///
- // The resulting string must be freed by calling cef_string_userfree_free().
- pub get_command_line_string: extern "C" fn(cmd: *mut cef_command_line) -> *mut cef_string_userfree_t,
-
- ///
- // Get the program part of the command line string (the first item).
- ///
- // The resulting string must be freed by calling cef_string_userfree_free().
- pub get_program: extern "C" fn(cmd: *mut cef_command_line) -> *mut cef_string_userfree_t,
-
- ///
- // Set the program part of the command line string (the first item).
- ///
- pub set_program: extern "C" fn(cmd: *mut cef_command_line, name: *const cef_string_t),
-
- ///
- // Returns true (1) if the command line has switches.
- ///
- pub has_switches: extern "C" fn(cmd: *mut cef_command_line) -> c_int,
-
- ///
- // Returns true (1) if the command line contains the given switch.
- ///
- pub has_switch: extern "C" fn(cmd: *mut cef_command_line, name: *const cef_string_t) -> c_int,
-
- ///
- // Returns the value associated with the given switch. If the switch has no
- // value or isn't present this function returns the NULL string.
- ///
- // The resulting string must be freed by calling cef_string_userfree_free().
- pub get_switch_value: extern "C" fn(cmd: *mut cef_command_line, name: *const cef_string_t) -> *mut cef_string_userfree_t,
-
- ///
- // Returns the map of switch names and values. If a switch has no value an
- // NULL string is returned.
- ///
- pub get_switches: extern "C" fn(cmd: *mut cef_command_line, switches: cef_string_map_t),
-
- ///
- // Add a switch to the end of the command line. If the switch has no value
- // pass an NULL value string.
- ///
- pub append_switch: extern "C" fn(cmd: *mut cef_command_line, name: *const cef_string_t),
-
- ///
- // Add a switch with the specified value to the end of the command line.
- ///
- pub append_switch_with_value: extern "C" fn(cmd: *mut cef_command_line, name: *const cef_string_t, value: *const cef_string_t),
-
- ///
- // True if there are remaining command line arguments.
- ///
- pub has_arguments: extern "C" fn(cmd: *mut cef_command_line) -> c_int,
-
- ///
- // Get the remaining command line arguments.
- ///
- pub get_arguments: extern "C" fn(cmd: *mut cef_command_line, arguments: *mut cef_string_list_t),
-
- ///
- // Add an argument to the end of the command line.
- ///
- pub append_argument: extern "C" fn(cmd: *mut cef_command_line, argument: *const cef_string_t),
-
- ///
- // Insert a command before the current command. Common for debuggers, like
- // "valgrind" or "gdb --args".
- ///
- pub prepend_wrapper: extern "C" fn(cmd: *mut cef_command_line, wrapper: *const cef_string_t),
-}
-
-
-///
-// Structure that manages custom scheme registrations.
-///
-pub type cef_scheme_registrar_t = cef_scheme_registrar;
-pub struct cef_scheme_registrar {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Register a custom scheme. This function should not be called for the built-
- // in HTTP, HTTPS, FILE, FTP, ABOUT and DATA schemes.
- //
- // If |is_standard| is true (1) 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:
- // <pre>
- // [scheme]://[username]:[password]@[host]:[port]/[url-path]
- // </pre 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 |is_local| is true (1) the scheme will be treated as local (i.e., 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 (1). To allow
- // XMLHttpRequest calls from a local URL to all origins set the
- // CefSettings.universal_access_from_file_urls_allowed value to true (1).
- //
- // If |is_display_isolated| is true (1) the scheme will be treated as display-
- // isolated. This means that pages cannot display these URLs unless they are
- // from the same scheme. For example, pages in another origin cannot create
- // iframes or hyperlinks to URLs with this scheme.
- //
- // This function may be called on any thread. It should only be called once
- // per unique |scheme_name| value. If |scheme_name| is already registered or
- // if an error occurs this function will return false (0).
- ///
- _add_custom_scheme: extern "C" fn(registrar: *mut cef_scheme_registrar,
- scheme_name: *const cef_string_t,
- is_standard: c_int, is_local: c_int,
- is_display_isolated: c_int),
-}
-
-///
-// Structure used to implement a custom resource bundle structure. The functions
-// of this structure may be called on multiple threads.
-///
-pub type cef_resource_bundle_handler_t = cef_resource_bundle_handler;
-pub struct cef_resource_bundle_handler {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Called to retrieve a localized translation for the string specified by
- // |message_id|. To provide the translation set |string| to the translation
- // string and return true (1). To use the default translation return false
- // (0). Supported message IDs are listed in cef_pack_strings.h.
- ///
- pub get_localized_string: extern "C" fn(bundle_handler: *mut cef_resource_bundle_handler,
- message_id: c_int, string: *mut cef_string_t) -> c_int,
-
- ///
- // Called to retrieve data for the resource specified by |resource_id|. To
- // provide the resource data set |data| and |data_size| to the data pointer
- // and size respectively and return true (1). To use the default resource data
- // return false (0). The resource data will not be copied and must remain
- // resident in memory. Supported resource IDs are listed in
- // cef_pack_resources.h.
- ///
- pub get_data_resource: extern "C" fn(bundle_handler: *mut cef_resource_bundle_handler,
- resource_id: c_int, data: *mut *mut c_void, data_size: *mut size_t) -> c_int,
-}
-
-
-
-///
-// Structure representing a list value. Can be used on any process and thread.
-///
-pub type cef_list_value_t = cef_list_value;
-pub struct cef_list_value {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns true (1) if this object is valid. Do not call any other functions
- // if this function returns false (0).
- ///
- pub is_valid: extern "C" fn(list_value: *mut cef_list_value) -> c_int,
-
- ///
- // Returns true (1) if this object is currently owned by another object.
- ///
- pub is_owned: extern "C" fn(list_value: *mut cef_list_value) -> c_int,
-
- ///
- // Returns true (1) if the values of this object are read-only. Some APIs may
- // expose read-only objects.
- ///
- pub is_read_only: extern "C" fn(list_value: *mut cef_list_value) -> c_int,
-
- ///
- // Returns a writable copy of this object.
- ///
- pub copy: extern "C" fn(list_value: *mut cef_list_value) -> *mut cef_list_value,
-
- ///
- // Sets the number of values. If the number of values is expanded all new
- // value slots will default to type null. Returns true (1) on success.
- ///
- pub set_size: extern "C" fn(list_value: *mut cef_list_value, size: size_t) -> c_int,
-
- ///
- // Returns the number of values.
- ///
- pub get_size: extern "C" fn(list_value: *mut cef_list_value) -> size_t,
-
- ///
- // Removes all values. Returns true (1) on success.
- ///
- pub clear: extern "C" fn(list_value: *mut cef_list_value) -> c_int,
-
- ///
- // Removes the value at the specified index.
- ///
- pub remove: extern "C" fn(list_value: *mut cef_list_value) -> c_int,
-
- ///
- // Returns the value type at the specified index.
- ///
- pub get_type: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> cef_value_type_t,
-
- ///
- // Returns the value at the specified index as type bool.
- ///
- pub get_bool: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> c_int,
-
- ///
- // Returns the value at the specified index as type int.
- ///
- pub get_int: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> c_int,
-
- ///
- // Returns the value at the specified index as type double.
- ///
- pub get_double: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> c_double,
-
- ///
- // Returns the value at the specified index as type string.
- ///
- // The resulting string must be freed by calling cef_string_userfree_free().
- pub get_string: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> *mut cef_string_userfree_t,
-
- ///
- // Returns the value at the specified index as type binary.
- ///
- pub get_binary: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> *mut cef_binary_value,
-
- ///
- // Returns the value at the specified index as type dictionary.
- ///
- pub get_dictionary: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> *mut cef_dictionary_value,
-
- ///
- // Returns the value at the specified index as type list.
- ///
- pub get_list: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> *mut cef_list_value,
-
- ///
- // Sets the value at the specified index as type null. Returns true (1) if the
- // value was set successfully.
- ///
- pub set_null: extern "C" fn(list_value: *mut cef_list_value, index: c_int) -> c_int,
-
- ///
- // Sets the value at the specified index as type bool. Returns true (1) if the
- // value was set successfully.
- ///
- pub set_bool: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: c_int) -> c_int,
-
- ///
- // Sets the value at the specified index as type int. Returns true (1) if the
- // value was set successfully.
- ///
- pub set_int: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: c_int) -> c_int,
-
- ///
- // Sets the value at the specified index as type double. Returns true (1) if
- // the value was set successfully.
- ///
- pub set_double: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: c_double) -> c_int,
-
- ///
- // Sets the value at the specified index as type string. Returns true (1) if
- // the value was set successfully.
- ///
- pub set_string: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: *const cef_string_t) -> c_int,
-
- ///
- // Sets the value at the specified index as type binary. Returns true (1) if
- // the value was set successfully. After calling this function the |value|
- // object will no longer be valid. If |value| is currently owned by another
- // object then the value will be copied and the |value| reference will not
- // change. Otherwise, ownership will be transferred to this object and the
- // |value| reference will be invalidated.
- ///
- pub set_binary: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: *mut cef_binary_value) -> c_int,
-
- ///
- // Sets the value at the specified index as type dict. Returns true (1) if the
- // value was set successfully. After calling this function the |value| object
- // will no longer be valid. If |value| is currently owned by another object
- // then the value will be copied and the |value| reference will not change.
- // Otherwise, ownership will be transferred to this object and the |value|
- // reference will be invalidated.
- ///
- pub set_dictionary: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: *mut cef_dictionary_value) -> c_int,
-
- ///
- // Sets the value at the specified index as type list. Returns true (1) if the
- // value was set successfully. After calling this function the |value| object
- // will no longer be valid. If |value| is currently owned by another object
- // then the value will be copied and the |value| reference will not change.
- // Otherwise, ownership will be transferred to this object and the |value|
- // reference will be invalidated.
- ///
- pub set_list: extern "C" fn(list_value: *mut cef_list_value, index: c_int, value: *mut cef_list_value) -> c_int,
-}
-
-///
-// Structure used to implement browser process callbacks. The functions of this
-// structure will be called on the browser process main thread unless otherwise
-// indicated.
-///
-pub type cef_browser_process_handler_t = cef_browser_process_handler;
-pub struct cef_browser_process_handler {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Called on the browser process UI thread immediately after the CEF context
- // has been initialized.
- ///
- pub on_context_initialized: extern "C" fn(browser_handler: *mut cef_browser_process_handler),
-
- ///
- // Called before a child process is launched. Will be called on the browser
- // process UI thread when launching a render process and on the browser
- // process IO thread when launching a GPU or plugin process. Provides an
- // opportunity to modify the child process command line. Do not keep a
- // reference to |command_line| outside of this function.
- ///
- pub on_before_child_process_launch: extern "C" fn(browser_handler: *mut cef_browser_process_handler, command_line: *mut cef_command_line),
-
- ///
- // Called on the browser process IO thread after the main thread has been
- // created for a new render process. Provides an opportunity to specify extra
- // information that will be passed to
- // cef_render_process_handler_t::on_render_thread_created() in the render
- // process. Do not keep a reference to |extra_info| outside of this function.
- ///
- pub on_render_process_thread_created: extern "C" fn(browser_handler: *mut cef_browser_process_handler, extra_info: *mut cef_list_value),
-}
-
-
-///
-// Callback structure for cef_browser_host_t::RunFileDialog. The functions of
-// this structure will be called on the browser process UI thread.
-///
-pub type cef_run_file_dialog_callback_t = cef_run_file_dialog_callback;
-pub struct cef_run_file_dialog_callback {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Called asynchronously after the file dialog is dismissed. If the selection
- // was successful |file_paths| will be a single value or a list of values
- // depending on the dialog mode. If the selection was cancelled |file_paths|
- // will be NULL.
- ///
- pub cont: extern "C" fn(run_file_dialog_callback: *mut cef_run_file_dialog_callback,
- browser_host: *mut cef_browser_host,
- file_paths: *mut cef_string_list_t),
-}
-
-///
-// Structure used to represent the browser process aspects of a browser window.
-// The functions of this structure can only be called in the browser process.
-// They may be called on any thread in that process unless otherwise indicated
-// in the comments.
-///
-pub type cef_browser_host_t = cef_browser_host;
-pub struct cef_browser_host {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns the hosted browser object.
- ///
- pub get_browser: extern "C" fn(browser_host: *mut cef_browser_host) -> *mut cef_browser,
-
- ///
- // Call this function before destroying a contained browser window. This
- // function performs any internal cleanup that may be needed before the
- // browser window is destroyed. See cef_life_span_handler_t::do_close()
- // documentation for additional usage information.
- ///
- pub parent_window_will_close: extern "C" fn(browser_host: *mut cef_browser_host),
-
- ///
- // Request that the browser close. The JavaScript 'onbeforeunload' event will
- // be fired. If |force_close| is false (0) the event handler, if any, will be
- // allowed to prompt the user and the user can optionally cancel the close. If
- // |force_close| is true (1) the prompt will not be displayed and the close
- // will proceed. Results in a call to cef_life_span_handler_t::do_close() if
- // the event handler allows the close or if |force_close| is true (1). See
- // cef_life_span_handler_t::do_close() documentation for additional usage
- // information.
- ///
- pub close_browser: extern "C" fn(browser_host: *mut cef_browser_host, force_close: c_int),
-
- ///
- // Set focus for the browser window. If |enable| is true (1) focus will be set
- // to the window. Otherwise, focus will be removed.
- ///
- pub set_focus: extern "C" fn(browser_host: *mut cef_browser_host, force_close: c_int),
-
- ///
- // Retrieve the window handle for this browser.
- ///
- pub get_window_handle: extern "C" fn(browser_host: *mut cef_browser_host) -> *mut cef_window_handle_t,
-
- ///
- // Retrieve the window handle of the browser that opened this browser. Will
- // return NULL for non-popup windows. This function can be used in combination
- // with custom handling of modal windows.
- ///
- pub get_opener_window_handle: extern "C" fn(browser_host: *mut cef_browser_host) -> *mut cef_window_handle_t,
-
- ///
- // Returns the client for this browser.
- ///
- pub get_client: extern "C" fn(browser_host: *mut cef_browser_host) -> *mut cef_client_t,
-
- ///
- // Returns the request context for this browser.
- ///
- pub get_request_context: extern "C" fn(browser_host: *mut cef_browser_host) -> *mut cef_request_context_t,
-
- ///
- // Get the current zoom level. The default zoom level is 0.0. This function
- // can only be called on the UI thread.
- ///
- pub get_zoom_level: extern "C" fn(browser_host: *mut cef_browser_host) -> c_double,
-
- ///
- // Change the zoom level to the specified value. Specify 0.0 to reset the zoom
- // level. If called on the UI thread the change will be applied immediately.
- // Otherwise, the change will be applied asynchronously on the UI thread.
- ///
- pub set_zoom_level: extern "C" fn(browser_host: *mut cef_browser_host, zoomLevel: c_double),
-
- ///
- // Call to run a file chooser dialog. Only a single file chooser dialog may be
- // pending at any given time. |mode| represents the type of dialog to display.
- // |title| to the title to be used for the dialog and may be NULL to show the
- // default title ("Open" or "Save" depending on the mode). |default_file_name|
- // is the default file name to select in the dialog. |accept_types| is a list
- // of valid lower-cased MIME types or file extensions specified in an input
- // element and is used to restrict selectable files to such types. |callback|
- // will be executed after the dialog is dismissed or immediately if another
- // dialog is already pending. The dialog will be initiated asynchronously on
- // the UI thread.
- ///
- pub run_file_dialog: extern "C" fn(browser_host: *mut cef_browser_host,
- mode: cef_file_dialog_mode_t, title: *const cef_string_t,
- default_file_name: *const cef_string_t, accept_types: *mut cef_string_list_t,
- callback: *mut cef_run_file_dialog_callback),
-
- ///
- // Download the file at |url| using cef_download_handler_t.
- ///
- pub start_download: extern "C" fn(browser_host: *mut cef_browser_host, url: *const cef_string_t),
-
- ///
- // Print the current browser contents.
- ///
- pub print: extern "C" fn(browser_host: *mut cef_browser_host),
-
- ///
- // Search for |searchText|. |identifier| can be used to have multiple searches
- // running simultaniously. |forward| indicates whether to search forward or
- // backward within the page. |matchCase| indicates whether the search should
- // be case-sensitive. |findNext| indicates whether this is the first request
- // or a follow-up.
- ///
- pub find: extern "C" fn(browser_host: *mut cef_browser_host, identifier: c_int, searchText: *const cef_string_t,
- forward: c_int, matchCase: c_int, findNext: c_int),
-
- ///
- // Cancel all searches that are currently going on.
- ///
- pub stop_finding: extern "C" fn(browser_host: *mut cef_browser_host, clearSelection: c_int),
-
- ///
- // Open developer tools in its own window.
- ///
- pub show_dev_tools: extern "C" fn(browser_host: *mut cef_browser_host,
- windowInfo: *const cef_window_info_t,
- client: *mut cef_client_t,
- settings: *const cef_browser_settings_t),
-
- ///
- // Explicitly close the developer tools window if one exists for this browser
- // instance.
- ///
- pub close_dev_tools: extern "C" fn(browser_host: *mut cef_browser_host),
-
- ///
- // Set whether mouse cursor change is disabled.
- ///
- pub set_mouse_cursor_change_disabled: extern "C" fn(browser_host: *mut cef_browser_host,
- disabled: c_int),
-
- ///
- // Returns true (1) if mouse cursor change is disabled.
- ///
- pub is_mouse_cursor_change_disabled: extern "C" fn(browser_host: *mut cef_browser_host) -> c_int,
-
- ///
- // Returns true (1) if window rendering is disabled.
- ///
- pub is_window_rendering_disabled: extern "C" fn(browser_host: *mut cef_browser_host) -> c_int,
-
- ///
- // Notify the browser that the widget has been resized. The browser will first
- // call cef_render_handler_t::GetViewRect to get the new size and then call
- // cef_render_handler_t::OnPaint asynchronously with the updated regions. This
- // function is only used when window rendering is disabled.
- ///
- pub was_resized: extern "C" fn(browser_host: *mut cef_browser_host),
-
- ///
- // Notify the browser that it has been hidden or shown. Layouting and
- // cef_render_handler_t::OnPaint notification will stop when the browser is
- // hidden. This function is only used when window rendering is disabled.
- ///
- pub was_hidden: extern "C" fn(browser_host: *mut cef_browser_host, hidden: c_int),
-
- ///
- // Send a notification to the browser that the screen info has changed. The
- // browser will then call cef_render_handler_t::GetScreenInfo to update the
- // screen information with the new values. This simulates moving the webview
- // window from one display to another, or changing the properties of the
- // current display. This function is only used when window rendering is
- // disabled.
- ///
- pub notify_screen_info_changed: extern "C" fn(browser_host: *mut cef_browser_host),
-
- ///
- // Invalidate the |dirtyRect| region of the view. The browser will call
- // cef_render_handler_t::OnPaint asynchronously with the updated regions. This
- // function is only used when window rendering is disabled.
- ///
- pub invalidate: extern "C" fn(browser_host: *mut cef_browser_host,
- dirtyRect: *const cef_rect, t: cef_paint_element_type_t),
-
- ///
- // Send a key event to the browser.
- ///
- pub send_key_event: extern "C" fn(browser_host: *mut cef_browser_host,
- event: *const cef_key_event),
-
- ///
- // Send a mouse click event to the browser. The |x| and |y| coordinates are
- // relative to the upper-left corner of the view.
- ///
- pub send_mouse_click_event: extern "C" fn(browser_host: *mut cef_browser_host,
- event: *const cef_mouse_event,
- t: cef_mouse_button_type_t,
- mouseUp: c_int, clickCount: c_int),
-
- ///
- // Send a mouse move event to the browser. The |x| and |y| coordinates are
- // relative to the upper-left corner of the view.
- ///
- pub send_mouse_move_event: extern "C" fn(browser_host: *mut cef_browser_host,
- event: *const cef_mouse_event, mouseLeave: c_int),
-
- ///
- // Send a mouse wheel event to the browser. The |x| and |y| coordinates are
- // relative to the upper-left corner of the view. The |deltaX| and |deltaY|
- // values represent the movement delta in the X and Y directions respectively.
- // In order to scroll inside select popups with window rendering disabled
- // cef_render_handler_t::GetScreenPoint should be implemented properly.
- ///
- pub send_mouse_wheel_event: extern "C" fn(browser_host: *mut cef_browser_host,
- event: *const cef_mouse_event, deltaX: c_int, deltaY: c_int),
-
- ///
- // Send a focus event to the browser.
- ///
- pub send_focus_event: extern "C" fn(browser_host: *mut cef_browser_host, setFocus: c_int),
-
- ///
- // Send a capture lost event to the browser.
- ///
- pub send_capture_lost_event: extern "C" fn(browser_host: *mut cef_browser_host),
-
- ///
- // Get the NSTextInputContext implementation for enabling IME on Mac when
- // window rendering is disabled.
- ///
- pub get_nstext_input_context: extern "C" fn(browser_host: *mut cef_browser_host) -> cef_text_input_context_t,
-
- ///
- // Handles a keyDown event prior to passing it through the NSTextInputClient
- // machinery.
- ///
- pub handle_key_event_before_text_input_client: extern "C" fn(browser_host: *mut cef_browser_host,
- key_event: *mut cef_event_handle_t),
-
- ///
- // Performs any additional actions after NSTextInputClient handles the event.
- ///
- pub handle_key_event_after_text_input_client: extern "C" fn(browser_host: *mut cef_browser_host,
- key_event: *mut cef_event_handle_t),
-}
-
-
-///
-// Structure used to represent a browser window. When used in the browser
-// process the functions of this structure may be called on any thread unless
-// otherwise indicated in the comments. When used in the render process the
-// functions of this structure may only be called on the main thread.
-///
-pub type cef_browser_t = cef_browser;
-pub struct cef_browser {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns the browser host object. This function can only be called in the
- // browser process.
- ///
- pub get_host: extern "C" fn(browser: *mut cef_browser) -> *mut cef_browser_host,
-
- ///
- // Returns true (1) if the browser can navigate backwards.
- ///
- pub can_go_back: extern "C" fn(browser: *mut cef_browser) -> c_int,
-
- ///
- // Navigate backwards.
- ///
- pub go_back: extern "C" fn(browser: *mut cef_browser),
-
- ///
- // Returns true (1) if the browser can navigate forwards.
- ///
- pub can_go_forward: extern "C" fn(browser: *mut cef_browser) -> c_int,
-
- ///
- // Navigate forwards.
- ///
- pub go_forward: extern "C" fn(browser: *mut cef_browser),
-
- ///
- // Returns true (1) if the browser is currently loading.
- ///
- pub is_loading: extern "C" fn(browser: *mut cef_browser) -> c_int,
-
- ///
- // Reload the current page.
- ///
- pub reload: extern "C" fn(browser: *mut cef_browser),
-
- ///
- // Reload the current page ignoring any cached data.
- ///
- pub reload_ignore_cache: extern "C" fn(browser: *mut cef_browser),
-
- ///
- // Stop loading the page.
- ///
- pub stop_load: extern "C" fn(browser: *mut cef_browser),
-
- ///
- // Returns the globally unique identifier for this browser.
- ///
- pub get_identifier: extern "C" fn(browser: *mut cef_browser) -> c_int,
-
- ///
- // Returns true (1) if this object is pointing to the same handle as |that|
- // object.
- ///
- pub is_same: extern "C" fn(browser: *mut cef_browser, that: *mut cef_browser) -> c_int,
-
- ///
- // Returns true (1) if the window is a popup window.
- ///
- pub is_popup: extern "C" fn(browser: *mut cef_browser) -> c_int,
-
- ///
- // Returns true (1) if a document has been loaded in the browser.
- ///
- pub has_document: extern "C" fn(browser: *mut cef_browser) -> c_int,
-
- ///
- // Returns the main (top-level) frame for the browser window.
- ///
- pub get_main_frame: extern "C" fn(browser: *mut cef_browser) -> *mut cef_frame,
-
- ///
- // Returns the focused frame for the browser window.
- ///
- pub get_focused_frame: extern "C" fn(browser: *mut cef_browser) -> *mut cef_frame,
-
- ///
- // Returns the frame with the specified identifier, or NULL if not found.
- ///
- pub get_frame_byident: extern "C" fn(browser: *mut cef_browser, identifier: c_longlong) -> *mut cef_frame,
-
- ///
- // Returns the frame with the specified name, or NULL if not found.
- ///
- pub get_frame: extern "C" fn(browser: *mut cef_browser, name: *const cef_string_t) -> *mut cef_frame,
-
- ///
- // Returns the number of frames that currently exist.
- ///
- pub get_frame_count: extern "C" fn(browser: *mut cef_browser) -> size_t,
-
- ///
- // Returns the identifiers of all existing frames.
- ///
- pub get_frame_identifiers: extern "C" fn(browser: *mut cef_browser,
- identifiersCount: *mut size_t,
- identifiers: *mut c_longlong),
-
- ///
- // Returns the names of all existing frames.
- ///
- pub get_frame_names: extern "C" fn(browser: *mut cef_browser, names: *mut cef_string_list_t),
-
- //
- // Send a message to the specified |target_process|. Returns true (1) if the
- // message was sent successfully.
- ///
- pub send_process_message: extern "C" fn(browser: *mut cef_browser, target_process: cef_process_id_t,
- message: *mut cef_process_message) -> c_int,
-}
-
-///
-// Structure used to implement render process callbacks. The functions of this
-// structure will be called on the render process main thread (TID_RENDERER)
-// unless otherwise indicated.
-///
-pub type cef_render_process_handler_t = cef_render_process_handler;
-pub struct cef_render_process_handler {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Called after the render process main thread has been created. |extra_info|
- // is a read-only value originating from
- // cef_browser_process_handler_t::on_render_process_thread_created(). Do not
- // keep a reference to |extra_info| outside of this function.
- ///
- pub on_render_thread_created: extern "C" fn(render_handler: *mut cef_render_process_handler, extra_info: *mut cef_list_value),
-
- ///
- // Called after WebKit has been initialized.
- ///
- pub on_web_kit_initialized: extern "C" fn(render_handler: *mut cef_render_process_handler),
-
- ///
- // Called after a browser has been created. When browsing cross-origin a new
- // browser will be created before the old browser with the same identifier is
- // destroyed.
- ///
- pub on_browser_created: extern "C" fn(render_handler: *mut cef_render_process_handler, browser: *mut cef_browser),
-
- ///
- // Called before a browser is destroyed.
- ///
- pub on_browser_destroyed: extern "C" fn(render_handler: *mut cef_render_process_handler, browser: *mut cef_browser),
-
- ///
- // Return the handler for browser load status events.
- ///
- pub get_load_handler: extern "C" fn(render_handler: *mut cef_render_process_handler) -> *mut cef_load_handler,
-
- ///
- // Called before browser navigation. Return true (1) to cancel the navigation
- // or false (0) to allow the navigation to proceed. The |request| object
- // cannot be modified in this callback.
- ///
- pub on_before_navigation: extern "C" fn(render_handler: *mut cef_render_process_handler,
- browser: *mut cef_browser,
- frame: *mut cef_frame,
- request: *mut cef_request,
- navigation_type: *mut cef_navigation_type,
- is_redirect: c_int) -> c_int,
-
- ///
- // Called immediately after the V8 context for a frame has been created. To
- // retrieve the JavaScript 'window' object use the
- // cef_v8context_t::get_global() function. V8 handles can only be accessed
- // from the thread on which they are created. A task runner for posting tasks
- // on the associated thread can be retrieved via the
- // cef_v8context_t::get_task_runner() function.
- ///
- pub on_context_created: extern "C" fn(render_handler: *mut cef_render_process_handler,
- browser: *mut cef_browser,
- frame: *mut cef_frame,
- context: *mut cef_v8context),
-
- ///
- // Called immediately before the V8 context for a frame is released. No
- // references to the context should be kept after this function is called.
- ///
- pub on_context_released: extern "C" fn(render_handler: *mut cef_render_process_handler,
- browser: *mut cef_browser,
- frame: *mut cef_frame,
- context: *mut cef_v8context),
-
- ///
- // Called for global uncaught exceptions in a frame. Execution of this
- // callback is disabled by default. To enable set
- // CefSettings.uncaught_exception_stack_size 0.
- ///
- pub on_uncaught_exception: extern "C" fn(render_handler: *mut cef_render_process_handler,
- browser: *mut cef_browser,
- frame: *mut cef_frame,
- context: *mut cef_v8context,
- exception: *mut cef_v8exception,
- stackTrace: *mut cef_v8stack_trace),
-
- ///
- // Called when a new node in the the browser gets focus. The |node| value may
- // be NULL if no specific node has gained focus. The node object passed to
- // this function represents a snapshot of the DOM at the time this function is
- // executed. DOM objects are only valid for the scope of this function. Do not
- // keep references to or attempt to access any DOM objects outside the scope
- // of this function.
- ///
- pub on_focused_node_changed: extern "C" fn(render_handler: *mut cef_render_process_handler,
- browser: *mut cef_browser,
- frame: *mut cef_frame,
- node: *mut cef_domnode),
-
- ///
- // Called when a new message is received from a different process. Return true
- // (1) if the message was handled or false (0) otherwise. Do not keep a
- // reference to or attempt to access the message outside of this callback.
- ///
- pub on_process_message_received: extern "C" fn(render_handler: *mut cef_render_process_handler,
- browser: *mut cef_browser,
- source_process: cef_process_id_t,
- message: *mut cef_process_message) ->c_int,
-}
-
-///
-// Implement this structure to provide handler implementations. Methods will be
-// called by the process and/or thread indicated.
-///
-pub type cef_app_t = cef_app;
-pub struct cef_app {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Provides an opportunity to view and/or modify command-line arguments before
- // processing by CEF and Chromium. The |process_type| value will be NULL for
- // the browser process. Do not keep a reference to the cef_command_line_t
- // object passed to this function. The CefSettings.command_line_args_disabled
- // value can be used to start with an NULL command-line object. Any values
- // specified in CefSettings that equate to command-line arguments will be set
- // before this function is called. Be cautious when using this function to
- // modify command-line arguments for non-browser processes as this may result
- // in undefined behavior including crashes.
- ///
- pub on_before_command_line_processing: extern "C" fn(app: *mut cef_app_t, process_type: *const cef_string_t, command_line: *mut cef_command_line),
-
- ///
- // Provides an opportunity to register custom schemes. Do not keep a reference
- // to the |registrar| object. This function is called on the main thread for
- // each process and the registered schemes should be the same across all
- // processes.
- ///
- pub on_register_custom_schemes: extern "C" fn(app: *mut cef_app_t, registrar: *mut cef_scheme_registrar),
-
- ///
- // Return the handler for resource bundle events. If
- // CefSettings.pack_loading_disabled is true (1) a handler must be returned.
- // If no handler is returned resources will be loaded from pack files. This
- // function is called by the browser and render processes on multiple threads.
- ///
- pub get_resource_bundle_handler: extern "C" fn(app: *mut cef_app_t) -> *mut cef_resource_bundle_handler,
-
- ///
- // Return the handler for functionality specific to the browser process. This
- // function is called on multiple threads in the browser process.
- ///
- pub get_browser_process_handler: extern "C" fn(app: *mut cef_app_t) -> *mut cef_browser_process_handler,
-
- ///
- // Return the handler for functionality specific to the render process. This
- // function is called on the render process main thread.
- ///
- pub get_render_process_handler: extern "C" fn(app: *mut cef_app_t) -> *mut cef_render_process_handler,
-}
-
-
-///
-// Structure used to make a URL request. URL requests are not associated with a
-// browser instance so no cef_client_t callbacks will be executed. URL requests
-// can be created on any valid CEF thread in either the browser or render
-// process. Once created the functions of the URL request object must be
-// accessed on the same thread that created it.
-///
-pub type cef_urlrequest_t = cef_urlrequest;
-pub struct cef_urlrequest {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns the request object used to create this URL request. The returned
- // object is read-only and should not be modified.
- ///
- pub get_request: extern "C" fn(url_req: *mut cef_urlrequest) -> *mut cef_request_t,
-
- ///
- // Returns the client.
- ///
- pub get_client: extern "C" fn(url_req: *mut cef_urlrequest) -> *mut cef_urlrequest_client_t,
-
- ///
- // Returns the request status.
- ///
- pub get_request_status: extern "C" fn(url_req: *mut cef_urlrequest) -> cef_urlrequest_status_t,
-
- ///
- // Returns the request error if status is UR_CANCELED or UR_FAILED, or 0
- // otherwise.
- ///
- pub get_request_error: extern "C" fn(url_req: *mut cef_urlrequest) -> cef_errorcode_t,
-
- ///
- // 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.
- ///
- pub get_response: extern "C" fn(url_req: *mut cef_urlrequest) -> *mut cef_response_t,
-
- ///
- // Cancel the request.
- ///
- pub cancel: extern "C" fn(url_req: *mut cef_urlrequest),
-}
-
-
-
-///
-// Structure used to represent a single element in the request post data. The
-// functions of this structure may be called on any thread.
-///
-pub type cef_post_data_element_t = cef_post_data_element;
-pub struct cef_post_data_element {
- ///
- // Base structure.
- ///
- pub base: cef_base,
-
- ///
- // Returns true (1) if this object is read-only.
- ///
- pub is_read_only: extern "C" fn(post_data_element: *mut cef_post_data_element) -> c_int,
-
- ///
- // Remove all contents from the post data element.
- ///
- pub set_to_empty: extern "C" fn(post_data_element: *mut cef_post_data_element),
-
- ///
- // The post data element will represent a file.
- ///
- pub set_to_file: extern "C" fn(post_data_element: *mut cef_post_data_element, fileName: *const cef_string_t),
-
- ///
- // The post data element will represent bytes. The bytes passed in will be
- // copied.
- ///
- pub set_to_bytes: extern "C" fn(post_data_element: *mut cef_post_data_element,
- size: size_t, bytes: *const c_void),
-
- ///
- // Return the type of this post data element.
- ///
- pub get_type: extern "C" fn(post_data_element: *mut cef_post_data_element) -> cef_postdataelement_type_t,
-
- ///
- // Return the file name.
- ///
- // The resulting string must be freed by calling cef_string_userfree_free().
- pub get_file: extern "C" fn(post_data_element: *mut cef_post_data_element) -> *mut cef_string_userfree_t,
-
- ///
- // Return the number of bytes.
- ///
- pub get_bytes_count: extern "C" fn(post_data_element: *mut cef_post_data_element) -> size_t,
-
- ///
- // Read up to |size| bytes into |bytes| and return the number of bytes
- // actually read.
- ///
- pub get_bytes: extern "C" fn(post_data_element: *mut cef_post_data_element,
- size: size_t, bytes: *mut c_void) -> size_t,
-}
-
-
-///
-// Structure used to represent post data for a web request. The functions of
-// this structure may be called on any thread.
-///
-pub type cef_post_data_t = cef_post_data;
-pub struct cef_post_data {
- ///
- // Base structure.
- ///
- pub base: cef_base_t,
-
- ///
- // Returns true (1) if this object is read-only.
- ///
- pub is_read_only: extern "C" fn(post_data: *mut cef_post_data) -> c_int,
-
- ///
- // Returns the number of existing post data elements.
- ///
- pub get_element_count: extern "C" fn(post_data: *mut cef_post_data) -> size_t,
-
- ///
- // Retrieve the post data elements.
- ///
- pub get_elements: extern "C" fn(post_data: *mut cef_post_data,
- elements_count: *mut size_t, elements: *mut *mut cef_post_data_element),
-
- ///
- // Remove the specified post data element. Returns true (1) if the removal
- // succeeds.
- ///
- pub remove_element: extern "C" fn(post_data: *mut cef_post_data,
- element: *mut cef_post_data_element) -> c_int,
-
- ///
- // Add the specified post data element. Returns true (1) if the add succeeds.
- ///
- pub add_element: extern "C" fn(post_data: *mut cef_post_data,
- element: *mut cef_post_data_element) -> c_int,
-
- ///
- // Remove all existing post data elements.
- ///
- pub remove_elements: extern "C" fn(post_data: *mut cef_post_data),
-}
diff --git a/src/components/embedding/urlrequest.rs b/src/components/embedding/urlrequest.rs
deleted file mode 100644
index e55546325d0..00000000000
--- a/src/components/embedding/urlrequest.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-
-use types::{cef_request_t, cef_urlrequest_client_t, cef_urlrequest_t};
-
-
-#[no_mangle]
-pub extern "C" fn cef_urlrequest_create(_request: *mut cef_request_t,
- _client: *mut cef_urlrequest_client_t)
- -> *mut cef_urlrequest_t {
- 0 as *mut cef_urlrequest_t
-}