SimpleWebKit ToDo

09 Apr 2007
-----------

High Prio to be useful for first testers:
- loading and callbacks for subresources (<img>)
- <frame> scrollers should work
- <table> elements have all the same size and don't handle colspan/rowspan

Testing:

- really do robustness tests if HTML parser handles abrupt end of any source data properly
- how does it really work with NSTextView of mySTEP or GNUstep AppKit? Does it handle NSTextAttachments? NSTextTable is missing.

mySTEP-SimpleWebKit:

HTML parsing and error robustness:
- better handle <tbody> tag (auto-insert into DOM)
- how should we parse "<h1>xxx <h2> xxx </h1>"? (a) all h tags on same level (ignoring the bad </h1>) or (b) nested?
- maybe, we should add + (BOOL) _nested; as a separate hint to DOMHTMLElement
- Safari appears to be more robust to & characters which do not denote an entity
- ignore <body> in <body><frameset>...</frameset></body>

Text Formatting/Typesetting:
- splicing of text fragments with newlines at one or both ends is not perfect (e.g.<h1>&<h2> or <h1>&<p>)
- <p> and <br> do not create correct newparagraph/newline separators
- should we embrace all <h>, <p> and <br> with double-newline and remove one if spliced?
- <font face="xxx" size="yyy"> not handled (color="xxx" does)
- color does only understand #rrggbb and no plain text names
- <hr> does not draw a nice line
- <table> does not handle colspan, rowspan
- handle <pre>

Loading:
- <img> triggers a subresource to load but is missing a link to the NSImageCell to display the image

View:
- <frame> not tested if it loads and displays subframes

Forms:
- <input type="radio" name="group"> does not yet have radio behaviour - if none is defined as CHECKED, it should select the first one
- <form> does not yet send anything

JavaScript:
- add execution context ("this", global variables, document/event/etc.)
- add prototype objects Array, Number, Object, String, etc. with their methods
- connect to the DOMHTMLTree (via -[WebView webscriptObject])
- add triggers like <body onload="..."> or <... onmouse="...">

Other:
- (DOMText *) splitText: what is the semantics?

Feature requests:
- CSS & full formatting attributes
- attributedString for <li>, <ol>, <ul>, <dd> etc. not implemented
- <textarea>, <select>/<option> not completely implemented
- history not implemented
- go back&forth not implemented (how do we cache the pages, DOMTrees etc.? Or do we reload/reparse everything?)
- link color definition by <body> and if link was visited recently (history)

mySTEP's NSURLConnection:
- cookies
- cache
- https (add libopenssl to NSSocketStream)
- sending / POST&GET methods
- header compression
