2008-09-08 Andreia Gaita * Mono.Mozilla/Base.cs: Create cache directory with a version specific name so there's no conflict when the user has both xulrunner runtime 1.8 and 1.9 installed. Get rid of gluezillaInstalled flag, redundant. Bind now returns bool so I can check if the engine is actually running properly after initialization. Check the return value of createBrowserWindow and bail out if no valid pointer is returned. Protect the string functions with a check so they don't get called if the engine is not initialized. * Mono.Mozilla/WebBrowser.cs: Update the loaded flag so users can now if the engine is actually running properly. 2008-08-19 Andreia Gaita * Mono.Mozilla/Base.cs: Clean up list of webcontrol objects when shutting down, and switch the initialized flag when there are no more controls loaded. Lock initialization and shutdown. 2008-08-19 Andreia Gaita * Assembly/AssemblyInfo.cs, ChangeLog, Mono.WebBrowser/DOM/IAttribute.cs, Mono.WebBrowser/DOM/IElementCollection.cs, Mono.WebBrowser/DOM/IWindow.cs, Mono.WebBrowser/DOM/IDocument.cs, Mono.WebBrowser/DOM/IAttributeCollection.cs, Mono.WebBrowser/DOM/INodeList.cs, Mono.WebBrowser/DOM/IWindowCollection.cs, Mono.WebBrowser/DOM/INode.cs, Mono.WebBrowser/DOM/IElement.cs, Mono.WebBrowser/DOM/INavigation.cs, Mono.WebBrowser/DOM/IHistory.cs, Mono.WebBrowser/Exception.cs, Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/DOM/Document.cs, Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/AttributeCollection.cs, Mono.Mozilla/DOM/DocumentType.cs, Mono.Mozilla/DOM/NodeList.cs, Mono.Mozilla/DOM/WindowCollection.cs, Mono.Mozilla/DOM/Node.cs, Mono.Mozilla/DOM/NamedNodeMap.cs, Mono.Mozilla/DOM/Element.cs, Mono.Mozilla/DOM/HTMLElementCollection.cs, Mono.Mozilla/DOM/Navigation.cs, Mono.Mozilla/DOM/History.cs, Mono.Mozilla/DOM/Attribute.cs, Mono.Mozilla/DOM/DOMObject.cs, Mono.Mozilla/DOM/Window.cs, Mono.Mozilla/Callback.cs, Mono.Mozilla/AsciiString.cs, Mono.Mozilla/WebBrowser.cs, Mono.Mozilla/UniString.cs, Mono.Mozilla/Base.cs: Fix inconsistent newlines. Add eol-style property. 2008-08-19 Andreia Gaita * Assembly/AssemblyInfo.cs, ChangeLog, Mono.WebBrowser/DOM/IAttribute.cs, Mono.WebBrowser/DOM/IElementCollection.cs, Mono.WebBrowser/DOM/IWindow.cs, Mono.WebBrowser/DOM/IDocument.cs, Mono.WebBrowser/DOM/IAttributeCollection.cs, Mono.WebBrowser/DOM/INodeList.cs, Mono.WebBrowser/DOM/IWindowCollection.cs, Mono.WebBrowser/DOM/INode.cs, Mono.WebBrowser/DOM/IElement.cs, Mono.WebBrowser/DOM/INavigation.cs, Mono.WebBrowser/DOM/IHistory.cs, Mono.WebBrowser/Exception.cs, Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/DOM/Document.cs, Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/AttributeCollection.cs, Mono.Mozilla/DOM/DocumentType.cs, Mono.Mozilla/DOM/NodeList.cs, Mono.Mozilla/DOM/WindowCollection.cs, Mono.Mozilla/DOM/Node.cs, Mono.Mozilla/DOM/NamedNodeMap.cs, Mono.Mozilla/DOM/Element.cs, Mono.Mozilla/DOM/HTMLElementCollection.cs, Mono.Mozilla/DOM/Navigation.cs, Mono.Mozilla/DOM/History.cs, Mono.Mozilla/DOM/Attribute.cs, Mono.Mozilla/DOM/DOMObject.cs, Mono.Mozilla/DOM/Window.cs, Mono.Mozilla/Callback.cs, Mono.Mozilla/AsciiString.cs, Mono.Mozilla/WebBrowser.cs, Mono.Mozilla/UniString.cs, Mono.Mozilla/Base.cs: Fix inconsistent newlines. Add eol-style property 2008-06-11 Andreia Gaita * Mono.Mozilla/DOM/Attribute.cs: Fix missing setter 2008-06-10 Andreia Gaita * Assembly/AssemblyInfo.cs: Version bump * Mono.Mozilla/Callback.cs: Fix initial load bug (uri can be null on first load). Add LoadStopped event for documents. Add Security change and Context menu events. * Mono.Mozilla/DOM/AttributeCollection.cs: Fix header. Add support for creating empty collections. * Mono.Mozilla/DOM/Document.cs, Mono.WebBrowser/DOM/IDocument.cs: Optimize Window getter. Add CreateAttribute, LoadStoppedEvent * Mono.Mozilla/DOM/DOMImplementation.cs, Mono.Mozilla/DOM/Navigation.cs: Save documents to a list so they can be looked up later for events. * Mono.Mozilla/DOM/Element.cs, Mono.WebBrowser/DOM/IElement.cs: Add Focus, Blur, ScrollIntoView * Mono.Mozilla/DOM/EventListener.cs: Fix header. Add support for firing events for any type of object * Mono.Mozilla/DOM/History.cs, Mono.WebBrowser/DOM/IHistory.cs: Added to support separate history on each window * Mono.Mozilla/DOM/HTMLElement.cs: Moved AppendChild and InsertBefore to the Node parent class * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Fetch owner document from a cached list if it's been looked up before. Add Value setter. Add InsertBefore and AppendChild from HTMLElement, implement ReplaceChild, RemoveChild. Add AttachEventHandler and DetachEventHandler to support generic event firing. Add Focus, Blur events. * Mono.Mozilla/DOM/NodeList.cs: add support for empty lists. * Mono.Mozilla/DOM/Window.cs, Mono.WebBrowser/DOM/IWindow.cs: Fetch owner document from a cached list if it's been looked up before. Add history and focus support. Add Load, Unload, OnFocus, OnBlur, Error, Scroll events. * Mono.Mozilla/interfaces/extras/NodeType.cs, Mono.Mozilla/interfaces/extras/Options.cs: Fix header * Mono.Mozilla/WebBrowser.cs, Mono.WebBrowser/IWebBrowser.cs: Add hashtable for caching document objects. Remove ScrollbarsEnabled implementation, not needed (webbrowser is using javascript instead). Add Security and Context menu events. * Mono.WebBrowser.dll.sources, Mono.WebBrowser2K5.csproj: Added new classes/interfaces: Mono.Mozilla/DOM/History.cs, Mono.WebBrowser/DOM/IHistory.cs, Mono.WebBrowser/DOM/EventArgs.cs, Mono.WebBrowser/DOM/EventHandlers.cs. Removed classes/interfaces: Mono.WebBrowser/DOM/NodeEventArgs.cs, Mono.WebBrowser/DOM/NodeEventHandler.cs * Mono.WebBrowser/DOM/EventArgs.cs, Mono.WebBrowser/DOM/EventHandlers.cs: Consolidate events into a single file. * Mono.WebBrowser/DOM/NodeEventArgs.cs: Removed, event declarations are now in EventArgs * Mono.WebBrowser/DOM/NodeEventHandler.cs: Removed, event declarations are now in EventHandlers 2008-06-02 Andreia Gaita * Mono.WebBrowser.dll.sources, Mono.WebBrowser2K5.csproj: Added new classes/interfaces * Mono.WebBrowser/DOM/IMediaList.cs: Added (Stylesheet.Media support) * Mono.WebBrowser/DOM/IDocument.cs: Added Doctype, Implementation, Stylesheets * Mono.WebBrowser/DOM/IDocumentType.cs, Mono.Mozilla/DOM/DocumentType.cs: Added (Document.DocumentType support) * Mono.WebBrowser/DOM/IStylesheetList.cs, Mono.Mozilla/DOM/StylesheetList.cs, Mono.Mozilla/interfaces/nsIDOMHTMLStyleElement.cs, Mono.Mozilla/interfaces/nsIDOMDocumentStyle.cs, Mono.Mozilla/interfaces/nsIDOMStyleSheetList.cs: Added (Document.Stylesheets support) * Mono.WebBrowser/DOM/IDOMImplementation.cs, Mono.Mozilla/DOM/DOMImplementation.cs: Added (Document.Implementation support) * Mono.WebBrowser/DOM/INamedNodeMap.cs, Mono.Mozilla/DOM/NamedNodeMap.cs: Added (Node collection for named node access - DocumentType.Entities, DocumentType.Notations) * Mono.WebBrowser/DOM/IStylesheet.cs, Mono.Mozilla/DOM/Stylesheet.cs: Added (StylesheetList.Item support) * Mono.WebBrowser/Exception.cs: Added error code for Preferences service * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add Offline, ScrollbarsEnabled * Mono.Mozilla/DOM/Document.cs: This class wraps both dom Document and HTMLDocument, so assume that the object is a Document (which HTMLDocument inherits from), and cast appropriately when calling properties or methods that are from the child class. Add DocType, Implementation, Stylesheets acessors * Mono.Mozilla/interfaces/nsIPrefBranch.cs, Mono.Mozilla/interfaces/nsIPrefService.cs: Added (browser preferences support) * Mono.Mozilla/interfaces/nsIClassInfo.cs: Added (interface querying support) * Assembly/AssemblyInfo.cs: Version bump 2008-05-22 Andreia Gaita * Makefile: Fix build target 2008-05-22 Andreia Gaita * README: Warning about dependencies 2008-05-22 Andreia Gaita * Assembly/AssemblyInfo.cs, build-csproj2k5, Mono.WebBrowser.dll.sources, Mono.WebBrowser.csproj, Mono.WebBrowser2K5.csproj, Makefile: Long overdue rename of Mono.Mozilla to Mono.WebBrowser. step 2 - renaming the assembly, project files, version bump 2008-05-22 Andreia Gaita * Makefile: Long overdue rename of Mono.Mozilla to Mono.WebBrowser. step 1 - directory moving 2008-05-22 Andreia Gaita * Mono.WebBrowser/DOM/INavigation.cs: GetHashCode is not needed here * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Hide the generic event, internal use only * Mono.Mozilla/Callback.cs: Add more xpcom helper objects for OnProgress. Cache the current uri for events. 2008-05-20 Andreia Gaita * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Refactor loading events to something more sane and usable * Mono.Mozilla/DOM/Document.cs: Check for nulls * Mono.Mozilla/Callback.cs: Added progress and request objects from the loading events. Track progress updates. 2008-05-08 Andreia Gaita * Mono.Mozilla2K5.csproj, Mono.Mozilla.dll.sources: Interfaces added to support stylesheet getters/setters * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/Node.cs: Implement Style property * Mono.Mozilla/interfaces/nsIDOMMediaList.cs, Mono.Mozilla/interfaces/nsIDOMCSSValue.cs, Mono.Mozilla/interfaces/nsIDOMCSSStyleSheet.cs, Mono.Mozilla/interfaces/nsIDOMCSSRuleList.cs, Mono.Mozilla/interfaces/nsIDOMStyleSheet.cs, Mono.Mozilla/interfaces/nsIDOMCSSStyleDeclaration.cs, Mono.Mozilla/interfaces/nsIDOMViewCSS.cs, Mono.Mozilla/interfaces/nsIDOMCSSRule.cs: Added to support stylesheet getters/setters 2008-05-07 Andreia Gaita * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/Element.cs: Implement TabIndex 2008-05-07 Andreia Gaita * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/Element.cs: Implement InnerHTML setter 2008-05-07 Andreia Gaita * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs, Mono.Mozilla/DOM/Window.cs: Helper to retrieve the window of a document 2008-04-23 Andreia Gaita * Mono.Mozilla/DOM/Node.cs: No need to proxy event objects, they should already be proxied 2008-04-23 Andreia Gaita * Mono.Mozilla/DOM/Node.cs: Add support for different types of events that can be injected into the embedded browser 2008-04-23 Andreia Gaita * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Add event firing capability * Mono.Mozilla/interfaces/nsIDOMDocumentEvent.cs, Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Interface to support firing events * Mono.Mozilla/WebBrowser.cs: Hide away debug CWLs 2008-04-18 Andreia Gaita * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs, Mono.Mozilla/Base.cs: Add javascript script evaluation support * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add StatusChanged event handler and args * Mono.Mozilla/Callback.cs: Change OnStatusChange callback signature to unicode, implement listeners call. 2008-04-18 Andreia Gaita * Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Added new generated interfaces for "Save to Disk" support and page loading monitoring * Mono.Mozilla/interfaces/nsICancelable.cs, Mono.Mozilla/interfaces/nsIWebBrowserPersist.cs: Interfaces for "Save to Disk" support * Mono.Mozilla/interfaces/nsIWebProgress.cs, Mono.Mozilla/interfaces/nsIWebProgressListener.cs: Interfaces for page loading monitoring 2008-04-18 Andreia Gaita * build-csproj2k5: Fix line endings 2008-04-16 Andreia Gaita * Mono.Mozilla/DOM/Navigation.cs, Mono.WebBrowser/DOM/INavigation.cs: Add history count getter 2008-04-09 Andreia Gaita * Mono.Mozilla2K5.csproj, Mono.Mozilla.dll.sources, Mono.Mozilla/interfaces/nsIDOMNSRange.cs: New interface for OuterHTML setter support * Mono.WebBrowser/DOM/INode.cs: Add Attributes accessor * Mono.WebBrowser/DOM/IElement.cs: Add OuterText, OuterHTML * Mono.Mozilla/DOM/HTMLElement.cs: Use the base class's unmanaged object directly instead of storing a copy locally. Makes it easier to replace the object if needed (outerHTML setter). Implement OuterHTML * Mono.Mozilla/DOM/AttributeCollection.cs: Update nodeCount on parent class * Mono.Mozilla/DOM/NodeList.cs: Use the Count property getter on all methods at least once to make sure the list always gets a chance to load * Mono.Mozilla/DOM/Node.cs: Use the base class's unmanaged object directly instead of storing a copy locally. Makes it easier to replace the object if needed (outerHTML setter). * Mono.Mozilla/DOM/Element.cs: Use the base class's unmanaged object directly instead of storing a copy locally. Makes it easier to replace the object if needed (outerHTML setter). Implement OuterText, OuterHTML 2008-04-07 Andreia Gaita * Mono.Mozilla/Base.cs: Change the initialization logic so that gluezilla_init is only called once for every app run (no matter how many browser windows end up being created). 2008-04-04 Andreia Gaita * Mono.Mozilla/DOM/Element.cs, * Mono.Mozilla/DOM/HTMLElement.cs, * Mono.WebBrowser/DOM/IElement.cs: Implement ClientWidth, ClientHeight, ScrollWidth, ScrollHeight, ScrollLeft, ScrollTop, OffsetHeight, OffsetWidth, OffsetLeft, OffsetTop, OffsetParent, Disabled. 2008-04-04 Andreia Gaita * Mono.Mozilla/DOM/Document.cs: Differentiate between html and non-html elements when creating the wrapper object for the active element, as certain properties are only implemented in html elements. 2008-04-04 Andreia Gaita * Mono.Mozilla/AsciiString.cs, Mono.Mozilla/UniString.cs: Fix for string getter cache, always mark the string as dirty when fetching the handle. 2008-03-27 Andreia Gaita * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add Initialized property so users can check whether everything loaded properly. Abstract the stream behind nice Render methods. * Mono.Mozilla/AsciiString.cs, Mono.Mozilla/UniString.cs: Add missing field to the string container structure. Fix handle getter. * Mono.Mozilla/Base.cs: Debug helper method change 2008-03-03 Andreia Gaita * Mono.WebBrowser/Exception.cs: Fix 1.1 build. Add header. 2008-03-03 Andreia Gaita * Mono.Mozilla/Base.cs: Add service manager getter. * Mono.Mozilla/interfaces/nsIWebBrowserStream.cs: Send basic IntPtr instead of byte array, arrays don't work. * Mono.Mozilla/WebBrowser.cs: Proper streaming support, and exception handling * Mono.WebBrowser/Exception.cs, Manager.cs: exception handling 2008-03-02 Andreia Gaita * Mono.Mozilla.dll.sources: Added yet another bunch of interfaces to support streaming and services * Mono.Mozilla/Base.cs: Added a ServiceManager getter to allow direct access to all mozilla services through contract IDs * Mono.Mozilla/WebBrowser.cs: Stream support, for sending data directly to the embedded browser. 2008-02-28 Andreia Gaita * Mono.Mozilla/DOM/EventListener.cs: Implementation of the nsIDOMEventListener, so that events can be registered as-needed for each dom object, instead of gluezilla firing everything up. This class will eventually replace gluezilla's EventListener. * Mono.Mozilla/DOM/Node.cs: Store the hashcode of the unmanaged object before proxying so we can use it to match events to objects. Implement event handling for dom objects. These events are registered on the managed EventListener and go straight out to the caller (don't go out through the Callback class). * Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/Attribute.cs, Mono.Mozilla/DOM/Element.cs: Use the hashcode stored on the parent Node class instead of the local object hashcode (the local object is a proxy, while the stored hashcode is from the real object) * Mono.Mozilla/DOM/Navigation.cs: Implement navigation through the history. * Mono.Mozilla/WebBrowser.cs: Move callback-related code to the Callback class. Add support for registering and firing events coming from the Callback class (generic window events, element specific events come through the element it was registered on). * Mono.Mozilla/Callback.cs: Cleaned up unused callbacks, moved callback-related code from WebBrowser.cs to here to keep all callback code together. All events coming through here are window-related and get sent to the handlers registered through the WebBrowser class/interface. * Mono.Mozilla/ICallback.cs: Removed, unnecessary overhead. * Mono.Mozilla/Base.cs: new pinvokes to support the string classes * Mono.Mozilla/UniString.cs: Wrapper for mozilla's nsString class * Mono.Mozilla/AsciiString.cs: Wrapper for mozilla's nsCString class * Mono.Mozilla.dll.sources: new files: AsciiString, UniString, EventListener, nsIDOMEvent, nsIDOMEventListener, nsIDOMEventTarget, nsIDOMKeyEvent, nsIDOMMouseEvent, nsIDOMUIEvent, NodeEventArgs, NodeEventHandler removed: ICallback 2008-02-06 Andreia Gaita * Navigation.cs: Pass the proper flags to reload 2008-01-28 Andreia Gaita * Assembly/AssemblyInfo.cs: Version change 2008-01-28 Andreia Gaita * Mono.WebBrowser/DOM/IWindow.cs, Mono.Mozilla/DOM/Window.cs: Add Document, Frames, StatusText properties, Load and Unload events. * Mono.Mozilla/WebBrowser.cs: Add StatusText getter and update it on callback. Add Load and Unload events and bubble them to the current Window. * Mono.Mozilla/ICallback.cs, Mono.Mozilla/Callback.cs: Rearrange callbacks, FocusIn and FocusOut are now Focus and Blur. Add Load and Unload callbacks. * Mono.Mozilla/DOM/DOMObject.cs: Add event handler support. 2008-01-24 Andreia Gaita * Mono.Mozilla.dll.sources, Mono.Mozilla.2K5.csproj: Added files. * Mono.Mozilla/interfaces/*.cs: Add yet more mozilla interfaces to support getting windows, page encodings, dealing with focused elements. Update GetProxyForObject signature. * Mono.Mozilla/Base.cs: Remove unneeded navigation methods, Navigation now goes through the Navigation object. (GetProxyForObject): Use GetObjectForIUnknown instead of GetTypedObjectForIUnknown, this one is not working properly. GetProxyForObject now has two parameters, instead of three (no need to send the type). All the interfaces have been regenerated and xpidl2cs changed for the new signature. * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Implement Window getter. Add events and event watcher to track page loading. * Mono.Mozilla/DOM/Attribute.cs, Mono.WebBrowser/DOM/IAttribute.cs: Add GetHashCode * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs: Implemented: Active, ActiveLinkColor, Anchors, Applets, Background, BackColor, Charset, Cookie, Domain, ForeColor, Forms, Images, LinkColor, Links, VisitedLinkColor, GetElement, Equals, GetHashCode * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/Element.cs: Implemented: Children, TagName, AppendChild, Equals, GetElementsByTagName, GetHashCode, SetAttribute. Changed get_All to return all children recursively. * Mono.WebBrowser/DOM/IElementCollection.cs: Fix header. Add GetHashCode. * Mono.Mozilla/DOM/HTMLElementCollection.cs: Fix header. Change Load() so it only includes html elements in the collection. * Mono.WebBrowser/DOM/INavigation.cs, Mono.Mozilla/DOM/Navigation.cs: Implement GetHashCode. Add CharsetChange option to the load flags so support refreshing a page after an encoding change. * Mono.WebBrowser/DOM/INode.cs, Mono.Mozilla/DOM/Node.cs: Implement: InsertBefore, LastChild, Next, Owner, Parent, Previous, GetHashCode * Mono.WebBrowser/DOM/INodeList.cs, Mono.Mozilla/DOM/NodeList.cs: Fix header. Implement GetHashCode. Add support for creating empty collections that get nodes added later, add support for removing nodes. * Mono.WebBrowser/DOM/IWindow.cs, Mono.Mozilla/DOM/Window.cs: Added. Represents a window (top level or frame) and wraps nsIDOMWindow. * Mono.WebBrowser/DOM/IWindowCollection.cs, Mono.Mozilla/DOM/WindowCollection.cs: Added. Represents a collection of windows, wraps nsIDOMWindowCollection. 2008-01-21 Andreia Gaita * Mono.WebBrowser/DOM/INavigation.cs: Add Go overload with flags, and LoadFlags enumeration. * Mono.WebBrowser/DOM/IDocument.cs: Add CreateElement, GetElement, Equals and Write. * Mono.Mozilla/DOM/Document.cs: Add CreateElement, GetElement, Equals and Write implementations. Fix GetElementsByTagName to return a proper IElementCollection instance. * Mono.Mozilla/DOM/Element.cs: Add Top, Left, Width and Height properties to support retrieving elements by location. * Mono.Mozilla/DOM/Navigation.cs: Reset WebBrowser object cache so that the next time Document (and others, eventually) is accessed, it will be retrieved from mozilla. This should happen on any action that causes a document reload. Add Go overload to support flags when loading an uri (bypassing proxies, refreshing from cache, etc). * Mono.Mozilla/DOM/HTMLElementCollection.cs: Fix inheritance 2008-01-21 Andreia Gaita * Mono.Mozilla/WebBrowser.cs: fix Document accessor 2008-01-14 Andreia Gaita * Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Updated. * build-csproj2k5: Fix guid. * Mono.Mozilla/DOM/*, Mono.WebBrowser/DOM/*: - Reorganization to get rid of unneeded DOM prefix. - All constructors now get a proxy only if the application is running under a different toolkit than the mozilla engine. If they match, no proxies are needed since there is no need to switch threads. * Mono.Mozilla/DOM/DOMObject.cs: - Move resources list to here since most objects need one. - WebBrowser now has some internal methods, so store the class instead of the interface for child classes to use. * Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/Element.cs: IElement represents all element types (html or not), and is implemented by two classes, one that wraps html elements, and another that wraps other element types. IElement represents both in the public API so it's easier to deal with for the api user. * Mono.Mozilla/DOM/Attribute.cs, Mono.Mozilla/DOM/AttributeCollection.cs, Mono.WebBrowser/DOM/IAttributeCollection.cs, Mono.WebBrowser/DOM/IAttribute.cs: Added. Represent attributes from an element. * Mono.Mozilla/DOM/Document.cs, Mono.WebBrowser/DOM/IDocument.cs: - renamed from DOMHTMLDocument and IDOMHTMLDocument, respectively - Added GetElementsByTagName method. - Document is now retrieved from the WebNavigation interface, so get a proxy for it in the constructor. - Add an internal method that returns the unmanaged resource, the Element.InnerText property needs to use it. * Mono.Mozilla/DOM/Element.cs, Mono.WebBrowser/DOM/IElement.cs: - renamed from DOMElement and IDOMElement, respectively - Added the following properties: InnerText, InnerHTML, All (returns all child elements), HasAttribute, GetAttribute. InnerHTML is virtual, and is implemented in HTMLElement. * Mono.Mozilla/DOM/HTMLElement.cs: Implement InnerHTML property. * Mono.Mozilla/DOM/HTMLElementCollection.cs: Added. Subclass of NodeList that represents a list of html elements. * Mono.Mozilla/DOM/Navigation.cs: Added a Document property that uses the nsIWebNavigation interface to access the Document directly instead of going through gluezilla. * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Renamed from DOMNode and IDOMNode, respectively. Added the following properties: - Attributes (returns the attributes of a node) - ChildNodes - Type (returns the type of a node, i.e., Element, Attribute, etc) - FirstChild - LocalName Added public enumeration to determine a node type. * Mono.Mozilla/DOM/NodeList.cs, Mono.WebBrowser/DOM/INodeList.cs: Renamed from DOMNodeList and IDOMNodeList, respectively. Allow subclasses to fill in and access the collection of nodes, as well as override the loading method. * Mono.Mozilla/interfaces/extras/NodeType.cs: Added. Represents the various types of a Node (element, attribute, etc). * Mono.WebBrowser/DOM/IDOMHTMLElement.cs: Removed. Merged with IElement. * Mono.Mozilla/Base.cs: Add support for tracking which toolkit the application is running under, so I know if I need to create threads and proxies or not. Send that info to gluezilla, and get back which toolkit the mozilla engine is using. * Mono.Mozilla/WebBrowser.cs: Save the application and engine toolkit info. Change the Document accessor so it goes through the Navigation object instead of thru gluezilla. 2008-01-14 Andreia Gaita * Mono.Mozilla/interfaces/nsIDOMNSHTMLElement.cs: Added. Interface to access the InnerHtml property of an element. 2008-01-09 Andreia Gaita * Mono.Mozilla/Base.cs, Mono.Mozilla/WebBrowser.cs, Mono.WebBrowser/IWebBrowser.cs, Mono.WebBrowser/Manager.cs: Add initial support for specifying the toolkit the application is running on (gtk or winforms). Knowing this allows gluezilla not to initialize a gtk loop if the application is already running one (and is passing gluezilla a gtk handle and not an X/HWND handle). This should make it easy to also use gluezilla/Mono.Mozilla with gtk apps. 2008-01-09 Andreia Gaita * build-csproj2k5: take out weird characters creeping in, vstudio doesn't appreciate them. 2008-01-07 Andreia Gaita * build-csproj2k5: Added to generate Mono.Mozilla2K5.csproj from .sources * Mono.Mozilla2K5.csproj: updated * Makefile: run the build-csproj2k5 2008-01-07 Andreia Gaita * Mono.Mozilla.dll.sources: Added new classes (see below). * Mono.Mozilla/DOM/DOMObject.cs: - Store reference to the IWebBrowser control that created this (and subclassed) object. This reference needs to be used in any gluezilla calls that have to invoke methods on the mozilla ui thread (any Widget method, whose ptr reference is stored in Base and indexed by IWebBrowser control). - Tweak the Dispose pattern: subclasses don't have their own private dispose field to keep track of whether they've been disposed already, this base class takes care of that. * Mono.Mozilla/DOM/DOMNode.cs: - Initialize a proxy to the nsI object that this wrapper encapsulates. - Cache all objects returned from this object in an hashtable, so that 1) we can keep track of all objects and release them earlier and properly 2) we don't have to keep creating new objects everytime we get requests for read-only stuff - Implement FirstChild and LocalName - Add Dispose pattern * Mono.Mozilla/DOM/DOMHTMLElement.cs: - Change the inheritance to DOMElement. - Change the constructor to send the nsI object and IWebBrowser up the tree. - Get a proxy to the nsI object. - Add dispose pattern. * Mono.Mozilla/DOM/DOMHTMLDocument.cs: - Change the constructor to send the IWebBrowser instance up the tree. - Add resources hashtable to keep track of already-fetched objects. Particularly useful here since getElementById can be called n times, so it would be complicated to keep track and dispose properly of all the objects. - Implement DocumentElement - Change Body and GetElementById to use resources cache - Fix GetElementById case * Mono.Mozilla/DOM/DOMElement.cs: Added. Inherits from DOMNode, so the parent class also keeps track of the nsI object. * Mono.Mozilla/DOM/DOMNodeList.cs: Added to support easy iteration of nodes. * Mono.Mozilla/DOM/Navigation.cs: Tweak dispose pattern and constructor to the new model. * Mono.Mozilla/WebBrowser.cs: Fix the DOMHTMLDocument creation. * Mono.WebBrowser/DOM/IDOMHTMLDocument.cs: Fix case on GetElementById, add DocumentElement property. * Mono.WebBrowser/DOM/IDOMNodeList.cs, Mono.WebBrowser/DOM/IDOMElement.cs: Added, no external functionality for now. 2008-01-07 Andreia Gaita * Mono.Mozilla/DOM/Navigation.cs: Fix calls to the nsIWebNavigation interface (case change from being generated through xpidl2cs. that's what I get for merging in batches :/ ) 2008-01-07 Andreia Gaita * Mono.Mozilla/Base.cs: Add GetProxyForObject method to create proxies for mozilla objects. Remove trace listener. 2008-01-07 Andreia Gaita * Mono.Mozilla/interfaces/nsIDOMRange.cs, Mono.Mozilla/interfaces/nsIDOMDocumentRange.cs: Added to get the content of elements. * Mono.Mozilla/interfaces/*.cs: Regenerated with the xpidl2cs.pl script. Add helper class to create a proxy for all native mozilla interfaces. * Mono.Mozilla/interfaces/extras/: classes for the mozilla interfaces that don't get generated automatically, like enums, delegates, etc. * Mono.Mozilla/interfaces/extras/nsIWriteSegmentFun.cs: Delegate callback for a writer function for mozilla streams (nsIInputStream.readSegments) * Mono.Mozilla/interfaces/extras/Options.cs: Enum for nsIWebNavigation.stop 2007-12-25 Andreia Gaita * Mono.Mozilla/DOM/DOMHTMLDocument.cs, Mono.Mozilla/DOM/DOMObject.cs Mono.Mozilla/DOM/Navigation.cs: Properly dispose unmanaged resources. Use native mozilla dom interfaces through com directly instead of going through the glue, as they are now proxies that invoke the methods on the main mozilla ui properly (avoiding threading problems). Check if library was properly initialized. Add Go method - implements navigation directly through COM instead of going through the glue. * Mono.Mozilla/interfaces/nsIWebNavigation.cs: Use typed flags instead of generic uint32. Remove comments about threading (as it is now safe to use this interface) * Mono.Mozilla/Base.cs: Return bool on initialization so I can track if library was properly initialized from the interfaces that go directly through COM and not through the glue * Mono.Mozilla/WebBrowser.cs: Save initialization result so interfaces don't get called if the library was not initialized. 2007-11-08 Andreia Gaita * Mono.Mozilla.csproj, Mono.Mozilla2K5.csproj: Synch with .sources 2007-11-08 Andreia Gaita * Mono.Mozilla.dll.sources, Mono.Mozilla/DOM/Navigation.cs, Mono.Mozilla/interfaces/nsIHistoryEntry.cs, Mono.Mozilla/interfaces/nsIInputStream.cs, Mono.Mozilla/interfaces/nsISHistory.cs, Mono.Mozilla/interfaces/nsISHistoryListener.cs, Mono.Mozilla/interfaces/nsISimpleEnumerator.cs, Mono.Mozilla/interfaces/nsIURI.cs, Mono.Mozilla/interfaces/nsIWebNavigation.cs, Mono.WebBrowser/DOM/INavigation.cs: Add nsIWebNavigation interface and related dependencies to access navigation-related properties directly (CanGoBack, etc). Add INavigation interface and implementation to expose navigation properties. Navigation is now done through this interface (Reload(), Stop(), etc). Please note: Due to threading issues on linux (namely, mozilla being run on a different thread), only methods that do not affect drawing can be invoked through the interfaces, so although Reload is now called from the INavigation interface, it is still being routed through the Base class and the glue code (and not through the nsIWebNavigation.Reload call, as are other non-drawing-affecting methods like GetTitle). * Mono.Mozilla/ICallback.cs, Callback.cs: Remove unneeded events, adjust parameters, add support enumeration for tracking loading state. * Mono.Mozilla/DOM/DOMHTMLDocument.cs, Mono.WebBrowser/DOM/IDOMHTMLDocument.cs: Add URL getter. * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add Navigation interface getter. Add Navigated event support through the StateChange and LocationChange events. Clean up cached objects when navigating. Remove Reload, Forward, Stop, Home methods, these are now accessible through the INavigation interface. * Mono.Mozilla/Base.cs: Add call to return the navigation interface. Add MarshalAs so that returning interfaces directly works on mono. 2007-10-31 Andreia Gaita * Base.cs: Send (and create if needed) user dir to store local mozilla data 2007-10-30 Andreia Gaita * Base.cs: use the blur method to signal when the webbrowser loses focus 2007-10-18 Andreia Gaita * use the newly-renamed gluezilla library 2007-10-07 Andreia Gaita * More dialog event options. * Mono.Mozilla/interfaces/nsIDOM*: Added mozilla dom interfaces. * Mono.WebBrowser/DOM/IDOM*: Added generic interfaces for public dom access. * Mono.Mozilla/DOM/DOM*: corresponding implementations for accessing mozilla. * WebBrowser.cs: moved to Mono.Mozilla, since it is a mozilla-specific implementation of the generic public interface. 2007-09-23 Andreia Gaita * Added implementation of dialog popups - alert, alertcheck, confirm, confirmcheck, confirmex, prompt, promptusernameandpassword, promptpassword, select. Cleaned up some. 2007-09-19 Andreia Gaita * Forgot to commit an update on the xulbrowser check :/ 2007-09-13 Andreia Gaita * add check for xulbrowser library, if it's not present complain then leave (don't blow up) * change blur method to call deactivate (mozilla seems to need it to know when it loses focus) * add FocusOption enumeration for finer focus control 2007-09-12 Andreia Gaita * Base.cs, IWebBrowser.cs, WebBrowser.cs: setup shutdown routine 2007-08-11 Andreia Gaita * AssemblyInfo.cs: fix version and attributes 2007-08-10 Andreia Gaita * Reorganize sources by namespace, fix csproj 2007-08-10 Andreia Gaita * Move to main tree 2007-08-10 Andreia Gaita * Add file headers. Take out generic collections, because we'll need to use this on 1.1 as well. 2007-08-09 Andreia Gaita * Change external generic interfaces to Mono.WebBrowser namespace, while mozilla-specific stuff is Mono.Mozilla. Encapsulate code even further with a Manager, so that callers can only use what's available in the IWebBrowser interface by asking for a new instance from the Manager. Everything not in the IWebBrowser interface is private. Navigation control, new window creation events. 2007-07-30 Andreia Gaita * Add focus and activation management Add new ICallback interface to encapsulate callbacks from xulbrowser. IWebBrowser has all calls and events accessible from MWF. Implement mouse, focus and key handlers 2007-07-21 Andreia Gaita * MozilaInvoke is now called Base, and encapsulates all the pinvokes plus a list of web controls that have been loaded indexed the control, with binding info (callback object and IntPtr to the native xulbrowser instance. WebBrowser.cs implements IWebBrowser and is the entry point to the library - the WebControl api keeps a reference and calls only this. Add vstudio 2005 project for 2.0 api 2007-06-25 Andreia Gaita * Callback.cs, IWebBrowser.cs, WebBrowser.cs: Change OnWidgetLoaded callback to send the new handle when it's called. 2007-06-18 Andreia Gaita * initial checkin.