Nick Sabalausky wrote:
"Justin Johansson" <[email protected]> wrote in message
news:[email protected]...
I'm just wondering for a moment if D might be a good vehicle for
developing a browser extension for Firefox, or any other browser for that
matter.
Has anyone either considered doing, or has actually done, any browser
extension development with D and have some thoughts or experience to
share?
Thanks for all feedback,
Justin Johansson
I thought FF extensions were JS-only, is that not the case?
While extentions can be written/partly written in JS, the "system level"
for extensions is C++. The FF code base is built on a single-threaded
COM model (similar in theory but definitely not binary compatible with
Microsoft COM). Think it's called NSCOM (as in Netscape). Components
(aka objects) are managed with the usual AddRef/Release and interfaces
found with the familiar QueryInterface (familiar that is if you have
ever used MS COM). The basic interface of a component is NSIUnknown or
similar. The methods of the NSIUnknown interface are AddRef, Release
and QueryInterface. Such mechanism effectively implements a
reference-counted garbage-collection strategy.
As with a lot of COM development (in C++), people often resort to the
use of so-called smart-pointers to hide/manage calls to AddRef and
Release. So my guess/hunch is that if D is any good for writing MS COM
applications, it might also be good for writing FF extensions.
If it could be demonstrated that D was a good platform for writing FF
extensions, that might be a boon for expanding D's "market acceptance".