VideoColorSpace.cpp (1791B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim:set ts=2 sw=2 sts=2 et cindent: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "mozilla/dom/VideoColorSpace.h" 8 9 #include "mozilla/dom/VideoColorSpaceBinding.h" 10 #include "nsIGlobalObject.h" 11 12 namespace mozilla::dom { 13 14 // Only needed for refcounted objects. 15 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(VideoColorSpace, mParent) 16 NS_IMPL_CYCLE_COLLECTING_ADDREF(VideoColorSpace) 17 NS_IMPL_CYCLE_COLLECTING_RELEASE(VideoColorSpace) 18 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(VideoColorSpace) 19 NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY 20 NS_INTERFACE_MAP_ENTRY(nsISupports) 21 NS_INTERFACE_MAP_END 22 23 VideoColorSpace::VideoColorSpace(nsIGlobalObject* aParent, 24 const VideoColorSpaceInit& aInit) 25 : mParent(aParent), mInit(aInit) { 26 MOZ_ASSERT(mParent); 27 } 28 29 nsIGlobalObject* VideoColorSpace::GetParentObject() const { return mParent; } 30 31 JSObject* VideoColorSpace::WrapObject(JSContext* aCx, 32 JS::Handle<JSObject*> aGivenProto) { 33 return VideoColorSpace_Binding::Wrap(aCx, this, aGivenProto); 34 } 35 36 /* static */ 37 already_AddRefed<VideoColorSpace> VideoColorSpace::Constructor( 38 const GlobalObject& aGlobal, const VideoColorSpaceInit& aInit, 39 ErrorResult& aRv) { 40 nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports()); 41 if (!global) { 42 aRv.Throw(NS_ERROR_FAILURE); 43 return nullptr; 44 } 45 RefPtr<VideoColorSpace> videoColorSpace(new VideoColorSpace(global, aInit)); 46 return aRv.Failed() ? nullptr : videoColorSpace.forget(); 47 } 48 49 } // namespace mozilla::dom