Brr_css.{Highlight,HighlightRegistry,Css} a binding to the CSS Custom Highlight API.Brr.Range a binding to Range objects.Brr.Regexp a binding to RegExp objects.El.text_content a binding to Node.textContent.El.Prop.hidden binding the hidden property.El.scroll_into_view. Thanks to Paul-Elliot Anglès d'Auriac for the patch (#70).El.Style.zoom property. Thanks to Paul-Elliot Anglès d'Auriac for the patch (#74).El.offset_{h,w,top,left,parent}. Thanks to Paul-Elliot Anglès d'Auriac for the patch (#76).Window.parent. Thanks to Paul-Elliot Anglès d'Auriac for the patch (#73).Window.inner_{width,height}. Thanks to Paul-Elliot Anglès d'Auriac for the patch (#75).Canvas.attrs_create which fixes the shadowing issue by the Canvas.attrs getter that prevented from creating these values. Thanks to Tim Ats for reporting and @naora for fixing (#63, #79).`Type_error case to Jv.Error.enum.Brr_io.Geolocalation. Thanks to Jérôme Vouillon (#80).At.wrap attribute, it was defined as value. Thanks to Brendan Zabarauskas for the patch (#66).Result_syntax.(and*). Thanks to Jérôme Vouillon.Service_worker.{script_url,state}. Thanks to Jérôme Vouillon.Tarray.sub. Thanks to Jérôme Vouillon.Fetch.Ev.preload_response. Thanks to Jérôme Vouillon.name in Crypto_algo.Aes_gcm_params.v to AES-GCM. Thanks to @EruEri for the patch (#65).wasm_of_ocaml. Thanks to Jérôme Vouillon for the patchset (#51).Tarray.{get,set}. These function become less efficient in order to support wasm_of_ocaml. Use Tarray.to_bigarray1 to convert to a bigarray and operate on that instead (#51).Jstr.pad_{start,end} specifying the [pad] optional argument was being ignored. Thanks to Valentin Gatien-Baron for noticing.Jv.is_array a binding to Array.isArray which is the recommended way to test a value for an array. Thanks to Valentin Gatien-Baron for the patch (#59).Brr_webaudio.Audio.Node.Media_element_source.create the MediaElementAudioSourceNode property was mispelled. Thanks to Emile Trotignon for the report and the patch (#57).Fut.tick in the presence of effects compilation.At.download attribute constructor.At.draggable. It is enumerated not a boolean attribute. Thanks to Ulysse for the patch (#55).At.class' attribute values. Allow to specify multiple classes in a single At.t value. This was not possible before which is surprising. Thanks to Basile Clément for noticing and patching (#53).brr.note has been migrated to the note.brr library available via the note package. The toplevel modules were renamed from Brr_note* to Note_brr*.Fix encoding mess in Brr.Uri which tried to expose a model that is not workable in practice due to the way the URI standard is defined.
Uri.with_uri no longer perform percent decoding and encoding for you.Uri.[with_]{query,fragment}_params.Uri.[with_]{path_segments}.Thanks to Max Lang for the report and making sure the new API makes sense (#50).
Add canvas color space support (note: unsupported on Firefox for now).
C2d.attrs, add color_space and will_read_frequently attributes.C2d.Image_data.color_space and a ?color_space optional argument to C2d.{create,get}_image_data and C2d.Image_data.create.Brr.Blob.{array_buffer,text,data_uri}: add an optional argument ?progress. If provided the load happens via a FileReader object and load progress is reported (#39).Brr_webgpu, bindings for WebGPU. Supported by a grant from the OCaml Software Foundation.Brr.El.scroll_into_view, make align_v align according to specification (did the exact converse).Brr_io.Fetch.cache becomes a function taking unit. It seems accessing it at initalisation time trips the (latest ?) Firefox WebWorkers.Brr_canvas.Gl module initialisation bits safe when there is no WebGLRenderingContext. Thanks to Haochen Kotoi-Xie for reporting.js_of_ocaml effect supportThe following changes are needed for the upcoming effect support in js_of_ocaml. Thanks to Jérôme Vouillon for his help.
Jv.callback. When the effect support lands it will no longer be possible to invoke an OCaml function f from JavaScript by simply using (Jv.repr f) to get a Jv.t value as was suggested in the cookbook. You have to use (Jv.callback ~arity f) with arity the arity of the function. The recipes of the cookbook to deal with callbacks and exposing OCaml functions to JavaScript have been updated accordingly.Brr.Ev.listen no longer returns unit but an abstract value of type Brr.Ev.listener. If you don't need to unlisten you can simply ignore that value. If you do, see next point.Brr.Ev.unlisten is changed to take a value of type Brr.Ev.listener. Previously you had to invoke it with the same arguments you gave to Brr.Ev.listen like in JavaScript.Brr_webmidi, bindings for Web MIDI.Brr.At, add support for accesskey, action, autocomplete, autofocus, list, method, selected, style attributes. Make sure MDN doc links do not 404.Brr.At.float.Brr.At.{void,is_void,if',if_some} and deprecate Brr.At.{add_if,add_if_some}. The new scheme if more convenient and clearer when working with list literals.Brr.File.relative_path.Brr_canvas.{C2d,Gl}.get_context and deprecate Brr_canvas.{C2d,Gl}.create whose names are misleading (#36).Brr_canvas.C2d.{set_transform',transform'} taking matrix components directly.Jstr.binary_{of,to}_octets to convert between OCaml strings as sequence of bytes and JavaScript binary strings (#18 again)Brr.El.v, perform At.style attribute merging like we do with At.class. This is a breaking change if you had El.v calls with multiple style attributes definition and expected the last one to take over. Note that the At.style value is introduced in this version.Brr_canvas.C2d.transform it was binding to resetTransform instead of transform (#38).js_of_ocaml-toplevel changes.Brr.El accessing document or Brr_note accessing mutation observers). These modules may still be linked in your web worker code (e.g. if you fork()-like your workers) in which case these toplevel initialisation bits would get executed and fail.Require js_of_ocaml 4.0.0:
brr, js_of_ocaml, and gen_js_api bindings to be used in the same program.-no-check-prims during bytecode linking is no longer required.Thanks to Hugo Heuzard for making the ground work in js_of_ocaml and providing a patch (#2, #33).
Brr.Ev.beforeunload.Brr.Ev.Pointer.as_mouse.Brr.Ev.{Drag,Wheel}.as_mouse_event into Brr.Ev.{Drag,Wheel}.as_mouse to avoid coercion madness.Brr.El.{previous,next}_sibling.Brr.El.remove_inline_style.Brr.El.Style.{top,left,right,bottom,position,z_index}.Blob.of_jstr. It was not working. Thanks to Kiran Gopinathan for the report (#31).Ev.target_{of,to}_jv take and return a Jv.t value instead of an 'a. Thanks to Joseph Price for the report (#28).Brr.Base64 module (atob, bota) to make it more useful and less error prone (#18). Thanks to Armaël Guéneau for shooting himself in the foot.Brr.Window.open' (#20). Thanks to Boris Dob for the suggestion and the patch.Brr_webcrypto.Crypto_algo.rsassa_pks1_v1_5 to rsassa_pkcs1_v1_5. Thanks to Hannes Mehnert for the report and the fix.Brr.El.parent (#10). Thanks to Sébastien Dailly for the suggestion and the patch.Brr.El.{find_first_by_selector,fold_find_by_selector} to lookup elements by CSS selectors.Jstr.{starts_with,ends_with}, change labels to follow Stdlib labelling.base argument to Brr.Uri.{v,of_jstr}.Brr.Uri.Params.is_empty.Brr_io.Form.Data.{is_empty,has_file_entry,of_uri_params,to_uri_params}.Brr_canvas.Image_data.create, Brr_webaudio.Node.connect_node, Brr_webaudio.Node.connect_param to not trigger the 4.12 definition of the warning unerasable-optional-argument.Brr_canvas.Gl for browsers that do not support GL2 contexts. On these browsers this would lead to obscure failures in separate compilation mode. Thanks to Duncan Holm for the report (#9).Request.Credentials.include.Blob.of_array_buffer (#23). Didn't work at all. Thanks to Armaël Guéneau for the report and the fix.Jstr.concat when sep is unspecified (#14). Thanks to Sébastien Dailly for the report.Brr_webcrypto.Subtle_crypto.{export,import}_key. Thanks to Romain Calascibetta for the report and the fix.First release.