Expose XMLHttpRequest and FormData as constructors in JS modules

RESOLVED DUPLICATE of bug 439286

Status

()

Core
XPConnect
RESOLVED DUPLICATE of bug 439286
7 years ago
6 years ago

People

(Reporter: jdm, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

7 years ago
It would be convenient for me if these were exposed as real constructors. Currently I'm grabbing references to them from a DOM window, but that feels less than ideal.

Comment 1

7 years ago
For XHR there's a simple workaround as explained at https://developer.mozilla.org/En/Using_XMLHttpRequest#Using_XMLHttpRequest_from_JavaScript_modules_.2f_XPCOM.c2.a0components

Being able to use just new XMLHttpRequest() instead of Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]                    .createInstance(Components.interfaces.nsIXMLHttpRequest) would be nice, but I don't think that it's a big problem.

But for FormData I don't know of any workaround, so I would change the bug to deal just with this issue.
OS: Mac OS X → All
(Reporter)

Comment 2

7 years ago
Well, I'm able to create both interfaces via createInstance. It's just not ideal.

Comment 3

7 years ago
And what's the code to create a FormData? 
So far I haven't been able to find any documentation about that. Thank you.

But if you can create then with createInstance, why did you state that you are "grabbing references to them from a DOM window"?, that forces your code to get a reference to a window that you wouldn't need otherwise

Comment 4

7 years ago
After reading the original patch I've found the implementation, so this seems to work:

	var formData = Components.classes["@mozilla.org/files/formdata;1"]
		.createInstance(Components.interfaces.nsIDOMFormData);

Now I just need to find how to do new File(path);
As of Firefox 8 you can just do "new File(path)" in a component.

Comment 6

7 years ago
(In reply to comment #5)
> As of Firefox 8 you can just do "new File(path)" in a component.

Thank you, that worked. 
Any chance of having some code (even calling some weird code like that .createInstance) that works in 6 or 7?

(I'm really liking the fast release cycle and being able to use such new features and fixes without waiting years)
(In reply to comment #6)
> (In reply to comment #5)
> > As of Firefox 8 you can just do "new File(path)" in a component.
> 
> Thank you, that worked. 
> Any chance of having some code (even calling some weird code like that
> .createInstance) that works in 6 or 7?

Probably not, precisely because of ...

> (I'm really liking the fast release cycle and being able to use such new
> features and fixes without waiting years)

Indeed.  It's awesome!

Updated

6 years ago
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 439286
You need to log in before you can comment on or make changes to this bug.