- Improve ServiceWorker promise support
- Add support for
Document#head
- Add
Iterable
mixin to support JS Iterable interface- Allows you to
include Iterable
on any JS iterable to make itEnumerable
- Allows you to
- Add initial Canvas support
- Add default
initialize
forDelegateNative
- Return
nil
fromDelegateNative
methods that explicitly returnundefined
- Previously, this would raise
NoMethodError
- Previously, this would raise
- Yield timestamp to
Bowser.window.animation_frame
block
- Allow videos to be full-screened
This appears to have been an accidental release. I actually don't know what happened here.
- IndexedDB support (#22)
- ServiceWorker support (#5)
- Subscript operators (
[]
and[]=
) to get/set HTML attributes onElement
- Added
HTTP::Response#ok?
to align withResponse.ok
- Fix bug with falsy JS values as element properties
- Yield request object in
HTTP
methods (like.fetch
and.upload
) - Two
Element
instances holding the same native element are equal (==
) - Fix travis + phantomjs 2
- Add request upload object
- Add Geolocation support
- Use event.target instead of event.currentTarget for native events
- Fix spec failure with a more recent
opal-rspec
- Remove opal-rspec version restriction
- Improve native pass-through in Event
- Allow WebSockets to be closed
- Allow passing data, headers, and method with HTTP.fetch
- Allow WebSockets to reconnect automatically with configurable delay
- Relax Opal version restriction
- Allow specifying methods for HTTP requests, including file uploads
- Add
Element#to_n
andEvent#to_n
to unwrap the native objects - Make HTTP events just use
Bowser::Event
instead of their own type - Proxy all native element/event properties
- This provides the following types of translations from Ruby method names to JS property names:
element.text_content
in Ruby becomeselement.textContent
in JS- Predicates like
element.content_editable?
checks forcontentEditable
andisContentEditable
properties, preferring the version withoutis
if both exist. - If the property is a function, it gets called.
- No wrapping of results is done for proxied properties. You get the raw JS value back.
- This provides the following types of translations from Ruby method names to JS property names:
- Add
Element#children
to wrap child nodes inBowser::Element
objects - Add
Bowser.window.location.hash
- Add
Bowser.window.has_push_state?
- Use
load
event forBowser::HTTP::Request
instead ofsuccess
. It was causing problems andload
is the canonical event to use.
- Fix
animation_frame
polyfill delay - Add the abillity to upload files directly from file input elements
- Allowing this instead of reading the files in first is a HUGE memory savings for large files. It uses the browser's internal streaming capabilities so we don't need to load the full file into memory.
- Memoize file read data
- Relax Opal version restriction to 0.8-0.11
- Add
Bowser::HTTP::Response#text
to get the raw response body instead of assuming JSON - Fix JSON dependency loading instead of assuming it's there
- Add
Event#stop_propagation
- Add first-class support for
file
input fields
- Add
Bowser::Window::Location#href
- Fix missing element check for
Document#[]
- Add
Window#scroll
- Add
Window::History#push
- Add WebSocket support
- Initial release