sig
type win_ref = { win_ref_value : int; }
val fresh_win_ref : unit -> Browser.Impl.win_ref
type page_ref = { page_ref_value : int; }
val fresh_page_ref : unit -> Browser.Impl.page_ref
type node_ref = { node_ref_value : int; }
val fresh_node_ref : unit -> Browser.Impl.node_ref
type act_ref = { act_ref_value : int; }
val fresh_act_ref : unit -> Browser.Impl.act_ref
type context = {
context_win : Browser.Impl.win_ref;
context_act : Browser.Impl.act_ref;
}
type inner =
Scoped_expr of Browser.Impl.context * Browser.Impl.inner Io.expr
| R of Browser.Impl.rslt
and rslt =
Null_value
| Bool_value of bool
| Int_value of int
| String_value of string
| Url_value of Io.url
| Type_value of Io.typ
| Code_value of Io.void Io.expr
| Win_value of Browser.Impl.win_ref
| Node_value of Browser.Impl.node_ref
| Closure of Browser.Impl.context * Io.var * Io.var list *
Browser.Impl.inner Io.expr
| Error of string
val prim1 : string -> Browser.Impl.rslt -> Browser.Impl.rslt
val prim2 :
string -> Browser.Impl.rslt -> Browser.Impl.rslt -> Browser.Impl.rslt
val to_inner_expr : Io.void Io.expr -> Browser.Impl.inner Io.expr
type node =
Para_node of Io.elt_id option * string
| Link_node of Io.elt_id option * Io.url * string
| Textbox_node of Io.elt_id option * string * Browser.Impl.rslt list
| Button_node of Io.elt_id option * string * Browser.Impl.rslt list
| Inl_script_node of Io.elt_id option * Io.void Io.expr * bool
| Rem_script_node of Io.elt_id option * Io.url * bool
| Div_node of Io.elt_id option * Browser.Impl.node_ref list
type queued_expr =
Known_expr of Browser.Impl.inner Io.expr
| Unknown_expr of Browser.Impl.node_ref
type page = {
page_location : Io.url;
page_document : Browser.Impl.node_ref option;
page_environment : Browser.Impl.act_ref;
page_script_queue : Browser.Impl.queued_expr list;
}
type win_name = No_name | Str_name of string
type win_opener = No_opener | Win_opener of Browser.Impl.win_ref
type win = {
win_name : Browser.Impl.win_name;
win_opener : Browser.Impl.win_opener;
win_page : Browser.Impl.page_ref;
}
type act = {
act_parent : Browser.Impl.act_ref option;
act_vars : (Io.var * Browser.Impl.rslt) list;
}
type cookie_id = {
cookie_id_domain : Domain.domain;
cookie_id_path : Io.path;
cookie_id_key : string;
}
type dst =
Xhr_dst of Browser.Impl.page_ref * Browser.Impl.rslt
| Doc_dst of Browser.Impl.win_ref
| Script_dst of Browser.Impl.page_ref * Browser.Impl.node_ref
type b = {
browser_windows : (Browser.Impl.win_ref * Browser.Impl.win) list;
browser_pages : (Browser.Impl.page_ref * Browser.Impl.page) list;
browser_nodes : (Browser.Impl.node_ref * Browser.Impl.node) list;
browser_environments : (Browser.Impl.act_ref * Browser.Impl.act) list;
browser_cookies : (Browser.Impl.cookie_id * string) list;
browser_connections :
(Domain.domain * Io.req_uri * Browser.Impl.dst) list;
}
type task = {
task_win : Browser.Impl.win_ref;
task_expr : Browser.Impl.inner Io.expr;
}
val upd_assoc : 'a -> 'b -> ('a * 'b) list -> ('a * 'b) list
val find_pos : 'a -> ('a * 'b) list -> int
val page_valid : Browser.Impl.page_ref -> Browser.Impl.b -> bool
val page_assoc :
Browser.Impl.page_ref -> Browser.Impl.b -> Browser.Impl.page option
val page_assoc_valid :
Browser.Impl.page_ref -> Browser.Impl.b -> Browser.Impl.page
val page_update :
Browser.Impl.page_ref ->
Browser.Impl.page -> Browser.Impl.b -> Browser.Impl.b
val page_new :
Browser.Impl.page ->
Browser.Impl.b -> Browser.Impl.page_ref * Browser.Impl.b
val page_remove : Browser.Impl.page_ref -> Browser.Impl.b -> Browser.Impl.b
val page_win :
Browser.Impl.page_ref -> Browser.Impl.b -> Browser.Impl.win_ref option
val win_valid : Browser.Impl.win_ref -> Browser.Impl.b -> bool
val win_assoc :
Browser.Impl.win_ref -> Browser.Impl.b -> Browser.Impl.win option
val win_assoc_valid :
Browser.Impl.win_ref -> Browser.Impl.b -> Browser.Impl.win
val win_update :
Browser.Impl.win_ref ->
Browser.Impl.win -> Browser.Impl.b -> Browser.Impl.b
val win_new :
Browser.Impl.win ->
Browser.Impl.b -> Browser.Impl.win_ref * Browser.Impl.b
val win_remove : Browser.Impl.win_ref -> Browser.Impl.b -> Browser.Impl.b
val win_from_win_name :
string -> Browser.Impl.b -> Browser.Impl.win_ref option
val win_from_user_window :
Io.user_window -> Browser.Impl.b -> Browser.Impl.win_ref option
val win_to_user_window :
Browser.Impl.win_ref -> Browser.Impl.b -> Io.user_window
val node_valid : Browser.Impl.node_ref -> Browser.Impl.b -> bool
val node_assoc_valid :
Browser.Impl.node_ref -> Browser.Impl.b -> Browser.Impl.node
val node_update :
Browser.Impl.node_ref ->
Browser.Impl.node -> Browser.Impl.b -> Browser.Impl.b
val node_new :
Browser.Impl.node ->
Browser.Impl.b -> Browser.Impl.node_ref * Browser.Impl.b
type node_parent =
No_parent
| Page_parent of Browser.Impl.page_ref
| Parent_node of Browser.Impl.node_ref
val node_parent :
Browser.Impl.node_ref -> Browser.Impl.b -> Browser.Impl.node_parent
val node_page :
Browser.Impl.node_ref -> Browser.Impl.b -> Browser.Impl.page_ref option
val act_valid : Browser.Impl.act_ref -> Browser.Impl.b -> bool
val act_assoc_valid :
Browser.Impl.act_ref -> Browser.Impl.b -> Browser.Impl.act
val act_update :
Browser.Impl.act_ref ->
Browser.Impl.act -> Browser.Impl.b -> Browser.Impl.b
val act_new :
Browser.Impl.act ->
Browser.Impl.b -> Browser.Impl.act_ref * Browser.Impl.b
val get_var :
Io.var ->
Browser.Impl.act_ref -> Browser.Impl.b -> Browser.Impl.rslt option
val create_var :
Io.var ->
Browser.Impl.rslt ->
Browser.Impl.act_ref -> Browser.Impl.b -> Browser.Impl.b
val set_var :
Io.var ->
Browser.Impl.rslt ->
Browser.Impl.act_ref -> Browser.Impl.b -> Browser.Impl.b
val prefix : 'a list -> 'a list -> bool
val get_site_cookies :
Domain.domain -> Io.path -> Browser.Impl.b -> (string * string) list
val del_site_cookie :
Domain.domain -> Io.path -> string -> Browser.Impl.b -> Browser.Impl.b
val del_site_cookies :
Domain.domain ->
Io.path -> string list -> Browser.Impl.b -> Browser.Impl.b
val set_site_cookie :
Domain.domain ->
Io.path -> string * string -> Browser.Impl.b -> Browser.Impl.b
val set_site_cookies :
Domain.domain ->
Io.path -> (string * string) list -> Browser.Impl.b -> Browser.Impl.b
val upd_cookies :
Domain.domain ->
Io.req_uri -> Io.resp -> Browser.Impl.b -> Browser.Impl.b
val net_connection_domain_nth :
Domain.domain ->
int -> Browser.Impl.b -> (Io.req_uri * Browser.Impl.dst) option
val net_connection_domain_remove_nth :
Domain.domain -> int -> Browser.Impl.b -> Browser.Impl.b
val http_send :
Domain.domain ->
Io.req_uri ->
string ->
Browser.Impl.dst -> Browser.Impl.b -> Browser.Impl.b * Io.output_event
val render_doc_as_list :
Browser.Impl.node_ref -> Browser.Impl.b -> Io.rendered_doc list
val render_page :
Browser.Impl.page_ref -> Browser.Impl.b -> Io.rendered_doc option
val page_update_event :
Browser.Impl.page_ref -> Browser.Impl.b -> Io.output_event
val build_win :
Browser.Impl.win_name ->
Io.url ->
Browser.Impl.win_opener ->
Browser.Impl.node_ref option ->
Browser.Impl.b -> Browser.Impl.win * Browser.Impl.b
val fetch_url :
Io.url ->
Browser.Impl.win_ref ->
Browser.Impl.b -> Browser.Impl.b * Io.output_event list
val open_win :
Browser.Impl.win_name ->
Io.url ->
Browser.Impl.win_opener ->
Browser.Impl.b ->
Browser.Impl.win_ref * Browser.Impl.b * Io.output_event list
val close_doc_request_connections :
Browser.Impl.win_ref -> Browser.Impl.b -> Browser.Impl.b
val direct_win :
Browser.Impl.win_ref ->
Io.url -> Browser.Impl.b -> Browser.Impl.b * Io.output_event list
val build_node_tree :
Io.doc ->
Browser.Impl.node_ref * (Browser.Impl.node_ref * Browser.Impl.node) list
val split_queued_exprs :
Browser.Impl.queued_expr list ->
Browser.Impl.inner Io.expr list * Browser.Impl.queued_expr list
val process_node_scripts_aux :
Browser.Impl.page_ref ->
Browser.Impl.node_ref ->
Browser.Impl.b ->
Browser.Impl.b * Browser.Impl.queued_expr list * Io.output_event list
val process_node_scripts_list :
Browser.Impl.page_ref ->
Browser.Impl.node_ref list ->
Browser.Impl.b ->
Browser.Impl.b * Browser.Impl.queued_expr list * Io.output_event list
val process_node_scripts :
Browser.Impl.page_ref ->
Browser.Impl.node_ref ->
Browser.Impl.b ->
Browser.Impl.b * Io.output_event list * Browser.Impl.task list
val textbox_handlers_in_tree :
Browser.Impl.node_ref ->
Browser.Impl.b -> (Browser.Impl.node_ref * Browser.Impl.rslt list) list
val button_handlers_in_tree :
Browser.Impl.node_ref ->
Browser.Impl.b -> (Browser.Impl.node_ref * Browser.Impl.rslt list) list
val textbox_handlers_in_pos :
Browser.Impl.win_ref ->
int ->
Browser.Impl.b -> (Browser.Impl.node_ref * Browser.Impl.rslt list) option
val button_handlers_in_pos :
Browser.Impl.win_ref ->
int ->
Browser.Impl.b -> (Browser.Impl.node_ref * Browser.Impl.rslt list) option
val node_remove :
Browser.Impl.node_ref ->
Browser.Impl.b -> Browser.Impl.b * Io.output_event list
val node_descendents :
bool ->
Browser.Impl.node_ref -> Browser.Impl.b -> Browser.Impl.node_ref list
val insert_in_list : 'a -> 'a list -> int -> 'a list
val node_insert :
Browser.Impl.node_ref ->
Browser.Impl.node_ref ->
int ->
Browser.Impl.b ->
Browser.Impl.b * Io.output_event list * Browser.Impl.task list
val rslt_to_elt_it_opt : Browser.Impl.rslt -> Io.elt_id option
val step_expr :
Browser.Impl.context ->
Browser.Impl.b ->
Browser.Impl.inner Io.expr ->
Browser.Impl.b * Browser.Impl.inner Io.expr * Io.output_event list *
Browser.Impl.task list
type waiting = { waiting_state : Browser.Impl.b; }
type running = {
running_state : Browser.Impl.b;
running_task_queue : Browser.Impl.task list;
}
type input_event = Io.input_event
type output_event = Io.output_event
type state =
Waiting of Browser.Impl.waiting
| Running of Browser.Impl.running
val start : Browser.Impl.state
val handle_load_in_new_win_event :
Browser.Impl.win_opener ->
Browser.Impl.win_name ->
Io.url ->
Browser.Impl.b -> Browser.Impl.state * Browser.Impl.output_event list
val handle_load_in_win_event :
Browser.Impl.win_ref ->
Io.url ->
Browser.Impl.b -> Browser.Impl.state * Browser.Impl.output_event list
val handle_close_win_event :
Browser.Impl.win_ref ->
Browser.Impl.b -> Browser.Impl.state * Browser.Impl.output_event list
val handle_input_text_event :
Browser.Impl.win_ref ->
int ->
string ->
Browser.Impl.b -> Browser.Impl.state * Browser.Impl.output_event list
val handle_click_button_event :
Browser.Impl.win_ref ->
int ->
Browser.Impl.b -> Browser.Impl.state * Browser.Impl.output_event list
val get_ready_exprs :
Browser.Impl.win_ref ->
Browser.Impl.b -> Browser.Impl.task list * Browser.Impl.b
val handle_network_response_event :
Io.net_connection ->
Io.resp ->
Browser.Impl.b -> Browser.Impl.state * Browser.Impl.output_event list
val receive :
Browser.Impl.input_event ->
Browser.Impl.waiting ->
Browser.Impl.state * Browser.Impl.output_event list
val continue :
Browser.Impl.running ->
Browser.Impl.state * Browser.Impl.output_event list
end