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

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

-----------
13 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 "
  - 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 fully 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">
- MIMEType text/xml: if it is a RSS feed -> redirect to feed:URL

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
