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