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