SimpleWebKit ToDo

21 Apr 2007
-----------

High Prio to be useful for first testers:
- <frame> and 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.

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:
- 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>

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 (should form a "POST" NSURLRequest)

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])
- handle triggers like <body onload="..."> or <... onmouse="...">
- how do we "stop" a running script (especially if it gets trapped in an endless loop)?
  Answer: we don't. WebKit/Safari spin-locks in this case as well.

Others:
- (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
- should be <button>formatted button text</button>
- history not fully implemented
- go back&forth not fully implemented (how do we cache the pages, DOMTrees etc.?
	Or do we reload/reparse everything and just keep a history of visited URLRequests?
	We should also remember scroller position(s)
	We should cache pages in NSURLCache
- link color definition by <body> and if link was visited recently (history)

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

GNUstep's NSURLConnection:
- ?