=================
SimpleWebKit ToDo
=================

The code probably needs a lot of reformatting to fit in the GNUstep coding style. ;-)

-----------
15 Oct 2007
-----------

High Prio:
1. make it clear stall after successfully loading <script language="JavaScript" src="source.js" type="text/javascript"> 
2. solve redisplay/refresh issues
3. <frame> and scrollers should work correctly
4. <table> and <ul> elements should really work
5. make <form> work (buttons and text fields interaction)

HTML parsing and error robustness:
- NSXMLParser:
  - should we accept entities in quoted paramters or not? Is this standard or not?
	like this: <input type="submit" value="&nbsp;&nbsp;Go&nbsp;&nbsp;"> from http://pda.leo.org/
  - fix error handling if it is known that there is no more data coming from the source
- WebHTMLDocumentRepresentation:
  - how should we parse "<h1>xxx <h2> xxx </h1> z </h2>"?
  	  (a) all h tags on same level (ignoring the bad </h1>) -> "<h1>xxx </h1><h2> xxx  z </h2>"
	  (b) nested? -> "<h1>xxx <h2> xxx </h2></h1> z "
	is it already ok how we do it or do we need a different rule (NOTE: this is only relevant for MALFORMED HTML!)
  - how do we handle abc<p>def</p> - since we should treat any text before the first <p> as an independent paragraph without explicit formatting
  - really handle stall and clear for loading script files and @import styles (in WebCSSDocumentRepresentation)

Text Formatting/Typesetting:
- color does only understand #rrggbb and no plain text names yet
- <table> does not handle colspan, rowspan
- (better) handle <pre>

- handle <p align="center"> as on http://carduus.chanet.de/
  - note: it is the FIRST <p> element that suppresses to start with \n
  - i.e. a <p> closes any previous paragraph (adds an \n) and defines the style for a new one!
	(so, the style should NOT be applied to the initial \n)

View:
- <frame> not tested if it loads and displays subframes
- <iframe> should display a WebFrameView as NSTextAttachmentCell
- <select> should display a NSTableView as NSTextAttachmentCell (i.e. wrap a View's lock/drawRect/unlock into a Cell)

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 build a "POST" NSURLRequest)
- <input> does not respond to mouse clicks and become first responder

JavaScript:
- finalize parser (95% complete) and evaluator (50% complete) and prototype objects (0% complete)
- 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 more triggers like <... onmouse="...">

CSS:
- add DOMCSS elements according to the DOM specs
- add parser
- find matching element(s) in DOMCSS tree for a DOMHTML node

Others:
- (DOMText *) splitText: what is the semantics?
- innerHTML and outerHTML do not really return valid HTML (needs generating entities)
- add getters&setters for HTMLEntities

Feature requests:
- <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 and just keep a history of visited URLRequests?
		Answer: NO!
		Going back does usually NOT reexecute JavaScripts while it might re-POST a <form> (incl. a warning)
	- NOTE: this may also depend on the server which can control if the client needs to reload or not!
	- We must also remember scroller position(s)
	- We should cache pages in NSURLCache
	- We must also remember contents of <form> elements (even hidden passwords!)
- link color definition by <body> and if link was visited recently (history)
- handle different <hr> styles
- special <input> styles should show a small slider for e.g. <input type="range" min="0" value="100" max="100">

mySTEP's extension requests:
- NSURLConnection needs:
  - cookies
  - cache
  - https (using NSSocket(Input|Output)Stream)
  - sending / POST&GET methods
  - header compression
  - server redirection
  - handle feed: scheme (load feed and translate into an ECMAScript/HTML result)
- NSTextTable is not rendered
- NSTextList is not rendered

GNUstep extension requests:
- NSTextTable etc. is missing
- NSTextList is missing
