# gdome **Repository Path**: mirrors_chromium_gitlab_gnome/gdome ## Basic Information - **Project Name**: gdome - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-09 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Gdome, the Gnome DOM Engine This package contains an enhanced implementation of the W3C DOM Level 1 specification. For more information about Gdome and its place in the Gnome world DOMination project, see http://www.levien.com/gnome/domination.html . For technical discussions, see http://rpmfind.net/tools/gdome/messages/ . The scope of Gdome is to hold the document tree and provide a number of interfaces to it, including a simple C-language binding and a standards-compliant CORBA interface. Enhancements to the Level 1 DOM comprise: sliding DOM, events (based on Level 2 draft), and an interface for custom implementations for part of the document tree. The custom implementation stuff is a later priority than getting basic DOM and event functionality working - the goal is to get a prototype DOMination application finished. Other components of the DOMination architecture, such as rendering contexts, rendering objects, and generic canvas-based objects, are outside the scope of Gdome, and will be coming soon to a CVS repository near you. Refcounting A quick note: a number of methods return a value that is usually ignored. A good example is Node::appendChild, which simply returns the newChild argument. Do not simply ignore the return value, as this will leak memory. Unref it. Thus, to append a newly created element to a node, the following code sequence is correct and nonleaky: GdomeNode *node; GdomeDocument *doc; GdomeElement *new_el; GdomeNode *result; new_el = gdome_doc_createElement (doc, element_name, &exc); result = gdome_n_appendChild (doc, (GdomeNode *)new_el, &exc); gdome_n_unref (result); gdome_el_unref (new_el); Methods affected include Node::appendChild, Node::insertBefore, Node::replaceChild, and Node::removeChild.