1 2008-03-03 Andreia Gaita <avidigal@novell.com>
3 * Mono.WebBrowser/Exception.cs: Fix 1.1 build. Add header.
5 2008-03-03 Andreia Gaita <avidigal@novell.com>
7 * Mono.Mozilla/Base.cs: Add service manager getter.
8 * Mono.Mozilla/interfaces/nsIWebBrowserStream.cs: Send basic IntPtr instead of byte array, arrays
10 * Mono.Mozilla/WebBrowser.cs: Proper streaming support, and exception handling
11 * Mono.WebBrowser/Exception.cs, Manager.cs: exception handling
13 2008-03-02 Andreia Gaita <avidigal@novell.com>
15 * Mono.Mozilla.dll.sources: Added yet another bunch of interfaces to support
16 streaming and services
17 * Mono.Mozilla/Base.cs: Added a ServiceManager getter to allow direct access
18 to all mozilla services through contract IDs
19 * Mono.Mozilla/WebBrowser.cs: Stream support, for sending data directly to
22 2008-02-28 Andreia Gaita <avidigal@novell.com>
24 * Mono.Mozilla/DOM/EventListener.cs: Implementation of the
25 nsIDOMEventListener, so that events can be registered as-needed
26 for each dom object, instead of gluezilla firing everything up.
27 This class will eventually replace gluezilla's EventListener.
29 * Mono.Mozilla/DOM/Node.cs: Store the hashcode of the unmanaged
30 object before proxying so we can use it to match events to objects.
31 Implement event handling for dom objects. These events are registered
32 on the managed EventListener and go straight out to the caller (don't
33 go out through the Callback class).
35 * Mono.Mozilla/DOM/HTMLElement.cs,
36 Mono.Mozilla/DOM/Attribute.cs,
37 Mono.Mozilla/DOM/Element.cs: Use the hashcode stored on the
38 parent Node class instead of the local object hashcode (the
39 local object is a proxy, while the stored hashcode is from
42 * Mono.Mozilla/DOM/Navigation.cs: Implement navigation through
45 * Mono.Mozilla/WebBrowser.cs: Move callback-related code to
46 the Callback class. Add support for registering and firing events
47 coming from the Callback class (generic window events, element
48 specific events come through the element it was registered on).
50 * Mono.Mozilla/Callback.cs: Cleaned up unused callbacks, moved
51 callback-related code from WebBrowser.cs to here to keep all
52 callback code together. All events coming through here are
53 window-related and get sent to the handlers registered through
54 the WebBrowser class/interface.
56 * Mono.Mozilla/ICallback.cs: Removed, unnecessary overhead.
57 * Mono.Mozilla/Base.cs: new pinvokes to support the string classes
58 * Mono.Mozilla/UniString.cs: Wrapper for mozilla's nsString class
59 * Mono.Mozilla/AsciiString.cs: Wrapper for mozilla's nsCString class
61 * Mono.Mozilla.dll.sources:
62 new files: AsciiString, UniString, EventListener, nsIDOMEvent,
63 nsIDOMEventListener, nsIDOMEventTarget, nsIDOMKeyEvent, nsIDOMMouseEvent,
64 nsIDOMUIEvent, NodeEventArgs, NodeEventHandler
67 2008-02-06 Andreia Gaita <avidigal@novell.com>
69 * Navigation.cs: Pass the proper flags to reload
71 2008-01-28 Andreia Gaita <avidigal@novell.com>
73 * Assembly/AssemblyInfo.cs: Version change
75 2008-01-28 Andreia Gaita <avidigal@novell.com>
77 * Mono.WebBrowser/DOM/IWindow.cs, Mono.Mozilla/DOM/Window.cs:
78 Add Document, Frames, StatusText properties, Load and Unload events.
80 * Mono.Mozilla/WebBrowser.cs: Add StatusText getter and update it on
81 callback. Add Load and Unload events and bubble them to the current
84 * Mono.Mozilla/ICallback.cs, Mono.Mozilla/Callback.cs: Rearrange callbacks,
85 FocusIn and FocusOut are now Focus and Blur. Add Load and Unload callbacks.
87 * Mono.Mozilla/DOM/DOMObject.cs: Add event handler support.
89 2008-01-24 Andreia Gaita <avidigal@novell.com>
91 * Mono.Mozilla.dll.sources, Mono.Mozilla.2K5.csproj: Added files.
93 * Mono.Mozilla/interfaces/*.cs: Add yet more mozilla interfaces to
94 support getting windows, page encodings, dealing with focused elements.
95 Update GetProxyForObject signature.
97 * Mono.Mozilla/Base.cs: Remove unneeded navigation methods, Navigation
98 now goes through the Navigation object.
99 (GetProxyForObject): Use GetObjectForIUnknown instead of
100 GetTypedObjectForIUnknown, this one is not working properly. GetProxyForObject
101 now has two parameters, instead of three (no need to send the type). All the
102 interfaces have been regenerated and xpidl2cs changed for the new signature.
104 * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs:
105 Implement Window getter. Add events and event watcher to track page loading.
107 * Mono.Mozilla/DOM/Attribute.cs, Mono.WebBrowser/DOM/IAttribute.cs:
110 * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs:
111 Implemented: Active, ActiveLinkColor, Anchors, Applets, Background, BackColor,
112 Charset, Cookie, Domain, ForeColor, Forms, Images, LinkColor, Links,
113 VisitedLinkColor, GetElement, Equals, GetHashCode
\r
115 * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/Element.cs:
116 Implemented: Children, TagName, AppendChild, Equals, GetElementsByTagName,
117 GetHashCode, SetAttribute.
118 Changed get_All to return all children recursively.
120 * Mono.WebBrowser/DOM/IElementCollection.cs: Fix header. Add GetHashCode.
122 * Mono.Mozilla/DOM/HTMLElementCollection.cs: Fix header. Change Load() so
123 it only includes html elements in the collection.
125 * Mono.WebBrowser/DOM/INavigation.cs, Mono.Mozilla/DOM/Navigation.cs:
126 Implement GetHashCode. Add CharsetChange option to the load flags so support
127 refreshing a page after an encoding change.
129 * Mono.WebBrowser/DOM/INode.cs, Mono.Mozilla/DOM/Node.cs:
130 Implement: InsertBefore, LastChild, Next, Owner, Parent, Previous, GetHashCode
\r
132 * Mono.WebBrowser/DOM/INodeList.cs, Mono.Mozilla/DOM/NodeList.cs:
133 Fix header. Implement GetHashCode. Add support for creating empty
134 collections that get nodes added later, add support for removing nodes.
136 * Mono.WebBrowser/DOM/IWindow.cs, Mono.Mozilla/DOM/Window.cs:
137 Added. Represents a window (top level or frame) and wraps nsIDOMWindow.
139 * Mono.WebBrowser/DOM/IWindowCollection.cs,
140 Mono.Mozilla/DOM/WindowCollection.cs:
141 Added. Represents a collection of windows, wraps nsIDOMWindowCollection.
143 2008-01-21 Andreia Gaita <avidigal@novell.com>
145 * Mono.WebBrowser/DOM/INavigation.cs: Add Go overload with flags,
146 and LoadFlags enumeration.
148 * Mono.WebBrowser/DOM/IDocument.cs: Add CreateElement, GetElement,
151 * Mono.Mozilla/DOM/Document.cs: Add CreateElement, GetElement,
152 Equals and Write implementations.
153 Fix GetElementsByTagName to return a proper IElementCollection instance.
155 * Mono.Mozilla/DOM/Element.cs: Add Top, Left, Width and Height
156 properties to support retrieving elements by location.
158 * Mono.Mozilla/DOM/Navigation.cs: Reset WebBrowser object cache
159 so that the next time Document (and others, eventually) is accessed,
160 it will be retrieved from mozilla. This should happen on any
161 action that causes a document reload.
163 Add Go overload to support flags when loading an uri (bypassing proxies,
164 refreshing from cache, etc).
166 * Mono.Mozilla/DOM/HTMLElementCollection.cs: Fix inheritance
168 2008-01-21 Andreia Gaita <avidigal@novell.com>
170 * Mono.Mozilla/WebBrowser.cs: fix Document accessor
172 2008-01-14 Andreia Gaita <avidigal@novell.com>
174 * Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Updated.
176 * build-csproj2k5: Fix guid.
178 * Mono.Mozilla/DOM/*, Mono.WebBrowser/DOM/*:
179 - Reorganization to get rid of unneeded DOM prefix.
180 - All constructors now get a proxy only if the application is running under
181 a different toolkit than the mozilla engine. If they match, no proxies are
182 needed since there is no need to switch threads.
184 * Mono.Mozilla/DOM/DOMObject.cs:
185 - Move resources list to here since most objects need one.
186 - WebBrowser now has some internal methods, so store the class instead of the
187 interface for child classes to use.
189 * Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/Element.cs:
190 IElement represents all element types (html or not), and is implemented
191 by two classes, one that wraps html elements, and another that wraps other
192 element types. IElement represents both in the public API so it's easier
193 to deal with for the api user.
195 * Mono.Mozilla/DOM/Attribute.cs,
196 Mono.Mozilla/DOM/AttributeCollection.cs,
197 Mono.WebBrowser/DOM/IAttributeCollection.cs,
198 Mono.WebBrowser/DOM/IAttribute.cs:
199 Added. Represent attributes from an element.
201 * Mono.Mozilla/DOM/Document.cs, Mono.WebBrowser/DOM/IDocument.cs:
202 - renamed from DOMHTMLDocument and IDOMHTMLDocument, respectively
203 - Added GetElementsByTagName method.
204 - Document is now retrieved from the WebNavigation interface, so get a proxy for
205 it in the constructor.
206 - Add an internal method that returns the unmanaged resource, the Element.InnerText
207 property needs to use it.
209 * Mono.Mozilla/DOM/Element.cs, Mono.WebBrowser/DOM/IElement.cs:
210 - renamed from DOMElement and IDOMElement, respectively
211 - Added the following properties: InnerText, InnerHTML, All (returns all child
212 elements), HasAttribute, GetAttribute. InnerHTML is virtual, and is implemented
215 * Mono.Mozilla/DOM/HTMLElement.cs: Implement InnerHTML property.
217 * Mono.Mozilla/DOM/HTMLElementCollection.cs: Added. Subclass of NodeList that
218 represents a list of html elements.
220 * Mono.Mozilla/DOM/Navigation.cs: Added a Document property that uses the
221 nsIWebNavigation interface to access the Document directly instead of going
224 * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Renamed from
225 DOMNode and IDOMNode, respectively. Added the following properties:
226 - Attributes (returns the attributes of a node)
228 - Type (returns the type of a node, i.e., Element, Attribute, etc)
231 Added public enumeration to determine a node type.
233 * Mono.Mozilla/DOM/NodeList.cs, Mono.WebBrowser/DOM/INodeList.cs: Renamed
234 from DOMNodeList and IDOMNodeList, respectively. Allow subclasses to fill in and
235 access the collection of nodes, as well as override the loading method.
237 * Mono.Mozilla/interfaces/extras/NodeType.cs: Added. Represents the various
238 types of a Node (element, attribute, etc).
240 * Mono.WebBrowser/DOM/IDOMHTMLElement.cs: Removed. Merged with IElement.
242 * Mono.Mozilla/Base.cs: Add support for tracking which toolkit the
243 application is running under, so I know if I need to create threads and
244 proxies or not. Send that info to gluezilla, and get back which toolkit
245 the mozilla engine is using.
247 * Mono.Mozilla/WebBrowser.cs: Save the application and engine toolkit info.
248 Change the Document accessor so it goes through the Navigation object instead
251 2008-01-14 Andreia Gaita <avidigal@novell.com>
253 * Mono.Mozilla/interfaces/nsIDOMNSHTMLElement.cs: Added. Interface to
254 access the InnerHtml property of an element.
256 2008-01-09 Andreia Gaita <avidigal@novell.com>
\r
258 * Mono.Mozilla/Base.cs,
259 Mono.Mozilla/WebBrowser.cs,
260 Mono.WebBrowser/IWebBrowser.cs,
261 Mono.WebBrowser/Manager.cs:
262 Add initial support for specifying the toolkit the application is running
263 on (gtk or winforms). Knowing this allows gluezilla not to initialize
264 a gtk loop if the application is already running one (and is passing
265 gluezilla a gtk handle and not an X/HWND handle). This should make it
266 easy to also use gluezilla/Mono.Mozilla with gtk apps.
268 2008-01-09 Andreia Gaita <avidigal@novell.com>
\r
270 * build-csproj2k5: take out weird characters creeping in, vstudio
\r
271 doesn't appreciate them.
273 2008-01-07 Andreia Gaita <avidigal@novell.com>
275 * build-csproj2k5: Added to generate Mono.Mozilla2K5.csproj from .sources
276 * Mono.Mozilla2K5.csproj: updated
277 * Makefile: run the build-csproj2k5
279 2008-01-07 Andreia Gaita <avidigal@novell.com>
281 * Mono.Mozilla.dll.sources: Added new classes (see below).
283 * Mono.Mozilla/DOM/DOMObject.cs:
284 - Store reference to the IWebBrowser control that created this (and
285 subclassed) object. This reference needs to be used in any gluezilla calls
286 that have to invoke methods on the mozilla ui thread (any Widget method,
287 whose ptr reference is stored in Base and indexed by IWebBrowser control).
289 - Tweak the Dispose pattern: subclasses don't have their own private
290 dispose field to keep track of whether they've been disposed already, this
291 base class takes care of that.
293 * Mono.Mozilla/DOM/DOMNode.cs:
294 - Initialize a proxy to the nsI object that this wrapper encapsulates.
295 - Cache all objects returned from this object in an hashtable, so that
296 1) we can keep track of all objects and release them earlier and
298 2) we don't have to keep creating new objects everytime we get requests
300 - Implement FirstChild and LocalName
301 - Add Dispose pattern
303 * Mono.Mozilla/DOM/DOMHTMLElement.cs:
304 - Change the inheritance to DOMElement.
305 - Change the constructor to send the nsI object and IWebBrowser up the tree.
306 - Get a proxy to the nsI object.
307 - Add dispose pattern.
309 * Mono.Mozilla/DOM/DOMHTMLDocument.cs:
310 - Change the constructor to send the IWebBrowser instance up the tree.
311 - Add resources hashtable to keep track of already-fetched objects.
312 Particularly useful here since getElementById can be called n times, so it
313 would be complicated to keep track and dispose properly of all the objects.
314 - Implement DocumentElement
315 - Change Body and GetElementById to use resources cache
316 - Fix GetElementById case
318 * Mono.Mozilla/DOM/DOMElement.cs: Added. Inherits from DOMNode, so the
319 parent class also keeps track of the nsI object.
320 * Mono.Mozilla/DOM/DOMNodeList.cs: Added to support easy iteration of nodes.
321 * Mono.Mozilla/DOM/Navigation.cs: Tweak dispose pattern and constructor to
324 * Mono.Mozilla/WebBrowser.cs: Fix the DOMHTMLDocument creation.
326 * Mono.WebBrowser/DOM/IDOMHTMLDocument.cs: Fix case on GetElementById, add
327 DocumentElement property.
329 * Mono.WebBrowser/DOM/IDOMNodeList.cs,
330 Mono.WebBrowser/DOM/IDOMElement.cs:
331 Added, no external functionality for now.
333 2008-01-07 Andreia Gaita <avidigal@novell.com>
335 * Mono.Mozilla/DOM/Navigation.cs: Fix calls to the nsIWebNavigation
336 interface (case change from being generated through xpidl2cs. that's what
337 I get for merging in batches :/ )
339 2008-01-07 Andreia Gaita <avidigal@novell.com>
341 * Mono.Mozilla/Base.cs: Add GetProxyForObject method to create proxies
343 Remove trace listener.
345 2008-01-07 Andreia Gaita <avidigal@novell.com>
347 * Mono.Mozilla/interfaces/nsIDOMRange.cs,
348 Mono.Mozilla/interfaces/nsIDOMDocumentRange.cs:
349 Added to get the content of elements.
351 * Mono.Mozilla/interfaces/*.cs: Regenerated with the xpidl2cs.pl script.
352 Add helper class to create a proxy for all native mozilla interfaces.
354 * Mono.Mozilla/interfaces/extras/: classes for the mozilla interfaces that
355 don't get generated automatically, like enums, delegates, etc.
357 * Mono.Mozilla/interfaces/extras/nsIWriteSegmentFun.cs:
358 Delegate callback for a writer function for mozilla streams
359 (nsIInputStream.readSegments)
361 * Mono.Mozilla/interfaces/extras/Options.cs: Enum for nsIWebNavigation.stop
363 2007-12-25 Andreia Gaita <avidigal@novell.com>
365 * Mono.Mozilla/DOM/DOMHTMLDocument.cs,
366 Mono.Mozilla/DOM/DOMObject.cs
367 Mono.Mozilla/DOM/Navigation.cs:
369 Properly dispose unmanaged resources.
370 Use native mozilla dom interfaces through com directly instead
371 of going through the glue, as they are now proxies that invoke
372 the methods on the main mozilla ui properly (avoiding threading problems).
373 Check if library was properly initialized.
374 Add Go method - implements navigation
375 directly through COM instead of going through the glue.
377 * Mono.Mozilla/interfaces/nsIWebNavigation.cs: Use typed flags instead of
378 generic uint32. Remove comments about threading (as it is now safe to use
381 * Mono.Mozilla/Base.cs: Return bool on initialization so I can track if
382 library was properly initialized from the interfaces that go directly
383 through COM and not through the glue
385 * Mono.Mozilla/WebBrowser.cs: Save initialization result so interfaces
386 don't get called if the library was not initialized.
388 2007-11-08 Andreia Gaita <avidigal@novell.com>
390 * Mono.Mozilla.csproj, Mono.Mozilla2K5.csproj: Synch with .sources
392 2007-11-08 Andreia Gaita <avidigal@novell.com>
394 * Mono.Mozilla.dll.sources,
395 Mono.Mozilla/DOM/Navigation.cs,
396 Mono.Mozilla/interfaces/nsIHistoryEntry.cs,
397 Mono.Mozilla/interfaces/nsIInputStream.cs,
398 Mono.Mozilla/interfaces/nsISHistory.cs,
399 Mono.Mozilla/interfaces/nsISHistoryListener.cs,
400 Mono.Mozilla/interfaces/nsISimpleEnumerator.cs,
401 Mono.Mozilla/interfaces/nsIURI.cs,
402 Mono.Mozilla/interfaces/nsIWebNavigation.cs,
403 Mono.WebBrowser/DOM/INavigation.cs:
405 Add nsIWebNavigation interface and related
406 dependencies to access navigation-related properties directly (CanGoBack, etc).
407 Add INavigation interface and implementation to expose navigation properties.
408 Navigation is now done through this interface (Reload(), Stop(), etc).
410 Please note: Due to threading issues on linux (namely, mozilla being run
411 on a different thread), only methods that do not affect drawing can be
412 invoked through the interfaces, so although Reload is now called from
413 the INavigation interface, it is still being routed through the Base
414 class and the glue code (and not through the nsIWebNavigation.Reload
415 call, as are other non-drawing-affecting methods like GetTitle).
417 * Mono.Mozilla/ICallback.cs, Callback.cs: Remove unneeded events, adjust parameters,
418 add support enumeration for tracking loading state.
420 * Mono.Mozilla/DOM/DOMHTMLDocument.cs, Mono.WebBrowser/DOM/IDOMHTMLDocument.cs:
423 * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs:
424 Add Navigation interface getter.
425 Add Navigated event support through the StateChange and LocationChange
427 Clean up cached objects when navigating.
428 Remove Reload, Forward, Stop, Home methods, these are now accessible
429 through the INavigation interface.
431 * Mono.Mozilla/Base.cs: Add call to return the navigation interface.
432 Add MarshalAs so that returning interfaces directly works on mono.
434 2007-10-31 Andreia Gaita <avidigal@novell.com>
436 * Base.cs: Send (and create if needed) user dir to store local mozilla data
438 2007-10-30 Andreia Gaita <avidigal@novell.com>
440 * Base.cs: use the blur method to signal when the webbrowser loses
443 2007-10-18 Andreia Gaita <avidigal@novell.com>
445 * use the newly-renamed gluezilla library
447 2007-10-07 Andreia Gaita <avidigal@novell.com>
449 * More dialog event options.
450 * Mono.Mozilla/interfaces/nsIDOM*: Added mozilla dom interfaces.
451 * Mono.WebBrowser/DOM/IDOM*: Added generic interfaces for public
453 * Mono.Mozilla/DOM/DOM*: corresponding implementations for
455 * WebBrowser.cs: moved to Mono.Mozilla, since it is a
456 mozilla-specific implementation of the generic public
459 2007-09-23 Andreia Gaita <avidigal@novell.com>
461 * Added implementation of dialog popups - alert,
462 alertcheck, confirm, confirmcheck, confirmex, prompt,
463 promptusernameandpassword, promptpassword, select.
466 2007-09-19 Andreia Gaita <avidigal@novell.com>
468 * Forgot to commit an update on the xulbrowser check :/
470 2007-09-13 Andreia Gaita <avidigal@novell.com>
472 * add check for xulbrowser library, if it's not
473 present complain then leave (don't blow up)
474 * change blur method to call deactivate (mozilla seems
475 to need it to know when it loses focus)
476 * add FocusOption enumeration for finer focus control
478 2007-09-12 Andreia Gaita <avidigal@novell.com>
480 * Base.cs, IWebBrowser.cs, WebBrowser.cs: setup shutdown routine
482 2007-08-11 Andreia Gaita <avidigal@novell.com>
484 * AssemblyInfo.cs: fix version and attributes
486 2007-08-10 Andreia Gaita <avidigal@novell.com>
488 * Reorganize sources by namespace, fix csproj
490 2007-08-10 Andreia Gaita <avidigal@novell.com>
494 2007-08-10 Andreia Gaita <avidigal@novell.com>
496 * Add file headers. Take out generic collections, because
497 we'll need to use this on 1.1 as well.
499 2007-08-09 Andreia Gaita <avidigal@novell.com>
501 * Change external generic interfaces to Mono.WebBrowser
502 namespace, while mozilla-specific stuff is Mono.Mozilla.
503 Encapsulate code even further with a Manager, so that
504 callers can only use what's available in the IWebBrowser
505 interface by asking for a new instance from the Manager.
506 Everything not in the IWebBrowser interface is private.
507 Navigation control, new window creation events.
509 2007-07-30 Andreia Gaita <avidigal@novell.com>
511 * Add focus and activation management
512 Add new ICallback interface to encapsulate callbacks
513 from xulbrowser. IWebBrowser has all calls and events
515 Implement mouse, focus and key handlers
517 2007-07-21 Andreia Gaita <avidigal@novell.com>
519 * MozilaInvoke is now called Base, and encapsulates all the
520 pinvokes plus a list of web controls that have been loaded
521 indexed the control, with binding info (callback object and
522 IntPtr to the native xulbrowser instance.
523 WebBrowser.cs implements IWebBrowser and is the entry point
524 to the library - the WebControl api keeps a reference and
526 Add vstudio 2005 project for 2.0 api
528 2007-06-25 Andreia Gaita <avidigal@novell.com>
530 * Callback.cs, IWebBrowser.cs, WebBrowser.cs:
531 Change OnWidgetLoaded callback to send the new
532 handle when it's called.
534 2007-06-18 Andreia Gaita <avidigal@novell.com>