CookieChangeEvent.cpp (2766B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 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/CookieChangeEvent.h" 8 9 #include "mozilla/dom/CookieChangeEventBinding.h" 10 11 namespace mozilla::dom { 12 13 CookieChangeEvent::CookieChangeEvent(EventTarget* aOwner, 14 nsPresContext* aPresContext, 15 WidgetEvent* aEvent) 16 : Event(aOwner, aPresContext, aEvent) {} 17 18 CookieChangeEvent::~CookieChangeEvent() = default; 19 20 JSObject* CookieChangeEvent::WrapObjectInternal( 21 JSContext* aCx, JS::Handle<JSObject*> aGivenProto) { 22 return mozilla::dom::CookieChangeEvent_Binding::Wrap(aCx, this, aGivenProto); 23 } 24 25 void CookieChangeEvent::GetChanged(nsTArray<CookieListItem>& aList) const { 26 aList = mChanged.Clone(); 27 } 28 29 void CookieChangeEvent::GetDeleted(nsTArray<CookieListItem>& aList) const { 30 aList = mDeleted.Clone(); 31 } 32 33 /* static */ already_AddRefed<CookieChangeEvent> CookieChangeEvent::Constructor( 34 const GlobalObject& aGlobal, const nsAString& aType, 35 const CookieChangeEventInit& aEventInit) { 36 nsCOMPtr<EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports()); 37 RefPtr<CookieChangeEvent> event = new CookieChangeEvent(t, nullptr, nullptr); 38 bool trusted = event->Init(t); 39 40 event->InitEvent(aType, aEventInit.mBubbles, aEventInit.mCancelable); 41 event->SetTrusted(trusted); 42 event->SetComposed(aEventInit.mComposed); 43 44 if (aEventInit.mChanged.WasPassed()) { 45 event->mChanged = aEventInit.mChanged.Value(); 46 } 47 48 if (aEventInit.mDeleted.WasPassed()) { 49 event->mDeleted = aEventInit.mDeleted.Value(); 50 } 51 52 return event.forget(); 53 } 54 55 /* static */ already_AddRefed<CookieChangeEvent> 56 CookieChangeEvent::CreateForChangedCookie(EventTarget* aEventTarget, 57 const CookieListItem& aItem) { 58 RefPtr<CookieChangeEvent> event = 59 new CookieChangeEvent(aEventTarget, nullptr, nullptr); 60 61 event->InitEvent(u"change"_ns, false, false); 62 event->SetTrusted(true); 63 64 event->mChanged.AppendElement(aItem); 65 return event.forget(); 66 } 67 68 /* static */ already_AddRefed<CookieChangeEvent> 69 CookieChangeEvent::CreateForDeletedCookie(EventTarget* aEventTarget, 70 const CookieListItem& aItem) { 71 RefPtr<CookieChangeEvent> event = 72 new CookieChangeEvent(aEventTarget, nullptr, nullptr); 73 74 event->InitEvent(u"change"_ns, false, false); 75 event->SetTrusted(true); 76 77 event->mDeleted.AppendElement(aItem); 78 return event.forget(); 79 } 80 81 } // namespace mozilla::dom