Bug 1885602 - Part 5: Implement navigating to the SUMO help topic from the menu heade...
[gecko.git] / dom / media / webcodecs / VideoColorSpace.cpp
blob5b0dad0f317e4be17afcdd4ccc606b10b96a1ea3
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/. */
7 #include "mozilla/dom/VideoColorSpace.h"
8 #include "mozilla/dom/VideoColorSpaceBinding.h"
9 #include "nsIGlobalObject.h"
11 namespace mozilla::dom {
13 // Only needed for refcounted objects.
14 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(VideoColorSpace, mParent)
15 NS_IMPL_CYCLE_COLLECTING_ADDREF(VideoColorSpace)
16 NS_IMPL_CYCLE_COLLECTING_RELEASE(VideoColorSpace)
17 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(VideoColorSpace)
18 NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
19 NS_INTERFACE_MAP_ENTRY(nsISupports)
20 NS_INTERFACE_MAP_END
22 VideoColorSpace::VideoColorSpace(nsIGlobalObject* aParent,
23 const VideoColorSpaceInit& aInit)
24 : mParent(aParent), mInit(aInit) {
25 MOZ_ASSERT(mParent);
28 nsIGlobalObject* VideoColorSpace::GetParentObject() const { return mParent; }
30 JSObject* VideoColorSpace::WrapObject(JSContext* aCx,
31 JS::Handle<JSObject*> aGivenProto) {
32 return VideoColorSpace_Binding::Wrap(aCx, this, aGivenProto);
35 /* static */
36 already_AddRefed<VideoColorSpace> VideoColorSpace::Constructor(
37 const GlobalObject& aGlobal, const VideoColorSpaceInit& aInit,
38 ErrorResult& aRv) {
39 nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
40 if (!global) {
41 aRv.Throw(NS_ERROR_FAILURE);
42 return nullptr;
44 RefPtr<VideoColorSpace> videoColorSpace(new VideoColorSpace(global, aInit));
45 return aRv.Failed() ? nullptr : videoColorSpace.forget();
48 } // namespace mozilla::dom