Bug 1367110 - Expose XHRMT's ErrorCode to chrome JS. r=baku
This is presently only relevant for XHRMT, so XHRWorker will just report that
everything's a-ok for now.
As noted inline, the permanence of this measure is to be evaluated in
Firefox 60 in
bug 1368540.
MozReview-Commit-ID: 6gkTyZO388g
--- a/dom/webidl/XMLHttpRequest.webidl
+++ b/dom/webidl/XMLHttpRequest.webidl
@@ -150,11 +150,16 @@ interface XMLHttpRequest : XMLHttpReques
attribute ByteString? networkInterfaceId;
[Throws, ChromeOnly, Exposed=Window]
any getInterface(IID iid);
[ChromeOnly, Exposed=Window]
void setOriginAttributes(optional OriginAttributesDictionary originAttributes);
+ // Only works on MainThread.
+ // Its permanence is to be evaluated in bug 1368540 for Firefox 60.
+ [ChromeOnly]
+ readonly attribute unsigned short errorCode;
+
readonly attribute boolean mozAnon;
readonly attribute boolean mozSystem;
};
--- a/dom/xhr/XMLHttpRequest.h
+++ b/dom/xhr/XMLHttpRequest.h
@@ -163,16 +163,19 @@ public:
virtual void
GetInterface(JSContext* aCx, nsIJSID* aIID,
JS::MutableHandle<JS::Value> aRetval,
ErrorResult& aRv) = 0;
virtual void
SetOriginAttributes(const mozilla::dom::OriginAttributesDictionary& aAttrs) = 0;
+ virtual uint16_t
+ ErrorCode() const = 0;
+
virtual bool
MozAnon() const = 0;
virtual bool
MozSystem() const = 0;
virtual JSObject*
WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override
--- a/dom/xhr/XMLHttpRequestMainThread.h
+++ b/dom/xhr/XMLHttpRequestMainThread.h
@@ -474,16 +474,22 @@ public:
GetResponseXML(ErrorResult& aRv) override;
virtual bool
MozBackgroundRequest() const override;
virtual void
SetMozBackgroundRequest(bool aMozBackgroundRequest, ErrorResult& aRv) override;
+ virtual uint16_t
+ ErrorCode() const override
+ {
+ return static_cast<uint16_t>(mErrorLoad);
+ }
+
virtual bool
MozAnon() const override;
virtual bool
MozSystem() const override;
virtual nsIChannel*
GetChannel() const override
--- a/dom/xhr/XMLHttpRequestWorker.h
+++ b/dom/xhr/XMLHttpRequestWorker.h
@@ -280,16 +280,21 @@ public:
void
NullResponseText()
{
mStateData.mResponseText.SetVoid();
mStateData.mResponse.setNull();
}
+ virtual uint16_t ErrorCode() const override
+ {
+ return 0; // eOK
+ }
+
virtual bool MozAnon() const override
{
return mMozAnon;
}
virtual bool MozSystem() const override
{
return mMozSystem;