2016-06-27 20:13:41 +03:00
|
|
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
#ifndef mozilla_dom_XMLHttpRequest_h
|
|
|
|
#define mozilla_dom_XMLHttpRequest_h
|
|
|
|
|
|
|
|
#include "mozilla/Attributes.h"
|
|
|
|
#include "mozilla/dom/XMLHttpRequestEventTarget.h"
|
|
|
|
#include "mozilla/dom/XMLHttpRequestBinding.h"
|
|
|
|
#include "nsIXMLHttpRequest.h"
|
|
|
|
|
|
|
|
class nsIJSID;
|
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace dom {
|
|
|
|
|
|
|
|
class Blob;
|
2017-01-19 06:20:15 +03:00
|
|
|
class DOMString;
|
2016-06-27 20:13:41 +03:00
|
|
|
class FormData;
|
2016-07-11 22:03:44 +03:00
|
|
|
class URLSearchParams;
|
2016-06-27 20:13:41 +03:00
|
|
|
class XMLHttpRequestUpload;
|
|
|
|
|
|
|
|
class XMLHttpRequest : public XMLHttpRequestEventTarget
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static already_AddRefed<XMLHttpRequest>
|
|
|
|
Constructor(const GlobalObject& aGlobal,
|
|
|
|
const MozXMLHttpRequestParameters& aParams,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
static already_AddRefed<XMLHttpRequest>
|
|
|
|
Constructor(const GlobalObject& aGlobal, const nsAString& ignored,
|
|
|
|
ErrorResult& aRv)
|
|
|
|
{
|
|
|
|
// Pretend like someone passed null, so we can pick up the default values
|
|
|
|
MozXMLHttpRequestParameters params;
|
|
|
|
if (!params.Init(aGlobal.Context(), JS::NullHandleValue)) {
|
|
|
|
aRv.Throw(NS_ERROR_UNEXPECTED);
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
return Constructor(aGlobal, params, aRv);
|
|
|
|
}
|
|
|
|
|
|
|
|
IMPL_EVENT_HANDLER(readystatechange)
|
|
|
|
|
|
|
|
virtual uint16_t
|
|
|
|
ReadyState() const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Open(const nsACString& aMethod, const nsAString& aUrl, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
2016-09-12 16:48:30 +03:00
|
|
|
Open(const nsACString& aMethod, const nsAString& aUrl, bool aAsync,
|
|
|
|
const nsAString& aUser, const nsAString& aPassword, ErrorResult& aRv) = 0;
|
2016-06-27 20:13:41 +03:00
|
|
|
|
|
|
|
virtual void
|
|
|
|
SetRequestHeader(const nsACString& aHeader, const nsACString& aValue,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual uint32_t
|
|
|
|
Timeout() const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
SetTimeout(uint32_t aTimeout, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual bool
|
|
|
|
WithCredentials() const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
SetWithCredentials(bool aWithCredentials, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual XMLHttpRequestUpload*
|
|
|
|
GetUpload(ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, const ArrayBuffer& aArrayBuffer, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, const ArrayBufferView& aArrayBufferView,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, Blob& aBlob, ErrorResult& aRv) = 0;
|
|
|
|
|
2016-07-11 22:03:44 +03:00
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, URLSearchParams& aURLSearchParams, ErrorResult& aRv) = 0;
|
|
|
|
|
2016-06-27 20:13:41 +03:00
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, nsIDocument& aDoc, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, const nsAString& aString, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, FormData& aFormData, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Send(JSContext* aCx, nsIInputStream* aStream, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
Abort(ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
GetResponseURL(nsAString& aUrl) = 0;
|
|
|
|
|
|
|
|
virtual uint32_t
|
|
|
|
GetStatus(ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
GetStatusText(nsACString& aStatusText, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
GetResponseHeader(const nsACString& aHeader, nsACString& aResult,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
GetAllResponseHeaders(nsACString& aResponseHeaders,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
OverrideMimeType(const nsAString& aMimeType, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual XMLHttpRequestResponseType
|
|
|
|
ResponseType() const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
SetResponseType(XMLHttpRequestResponseType aType,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
GetResponse(JSContext* aCx, JS::MutableHandle<JS::Value> aResponse,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual void
|
2017-01-19 06:20:15 +03:00
|
|
|
GetResponseText(DOMString& aResponseText, ErrorResult& aRv) = 0;
|
2016-06-27 20:13:41 +03:00
|
|
|
|
|
|
|
virtual nsIDocument*
|
|
|
|
GetResponseXML(ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual bool
|
|
|
|
MozBackgroundRequest() const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
SetMozBackgroundRequest(bool aMozBackgroundRequest, ErrorResult& aRv) = 0;
|
|
|
|
|
|
|
|
virtual nsIChannel*
|
|
|
|
GetChannel() const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
GetNetworkInterfaceId(nsACString& aId) const = 0;
|
|
|
|
|
|
|
|
virtual void
|
|
|
|
SetNetworkInterfaceId(const nsACString& aId) = 0;
|
|
|
|
|
|
|
|
// We need a GetInterface callable from JS for chrome JS
|
|
|
|
virtual void
|
|
|
|
GetInterface(JSContext* aCx, nsIJSID* aIID,
|
|
|
|
JS::MutableHandle<JS::Value> aRetval,
|
|
|
|
ErrorResult& aRv) = 0;
|
|
|
|
|
2016-07-06 07:06:25 +03:00
|
|
|
virtual void
|
|
|
|
SetOriginAttributes(const mozilla::dom::OriginAttributesDictionary& aAttrs) = 0;
|
|
|
|
|
2016-06-27 20:13:41 +03:00
|
|
|
virtual bool
|
|
|
|
MozAnon() const = 0;
|
|
|
|
|
|
|
|
virtual bool
|
|
|
|
MozSystem() const = 0;
|
|
|
|
|
|
|
|
virtual JSObject*
|
|
|
|
WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override
|
|
|
|
{
|
|
|
|
return mozilla::dom::XMLHttpRequestBinding::Wrap(aCx, this, aGivenProto);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
} // dom namespace
|
|
|
|
} // mozilla namespace
|
|
|
|
|
|
|
|
#endif // mozilla_dom_XMLHttpRequest_h
|