// static already_AddRefed<PointerEvent> PointerEvent::Constructor(const GlobalObject& aGlobal, const nsAString& aType, const PointerEventInit& aParam, ErrorResult& aRv) { nsCOMPtr<EventTarget> owner = do_QueryInterface(aGlobal.GetAsSupports()); return Constructor(owner, aType, aParam); }
// static already_AddRefed<PushSubscription> PushSubscription::Constructor(GlobalObject& aGlobal, const nsAString& aEndpoint, const nsAString& aScope, ErrorResult& aRv) { MOZ_ASSERT(!aEndpoint.IsEmpty()); MOZ_ASSERT(!aScope.IsEmpty()); nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); nsRefPtr<PushSubscription> sub = new PushSubscription(global, aEndpoint, aScope); return sub.forget(); }
/* static */ already_AddRefed<MessageEvent> MessageEvent::Constructor(const GlobalObject& aGlobal, const nsAString& aType, const MessageEventInit& aParam, ErrorResult& aRv) { nsCOMPtr<EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports()); return Constructor(t, aType, aParam, aRv); }
already_AddRefed<DOMMatrix> DOMMatrix::Constructor(const GlobalObject& aGlobal, const Float32Array& aArray32, ErrorResult& aRv) { RefPtr<DOMMatrix> obj = new DOMMatrix(aGlobal.GetAsSupports()); aArray32.ComputeLengthAndData(); SetDataInMatrix(obj, aArray32.Data(), aArray32.Length(), aRv); return obj.forget(); }
already_AddRefed<DOMPoint> DOMPoint::Constructor(const GlobalObject& aGlobal, const DOMPointInit& aParams, ErrorResult& aRV) { RefPtr<DOMPoint> obj = new DOMPoint(aGlobal.GetAsSupports(), aParams.mX, aParams.mY, aParams.mZ, aParams.mW); return obj.forget(); }
/* static */ already_AddRefed<Promise> File::CreateFromNsIFile( const GlobalObject& aGlobal, nsIFile* aData, const ChromeFilePropertyBag& aBag, SystemCallerGuarantee aGuarantee, ErrorResult& aRv) { nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); RefPtr<Promise> promise = FileCreatorHelper::CreateFile(global, aData, aBag, true, aRv); return promise.forget(); }
/* static */ already_AddRefed<MediaRecorder> MediaRecorder::Constructor(const GlobalObject& aGlobal, DOMMediaStream& aStream, ErrorResult& aRv) { nsCOMPtr<nsIScriptGlobalObject> sgo = do_QueryInterface(aGlobal.GetAsSupports()); if (!sgo) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; } nsCOMPtr<nsPIDOMWindow> ownerWindow = do_QueryInterface(aGlobal.GetAsSupports()); if (!ownerWindow) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; } nsRefPtr<MediaRecorder> object = new MediaRecorder(aStream, ownerWindow); return object.forget(); }
/* static */ already_AddRefed<URLSearchParams> URLSearchParams::Constructor(const GlobalObject& aGlobal, URLSearchParams& aInit, ErrorResult& aRv) { RefPtr<URLSearchParams> sp = new URLSearchParams(aGlobal.GetAsSupports(), aInit); return sp.forget(); }
/* static */ already_AddRefed<URLSearchParams> URLSearchParams::Constructor(const GlobalObject& aGlobal, const nsAString& aInit, ErrorResult& aRv) { RefPtr<URLSearchParams> sp = new URLSearchParams(aGlobal.GetAsSupports(), nullptr); sp->ParseInput(NS_ConvertUTF16toUTF8(aInit)); return sp.forget(); }
/* static */ already_AddRefed<Blob> Blob::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv) { nsRefPtr<MultipartBlobImpl> impl = new MultipartBlobImpl(); impl->InitializeBlob(); MOZ_ASSERT(!impl->IsFile()); nsRefPtr<Blob> blob = Blob::Create(aGlobal.GetAsSupports(), impl); return blob.forget(); }
/* static */ already_AddRefed<EventTarget> EventTarget::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv) { nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); if (!global) { aRv.Throw(NS_ERROR_UNEXPECTED); return nullptr; } RefPtr<EventTarget> target = new ConstructibleEventTarget(global); return target.forget(); }
/* static */ already_AddRefed<nsFormData> nsFormData::Constructor(const GlobalObject& aGlobal, const Optional<NonNull<HTMLFormElement> >& aFormElement, ErrorResult& aRv) { nsRefPtr<nsFormData> formData = new nsFormData(aGlobal.GetAsSupports()); if (aFormElement.WasPassed()) { aRv = aFormElement.Value().WalkFormElements(formData); } return formData.forget(); }
/* static */ already_AddRefed<Text> Text::Constructor(const GlobalObject& aGlobal, const nsAString& aData, ErrorResult& aRv) { nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(aGlobal.GetAsSupports()); if (!window || !window->GetDoc()) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; } return window->GetDoc()->CreateTextNode(aData); }
/* static */ already_AddRefed<DocumentFragment> DocumentFragment::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv) { nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(aGlobal.GetAsSupports()); if (!window || !window->GetDoc()) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; } return window->GetDoc()->CreateDocumentFragment(); }
already_AddRefed<SpeechRecognitionError> SpeechRecognitionError::Constructor(const GlobalObject& aGlobal, const nsAString& aType, const SpeechRecognitionErrorInit& aParam, ErrorResult& aRv) { nsCOMPtr<mozilla::dom::EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports()); RefPtr<SpeechRecognitionError> e = new SpeechRecognitionError(t, nullptr, nullptr); bool trusted = e->Init(t); e->InitSpeechRecognitionError(aType, aParam.mBubbles, aParam.mCancelable, aParam.mError, aParam.mMessage); e->SetTrusted(trusted); return e.forget(); }
already_AddRefed<DOMQuad> DOMQuad::Constructor(const GlobalObject& aGlobal, const DOMRectReadOnly& aRect, ErrorResult& aRV) { CSSPoint points[4]; Float x = aRect.X(), y = aRect.Y(), w = aRect.Width(), h = aRect.Height(); points[0] = CSSPoint(x, y); points[1] = CSSPoint(x + w, y); points[2] = CSSPoint(x + w, y + h); points[3] = CSSPoint(x, y + h); nsRefPtr<DOMQuad> obj = new DOMQuad(aGlobal.GetAsSupports(), points); return obj.forget(); }
// static already_AddRefed<KeyboardEvent> KeyboardEvent::Constructor(const GlobalObject& aGlobal, const nsAString& aType, const KeyboardEventInit& aParam, ErrorResult& aRv) { nsCOMPtr<EventTarget> target = do_QueryInterface(aGlobal.GetAsSupports()); nsRefPtr<KeyboardEvent> newEvent = new KeyboardEvent(target, nullptr, nullptr); newEvent->InitWithKeyboardEventInit(target, aType, aParam, aRv); return newEvent.forget(); }
already_AddRefed<SpeechRecognition> SpeechRecognition::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv) { nsCOMPtr<nsPIDOMWindow> win = do_QueryInterface(aGlobal.GetAsSupports()); if (!win) { aRv.Throw(NS_ERROR_FAILURE); } MOZ_ASSERT(win->IsInnerWindow()); nsRefPtr<SpeechRecognition> object = new SpeechRecognition(win); return object.forget(); }
/* static */ already_AddRefed<MessageEvent> MessageEvent::Constructor(const GlobalObject& aGlobal, JSContext* aCx, const nsAString& aType, const MessageEventInit& aParam, ErrorResult& aRv) { nsCOMPtr<EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports()); nsRefPtr<MessageEvent> event = new MessageEvent(t, nullptr, nullptr); aRv = event->InitEvent(aType, aParam.mBubbles, aParam.mCancelable); if (aRv.Failed()) { return nullptr; } bool trusted = event->Init(t); event->SetTrusted(trusted); event->mData = aParam.mData; mozilla::HoldJSObjects(event.get()); if (aParam.mOrigin.WasPassed()) { event->mOrigin = aParam.mOrigin.Value(); } if (aParam.mLastEventId.WasPassed()) { event->mLastEventId = aParam.mLastEventId.Value(); } if (!aParam.mSource.IsNull()) { if (aParam.mSource.Value().IsWindowProxy()) { event->mWindowSource = aParam.mSource.Value().GetAsWindowProxy(); } else { event->mPortSource = aParam.mSource.Value().GetAsMessagePort(); } MOZ_ASSERT(event->mWindowSource || event->mPortSource); } if (aParam.mPorts.WasPassed() && !aParam.mPorts.Value().IsNull()) { nsTArray<nsRefPtr<MessagePortBase>> ports; for (uint32_t i = 0, len = aParam.mPorts.Value().Value().Length(); i < len; ++i) { ports.AppendElement(aParam.mPorts.Value().Value()[i].get()); } event->mPorts = new MessagePortList(static_cast<EventBase*>(event), ports); } return event.forget(); }
already_AddRefed<CustomEvent> CustomEvent::Constructor(const GlobalObject& aGlobal, const nsAString& aType, const CustomEventInit& aParam, ErrorResult& aRv) { nsCOMPtr<mozilla::dom::EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports()); nsRefPtr<CustomEvent> e = new CustomEvent(t, nullptr, nullptr); bool trusted = e->Init(t); JS::Rooted<JS::Value> detail(aGlobal.Context(), aParam.mDetail); e->InitCustomEvent(aGlobal.Context(), aType, aParam.mBubbles, aParam.mCancelable, detail, aRv); e->SetTrusted(trusted); return e.forget(); }
void URL::RevokeObjectURL(const GlobalObject& aGlobal, const nsAString& aURL, ErrorResult& aRv) { nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); if (!global) { aRv.Throw(NS_ERROR_FAILURE); return; } nsIPrincipal* principal = nsContentUtils::ObjectPrincipal(aGlobal.Get()); NS_LossyConvertUTF16toASCII asciiurl(aURL); nsIPrincipal* urlPrincipal = nsHostObjectProtocolHandler::GetDataEntryPrincipal(asciiurl); if (urlPrincipal && principal->Subsumes(urlPrincipal)) { nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); global->UnregisterHostObjectURI(asciiurl); nsHostObjectProtocolHandler::RemoveDataEntry(asciiurl); } }
already_AddRefed<FocusEvent> FocusEvent::Constructor(const GlobalObject& aGlobal, const nsAString& aType, const FocusEventInit& aParam, ErrorResult& aRv) { nsCOMPtr<EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports()); nsRefPtr<FocusEvent> e = new FocusEvent(t, nullptr, nullptr); bool trusted = e->Init(t); aRv = e->InitFocusEvent(aType, aParam.mBubbles, aParam.mCancelable, aParam.mView, aParam.mDetail, aParam.mRelatedTarget); e->SetTrusted(trusted); return e.forget(); }
already_AddRefed<DOMQuad> DOMQuad::Constructor(const GlobalObject& aGlobal, const DOMPointInit& aP1, const DOMPointInit& aP2, const DOMPointInit& aP3, const DOMPointInit& aP4, ErrorResult& aRV) { nsRefPtr<DOMQuad> obj = new DOMQuad(aGlobal.GetAsSupports()); obj->mPoints[0] = DOMPoint::Constructor(aGlobal, aP1, aRV); obj->mPoints[1] = DOMPoint::Constructor(aGlobal, aP2, aRV); obj->mPoints[2] = DOMPoint::Constructor(aGlobal, aP3, aRV); obj->mPoints[3] = DOMPoint::Constructor(aGlobal, aP4, aRV); return obj.forget(); }
// static already_AddRefed<IDBKeyRange> IDBKeyRange::Only(const GlobalObject& aGlobal, JS::Handle<JS::Value> aValue, ErrorResult& aRv) { RefPtr<IDBKeyRange> keyRange = new IDBKeyRange(aGlobal.GetAsSupports(), false, false, true); aRv = GetKeyFromJSVal(aGlobal.Context(), aValue, keyRange->Lower()); if (aRv.Failed()) { return nullptr; } return keyRange.forget(); }
/* static */ bool MediaSource::IsTypeSupported(const GlobalObject& aOwner, const nsAString& aType) { MOZ_ASSERT(NS_IsMainThread()); DecoderDoctorDiagnostics diagnostics; nsresult rv = IsTypeSupported(aType, &diagnostics); nsCOMPtr<nsPIDOMWindowInner> window = do_QueryInterface(aOwner.GetAsSupports()); diagnostics.StoreFormatDiagnostics(window ? window->GetExtantDoc() : nullptr, aType, NS_SUCCEEDED(rv), __func__); #define this nullptr MSE_API("IsTypeSupported(aType=%s)%s ", NS_ConvertUTF16toUTF8(aType).get(), rv == NS_OK ? "OK" : "[not supported]"); #undef this // don't ever remove this line ! return NS_SUCCEEDED(rv); }
/* static */ already_AddRefed<nsDOMFileReader> nsDOMFileReader::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv) { nsRefPtr<nsDOMFileReader> fileReader = new nsDOMFileReader(); nsCOMPtr<nsPIDOMWindow> owner = do_QueryInterface(aGlobal.GetAsSupports()); if (!owner) { NS_WARNING("Unexpected nsIJSNativeInitializer owner"); aRv.Throw(NS_ERROR_FAILURE); return nullptr; } fileReader->BindToOwner(owner); return fileReader.forget(); }
// static already_AddRefed<IDBKeyRange> IDBKeyRange::Only(const GlobalObject& aGlobal, JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) { MOZ_ASSERT(NS_IsMainThread(), "Wrong thread!"); nsRefPtr<IDBKeyRange> keyRange = new IDBKeyRange(aGlobal.GetAsSupports(), false, false, true); aRv = GetKeyFromJSVal(aCx, aValue, keyRange->Lower()); if (aRv.Failed()) { return nullptr; } return keyRange.forget(); }
/* static */ already_AddRefed<AudioBuffer> AudioBuffer::Constructor(const GlobalObject& aGlobal, const AudioBufferOptions& aOptions, ErrorResult& aRv) { if (!aOptions.mNumberOfChannels) { aRv.Throw(NS_ERROR_DOM_INDEX_SIZE_ERR); return nullptr; } nsCOMPtr<nsPIDOMWindowInner> window = do_QueryInterface(aGlobal.GetAsSupports()); return Create(window, aOptions.mNumberOfChannels, aOptions.mLength, aOptions.mSampleRate, aRv); }
already_AddRefed<BluetoothGattService> BluetoothGattService::Constructor(const GlobalObject& aGlobal, const BluetoothGattServiceInit& aInit, ErrorResult& aRv) { nsCOMPtr<nsPIDOMWindowInner> window = do_QueryInterface(aGlobal.GetAsSupports()); if (!window) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; } RefPtr<BluetoothGattService> service = new BluetoothGattService(window, aInit); return service.forget(); }
/* static */ already_AddRefed<Promise> File::CreateFromFileName( const GlobalObject& aGlobal, const nsAString& aPath, const ChromeFilePropertyBag& aBag, SystemCallerGuarantee aGuarantee, ErrorResult& aRv) { nsCOMPtr<nsIFile> file; aRv = NS_NewLocalFile(aPath, false, getter_AddRefs(file)); if (NS_WARN_IF(aRv.Failed())) { return nullptr; } nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); RefPtr<Promise> promise = FileCreatorHelper::CreateFile(global, file, aBag, false, aRv); return promise.forget(); }