Various news
4. V³ available in public pre-release
23 Jul 99 V³ Public Prerelease
A first public prerelease version of V³ is now available from
the Vapor Download Sites
for everyone to try, crash, burn and wince upon.
To quote the README file:
Welcome to the 3rd Generation of Voyager.
NOTA BENE: This is a snapshot of a work in progress, not a finished product. It may crash, burn and nuke, cause loss of data, and
hair. It's incomplete. Handle with care.
You have been warned.
NOTA BENE²: There is a considerable lack of any documentation at the moment. Dealing with it requires a good knowledge of AmigaOS and
program installation (although you can normally just copy the distribution drawer to your harddisk and run it from there)
NOTA BENE³: This version will only run with a keyfile. It does accept V 2.95 keyfiles and NC2, but will timeout at 31-8-99 then. It
will only run on 68020 CPUs und up.
The complete README file as included in the archive:
__ __
\ \ / /3 | Voyager 3.0
\ V / | Prerelease 1 (23.07.99)
\_/ | http://v3.vapor.com/
Welcome to the 3rd Generation of Voyager.
NOTA BENE: This is a snapshot of a work in progress, not a finished product. It may crash, burn and nuke, cause loss of data, and hair.
It's incomplete. Handle with care. You have been warned.
NOTA BENE²: There is a considerable lack of any documentation at the moment. Dealing with it requires a good knowledge
of AmigaOS and program installation (although you can normally just copy the distribution drawer to your harddisk and run it
from there)
NOTA BENE³: This version will only run with a keyfile. It does accept V 2.95 keyfiles and NC2, but will timeout at 31-8-99 then. It will only run on 68020 CPUs und up.
So enough ranting, now to the bright side. What's new?
- Javascript. Javascript 1.3, implemented as a nifty just-in-time
bytecode compiler for maximum efficiency on our dusty 680x0 class
machines.
- Heavily improved GUI, allowing custom placement of control
panels using Szymon Ulatowski's excellent Tearoff classes
(http://amiga.com.pl/~szulat/). Create fastlinks by simply
dropping an URL in the fast link panel area. Reworked
MENU structure to be overally more sensible. Added support
for wheel mice using the NewMouse standard.
- Heavily improved plugin API now allowing for embedded
objects which can handle any MIME type.
- As a first application of aforementioned plugin API:
A shockwave flash player. Unlike the freeware player which
was circulating recently, it supports embedded movies and
URL handling.
- SSLv3/TLSv1 security support utilizing OpenSSL
(http://www.openssl.org). Also deals with the recent
catchword "SGC" by offering 128 bit encryption all the
time, not only when US crypto laws permit.
- Modularized image decoders, offered in a wide
variety, for all kinds of Amiga hardware. Voyager
automagically selects the one best suited for your machine
during start. Also updated are libjpeg and libpng to recent
versions. Now also supports "smart" incremental JPEG decoding.
- New Bookmark system using CManager.mcc, sharing
URLs and everything with other Vapor applications.
- Improved Cache system which now honours HTTP/1.1 Expires:
header - much faster loading with properly configured web
servers, as cache freshness doesn't need to be verified.
- Numerous other changes. Please refer to the detailed version
history at the end of this document.
ToDo
Well, what's still to do?
- Full optmization build. This one has been build
without any code optimization, and thus is considerably
slower than any possible release (esspecially for
compute-intensive tasks, like layouting or
image decoding)
- JS: Some properties and methods are known to not be fully
implemented yet. The worse part is that, as with HTML,
there is a huge descrepancy with Javascript as it is in the
books, and Javascript as it's used by Web"masters" around
the world. Silly, ineffecient constructs and abuse of
implementation side-effects seem to be a must, and it needs
lots of work to properly mimick the behavior. Most
notably lacking are currently <SCRIPT SRC=url> , handling of
JS entities <IMG SRC=&{js-code};>
- GUI: Fully configurable toolbar with standard and custom
ARexx/JS commands.
- ARexx: The ARexx-Port needs as much as work as
it needed in previous versions. On top of the list
is the exposure of the JS interpreter via ARexx, allowing
you to do nifty things (tm) with the DOM of loaded
documents.
- HTML: Still lots of stuff to improve. Could do with
some more speed when dealing with heavily nested tables,
although there's a heavy trade-off between Doing It Right and
Doing It Fast (you probably figured this out by comparing
the previous V with current releases of other Amiga browsers :)
- Flash: Speed. Sound. A PPC version.
- Image decoders: A PPC version (now not too far away
due to the modularized concept)
- Printing still sucks.
- Debugging. Debugging. More Debugging.
Updates to V³ will be released frequently. If you install
vapor_update.library, you will be automatically informed.
Support & Bug reporting
Please join the Voyager mailing list to discuss this beta
release. Please do not contact any of the authors directly -
their time is severly limited, and chances are good that
you want them to do some work on the code instead of
answering mail all day long :)
To subscribe, mail to
<voyager-request@vapor.com>
and put "SUBSCRIBE" in the subject or body of the mail.
The mailing list is archived at
http://www.mail-archive.com/voyager@vapor.com/
Bug reports are appreciated, just stuff as much information
as possible into them. A quick glance at the V
mailing list will reveal whether 50000 people have already
reported before. The JSERROR.LOG functionality will
come in handy for dealing with JS quirks.
Credits
Voyager is (C) 1995-1999 by Oliver Wagner <owagner@vapor.com> ,
All Rights Reserved.
V³ is actually a joint effort conducted by several people
using the powers of CVS:
The flash player and many many core changes have been done
by David "Zapek" Gerber <zapek@vapor.com>
The new bookmark system has been devised by the wits
of Simone "Wiz" Tellini <wiz@vapor.com>
Jerome "KingGuppy" Fisher <kingguppy@vapor.com> contributed
the new Textinput functionality including HTML tag highliting.
He also squashed some bugs.
The GUI cleanup and the new about:, plus the Voyager
Portal site (http://v3.vapor.com) design are done by
Ben "Beej" Preece <beej@siliconcircus.co.uk>
The nifty new V3 logo is done by Jason "Morden" Murray
<morden@sub.net.au> , who also did the www.vapor.com web
site design.
Version History
[NOTE: Changes prior to version 2.95 have been removed]
- 2.96.1
- net: fixed a lame bug: when successfully verifying an
existant cache object, it was never actually updated
on disk as a read lock was kept on the file.
- 2.96.3
- layouter: fixed problem with tables embedded in lists
- 2.96.4
- net: added new option "Ignore server sent MIME types?".
Disables matching filetypes by HTTP Content-Type:
header and instead uses file extension matching.
- 2.96.5
- (intermediate WOA show version)
- 2.96.6
- prefs: added support for Contact Manager
- prefs: now saves a .BAK file of the bookmarks
- 2.96.7
[NC2 compile]
- 2.96.8
- net: fixed handling of %hh URL escape codes in FTP
pathes<
- 2.96.9
- general: timeout fix (ahem)
- general: added support for "vapor_update.library"
-
- 2.96.10
- net: fixed handling of stoneage HTTP/0.9 server replies.
This showed up with the xxx.to redirect services.
- 2.96.11
- general: will now check whether files passed via WBArgs
are actually config files; if not, it will open them
with file:///
- net: SSL cert info requester referenced uninitialized
memory and thus trashed up big time
- 2.96.12
- net: fixed SSL over proxy. V was actually sending full
encoded URLs to the CONNECTed server, handling SSL PROXY
like plain HTTP proxies. Ahem.
- 2.96.13
- layouter: added support for <TABLE/TR/TD BACKGROUND> images
- 2.96.14
- net: bah. Prefs flag screwup caused "Ignore server MIME types"
to be set all the time. Prefs also weren't saved. Bah.
- 2.96.15
- prefs: env:VAPOR/VOYAGER_LASTUSEDDIR wasn't saved
- 2.96.16
- layouter: fixed handling of small <SELECT> s in popup mode
- net: Cookie path comparision was screwed.
- net: Cookies which had no path= were saved with the current
path, instead of "/"
- 2.96.17
- JS: added JS support, actually in form of a just-in-time
bytecode-interpreting compiler. Parser, compiler,
interpreter, stack is working. Completely missing DOM
at this stage.
- 2.96.18
- Prefs: added Javascript page, with global JS enabling
and JS debugging enabling. Disabling debuging will cause
the compiler to not place line number information in
the resulting bytecode. This is faster and uses less
memory, but run time errors will not show any line numbers.
- 2.96.19
- GUI: fixed a few problems with bogus help bubbles
- Net: fixed a bug in nethandler to avoid causing
broken http URLs (e.g. http:path) to access
NULL pointers and eventually crash
- 2.96.20
- General: Now utilizes vapor_toolkit.library
- JS: added function call handling
- JS: added variable handling
- JS: added void(expr) and typeof(expr)
- JS: totally removed internal int type to simplify
expression handler
- JS: fixed short circuit evaluation for ?: conditional
operators and || and && logical operators
- JS: added "," operator
- JS: added "delete" to grammar
- JS: added multi-dimensional array references to grammar
- JS: added "new objectname" syntax to grammar
- HTML: added <NOSCRIPT> </NOSCRIPT> handling
- 2.96.21
- General: again using AmigaOS math libraries and IEEE
math format
- Cache: Cleanup is now no longer done on every start.
V keeps an estimated cache size based on cache flush
and input, and only starts a cleanup operation when
the estimated size exceeds the limit, or 30 days
after the last cleanup
- 2.96.22
- GUI: Main window now uses Tearoff.mcc to allow vanilla
gui customization. The tearoff settings are saved
to ENV/ENVARC when snapshotting the window.
- 2.96.23
- JS: fixed (lvalue) syntax in grammar
- JS: fixed lexer not dealing with \r as the only
line termination character
- 2.96.24
- Net: Cookies with subpathes still weren't sent
properly. Grrr.
- Layouter: restructured font handling. No longer
calls upon AmigaOS font handling for every
html class layout. Also reduced memory usage by
about 7k per class instance, and reduced
time consuming side effects caused when nonexistant
fonts are specified and diskfont tries to reload
them all the time (notably with Frames)
- 2.96.25
- Gfx: low chip mem situation handling
wasn't foolproof. Failure of being
able to obtain a buffer bitmap was detected,
but the original fastmem image was still
copied into the (nonexistant) chip planes.
Blam.
- Gfx: image decoder is now external.
V loads the proper image decoder based
on the system configuration (CPU/FPU)
from Plugins/imgdecode_[arch].vlib.
- 2.96.26
- Net: net handler now tries to recv()
as much data as is available, and not
wait for the next select. This should
considerably improve behavior with
masive amounts of connections (i.e.
porn thumbnail sites)
- 2.96.27
- General: about: now shows the
vimgdecode_vlib and voyager_ssleay.vlib
version & dates
- Parser: the meaning of NOSCRIPT was
reversed; NOSCRIPT stuff was processed when
JS was enabled and vice-versa. Note that
you have to disable JS now to view sites
which build content dynamically (i.e.
www.thehun.net)
- GUI: fixed horizontal layouting of fastlinks
- GUI: rewrote saving of tearoff settings.
Now uses a clean approach with a special
dataspace which is saved on quit.
Note that the settings are currently only
saved to ENV:MUI/Voyager.tearoff, I haven't
decided when to save to ENVARC: as well
yet
- 2.96.28
- Imagedecoder: fixed low chip mem handler
return code (would always return MEM_DID_NOTHING;
now returns MEM_TRY_AGAIN when memory was freed
- Imagedecoder: low chip mem handler would
access a unsemaphored main thread pool and
thus could Nuke Heavily® under certain cirumstances
when triggered
- General: Shell arguments are now tested if they
point to actual files; if so, they are opened
with file:///
- GUI: removed now obsolete "Show Fastlinks"
menu item
- 2.96.29
- GUI: fixed horizontal fastlink layout weighting
- 2.96.30
- Parser: V will now send <INPUT TYPE=HIDDEN> elements
in sequence with other form elements. This should fix several
broken cgi scripts which relied upon the NS/MSIE sequence
of argument passing (for example http://clickboom.com/portal)
- GUI: source view is now editable, and has a "OK" button
to submit changes to all browser windows (I seriously hope
this helps getting more detailed bug reports :^)
- GUI: added CManager.mcc support (to replace Bookmarks.mcc).
Note: SaveAs and Goto isn't working yet
- Net: modified network handler to no longer do a gethostbyname()
for IP addresses. This should fix problems when trying to access
hosts by IP which don't have working reverse lookup.
- JS: implemented local var handling
- JS: implemented "var x;" and "var x=y;"
- 2.96.31
- GUI: fixed CM interfacing
- 2.96.32
- Net: added "about:cachestats" to get a short cache status
overview
- Net: now uses inet_addr() to resolve "host names"; should fix
problems when a IP address URL points to a host which has
no working reverse DN
- GUI: now uses new CManager.mcc AddEntry method to insert
new entries at the currently selected leaf node
- Net: fixed a lame bug introduced with the polling
read improvement from 2.96.26. Would lose bytes during
transfer and cause general network suckness. This is
the reason for all the trashed imagery et.all. reported
recently.
- JS: began adding DOM handling
- 2.96.33
- Net: fixed the lame bug mentioned above, really this time
- Layouter: longstanding issue: changed the additional space
calculated for italic text to 1 pixel
- Imagedecoder: fixed another possible trashing in finding
space for chipmem bitmap clones
- 2.96.34
- 2.96.35
- Imagedecoder: changed low memory handler to actually
flush in place instead of relying on the image decoder
process to do the job. Also returns more sensible
error codes.
- Imagedecoder: updated to libjpeg 6b
- Imagedecoder: updated to libpng 1.0.3. Should fix all
of the PNG related griefs reported so far
- Prefs: now properly passes down image related
preferences to the decoder lib. Yes, you get
dithering again :)
- 2.96.36
- General: will now detect running Executive and
tell it to keep V's subprocess relative priorities
in order. Thanks to David Gerber for the code.
- 2.96.37
- Imagedecoder: upgraded to use zlib 1.1.3 with
faster decrypting
- Imagedecoder: rewrote low mem handler again
to not attempt to ReleasePen() or nets_close()
from within the handler
- Imagedecoder: ultra lame bug: The low mem handler
for the chip mem buffered bitmap clones was
always returning MEM_TRY_AGAIN no matter what,
and exec obeyed, causing a total deadlock
on a memory flush.
- GUI: upgraded WebTV to WebVision interface
- HTML: added © and ® entities
- Layouter: handling of within table
cells was hosed (would be eaten up like
any other WSP)
- Cache: images are no longer kept in memory
as raw stream data, thus wasting double
memory (decoded and stream). Should be
easily be reloaded from disk cache if
a relayout of the image becomes necessary
(due to screen change or stuff)
- 2.96.38
- Net: added "about:verifylist" to get
a list of verified cached URLs
(debugging)
- Imagedecoder: fixed mask bitplane
allocation to not pass a friend bitmap
(caused CGFX4 throwups)
- Imagedecoder: hm, stupid design issue:
when the lowmem handler was triggered
because of the image decoder itself
being unable to allocate bitmap
data, it wouldn't free anything
because the list sempahore was
already locked. Erm. Not useful. Fixed.
- Imagedecoder: Will now also release
the image buffers when general free
memory drops below 512k
- 2.96.39
- Imagedecoder: failure to allocate
memory for a PNG image would call
term_gif(), causing Havoc(tm)
- Imagedecoder: wouldn't allocate a
mask plane for background/alpha PNG
images, but nevertheless render
into it. Ahem.
- Imagedecoder: Activated PNG Gamme correction.
- 2.96.40
- SSL: added support for new
voyager_ssl.vlib (port of
OpenSSL 0.9.2b), currently with
SSL v3 support only
- SSL: upgraded certificates
- JS: got DOM tree handling to work
- JS-DOM: added "navigator" object
- 2.96.41
- JS-DOM: fixed a serious quirk
in the object reference search
code
- 2.96.42
- Layouter: <HR WIDTH=0> would create
an object with illegal dimensions
(www.freshmeat.net)
- Layouter: fixed form activation
- Layouter: now figures out whether
there were closed tables during
incremental runs, and postpones
rendering otherwise. Should speed
up rendering esspecially of excessivly
large HTML
- 2.96.43
- Layouter: URL escaping is now done
with upper case hex digits, to work
around broken cgi's which don't deescape,
but do a 1:1 match
- Layouter: fixed table nest calculation
bug introduced in 2.96.42
- JS_DOM: began implementing the "document"
object
- 2.96.44
- Net: NULL ptr reference when converting
dates with an unknown time zone (could
happen with Cookies)
- 2.96.45
- GUI: "About:" didn't show proper SSL
library
- JS: began adding "smart" property
handling, i.e. properties which actually
need underlying code to be fulfilled.
Unfinished.
- 2.96.46
- Net: uninitialized "last URL got"
variable could cause bogus pointer
reference when switching documents
- 2.96.47
- Net: fixed handling of <A TARGET=_new>
- 2.96.48
- JS: added missing navigator properties
- Net: optimized textual status report
generation
- Net: fixed an rather bizarre side-effect
of partial URI Location: redirects
causing enforcer hits in the network handler
because the image deoders attempted
to open the partial URL as a netstream
- GUI: hopefully fixed all causes for crashes
on iconify
- GUI: source view now uses TI "HTML"
style to highlite tags
- 2.96.49
- Cache: stops creating PROGDIR:Cache everytime (Zapek)
- Net: cookies are now loaded properly if the Cache directory is different
than PROGDIR:Cache (Zapek)
- GUI: "Cleanup list" in Downloads window is faster (Zapek)
- GUI: source view displays the URL in a TextinputObject (Zapek)
- GUI: clicking on the leds opens the Network Status window (Zapek)
- General: URLs without a scheme passed on the command line or via ARexx will
now be prefixed with "http://" (KingGuppy)
- GUI: "Autoclose window?" in the Downloads window is now saved with the
prefs (Zapek)
- GUI: added "Save prefs on exit" option (Zapek)
- GUI: moved "Ask for downloading dir" menu into the prefs (Zapek)
- GUI: added a "Links" section into the prefs (Zapek)
- GUI: added a switch to stop the transfer animation immediately when there's
no activity instead of waiting for the loop to complete (Zapek)
- Bookmark: Now you can Add URLs to CManager. Adds it to the entry currently
selected (Zapek)
- 2.96.50
- GUI: added percentage for downloads (Zapek)
- GUI: Fixed "Ask for downloading dir" always being disabled (KingGuppy)
- General: the URL is in the comment of a downloaded file (Zapek)
- GUI: "Autoclose window?" is saved when you do it manually too (Zapek)
- General: removed stale CM debugging code (Olli)
- General: reenabled catalog loading, in preparation for a localisation
fix (Olli)
- GUI: fixed fastlink group recalculation after a prefs change
(may have caused crashes under certain circumstances) (Olli)
- GUI: prefs window has now has additional frame with PageBack (Olli)
- HTML: rewrote HTML parser from scratch. Should now be more robust
against bizarre nuked tags, be much faster and gracefully deal with obscure
quotation errors in argument values. This may fix several reported
"HTML errors" (Olli)
- Prefs: changed default background color to white (Olli)
- GUI: fastlink buttons now accept dragged URLs and store them (Olli)
- GUI: fastlink buttons can now be swapped by drag&drop (Olli)
- GUI: fastlink buttons minimum size is no longer fixed (Olli)
- GUI: reduced the tearoffpanel inner spacing (Olli)
- GUI: topmost tearoff bay now has reasonable default settings
(see tearoff RMB menu to revert to that) (Olli)
- GUI: moved transfer animation into Navigation tearoff panel (Olli)
- 2.96.51
- CVS: bumped compile to .51
- Cache: fixed possible wrong creation of files when the path wasn't ending
with a '/' (Zapek)
- General: added a workaround to help Executive get the Real priority of the
V process. it helps a bit but there's no easy solution for that problem
(Zapek)
- GUI: it's now possible to drag URLs to the fastlink panel and drop them
there for automatic adding (Olli)
- GUI: link objects now return something smart for their title (handy
when auto-adding them to fastlinks) (Olli)
- Cache: V's Cache Cutter runs with a nice priority of +20 if Executive is
running. note that a "nice priority" is an internal priority used by
Executive. not an AmigaOS one (and +20 means nicer) (Zapek)
- GUI: fixed referecing of removed objects during shutdown. Individual
removing of bm and download window during close wasn't necessary
anyway. Should fix potential hit&crash-on-exit. (Olli)
- General: Ok, the details of this are far too lame to be admitted in public.
Anyway, iconify works now, even on wbstartup. (Olli)
- 2.96.52
- CVS: bumped compile to .52
- GUI: it's now possible to remove fastlinks by dragging them outside
any V window and dropping them there. A requester will pop up
asking whether the fastlink should really be removed (Olli)
- General: downloads aren't stopped anymore when all the windows are
closed (Zapek)
- GUI: no more transfer progress bar into the main window when a file goes
into the download window (Zapek)
- General: URL comment wasn't saved in all downloaded files (Zapek)
- 2.96.53
- CVS: bumped compile to .53
- Bookmark: CManager is properly initialized even when there's a
PROGDIR:Bookmarks.html (Zapek)
- Prefs: WAIS proxy settings are now stored properly (Zapek)
- Cache: files saved from the memory cache aren't showed as being downloaded
with 1 cps anymore (Zapek)
- 2.96.54
- CVS: bumped compile to .54
- GUI: download window now refreshes only once a second (Olli)
- Parser: maps the 'euro' entity to an 'e' (Zapek)
- Prefs: moved "Autoclose download window" here (Zapek)
- Prefs: added an "Auto cleanup list" option to the download window (Zapek)
- GUI: clicking on an image map will now draw a frame around the
select area (Olli)
- General: fixed potential buffer overflow when calling
WebVision with excessivly large URLs (Olli)
- GUI: reworked menus a bit (Zapek)
- Prefs: added "Disable META refresh" menu (Zapek)
- GUI: Location: and Fastlinks: labels are now properly aligned (Olli)
- GUI: Transferanim is now loaded from PROGDIR: (Olli)
- General: Image decoder libs and SSL lib are now also loaded from
PROGDIR:Plugins/ (Olli)
- GUI: added "Tidy cache" menu which will cut off the cache's size as set in
the preferences (Zapek)
- Net: HTTP/1.1 parked connections are now only reused if the host NAME
matches, too, to avoid the IIS bug of not taking note of different "Host:"
headers on the same connection (Olli)
- GUI: window status line is now reset properly after a download starts (Olli)
- GUI: TransferAnim can be removed again (Zapek)
- 2.96.55
- CVS: bumped compile to .55
- Parser: Added ‘ and ’ entities (Beej)
- General: moved all about: related stuff into a new .vlib which
is loaded on-demand, in preparation of doing more fancy stuff there
without causing main application bloat (Olli)
- General: beta timeout bump (Olli)
- Prefs: reworked proxy configuration settings in preparation
for proxy JS autoconfig (Olli)
- Prefs: current group is remembered when you close the window (Zapek)
- Net: completely rewrote proxy handling to accomodate new prefs
model. Should also be a bit faster now, especially if no proxies
are configured (Olli)
- General: Fixed some unchecked memory allocations (KingGuppy)
- Prefs: fixed refresh problem when clicking on "OK" in the source
editor window (Zapek)
- 2.96.56
- CVS: bumped compile to .56
- GUI: added support of NewMouse wheel codes to html class (Olli)
- General: removed some random data gathering code from the
html class input handler, which was no longer needed
and took time (Olli)
- Parser: added mapping for some windows characters in the range
of 128 to 159 (Olli)
- Prefs: oops, Disable META Refresh wasn't saved with the config (Zapek)
- About: fixed logos, and now shows image decoder version again (Olli)
- GUI: fixed problem with end of image loading not being properly
signalled to the main window status when images were scrolled off-screen
(Olli)
- General: Fixed finished or failed entries in the download window
preventing the URL they pertain to being reloaded until the entries were
removed (KingGuppy)
- General: added "about:ibeta" (Beej)
- Form: fixed checkboxes with no VALUE being submitted with "?¿" instead
of "on" (Olli)
- 2.96.57
- CVS: bumped compile to .57
- Build time: makecharmap.c was hosed, and didn't output any actual
mapping. Fixed now, 128-159 mapping ought to work (Olli)
- GUI: MUI MMB scrolling now also works in frames (Olli)
- GUI: V windows are now appwindows and accept dropped workbench
icons (Olli)
- Net: file:/// can now list directories (Olli)
- GUI: wheel scrolling is now faster (Olli)
- JS: completely rewrote the definition of for() statements
in the JS grammar -- should fix all remaining parse errors (Olli)
- 2.96.58
- CVS: bumped compile to .58
- Layouter: <img> tags no longer influence whitespace collapsing (Olli)
- Net: local file (file:///) sizes now appear in bytes, KB or MB based on their
size (KingGuppy)
- Net: viewing local dirs now appends a slash ("/") if not present (KingGuppy)
- Net: added link to parent directory in local dir view (KingGuppy)
- Net: all internally generated documents are now marked as such (KingGuppy)
- GUI: changed wheel scrolling to scroll 1/8 window without modifiers,
1/32 page with CTRL and full page with Shift (Olli)
- JS: fixed for() interpretation (Olli)
- JS: fixed continue and break interpretation (Olli)
- GUI: fixed "Title" value of dragged location string and transfer anim
(Olli)
- Net: backslashes in file:/// URLs will be reversed, if the file
can't be found with them. This should allow to view correctly documents
designed on PCs (Wiz)
- GUI: selecting a window from the menu brings it to front (Zapek)
- GUI: added a Document Information window. it displays some things about
the current page (URL, Size, MIME Type, etc...). click on the status icon
of the status bar to open it (Zapek)
- Parser: raised the buffer handling the value of a tag from 512 to 1024.
should fix excessive long META tags being displayed in plain text (Zapek)
- JS: various internal changes, probably dodgy (Olli)
- 2.96.59
- CVS: bumped compile to .59
- GUI: added Source and Server display in the Document Information window
(Zapek)
- Net: the document root for file scheme URLs is now the volume name, if
specified (KingGuppy)
- Net: tag arguments exceeding buffer limits no longer flow into the main HTML
(KingGuppy)
- Net: the parent directory link in local directory views now specifies the
real parent dir, rather than (incorrectly) root (KingGuppy)
- Net: links to parent directories ("../) in the file scheme are now collapsed
to prevent resulting paths like "Work:HTML/MyPages//all.html" (KingGuppy)
- Net: the parent directory link of the internal directory listing works when
a volume name was specified, like file:///gg: (Zapek)
- GUI: added a new menu entry to open the document information window (Zapek)
- Cache: does read/write operations faster and uses less disk space (Zapek)
- Prefs: added a string to set how many days V will wait before starting an
automatic cache cleanup (Zapek)
- GUI: it's now possible to unnecessarily waste space by putting the
scrollbars inside the window :) (Zapek)
- 2.96.60
- CVS: bumped compile to .60
- Cache: fixed cache not being backward compatible as it ought to be (Zapek)
- GUI: changed the layout for the download options in the prefs to make
Locutus happy (Zapek)
- 2.96.61
- CVS: bumped compile to .61
- Net: Entities with numerals (currently sup1, sup2, sup3, frac14, frac12 and
frac34) are now properly converted (KingGuppy)
- Layouter: fixed Popobject truncating <OPTION> values under some
circumstances (Zapek)
- GUI: added a context menu for plain pages without frames (Zapek)
- Cache: added a checksum for better integrity check (Zapek)
- GUI: after marking text, only the actually highlited parts are now
refreshed (Olli)
- Image decoder: fixed a problem with decoding 2 row interlaced
GIFs (grrr) (Olli)
- Cache: fixed about:cache and some more bugs in the cache handling. Thanks
go to Sircus for the help :) (Zapek)
- GUI: updated catalog - bubble help, prefs, requesters etc. changed (Beej)
- Layouter: </LI> is now silently ignored (Olli)
- GUI: Document Window now updates in realtime (Zapek)
- 2.96.62
- CVS: bumped compile to .62
- JS: javascript:<code> links are now propertly executed (Olli)
- JS: debug() output is now send to a special CON: console window (Olli)
- JS: implemented isNaN(), parseInt() and parseFloat(), String(),
Number(), escape() and unescape() global functions (Olli)
- JS: implemented Math object and assorted properties/methods (Olli)
- GUI: added SSL informations into the Document Information Window (Zapek)
- JS: modified grammar to get rid of most lvalue/expr conflicts (Sircus/Olli)
- JS: added "this" reference (Olli)
- JS: implemented document.write()/writeln() (Olli)
- Layouter: fixed handling of <noscript> , again (Olli)
- JS: implemented "Location" class (Olli)
- JS: implemented "Screen" class and global object (Olli)
- JS: implemented property setting (Olli)
- JS: added partial setting of window.location and window.href.location
properties (www.hyundai.de :) (Olli)
- JS: fixed a lame bug in the flex scanner definition which would
cause /* comments */ to not be terminated. This would mostly go unnoticed
unless a comment occured within a valid grammar clause, where it
would yield a parse error (www.renault.de) (Olli)
- JS: fixed expression value of "null" (Olli)
- JS: fixed expression value of "undefined" (Olli)
- JS: fixed obj1 == obj2 comparision (Olli)
- JS: added "Link" object (Olli)
- JS: fixed flex scanner to recognize alt-space (160) as a WSP (Olli)
- JS: added object-initializer object creation {prop:val,prop:val} (Olli)
- JS: added "Array" class (Olli)
- JS: added array-initializer object creation [element,element] (Olli)
- JS: added array-style reference operator expr[expr] (Olli)
- JS: added "with(expr)" (Olli)
- GUI: documentinfo window does display informations for frames, links and
imagelinks too (Zapek)
- JS: added "delete prop" (Olli)
- JS: implemented "new" for builtin classes (Olli)
- Net: added a workaround to ftp:// for servers which reply lines with no
code after PASS or CWD (proftpd) (Olli)
- Prefs: added an option to avoid caching SSL pages for the paranoïds out
there (Zapek)
- GUI: Docinfowin displays SSL certificates too (Zapek)
- JS: implemented "OnMouseOver" and "OnMouseOut" event handlers for
Link object (Olli)
- JS: implemented "Function" object (Olli)
- JS: made navigator.appVersion to be "4.0 (AmigaOS; U)" for silly lame
scripts (Olli)
- JS: implemented String.substr() and String.substring() (Olli)
- Prefs: Fastlinks can be set to strip the text they contain (Zapek)
- Net: added an offline browsing mode (Zapek)
- JS: implemented snoop window. Will hold debug() output,
references to undefined properties etc. (Olli)
- 2.96.63
- CVS: bumped compile to .63
- JS: expression stack is now recreated for every js_interpret()
call, so that crud on the stack after a error or early bail
out doesn't accumulate (Olli)
- JS: fixed memory leak when setting custom properties (Olli)
- JS: implemented "Image" class (Olli)
- JS: implemented document.images (Olli)
- JS: implemented document.title (Olli)
- JS: document object now searches all it's child objects
when searching properties. Fixes www.idsoftware.com (Olli)
- JS: fixed comparision operators (Olli)
- JS: implemented new Image() (Olli)
- JS: fixed a bug with event handler code causing references
to freed objects when switching pages (Olli)
- JS: fixed a bug in eval() which would cause Big Time Nuke (tm)
when the compilation of the eval()ed string would cause a
opcode buffer increase (Olli)
- Imagedecoder: now handles gif anim repeat extension blocks
properly. Image decoder version bumped to 6.0 as a new
callback was added (Olli)
- Prefs: fixed SSL flag not being saved properly, <sigh> (Zapek)
- 2.96.64
- CVS: bumped compile to .64
- Imagedecoder: added support for progressive JPEG decoding.
Should be smart and skip scans when data arrives fast
enough. Image decoder lib version bumped to 7.0 (Olli)
- Prefs: fixed array overrun when opening prefs window,
possibly causing crash (Olli)
- Net: minor speed increase when doing cache verification (Olli)
- JS: hopefully fixed crashes when JS is disabled (Olli)
- JS: fixed function parameters name clashing with member
properties of the current context object (www.skoda.de) (Olli)
- 2.96.65
- CVS: bumped compile to .65
- GUI: prefs window now correctly opens with the last
active page (Olli)
- General: removed setting of cl_ID in subclass constructor
code as this seems to screw MUI 3.8 (Olli)
- 2.96.66
- CVS: bumped compile to .66
- Imagedecoder: progressive mode is now only turned on
if a jpeg really has multiple scans. Saves a lot of
buffer space on "plain" jpegs (Olli)
- Imagedecoder: fixed a problem with jpeg decoder
"loosing" scans when two-pass quantization was used
(Olli)
- Imagedecoder: in progressive mode, all early passes are now
done using fast/sloppy settings. A special run is made
on the final scan with the user selected parameters,
with a newly calculated color map (Olli)
- JS: fixed scanner to recognize tokens at the end of
input (tokens where otherwise returned as symbols;
caused quite some funny trouble with event handlers
ending in "return true"). Simplification also
reduced scanner size by several KByte (Olli)
- JS: fixed handling of "return" in event handlers (Olli)
- Image class: fixed problems when the src was set too
quickly, and thus old images remained on screen.
Happened with event handlers and moving the mouse
quickly (Olli)
- JS: implemented "Frame" object (Olli)
- JS: fixed document.images not containing any images
generated after the first reference (fixes www.skoda.de)
(Olli)
- JS: image class no longer tells container window to
report "Document done" after setting .src (Olli)
- JS: fixed problems with eval() sometimes causing unexpected
termination of handler execution. This was the cause
for the "rollover stuck" problem happening on several
sites (Olli)
- 2.96.67
- CVS: bumped compile to .67
- JS: property tables had no end markers, causing Nuke(tm)
when a unknown property was referenced. It's amazing
that this never showed up before... (Olli)
- JS: now deals with the awkward function-declaration-as-
expression-syntax var xx = function(parms){code} (Olli)
- JS: fixed function pointer -> object conversion (Olli)
- 2.96.68
- CVS: bumped compile to .68
- GUI: url status line now shows the TITLE of links, if
given, too (Olli)
- JS: implemented "Date" class (Olli)
- Net: Referer: could carry the V internal postid
sometimes (Olli)
- Net: fixed handling of RFC2109 conforming Set-Cookie:
messages (Olli)
- GUI: cookie info window now shows the "Comment"
attribute, if given during Set-Cookie: (Olli)
- JS: changed method call handling for internal
core class so that excess arguments are ignored.
Also simplifies class implementation (Olli)
- 2.96.69
- CVS: bumped compile to .69
- JS: added missing methods to Date class (Olli)
- JS: aded static "Date" object (Olli)
- 2.96.70
- CVS: bumped compile to .70
- Plugin: many additions to the plugin API (Olli)
- Layouter: implemented <EMBED> , with interfacing to
new plugin API and plugin autofinder option (Olli)
- GUI: added plugin info/prefs window (Olli)
- 2.96.71
- CVS: bumped compile to .71
- GUI: clears the information list in the plugin window when switching
between plugins :) (Zapek)
- JS: implemented JS 1.3 "strong" comparision operators (=== and !==)
(Olli)
- JS: implemented operator new with custom constructors (should fix
Morden's dreaded rollover code :) (Olli)
- JS: partially fixed some object lifetime issues. Still work to do.
(Olli)
- 2.96.72
- CVS: bumped compile to .72
- Plugin: <EMBED> object now immediately gives up the network stream
when no plugin for the MIME type could be found (Olli)
- JS: fixed object finalization (Olli)
- JS: fixed operator new to not leave trash on the expression stack
(Olli)
- JS: fixed a document class shutdown crash (Olli)
- JS: it wasn't possible to set custom properties on the document
object (fixes www.worldofamiga.com) (Olli)
- JS: fixed finding of local variables (Olli)
- JS: setting image.src is now always relative to the document baseref
(www.wirenet.co.uk) (Olli)
- JS: fixed context stack to be a stack, and not a queue (ahem) (Olli)
- JS: fixed ultra-lame mega-idiotic bug in the JS event generation
code which could cause another event to be generated while the
interpreter was still running code, thus causing it to reenter
itself, triggering all kind of bizarre side effects (Olli)
- JS: fixed finalizing of objects on expression stack during return
with no required result (Olli)
- 2.96.73
- CVS: bumped compile to .73
- Plugin: added vplug_domethoda() callback (Olli)
- Cache: fixed a lame bug in cache verification which would do
a Examine() on a lock which was gone with a OpenFromLock()
before. Seems to have been the cause of the PFS2 crashes,
which in that case would be totally innocent :) (Olli)
- Layouter: </select> without preceding <select> when a previous
proper <select> clause was on a page caused Nuke(tm)
(ht://dig 3.1.2 search result page) (Olli)
- Net/Cache: now honours Expires: headers and will assume
cached objects with a proper Expiry date to be fresh
and not verify them. Should give a MAJOR speed increase
with sites which have a properly configured httpd
(like www.vapor.com, since yesterday <grin> ) (Olli)
- 2.96.74
- CVS: bumped compile to .74
- Plugin: fixed vplug_domethoda() (Olli)
- 2.96.75
- CVS: bumped compile to .75
- Parser: html token argument parsing now converts
all WSP into blanks; should fix some "unterminated character
constant errors" with some porn site OnMouseXXX stuff
in JS (Olli)
- Layouter: will now instantiate <embed> ded objects not
until document loading has finished, to avoid heavily
restarting and stopping of plugins during relayout
(Olli)
- JS: fixed setting of custom properties on the
Window object (Olli)
- JS: fixed expr.prop = val assignment operations, without
abusing the lvalue definition (www.ssh.org) (Olli)
- JS: heavily improved the handling of eval(). Results are
now properly returned without string conversation. The
generated bytecode is now cached and NOT recompiled everytime
eval() is called (to come around the problem of so called
web"masters" unnecessarily abusing eval() all the time in
event handlers) (Olli)
- GUI: General updates to the catalog to make it more consistent.
This includes referring to documents as "pages" (Beej)
- GUI: Added a seperate image for the hyperlinks prefs page (Locutus)
- Layouter: implemented <NOEMBED> <shrug> (Olli)
- Layouter: erm, will I ever get <NOSCRIPT> right? (Olli)
- 2.96.76
- CVS: bumped compile to .76
- fixed hits/crash caused by clickimage on early quit, for example
resulting from old vapor_toolkit.library installed. (Troels)
- JS: fixed another scoping issues with regard to event
handlers. Those are now executed in the context of "document";
property evaluator now also always searches the window object,
though (grrr^2). Fixes "www.wirenet.co.uk" (Olli)
- JS: added document.document backlink (grrr^3) (Olli)
- 2.96.77
- CVS: bumped compile to .77
- init: the application class would call an image decoder library
function on exit, even if the library wasn't opened yet. Fixes
Joker's crash with an old CManager.library. (Troels)
- GUI: added basic keyboard support for the toolbar functions
(as an eventhandler of the main window for some reason :)
I used the same mapping as that other unnamed browser, see
below. (Troels)
/* back */ case 'b'
/* forward */ case 'f'
/* home */ case 'h'
/* reload */ case 'r'
/* print */ case 'p'
/* load images */ case 'l'
/* stop */ case 's'
/* find */ case 'i'
- Plugin: added vplug_seturl() callback (Olli)
- 2.96.78
- CVS: bumped compile to .78
- Plugin: added vplug_mergeurl() callback (Olli)
- Plugin: VPLUG_EmbedInfo_ParentURL added, passed
down to embedded objects. Contains the URL of
the container frame/window (Olli)
- JS: changed debugging options: Error dialog
and optional logging of errors to PROGDIR:JSERROR.LOG
can now be individually enabled (Olli)
- About: added updated about plugin and necessary
callbacks (Olli)
- GUI: now resets main window gauge when a download
wa started (Olli)
- JS: window.name can now be set for the topmost window
(www.htmlworks.com and several others) (Olli)
- JS: speedup in String class property getting (Olli)
- JS: implemented navigator.javaEnabled() (Olli)
- JS: it's now possible to call document.write() with
several arugments which are processed in order.
Fixes the "www.thecounter.com" reference code,
used at several places (Olli)
- JS: implemented Frame.parent (various places)
(Olli)
- 2.96.79
- CVS: bumped compile to .79
- Prefs: reworked some default settings (Fastlinks,
changed default homepage URL to http://v3.vapor.com etc.)
- GUI: added a "Copy URL to Clipboard" entry to the image
context menu (Troels)
- JS: fixed "var x" and "var x=initializer" to not leave
trash on the expression stack (Olli)
- JS: bizarre bug: when trying to set a event handler
for an object which doesn't understood it, some screwed
type conversation caused a function index to be
interpreted as an object pointer, causing Big Time
Nuke. Happened with <IMG OnMouseOver> being
interpreted as a custom property (Olli)
- GUI: docinfowin would crash if closed before all data
was processed (Troels)
- about: images are back in fast mem (Troels)
- 2.96.80
- CVS: bumped compile to .80
- JS: writing of error log caused total crash (ahem) (Olli)
- 2.96.81
- CVS: bumped compile to .81
- JS: implemented function.arguments (Olli)
- JS: implemented document.referer (Olli)
- General: added support for new RSA keyfiles (Olli)
- 3.0.0 (first Prerelease)
- added new Icons by Morden, remapped by
Entity (Olli)
- big pack-up, all fingers crossed