Module B0_ui.Browser
Web browser interaction.
Browser shows URIs in the user's browsers. Up to severe platform and browser application limitation it tries to limit the creation of new tabs, reloading existing one which have the same URI or are, if requested, prefixed by the URI.
Cli arguments
val browser : B0_std.Cmd.t option Cmdliner.Term.tbrowseris a--browseroption andBROWSERenvironment variable to use with thebrowserargument offind.
val prefix : bool Cmdliner.Term.tprefixis--prefixoption to use theprefixargument of Show URIs.
val background : bool Cmdliner.Term.tbackgroundis a--backgroundoption to use thebackgroundargument of!show.
Show URIs
val find : ?search:B0_std.Fpath.t list -> browser:B0_std.Cmd.t option -> unit -> (t option, string) Stdlib.resultfind ~search ~browsertries to find a browser in a rather complex and platform dependent way.
val show : background:bool -> prefix:bool -> t option -> string -> (unit, string) Stdlib.resultshow ~background ~prefix browser urishows URI using browserbrowser(ifNonean error message is returned mentioning that no browser was found. Ifbackgroundistruetries to keep the browser application in the background, iffalsebrings it in user focus.The function tries to limit the creation of new tabs using the following strategy:
Repeat from the frontmost browser window to the backmost one until a tab to reload is found:
- If the window's current tab's URI is
uri(or is prefixed byuriwhenprefixistrue), reload this tab. - If the window has one or more tab whose URI is
uri(or is prefixed byuriwhenprefixistrue), pick the left most one, make it current in the window and reload it.
- If the window's current tab's URI is
- If no tab was found, get the frontmost window. If the current tab has no URI, use that tab with
uriotherwise create a new tab withuriand make it current for the window.