Releases: AntonioND/bunjalloo
Version 0.12.0
-
User changes:
- Lists (unordered and ordered) are now supported. They aren't perfect, but they make lots of websites a lot more readable than before.
- The system that lays out elements on the screen has been heavily reworked, which was needed to support lists. Some websites display more spaces than before in some places.
- Links of the type
//yourdomain.com/about/example.htmlnow work. They are absolute links that contain everything except for the schema (HTTP, HTTPS, etc), which is preserved. - The download queue used to stop before some files were fully downloaded. This prevented some images from being displayed, for example.
- MIME type
text/xhtmlis now allowed. It's parsed the same way as HTML. - Editable text areas were very buggy. The caret jumped around when editing text around the edges, adding and deleting characters could make the application crash. This has been fixed.
- Combo boxes with entries that were too long displayed text outside of the box, on the right (only after selecting a too long entry). The text is now clipped correctly.
- The font Bitstream Vera has been replaced by DejaVu, which is based on Bitstream Vera and adds a lot of additional characters. The license text has been replaced as well. Note that it wasn't possible to keep using the old TTF file because the converted font wasn't created using
convertftf, but a conversion script that was removed before version 0.8.0. - Charset detection has been improved. Some websites, like Wikipedia, were using
metatags to communicate the encoding, and they were ignored by the parser. - Websites are now considered to be encoded in UTF-8 instead of ISO 8859-1. This is needed because some websites may communicate the encoding in ways that Bunjalloo doesn't understand, and most websites are in UTF-8 anyway.
- ISO 8859-1 decoding has been improved. Replacement characters are printed when invalid encodings are found.
- The home page of the browser has been simplified.
- Websites that ended with an incomplete UTF-8 character would hang the HTML parser. This has been fixed.
- Version 0.11.0 partially fixed a bug where combo boxes would remain open after going forwards or backwards in the browsing history, for example. This has now been fixed properly.
- The SDL application will exit instead of crashing if the inittialization of SDL fails.
-
Dev changes:
-
Components now support having indentation. ViewRender and BoxLayout have been modified to support components with indentation, like lists. In a list, new text areas are created whenever a new indentation is needed.
-
The HTML renderer and BoxLayout have been modified to support indentation.
-
3 digit color codes are now supported in the HTML parser. They will be used to change the background color, but it isn't supported yet.
-
The HTML formatting of the in-application user documentation has been fixed.
-
The build system has been heavily refactored. Instead of building many libraries (libbunjalloo, libbwt, libndspp) and linking them with the final binary (Bunjalloo and unit tests), now there's a common makefile that generates libbunjalloo and the Bunjalloo binary. Thanks to this the makefiles of the tests only have to link one library instead of three. Also, it's easier to make changes to Bunjalloo because any changes in the code will trigger a rebuild of the final binary (with different libraries the Makefile of the binary couldn't detect changes to the libraries).
-
The HTML parser now looks for
noscripttags explicitly. Previously it still displayed the contents inside of them, but now it will be easier to change their display style if needed. -
libvera has been renamed to libfont to be more generic and to not require more changes in the future.
-
Some outdated documentation has been cleaned and moved out of the wiki folder where they were initially saved.
-
All remaining tests with issues have been fixed. For example, the updater tests no longer crash on exit (it was caused due to a call to a pure virtual function in the Client class, which has been fixed).
-
There is now some debug code that paints rectangles around website elements on the screen. This is useful for debugging only, and it requires a rebuild to be enabled.
-
Some hardcoded strings have been replaced by constant names.
-
Bunjalloo now requests UTF-8 encoding before ISO 8859-1 in GET requests.
-
convertftfhas been improved:- It has more error checks.
- It allows cutting off pixels from the top or bottom of the font so that it fits better in the current widgets.
- Color rounding has been simplified.
- An additional shell script has been added to convert DejaVu automatically instead of having to remember how to run
convertftfevery time.
-
Version 0.11.0
When updating to this version you should keep your data/bunjalloo/user files safe, but you should delete all other files and folders from data/bunjalloo. The new version includes all the required files in the NDS ROM and it creates all temporary and user folders automatically.
-
User changes:
- Slot-2 RAM expansion cartridges (such as the one that came with Opera) is now supported. They are used as temporary storage for images.
- Search engine shortcuts have been updated. Google and Yahoo have been removed because they no longer work. The Wikipedia search string has been updated, and DuckDuckGo, FrogFind! and GitHub have been added to the list.
- The URL used by the auto-updater has been fixed, so future versions of Bunjalloo can be downloaded by Bunjalloo itself. Note that auto-update only seems to work if the Bunjalloo ROM is in the root of the SD card.
- The NDS ROM of Bunjalloo now contains all the files it needs to run, it doesn't need to be distributed with a folder with lots of extra files.
data/bunjalloois now only used as temporary storage and for user configuration storage. Unfortunately, changing the font of the CA certificates now requires the user to usendstoolto modify the NitroFS files. Also, ifdata/bunjalloodoesn't exist at boot it will be created automatically. - The text box used for keyboard input has been made a lot more stable. Sometimes some lines would be too long to fit and they would overflow to the next one displaying the last character. Sometimes deleting a character or adding a character would make the caret go over the line limit and cause a crash. This has been fixed. Also, now it's possible to press the white area after the text and the caret will be set to the last line with text instead of disappearing.
- A new protocol called
about://has been added. This protocol is used for built-in pages that aren't stored in the filesystem or downloaded. Also, the home pagefile://licencehas been moved to a file in NitroFS. - The
file://URI schema support has been improved. Now it supports servers.file://localhost/file.txtaccesses a file at the root of the filesystem,file://bunjalloo/file.txtaccesses a file insidedata/bunjalloo, andfile://nitro/file.txtaccesses a file inside the NitroFS filesystem of Bunjalloo. - A new internal page called
about://sysinfohas been added. It shows system information such as available RAM. This page can be loaded while browsing a website and it will show the memory available after loading that website. - Add missing credits and licenses to the homepage of the browser.
- Implement option that allows user to decide to clear the cache at boot or not. The setting was there, but it was unused.
- Transparency has been fixed in images that don't need to be scaled down to fit on the screen.
- The palette of the scroll touch screen icon is now loaded correctly so that it doesn't overlap with the colors used by the toolbar.
- Combo boxes have been made a lot more stable. Boxes that were too big would have a scroll bar outside of the screen (or cause a crash). If a combo box was left open and the user, for example, pressed "back" in the toolbar, or button Y to open the bookmarks, it would cause a crash. This all has been fixed in this version.
- In the SDL version, allow the user to set the gap between screens and the zoom factor with the environment variables
BUNJALLOO_SCREEN_GAPandBUNJALLOO_SCREEN_SCALE.NDS_GAPis no longer supported. - The SDL window now displays "Bunjalloo" as title instead of "SDL Application".
- In the SDL version, keyboard input with the PC input now works in a fluid way rather than having to wait for a second or so between each key press. Backspace and return keys are also supported now.
- Some checks have been added to the Canvas class to avoid crashes because of writting out bounds.
- Environment variable
NDS_DLDIhas been renamed toBUNJALLOO_DLDIandNDS_LANGhas been renamed toBUNJALLOO_LANGUAGE.
-
Dev changes:
- The HTML parser doesn't support partial parsing of data. The code is organized to fed it partial data, but the parser has several loops that assume that there is more data to be used, and they hang if there isn't more data. Instead of modifying the whole parser, a partial fix has been added: the HTML parser is now only called when the full website has been downloaded. This only fixes well-formed websites, and it will still hang on malformed websites.
- Codebase reorganized. Different libraries are now in different folders and can be built independently as static archives. This makes it possible to build tests without rebuilding all the codebase for each tests.
- Fully replace the old build system by a new one. Tools and tests can now be built with the new build system. Tests can also be run automatically with
make PLAT=SDL runfrom thetestsfolder. - GoogleTest v1.17.0 has been added to the repository. It is used by the test binaries.
- The instructions to change the TTF font used by Bunjalloo have been updated to work with
convertftf. - The crashes in the HtmlParser tests have been fixed.
- Some tests have been fixed. Some of them were broken during the development of versions 0.9.0 and 0.10.0 because the behaviour of some things changed.
- Most tests can be run automatically with one command from make.
- Many classes have been refactored to require fewer dynamic instantiations and reduce heap fragmentation.
- Lots of checks have been added to dynamic allocations. This should prevent some crashes due to running out of memory.
- Some memory leaks have been fixed.
- C++ exceptions have been enabled in DS builds. They were already enabled in SDL builds.
- Some code has been moved to ITCM to increase speed.
- The home page is now a file in NitroFS rather than being hardcoded in the Bunjalloo binary.
- Cache management has been fixed. The destination (VRAM) was flushed instead of the source (main RAM).
Version 0.10.0
- Fixed SSL connections. Entropy is now gathered correctly and the main thread yields every now and then to let the SSL handshake finish.
- Support checking CA certificates when using SSL. This uses a lot of RAM and it's a bit slow so it's disabled by default, and there's a new option in the settings menu to enable it or disable it. Also, users can provide their own sets of CA certificates.
- Fixed the type of position markers when searching strings. It was only valid in 32-bit platforms like the DS, so some code wasn't working on the SDL port. This prevented the configuration settings page from showing up.
- The DS version now expects the
data/bunjalloofolder to be in the root of the SD, not in the same folder as the NDS ROM. - The home page has been updated. The page with the licenses used by components of Bunjalloo has been split into multiple pages. Also, the licenses of BlocksDS libraries are now included as well.
- Support BMP and APNG formats.
- Fix scale down calculations for very big images. Sometimes they were left too big in one dimension.
- Display transparent pixels as white instead of black.
- A bad debug check has been removed. This prevented some elements from loading, like some (but not all) images.
- Improved handling of errors when receiving packets.
- Restore code that parses dates.
- Fix timeout counter so that it uses seconds instead of retry attempts.
- Zlib has been updated to version 1.3.1.
- Some unused features of Mbed TLS have been disabled to reduce code size.
- The code is now built with
-Osto save RAM. - Flush data cache before doing a DMA copy.
- Removed some superfluous waits for VBL.
- Fixed some warnings, silenced some of them.
- Some internal code cleanup.
- Updated instructions in readme.
Version 0.9.0
- Migrated to BlocksDS from devkitARM. Now Bunjalloo can take advantage of the Wifi driver in DSi mode, with WPA2 support and the additional RAM of DSi.
- The old versions of libpng, libjpeg and giflib have been replaced by libplum.
- MatrixSSL isn't currently maintained and it has been replaced by Mbed TLS. Switching between HTTP and HTTPS is still a bit unreliable.
- The PC port has been fixed. It builds, some infinite loops have been fixed, and images are now displayed correctly.
- Test can't be built at the moment, they will be re-enabled in the future.
- Initialize keyboard state correctly so that the extra symbols aren't displayed after the first key press.
- Modify cache CRC32 calculation to include the protocol, not just the rest of the address. This lets us retry a website with http and then https if it fails, for example. Previously it would just reload the cached error page.
- Added missing copyright notices to the "show copying" page.