Hi,
Until now, it is two month more since the project "Add DOM support
to Netsurf" GSoC project started, I think it is better to make a "two
month report" for the project.
1. The libDOM Core: Generally, this part is in the progress of
review and there is a detailed report about all the DOM Core
interfaces and methods we support/not support now. Please refer:
http://stuff.morebits.org/wiki/LibDOM_Core_Support_Status for detail.
2. The libDOM Events Module: I started this module one week ago,
and now, most of its work is done. There is also a detail status of it
at: http://stuff.morebits.org/wiki/LibDOM_Events_Support_Status .
Coming work:
1. Add MutationEvent/MutationNameEvent support for the DOM Core. For
detail, when the Node.appendChild/removeChild or
Element.setAttribute/removeAttribute get called, there should be some
MutationEvent to be emitted.
2. Test and make sure the Events module works well.
3. Make a good start of HTML modules.
Regards!
Bo
PS:
If you don't like follow any link, here are the Core/Events detail status:
The Core:
DOM Level 1
DocumentFragment: All
Document:
docType: Yes
implementation: Yes
documentElement: Yes
createDocument: Yes
createDocumentFragment: Yes
createTextNode: Yes
createComment: Yes
createCdataSection: Yes
createProcessingInstruction: Yes
createAttribute: Yes
createEntityReference: Yes
getElementsByTagName: Yes
Node:
nodeName: Yes
nodeValue: Yes
nodeType: Yes
parentNode: Yes
childNodes: Yes
firstChild: Yes
lastChild: Yes
previousSibling: Yes
nextSibling: Yes
attributes: Yes
inserBefore: Yes
replaceChild: Yes
removeChild: Yes
appendChild: Yes
hasChildNodes: Yes
cloneNode: Yes
NodeList:
item: Yes
length: Yes
NamedNodeMap:
getNamedItem: Yes
setNamedItem: Yes
removeNamedItem: Yes
item: Yes
length: Yes
CharacterData:
data: Yes
length: Yes
substringData: Yes
appendData: Yes
insertData: Yes
deleteData: Yes
replaceData: Yes
Attr:
name: Yes
specified: Yes
value: Yes
Element:
tagName: Yes
getAttribute: Yes
setAttribute: Yes
removeAttribute: Yes
getAttributeNode: Yes
setAttributeNode: Yes
removeAttributeNode: Yes
getElementsByTagName: Yes
normalize: No
Text:
splitText: Yes
Comment: All
CDATASection: All
DocumentType:
name: Yes
entities: No
notations: No
Notatoin: No Interface
Entity: No Interface
EntityReference: All
ProcessingInstruction: All
DOM Level 2
DOMImplementation:
hasFeature: Yes
createDocumentType: Yes
createDocument: Yes
Document:
importNode: Yes
createElementNS: Yes
createAttributeNS: Yes
getElementsByTagNameNS: Yes
getElementById: Yes
Node:
normalize: No
isSupported: Yes
namespaceURI: No
prefix: No
localName: Yes
hasAttributes: Yes
NamedNodeMap:
getNamedItemNS: Yes
setNamedItemNS: Yes
removeNamedItemNS: Yes
Attr:
ownerElement: Yes
Element:
getAttributeNS: Yes
setAttributeNS: Yes
removeAttributeNS: Yes
getAttributeNodeNS: Yes
setAttributeNodeNS: Yes
getElementsByTagNameNS: Yes
hasAttribute: Yes
hasAttributeNS: Yes
DocumentType:
publicId: Yes
systemId: Yes
internalSubset: No
DOM Level 3
DOMStringList: No Interface
NameList: No Interface
DOMImplementationList: All
DOMImplementationSource: All
DOMImplementation:
hasFeature: No
Document:
inputEncoding: No
xmlEncoding: No
xmlStandalone: No
xmlVersion: No
strictErrorChecking: No
documentURI: Yes
adoptNode: Yes
domConfig: No
normalizeDocument: No
renameNode: No
Node:
compareDocumentPosition: No
textContent: Yes
isSameNode: Yes
lookupPrefix: No
isDefaultNamespace: No
lookupNamespaceURI: No
isEqualNode: Yes
getFeature: Yes
setUserData: Yes
getUserData: Yes
Attr:
schemaTypeInfo: No
isId: Yes
Element:
schemaTypeInfo: No
setIdAttribute: Yes
setIdAttributeNS: Yes
setIdAttributeNode: Yes
Text:
isElementContentWhitespace: No
wholeText: No
replaceWholeText: No
TypeInfo: No
UserDataHandler: All
DOMError: No Interface
DOMErrorHandler: No Interface
DOMLocator: No Interface
DOMConfiguration: No Interface
The Events:
Level 2
EventTarget:
addEventListener: Yes
removeEventListener: Yes
dispatchEvent: Yes
EventListener: All
Event:
type: Yes
target: Yes
currentTarget: Yes
eventPhase: Yes
bubbles: Yes
cancelable: Yes
timeStamp: Yes
stopPropagation: Yes
preventDefault: Yes
initEvent: Yes
EventException: All
DocumentEvent:
createEvent: Yes
UIEvent:
view: Yes(But no AbstractView support!)
detail: Yes
initUIEvent: Yes
MouseEvent: All
MutationEvent: All
Level 3
Event:
namespaceURI: No
stopImmediatePropagation: Yes
defaultPrevented: Yes
initEventNS: Yes
CustomEvent: All
EventTarget:
addEventListenerNS: No
removeEventListenerNS: No
DocumentEvent:
canDispatch: No
UIEvent: All
TextEvent: All
KeyboardEvent: All
MouseEvent: All
MouseMultiWheelEvent: All
MouseWheelEvent: All
MutationEvent: All
MutationNameEvent: All