* Mono.Mozilla/AsciiString.cs: Change marshalling to ansi - auto is no
[mono.git] / mcs / class / Mono.WebBrowser / ChangeLog
1 2008-09-16  Andreia Gaita <avidigal@novell.com> 
2
3         * Mono.Mozilla/AsciiString.cs: Change marshalling to ansi - auto is no
4           good on windows. Fixes #414146
5
6 2008-09-08  Andreia Gaita <avidigal@novell.com> 
7
8         * Mono.Mozilla/Base.cs: Create cache directory with a version specific
9           name so there's no conflict when the user has both xulrunner
10           runtime 1.8 and 1.9 installed. Get rid of gluezillaInstalled flag,
11           redundant. Bind now returns bool so I can check if the engine is
12           actually running properly after initialization. Check the return
13           value of createBrowserWindow and bail out if no valid pointer is
14           returned. Protect the string functions with a check so they don't
15           get called if the engine is not initialized.
16         * Mono.Mozilla/WebBrowser.cs: Update the loaded flag so users can now
17           if the engine is actually running properly.
18
19 2008-08-19  Andreia Gaita <avidigal@novell.com> 
20
21         * Mono.Mozilla/Base.cs: Clean up list of webcontrol objects when
22           shutting down, and switch the initialized flag when there are no
23           more controls loaded. Lock initialization and shutdown.
24
25 2008-08-19  Andreia Gaita <avidigal@novell.com> 
26
27         * Assembly/AssemblyInfo.cs, ChangeLog,
28           Mono.WebBrowser/DOM/IAttribute.cs,
29           Mono.WebBrowser/DOM/IElementCollection.cs,
30           Mono.WebBrowser/DOM/IWindow.cs, Mono.WebBrowser/DOM/IDocument.cs,
31           Mono.WebBrowser/DOM/IAttributeCollection.cs,
32           Mono.WebBrowser/DOM/INodeList.cs,
33           Mono.WebBrowser/DOM/IWindowCollection.cs,
34           Mono.WebBrowser/DOM/INode.cs, Mono.WebBrowser/DOM/IElement.cs,
35           Mono.WebBrowser/DOM/INavigation.cs,
36           Mono.WebBrowser/DOM/IHistory.cs, Mono.WebBrowser/Exception.cs,
37           Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/DOM/Document.cs,
38           Mono.Mozilla/DOM/HTMLElement.cs,
39           Mono.Mozilla/DOM/AttributeCollection.cs,
40           Mono.Mozilla/DOM/DocumentType.cs, Mono.Mozilla/DOM/NodeList.cs,
41           Mono.Mozilla/DOM/WindowCollection.cs, Mono.Mozilla/DOM/Node.cs,
42           Mono.Mozilla/DOM/NamedNodeMap.cs, Mono.Mozilla/DOM/Element.cs,
43           Mono.Mozilla/DOM/HTMLElementCollection.cs,
44           Mono.Mozilla/DOM/Navigation.cs, Mono.Mozilla/DOM/History.cs,
45           Mono.Mozilla/DOM/Attribute.cs, Mono.Mozilla/DOM/DOMObject.cs,
46           Mono.Mozilla/DOM/Window.cs, Mono.Mozilla/Callback.cs,
47           Mono.Mozilla/AsciiString.cs, Mono.Mozilla/WebBrowser.cs,
48           Mono.Mozilla/UniString.cs, Mono.Mozilla/Base.cs:  Fix inconsistent
49           newlines. Add eol-style property.
50
51 2008-08-19  Andreia Gaita <avidigal@novell.com> 
52
53         * Assembly/AssemblyInfo.cs, ChangeLog,
54           Mono.WebBrowser/DOM/IAttribute.cs,
55           Mono.WebBrowser/DOM/IElementCollection.cs,
56           Mono.WebBrowser/DOM/IWindow.cs, Mono.WebBrowser/DOM/IDocument.cs,
57           Mono.WebBrowser/DOM/IAttributeCollection.cs,
58           Mono.WebBrowser/DOM/INodeList.cs,
59           Mono.WebBrowser/DOM/IWindowCollection.cs,
60           Mono.WebBrowser/DOM/INode.cs, Mono.WebBrowser/DOM/IElement.cs,
61           Mono.WebBrowser/DOM/INavigation.cs,
62           Mono.WebBrowser/DOM/IHistory.cs, Mono.WebBrowser/Exception.cs,
63           Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/DOM/Document.cs,
64           Mono.Mozilla/DOM/HTMLElement.cs,
65           Mono.Mozilla/DOM/AttributeCollection.cs,
66           Mono.Mozilla/DOM/DocumentType.cs, Mono.Mozilla/DOM/NodeList.cs,
67           Mono.Mozilla/DOM/WindowCollection.cs, Mono.Mozilla/DOM/Node.cs,
68           Mono.Mozilla/DOM/NamedNodeMap.cs, Mono.Mozilla/DOM/Element.cs,
69           Mono.Mozilla/DOM/HTMLElementCollection.cs,
70           Mono.Mozilla/DOM/Navigation.cs, Mono.Mozilla/DOM/History.cs,
71           Mono.Mozilla/DOM/Attribute.cs, Mono.Mozilla/DOM/DOMObject.cs,
72           Mono.Mozilla/DOM/Window.cs, Mono.Mozilla/Callback.cs,
73           Mono.Mozilla/AsciiString.cs, Mono.Mozilla/WebBrowser.cs,
74           Mono.Mozilla/UniString.cs, Mono.Mozilla/Base.cs: Fix inconsistent
75           newlines. Add eol-style property
76
77 2008-06-11  Andreia Gaita <avidigal@novell.com> 
78
79         * Mono.Mozilla/DOM/Attribute.cs: Fix missing setter
80
81 2008-06-10  Andreia Gaita <avidigal@novell.com> 
82
83         * Assembly/AssemblyInfo.cs: Version bump
84         * Mono.Mozilla/Callback.cs: Fix initial load bug (uri can be null on
85           first load). Add LoadStopped event for documents. Add Security
86           change and Context menu events.
87         * Mono.Mozilla/DOM/AttributeCollection.cs: Fix header. Add support for
88           creating empty collections.
89         * Mono.Mozilla/DOM/Document.cs, Mono.WebBrowser/DOM/IDocument.cs:
90           Optimize Window getter. Add CreateAttribute, LoadStoppedEvent
91         * Mono.Mozilla/DOM/DOMImplementation.cs,
92           Mono.Mozilla/DOM/Navigation.cs: Save documents to a list so they
93           can be looked up later for events.
94         * Mono.Mozilla/DOM/Element.cs, Mono.WebBrowser/DOM/IElement.cs: Add
95           Focus, Blur, ScrollIntoView
96         * Mono.Mozilla/DOM/EventListener.cs: Fix header. Add support for firing
97           events for any type of object
98         * Mono.Mozilla/DOM/History.cs, Mono.WebBrowser/DOM/IHistory.cs: Added
99           to support separate history on each window
100         * Mono.Mozilla/DOM/HTMLElement.cs: Moved AppendChild and InsertBefore
101           to the Node parent class
102         * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Fetch owner
103           document from a cached list if it's been looked up before. Add
104           Value setter. Add InsertBefore and AppendChild from HTMLElement,
105           implement ReplaceChild, RemoveChild. Add AttachEventHandler and
106           DetachEventHandler to support generic event firing. Add Focus, Blur
107           events.
108         * Mono.Mozilla/DOM/NodeList.cs: add support for empty lists.
109         * Mono.Mozilla/DOM/Window.cs, Mono.WebBrowser/DOM/IWindow.cs: Fetch
110           owner document from a cached list if it's been looked up before.
111           Add history and focus support. Add Load, Unload, OnFocus, OnBlur,
112           Error, Scroll events.
113         * Mono.Mozilla/interfaces/extras/NodeType.cs,
114           Mono.Mozilla/interfaces/extras/Options.cs: Fix header
115         * Mono.Mozilla/WebBrowser.cs, Mono.WebBrowser/IWebBrowser.cs: Add
116           hashtable for caching document objects. Remove ScrollbarsEnabled
117           implementation, not needed (webbrowser is using javascript
118           instead). Add Security and Context menu events.
119         * Mono.WebBrowser.dll.sources, Mono.WebBrowser2K5.csproj: Added new
120           classes/interfaces: Mono.Mozilla/DOM/History.cs,
121           Mono.WebBrowser/DOM/IHistory.cs, Mono.WebBrowser/DOM/EventArgs.cs,
122           Mono.WebBrowser/DOM/EventHandlers.cs. Removed classes/interfaces:
123           Mono.WebBrowser/DOM/NodeEventArgs.cs,
124           Mono.WebBrowser/DOM/NodeEventHandler.cs
125         * Mono.WebBrowser/DOM/EventArgs.cs,
126           Mono.WebBrowser/DOM/EventHandlers.cs: Consolidate events into a
127           single file.
128         * Mono.WebBrowser/DOM/NodeEventArgs.cs: Removed, event declarations are
129           now in EventArgs
130         * Mono.WebBrowser/DOM/NodeEventHandler.cs: Removed, event declarations
131           are now in EventHandlers
132
133 2008-06-02  Andreia Gaita <avidigal@novell.com> 
134
135         * Mono.WebBrowser.dll.sources, Mono.WebBrowser2K5.csproj: Added new
136           classes/interfaces
137         * Mono.WebBrowser/DOM/IMediaList.cs: Added (Stylesheet.Media support)
138         * Mono.WebBrowser/DOM/IDocument.cs: Added Doctype, Implementation,
139           Stylesheets
140         * Mono.WebBrowser/DOM/IDocumentType.cs,
141           Mono.Mozilla/DOM/DocumentType.cs: Added (Document.DocumentType
142           support)
143         * Mono.WebBrowser/DOM/IStylesheetList.cs,
144           Mono.Mozilla/DOM/StylesheetList.cs,
145           Mono.Mozilla/interfaces/nsIDOMHTMLStyleElement.cs,
146           Mono.Mozilla/interfaces/nsIDOMDocumentStyle.cs,
147           Mono.Mozilla/interfaces/nsIDOMStyleSheetList.cs: Added
148           (Document.Stylesheets support)
149         * Mono.WebBrowser/DOM/IDOMImplementation.cs,
150           Mono.Mozilla/DOM/DOMImplementation.cs: Added
151           (Document.Implementation support)
152         * Mono.WebBrowser/DOM/INamedNodeMap.cs,
153           Mono.Mozilla/DOM/NamedNodeMap.cs: Added (Node collection for named
154           node access - DocumentType.Entities, DocumentType.Notations)
155         * Mono.WebBrowser/DOM/IStylesheet.cs, Mono.Mozilla/DOM/Stylesheet.cs:
156           Added (StylesheetList.Item support)
157         * Mono.WebBrowser/Exception.cs: Added error code for Preferences
158           service
159         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add
160           Offline, ScrollbarsEnabled
161         * Mono.Mozilla/DOM/Document.cs: This class wraps both dom Document and
162           HTMLDocument, so assume that the object is a Document (which
163           HTMLDocument inherits from), and cast appropriately when calling
164           properties or methods that are from the child class. Add DocType,
165           Implementation, Stylesheets acessors
166         * Mono.Mozilla/interfaces/nsIPrefBranch.cs,
167           Mono.Mozilla/interfaces/nsIPrefService.cs: Added (browser
168           preferences support)
169         * Mono.Mozilla/interfaces/nsIClassInfo.cs: Added (interface querying
170           support)
171         * Assembly/AssemblyInfo.cs: Version bump
172
173 2008-05-22  Andreia Gaita <avidigal@novell.com> 
174
175         * Makefile: Fix build target
176
177 2008-05-22  Andreia Gaita <avidigal@novell.com> 
178
179         * README: Warning about dependencies
180
181 2008-05-22  Andreia Gaita <avidigal@novell.com> 
182
183         * Assembly/AssemblyInfo.cs, build-csproj2k5,
184           Mono.WebBrowser.dll.sources, Mono.WebBrowser.csproj,
185           Mono.WebBrowser2K5.csproj, Makefile: Long overdue rename of
186           Mono.Mozilla to Mono.WebBrowser. step 2 - renaming the assembly,
187           project files, version bump
188
189 2008-05-22  Andreia Gaita <avidigal@novell.com> 
190
191         * Makefile: Long overdue rename of Mono.Mozilla to Mono.WebBrowser.
192           step 1 - directory moving
193
194 2008-05-22  Andreia Gaita <avidigal@novell.com> 
195
196         * Mono.WebBrowser/DOM/INavigation.cs: GetHashCode is not needed here
197         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Hide the
198           generic event, internal use only
199         * Mono.Mozilla/Callback.cs: Add more xpcom helper objects for
200           OnProgress. Cache the current uri for events.
201
202 2008-05-20  Andreia Gaita <avidigal@novell.com> 
203
204         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Refactor
205           loading events to something more sane and usable
206         * Mono.Mozilla/DOM/Document.cs: Check for nulls
207         * Mono.Mozilla/Callback.cs: Added progress and request objects from the
208           loading events. Track progress updates.
209
210 2008-05-08  Andreia Gaita <avidigal@novell.com> 
211
212         * Mono.Mozilla2K5.csproj, Mono.Mozilla.dll.sources: Interfaces added to
213           support stylesheet getters/setters
214         * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/Node.cs: Implement
215           Style property
216         * Mono.Mozilla/interfaces/nsIDOMMediaList.cs,
217           Mono.Mozilla/interfaces/nsIDOMCSSValue.cs,
218           Mono.Mozilla/interfaces/nsIDOMCSSStyleSheet.cs,
219           Mono.Mozilla/interfaces/nsIDOMCSSRuleList.cs,
220           Mono.Mozilla/interfaces/nsIDOMStyleSheet.cs,
221           Mono.Mozilla/interfaces/nsIDOMCSSStyleDeclaration.cs,
222           Mono.Mozilla/interfaces/nsIDOMViewCSS.cs,
223           Mono.Mozilla/interfaces/nsIDOMCSSRule.cs: Added to support
224           stylesheet getters/setters
225
226 2008-05-07  Andreia Gaita <avidigal@novell.com> 
227
228         * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/HTMLElement.cs,
229           Mono.Mozilla/DOM/Element.cs: Implement TabIndex
230
231 2008-05-07  Andreia Gaita <avidigal@novell.com> 
232
233         * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/HTMLElement.cs,
234           Mono.Mozilla/DOM/Element.cs: Implement InnerHTML setter
235
236 2008-05-07  Andreia Gaita <avidigal@novell.com> 
237
238         * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs,
239           Mono.Mozilla/DOM/Window.cs: Helper to retrieve the window of a
240           document
241
242 2008-04-23  Andreia Gaita <avidigal@novell.com> 
243
244         * Mono.Mozilla/DOM/Node.cs: No need to proxy event objects, they should
245           already be proxied
246
247 2008-04-23  Andreia Gaita <avidigal@novell.com> 
248
249         * Mono.Mozilla/DOM/Node.cs: Add support for different types of events
250           that can be injected into the embedded browser
251
252 2008-04-23  Andreia Gaita <avidigal@novell.com> 
253
254         * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Add event
255           firing capability
256         * Mono.Mozilla/interfaces/nsIDOMDocumentEvent.cs,
257           Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Interface to
258           support firing events
259         * Mono.Mozilla/WebBrowser.cs: Hide away debug CWLs
260
261 2008-04-18  Andreia Gaita <avidigal@novell.com> 
262
263         * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs,
264           Mono.Mozilla/Base.cs: Add javascript script evaluation support
265         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add
266           StatusChanged event handler and args
267         * Mono.Mozilla/Callback.cs: Change OnStatusChange callback signature to
268           unicode, implement listeners call.
269
270 2008-04-18  Andreia Gaita <avidigal@novell.com> 
271
272         * Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Added new generated
273           interfaces for "Save to Disk" support and page loading monitoring
274         * Mono.Mozilla/interfaces/nsICancelable.cs,
275           Mono.Mozilla/interfaces/nsIWebBrowserPersist.cs: Interfaces for
276           "Save to Disk" support
277         * Mono.Mozilla/interfaces/nsIWebProgress.cs,
278           Mono.Mozilla/interfaces/nsIWebProgressListener.cs: Interfaces for
279           page loading monitoring
280
281 2008-04-18  Andreia Gaita <avidigal@novell.com> 
282
283         * build-csproj2k5: Fix line endings
284
285 2008-04-16  Andreia Gaita <avidigal@novell.com> 
286
287         * Mono.Mozilla/DOM/Navigation.cs, Mono.WebBrowser/DOM/INavigation.cs:
288           Add history count getter
289
290 2008-04-09  Andreia Gaita <avidigal@novell.com> 
291
292         * Mono.Mozilla2K5.csproj, Mono.Mozilla.dll.sources,
293           Mono.Mozilla/interfaces/nsIDOMNSRange.cs: New interface for
294           OuterHTML setter support
295         * Mono.WebBrowser/DOM/INode.cs: Add Attributes accessor
296         * Mono.WebBrowser/DOM/IElement.cs: Add OuterText, OuterHTML
297         * Mono.Mozilla/DOM/HTMLElement.cs: Use the base class's unmanaged
298           object directly instead of storing a copy locally. Makes it easier
299           to replace the object if needed (outerHTML setter). Implement
300           OuterHTML
301         * Mono.Mozilla/DOM/AttributeCollection.cs: Update nodeCount on parent
302           class
303         * Mono.Mozilla/DOM/NodeList.cs: Use the Count property getter on all
304           methods at least once to make sure the list always gets a chance to
305           load
306         * Mono.Mozilla/DOM/Node.cs: Use the base class's unmanaged object
307           directly instead of storing a copy locally. Makes it easier to
308           replace the object if needed (outerHTML setter).
309         * Mono.Mozilla/DOM/Element.cs: Use the base class's unmanaged object
310           directly instead of storing a copy locally. Makes it easier to
311           replace the object if needed (outerHTML setter). Implement
312           OuterText, OuterHTML
313
314 2008-04-07  Andreia Gaita <avidigal@novell.com> 
315
316         * Mono.Mozilla/Base.cs: Change the initialization logic so that
317           gluezilla_init is only called once for every app run (no matter how
318           many browser windows end up being created).
319
320 2008-04-04  Andreia Gaita <avidigal@novell.com> 
321
322         * Mono.Mozilla/DOM/Element.cs,
323         * Mono.Mozilla/DOM/HTMLElement.cs,
324         * Mono.WebBrowser/DOM/IElement.cs: Implement ClientWidth, ClientHeight, 
325         ScrollWidth, ScrollHeight, ScrollLeft, ScrollTop, OffsetHeight, 
326         OffsetWidth, OffsetLeft, OffsetTop, OffsetParent, Disabled.
327
328 2008-04-04  Andreia Gaita <avidigal@novell.com> 
329
330         * Mono.Mozilla/DOM/Document.cs: Differentiate between html and non-html
331         elements when creating the wrapper object for the active element, as
332         certain properties are only implemented in html elements.
333
334 2008-04-04  Andreia Gaita <avidigal@novell.com> 
335
336         * Mono.Mozilla/AsciiString.cs, Mono.Mozilla/UniString.cs: Fix for string
337         getter cache, always mark the string as dirty when fetching the handle.
338
339 2008-03-27  Andreia Gaita <avidigal@novell.com> 
340
341         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: Add
342           Initialized property so users can check whether everything loaded
343           properly. Abstract the stream behind nice Render methods.
344         * Mono.Mozilla/AsciiString.cs, Mono.Mozilla/UniString.cs: Add missing
345           field to the string container structure. Fix handle getter.
346         * Mono.Mozilla/Base.cs: Debug helper method change
347
348 2008-03-03  Andreia Gaita <avidigal@novell.com> 
349
350         * Mono.WebBrowser/Exception.cs: Fix 1.1 build. Add header.
351
352 2008-03-03  Andreia Gaita <avidigal@novell.com> 
353
354         * Mono.Mozilla/Base.cs: Add service manager getter.
355         * Mono.Mozilla/interfaces/nsIWebBrowserStream.cs: Send basic IntPtr instead of byte array, arrays
356           don't work.
357         * Mono.Mozilla/WebBrowser.cs: Proper streaming support, and exception handling
358         * Mono.WebBrowser/Exception.cs, Manager.cs: exception handling
359         
360 2008-03-02  Andreia Gaita <avidigal@novell.com> 
361
362         * Mono.Mozilla.dll.sources: Added yet another bunch of interfaces to support
363           streaming and services
364         * Mono.Mozilla/Base.cs: Added a ServiceManager getter to allow direct access
365           to all mozilla services through contract IDs
366         * Mono.Mozilla/WebBrowser.cs: Stream support, for sending data directly to
367           the embedded browser.
368
369 2008-02-28  Andreia Gaita <avidigal@novell.com> 
370
371         * Mono.Mozilla/DOM/EventListener.cs: Implementation of the 
372         nsIDOMEventListener, so that events can be registered as-needed
373         for each dom object, instead of gluezilla firing everything up.
374         This class will eventually replace gluezilla's EventListener.
375
376         * Mono.Mozilla/DOM/Node.cs: Store the hashcode of the unmanaged
377         object before proxying so we can use it to match events to objects.
378         Implement event handling for dom objects. These events are registered
379         on the managed EventListener and go straight out to the caller (don't
380         go out through the Callback class).
381
382         * Mono.Mozilla/DOM/HTMLElement.cs,
383           Mono.Mozilla/DOM/Attribute.cs, 
384           Mono.Mozilla/DOM/Element.cs: Use the hashcode stored on the
385           parent Node class instead of the local object hashcode (the 
386           local object is a proxy, while the stored hashcode is from
387           the real object)
388
389         * Mono.Mozilla/DOM/Navigation.cs: Implement navigation through
390         the history.
391
392         * Mono.Mozilla/WebBrowser.cs: Move callback-related code to 
393         the Callback class. Add support for registering and firing events
394         coming from the Callback class (generic window events, element
395         specific events come through the element it was registered on).
396
397         * Mono.Mozilla/Callback.cs: Cleaned up unused callbacks, moved 
398         callback-related code from WebBrowser.cs to here to keep all 
399         callback code together. All events coming through here are 
400         window-related and get sent to the handlers registered through
401         the WebBrowser class/interface.
402
403         * Mono.Mozilla/ICallback.cs: Removed, unnecessary overhead. 
404         * Mono.Mozilla/Base.cs: new pinvokes to support the string classes
405         * Mono.Mozilla/UniString.cs: Wrapper for mozilla's nsString class
406         * Mono.Mozilla/AsciiString.cs: Wrapper for mozilla's nsCString class
407
408         * Mono.Mozilla.dll.sources: 
409         new files: AsciiString, UniString, EventListener, nsIDOMEvent, 
410         nsIDOMEventListener, nsIDOMEventTarget, nsIDOMKeyEvent, nsIDOMMouseEvent, 
411         nsIDOMUIEvent, NodeEventArgs, NodeEventHandler
412         removed: ICallback      
413
414 2008-02-06  Andreia Gaita <avidigal@novell.com>
415
416         * Navigation.cs: Pass the proper flags to reload
417
418 2008-01-28  Andreia Gaita <avidigal@novell.com>
419
420         * Assembly/AssemblyInfo.cs: Version change 
421         
422 2008-01-28  Andreia Gaita <avidigal@novell.com>
423
424         * Mono.WebBrowser/DOM/IWindow.cs, Mono.Mozilla/DOM/Window.cs: 
425         Add Document, Frames, StatusText properties, Load and Unload events.
426
427         * Mono.Mozilla/WebBrowser.cs: Add StatusText getter and update it on 
428         callback. Add Load and Unload events and bubble them to the current
429         Window.
430
431         * Mono.Mozilla/ICallback.cs, Mono.Mozilla/Callback.cs: Rearrange callbacks,
432         FocusIn and FocusOut are now Focus and Blur. Add Load and Unload callbacks.
433
434         * Mono.Mozilla/DOM/DOMObject.cs: Add event handler support.
435
436 2008-01-24  Andreia Gaita <avidigal@novell.com>
437
438         * Mono.Mozilla.dll.sources, Mono.Mozilla.2K5.csproj: Added files.
439
440         * Mono.Mozilla/interfaces/*.cs: Add yet more mozilla interfaces to 
441         support getting windows, page encodings, dealing with focused elements.
442         Update GetProxyForObject signature.
443
444         * Mono.Mozilla/Base.cs: Remove unneeded navigation methods, Navigation
445         now goes through the Navigation object. 
446         (GetProxyForObject): Use GetObjectForIUnknown instead of 
447         GetTypedObjectForIUnknown, this one is not working properly. GetProxyForObject
448         now has two parameters, instead of three (no need to send the type). All the
449         interfaces have been regenerated and xpidl2cs changed for the new signature.
450
451         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: 
452         Implement Window getter. Add events     and event watcher to track page loading.
453         
454         * Mono.Mozilla/DOM/Attribute.cs, Mono.WebBrowser/DOM/IAttribute.cs:
455         Add GetHashCode
456
457         * Mono.WebBrowser/DOM/IDocument.cs, Mono.Mozilla/DOM/Document.cs:
458         Implemented: Active, ActiveLinkColor, Anchors, Applets, Background, BackColor,
459         Charset, Cookie, Domain, ForeColor, Forms, Images, LinkColor, Links, 
460         VisitedLinkColor, GetElement, Equals, GetHashCode
461
462         * Mono.WebBrowser/DOM/IElement.cs, Mono.Mozilla/DOM/Element.cs:
463         Implemented: Children, TagName, AppendChild, Equals, GetElementsByTagName, 
464         GetHashCode, SetAttribute.
465         Changed get_All to return all children recursively.
466         
467         * Mono.WebBrowser/DOM/IElementCollection.cs: Fix header. Add GetHashCode.
468         
469         * Mono.Mozilla/DOM/HTMLElementCollection.cs: Fix header. Change Load() so
470         it only includes html elements in the collection.
471
472         * Mono.WebBrowser/DOM/INavigation.cs, Mono.Mozilla/DOM/Navigation.cs: 
473         Implement GetHashCode. Add CharsetChange option to the load flags so support
474         refreshing a page after an encoding change.
475
476         * Mono.WebBrowser/DOM/INode.cs, Mono.Mozilla/DOM/Node.cs:
477         Implement: InsertBefore, LastChild, Next, Owner, Parent, Previous, GetHashCode
478
479         * Mono.WebBrowser/DOM/INodeList.cs, Mono.Mozilla/DOM/NodeList.cs:
480         Fix header. Implement GetHashCode. Add support for creating empty 
481         collections that get nodes added later, add support for removing nodes. 
482
483         * Mono.WebBrowser/DOM/IWindow.cs, Mono.Mozilla/DOM/Window.cs:
484         Added. Represents a window (top level or frame) and wraps nsIDOMWindow.
485
486         * Mono.WebBrowser/DOM/IWindowCollection.cs, 
487         Mono.Mozilla/DOM/WindowCollection.cs:
488         Added. Represents a collection of windows, wraps nsIDOMWindowCollection.
489
490 2008-01-21  Andreia Gaita <avidigal@novell.com>
491
492         * Mono.WebBrowser/DOM/INavigation.cs: Add Go overload with flags, 
493         and LoadFlags enumeration.
494
495         * Mono.WebBrowser/DOM/IDocument.cs: Add CreateElement, GetElement,
496         Equals and Write.
497
498         * Mono.Mozilla/DOM/Document.cs: Add CreateElement, GetElement,
499         Equals and Write implementations.
500         Fix GetElementsByTagName to return a proper IElementCollection instance.
501
502         * Mono.Mozilla/DOM/Element.cs: Add Top, Left, Width and Height
503         properties to support retrieving elements by location.
504
505         * Mono.Mozilla/DOM/Navigation.cs: Reset WebBrowser object cache
506         so that the next time Document (and others, eventually) is accessed, 
507         it will be retrieved from mozilla. This should happen on any
508         action that causes a document reload.
509         
510         Add Go overload to support flags when loading an uri (bypassing proxies,
511         refreshing from cache, etc).
512
513         * Mono.Mozilla/DOM/HTMLElementCollection.cs: Fix inheritance
514
515 2008-01-21  Andreia Gaita <avidigal@novell.com>
516
517         * Mono.Mozilla/WebBrowser.cs: fix Document accessor
518
519 2008-01-14  Andreia Gaita <avidigal@novell.com>
520
521         * Mono.Mozilla.dll.sources, Mono.Mozilla2K5.csproj: Updated.
522         
523         * build-csproj2k5: Fix guid.
524
525         * Mono.Mozilla/DOM/*, Mono.WebBrowser/DOM/*:
526           - Reorganization to get rid of unneeded DOM prefix.
527           - All constructors now get a proxy only if the application is running under
528             a different toolkit than the mozilla engine. If they match, no proxies are
529             needed since there is no need to switch threads.
530         
531         * Mono.Mozilla/DOM/DOMObject.cs:
532           - Move resources list to here since most objects need one.
533           - WebBrowser now has some internal methods, so store the class instead of the
534             interface for child classes to use.
535         
536         * Mono.Mozilla/DOM/HTMLElement.cs, Mono.Mozilla/DOM/Element.cs: 
537           IElement represents all element types (html or not), and is implemented
538           by two classes, one that wraps html elements, and another that wraps other 
539           element types. IElement represents both in the public API so it's easier 
540           to deal with for the api user.
541         
542         * Mono.Mozilla/DOM/Attribute.cs, 
543           Mono.Mozilla/DOM/AttributeCollection.cs,
544           Mono.WebBrowser/DOM/IAttributeCollection.cs,
545           Mono.WebBrowser/DOM/IAttribute.cs:
546           Added. Represent attributes from an element.
547           
548         * Mono.Mozilla/DOM/Document.cs, Mono.WebBrowser/DOM/IDocument.cs: 
549           - renamed from DOMHTMLDocument and IDOMHTMLDocument, respectively
550           - Added GetElementsByTagName method.
551           - Document is now retrieved from the WebNavigation interface, so get a proxy for
552             it in the constructor.
553           - Add an internal method that returns the unmanaged resource, the Element.InnerText
554             property needs to use it.
555         
556         * Mono.Mozilla/DOM/Element.cs, Mono.WebBrowser/DOM/IElement.cs: 
557           - renamed from DOMElement and IDOMElement, respectively
558           - Added the following properties: InnerText, InnerHTML, All (returns all child
559             elements), HasAttribute, GetAttribute. InnerHTML is virtual, and is implemented
560             in HTMLElement.
561
562         * Mono.Mozilla/DOM/HTMLElement.cs: Implement InnerHTML property. 
563
564         * Mono.Mozilla/DOM/HTMLElementCollection.cs: Added. Subclass of NodeList that
565           represents a list of html elements.
566
567         * Mono.Mozilla/DOM/Navigation.cs: Added a Document property that uses the 
568           nsIWebNavigation interface to access the Document directly instead of going 
569           through gluezilla.
570           
571         * Mono.Mozilla/DOM/Node.cs, Mono.WebBrowser/DOM/INode.cs: Renamed from 
572           DOMNode and IDOMNode, respectively. Added the following properties:
573           - Attributes (returns the attributes of a node)
574           - ChildNodes
575           - Type (returns the type of a node, i.e., Element, Attribute, etc)
576           - FirstChild
577           - LocalName
578           Added public enumeration to determine a node type.
579
580         * Mono.Mozilla/DOM/NodeList.cs, Mono.WebBrowser/DOM/INodeList.cs: Renamed
581           from DOMNodeList and IDOMNodeList, respectively. Allow subclasses to fill in and 
582           access the collection of nodes, as well as override the loading method.
583          
584         * Mono.Mozilla/interfaces/extras/NodeType.cs: Added. Represents the various 
585           types of a Node (element, attribute, etc).
586         
587         * Mono.WebBrowser/DOM/IDOMHTMLElement.cs: Removed. Merged with IElement.
588         
589         * Mono.Mozilla/Base.cs: Add support for tracking which toolkit the 
590           application is running under, so I know if I need to create threads and 
591           proxies or not. Send that info to gluezilla, and get back which toolkit
592           the mozilla engine is using.
593           
594         * Mono.Mozilla/WebBrowser.cs: Save the application and engine toolkit info.
595           Change the Document accessor so it goes through the Navigation object instead
596           of thru gluezilla.
597
598 2008-01-14  Andreia Gaita <avidigal@novell.com>
599
600         * Mono.Mozilla/interfaces/nsIDOMNSHTMLElement.cs: Added. Interface to
601         access the InnerHtml property of an element.
602
603 2008-01-09  Andreia Gaita <avidigal@novell.com>
604
605         * Mono.Mozilla/Base.cs, 
606           Mono.Mozilla/WebBrowser.cs, 
607           Mono.WebBrowser/IWebBrowser.cs,
608           Mono.WebBrowser/Manager.cs:
609           Add initial support for specifying the toolkit the application is running 
610           on (gtk or winforms). Knowing this allows gluezilla not to initialize
611           a gtk loop if the application is already running one (and is passing 
612           gluezilla a gtk handle and not an X/HWND handle). This should make it 
613           easy to also use gluezilla/Mono.Mozilla with gtk apps.
614
615 2008-01-09  Andreia Gaita <avidigal@novell.com>
616
617         * build-csproj2k5: take out weird characters creeping in, vstudio 
618         doesn't appreciate them.
619
620 2008-01-07  Andreia Gaita <avidigal@novell.com>
621
622         * build-csproj2k5: Added to generate Mono.Mozilla2K5.csproj from .sources
623         * Mono.Mozilla2K5.csproj: updated
624         * Makefile: run the build-csproj2k5
625
626 2008-01-07  Andreia Gaita <avidigal@novell.com>
627
628         * Mono.Mozilla.dll.sources: Added new classes (see below).
629
630         * Mono.Mozilla/DOM/DOMObject.cs: 
631         - Store reference to the IWebBrowser control that created this (and     
632         subclassed) object. This reference needs to be used in any gluezilla calls 
633         that have to invoke methods on the mozilla ui thread (any Widget method, 
634         whose ptr reference     is stored in Base and indexed by IWebBrowser control).
635         
636         - Tweak the Dispose pattern: subclasses don't have their own private
637         dispose field to keep track of whether they've been disposed already, this
638         base class takes care of that.
639         
640         * Mono.Mozilla/DOM/DOMNode.cs:
641         - Initialize a proxy to the nsI object that this wrapper encapsulates.
642         - Cache all objects returned from this object in an hashtable, so that 
643                 1) we can keep track of all objects and release them earlier and 
644                 properly
645                 2) we don't have to keep creating new objects everytime we get requests 
646                 for read-only stuff 
647         - Implement FirstChild and LocalName
648         - Add Dispose pattern
649
650         * Mono.Mozilla/DOM/DOMHTMLElement.cs: 
651         - Change the inheritance to DOMElement.
652         - Change the constructor to send the nsI object and IWebBrowser up the tree.
653         - Get a proxy to the nsI object.
654         - Add dispose pattern.
655         
656         * Mono.Mozilla/DOM/DOMHTMLDocument.cs: 
657         - Change the constructor to send the IWebBrowser instance up the tree.
658         - Add resources hashtable to keep track of already-fetched objects. 
659         Particularly useful here since getElementById can be called n times, so it
660         would be complicated to keep track and dispose properly of all the objects.
661         - Implement DocumentElement
662         - Change Body and GetElementById to use resources cache
663         - Fix GetElementById case
664
665         * Mono.Mozilla/DOM/DOMElement.cs: Added. Inherits from DOMNode, so the 
666         parent class also keeps track of the nsI object.
667         * Mono.Mozilla/DOM/DOMNodeList.cs: Added to support easy iteration of nodes.
668         * Mono.Mozilla/DOM/Navigation.cs: Tweak dispose pattern and constructor to
669         the new model.
670
671         * Mono.Mozilla/WebBrowser.cs: Fix the DOMHTMLDocument creation. 
672         
673         * Mono.WebBrowser/DOM/IDOMHTMLDocument.cs: Fix case on GetElementById, add
674         DocumentElement property.
675
676         * Mono.WebBrowser/DOM/IDOMNodeList.cs, 
677           Mono.WebBrowser/DOM/IDOMElement.cs:
678         Added, no external functionality for now.
679         
680 2008-01-07  Andreia Gaita <avidigal@novell.com>
681
682         * Mono.Mozilla/DOM/Navigation.cs: Fix calls to the nsIWebNavigation
683         interface (case change from being generated through xpidl2cs. that's what
684         I get for merging in batches :/ )
685
686 2008-01-07  Andreia Gaita <avidigal@novell.com>
687
688         * Mono.Mozilla/Base.cs: Add GetProxyForObject method to create proxies
689         for mozilla objects.
690         Remove trace listener.
691
692 2008-01-07  Andreia Gaita <avidigal@novell.com>
693
694         * Mono.Mozilla/interfaces/nsIDOMRange.cs,
695           Mono.Mozilla/interfaces/nsIDOMDocumentRange.cs:
696         Added to get the content of elements. 
697
698         * Mono.Mozilla/interfaces/*.cs: Regenerated with the xpidl2cs.pl script.
699         Add helper class to create a proxy for all native mozilla interfaces. 
700
701         * Mono.Mozilla/interfaces/extras/: classes for the mozilla interfaces that 
702         don't get generated automatically, like enums, delegates, etc.
703
704         * Mono.Mozilla/interfaces/extras/nsIWriteSegmentFun.cs: 
705         Delegate callback for a writer function for mozilla     streams 
706         (nsIInputStream.readSegments)
707         
708         * Mono.Mozilla/interfaces/extras/Options.cs: Enum for nsIWebNavigation.stop
709
710 2007-12-25  Andreia Gaita  <avidigal@novell.com>
711
712         * Mono.Mozilla/DOM/DOMHTMLDocument.cs,
713           Mono.Mozilla/DOM/DOMObject.cs
714           Mono.Mozilla/DOM/Navigation.cs:
715           
716         Properly dispose unmanaged resources.
717         Use native mozilla dom interfaces through com directly instead
718         of going through the glue, as they are now proxies that invoke
719         the methods on the main mozilla ui properly (avoiding threading problems).
720         Check if library was properly initialized.
721         Add Go method - implements navigation
722         directly through COM instead of going through the glue.
723         
724         * Mono.Mozilla/interfaces/nsIWebNavigation.cs: Use typed flags instead of
725         generic uint32. Remove comments about threading (as it is now safe to use
726         this interface)
727
728         * Mono.Mozilla/Base.cs: Return bool on initialization so I can track if
729         library was properly initialized from the interfaces that go directly 
730         through COM and not through the glue
731
732         * Mono.Mozilla/WebBrowser.cs: Save initialization result so interfaces
733         don't get called if the library was not initialized.
734
735 2007-11-08  Andreia Gaita  <avidigal@novell.com>
736
737         * Mono.Mozilla.csproj, Mono.Mozilla2K5.csproj: Synch with .sources
738
739 2007-11-08  Andreia Gaita  <avidigal@novell.com>
740
741         * Mono.Mozilla.dll.sources,
742           Mono.Mozilla/DOM/Navigation.cs,
743           Mono.Mozilla/interfaces/nsIHistoryEntry.cs,
744           Mono.Mozilla/interfaces/nsIInputStream.cs,
745           Mono.Mozilla/interfaces/nsISHistory.cs,
746           Mono.Mozilla/interfaces/nsISHistoryListener.cs,
747           Mono.Mozilla/interfaces/nsISimpleEnumerator.cs,
748           Mono.Mozilla/interfaces/nsIURI.cs,
749           Mono.Mozilla/interfaces/nsIWebNavigation.cs,
750           Mono.WebBrowser/DOM/INavigation.cs:
751
752         Add nsIWebNavigation interface and related 
753         dependencies to access navigation-related properties directly (CanGoBack, etc). 
754         Add INavigation interface and implementation to expose navigation properties. 
755         Navigation is now done through this interface (Reload(), Stop(), etc).
756         
757         Please note: Due to threading issues on linux (namely, mozilla being run 
758         on a different thread), only methods that do not affect drawing can be 
759         invoked through the interfaces, so although Reload is now called from 
760         the INavigation interface, it is still being routed through the Base 
761         class and the glue code (and not through the nsIWebNavigation.Reload 
762         call, as are other non-drawing-affecting methods like GetTitle).
763
764         * Mono.Mozilla/ICallback.cs, Callback.cs: Remove unneeded events, adjust parameters, 
765         add support enumeration for tracking loading state.
766
767         * Mono.Mozilla/DOM/DOMHTMLDocument.cs, Mono.WebBrowser/DOM/IDOMHTMLDocument.cs: 
768         Add URL getter.
769
770         * Mono.WebBrowser/IWebBrowser.cs, Mono.Mozilla/WebBrowser.cs: 
771         Add Navigation interface getter.
772         Add Navigated event support through the StateChange and LocationChange
773         events.
774         Clean up cached objects when navigating.
775         Remove Reload, Forward, Stop, Home methods, these are now accessible 
776         through the INavigation interface.
777
778         * Mono.Mozilla/Base.cs: Add call to return the navigation interface. 
779         Add MarshalAs so that returning interfaces directly works on mono.
780
781 2007-10-31  Andreia Gaita  <avidigal@novell.com>
782
783         * Base.cs: Send (and create if needed) user dir to store local mozilla data
784
785 2007-10-30  Andreia Gaita  <avidigal@novell.com>
786
787         * Base.cs: use the blur method to signal when the webbrowser loses
788         focus
789         
790 2007-10-18 Andreia Gaita <avidigal@novell.com>
791
792         * use the newly-renamed gluezilla library
793
794 2007-10-07 Andreia Gaita <avidigal@novell.com>
795
796         * More dialog event options.
797         * Mono.Mozilla/interfaces/nsIDOM*: Added mozilla dom interfaces.
798         * Mono.WebBrowser/DOM/IDOM*: Added generic interfaces for public 
799           dom access.
800         * Mono.Mozilla/DOM/DOM*: corresponding implementations for 
801           accessing mozilla.
802         * WebBrowser.cs: moved to Mono.Mozilla, since it is a 
803           mozilla-specific implementation of the generic public
804           interface.
805
806 2007-09-23 Andreia Gaita <avidigal@novell.com>
807
808         * Added implementation of dialog popups - alert,
809         alertcheck, confirm, confirmcheck, confirmex, prompt, 
810         promptusernameandpassword, promptpassword, select.
811         Cleaned up some.
812
813 2007-09-19 Andreia Gaita <avidigal@novell.com>
814
815         * Forgot to commit an update on the xulbrowser check :/
816
817 2007-09-13 Andreia Gaita <avidigal@novell.com>
818
819         * add check for xulbrowser library, if it's not 
820         present complain then leave (don't blow up)
821         * change blur method to call deactivate (mozilla seems
822         to need it to know when it loses focus)
823         * add FocusOption enumeration for finer focus control
824
825 2007-09-12 Andreia Gaita <avidigal@novell.com>
826
827         * Base.cs, IWebBrowser.cs, WebBrowser.cs: setup shutdown routine
828
829 2007-08-11 Andreia Gaita <avidigal@novell.com>
830
831         * AssemblyInfo.cs: fix version and attributes
832
833 2007-08-10 Andreia Gaita <avidigal@novell.com>
834
835         * Reorganize sources by namespace, fix csproj
836
837 2007-08-10 Andreia Gaita <avidigal@novell.com>
838
839         * Move to main tree
840
841 2007-08-10 Andreia Gaita <avidigal@novell.com>
842
843         * Add file headers. Take out generic collections, because
844         we'll need to use this on 1.1 as well.
845
846 2007-08-09 Andreia Gaita <avidigal@novell.com>
847
848         * Change external generic interfaces to Mono.WebBrowser
849         namespace, while mozilla-specific stuff is Mono.Mozilla.
850         Encapsulate code even further with a Manager, so that
851         callers can only use what's available in the IWebBrowser
852         interface by asking for a new instance from the Manager.
853         Everything not in the IWebBrowser interface is private.
854         Navigation control, new window creation events.
855
856 2007-07-30 Andreia Gaita <avidigal@novell.com>
857
858         * Add focus and activation management
859           Add new ICallback interface to encapsulate callbacks
860           from xulbrowser. IWebBrowser has all calls and events
861           accessible from MWF.
862           Implement mouse, focus and key handlers
863
864 2007-07-21 Andreia Gaita <avidigal@novell.com>
865
866         * MozilaInvoke is now called Base, and encapsulates all the
867         pinvokes plus a list of web controls that have been loaded
868         indexed the control, with binding info (callback object and
869         IntPtr to the native xulbrowser instance.
870         WebBrowser.cs implements IWebBrowser and is the entry point
871         to the library - the WebControl api keeps a reference and 
872         calls only this.
873         Add vstudio 2005 project for 2.0 api
874
875 2007-06-25 Andreia Gaita <avidigal@novell.com>
876
877         * Callback.cs, IWebBrowser.cs, WebBrowser.cs: 
878         Change OnWidgetLoaded callback to send the new  
879         handle when it's called.
880         
881 2007-06-18      Andreia Gaita   <avidigal@novell.com>
882
883         * initial checkin.