1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "third_party/blink/renderer/modules/push_messaging/push_subscription_change_event.h"
6
7 #include "third_party/blink/renderer/bindings/modules/v8/v8_push_subscription_change_event_init.h"
8
9 namespace blink {
10
PushSubscriptionChangeEvent(const AtomicString & type,PushSubscription * new_subscription,PushSubscription * old_subscription,WaitUntilObserver * observer)11 PushSubscriptionChangeEvent::PushSubscriptionChangeEvent(
12 const AtomicString& type,
13 PushSubscription* new_subscription,
14 PushSubscription* old_subscription,
15 WaitUntilObserver* observer)
16 : ExtendableEvent(type, ExtendableEventInit::Create(), observer),
17 new_subscription_(new_subscription),
18 old_subscription_(old_subscription) {}
19
PushSubscriptionChangeEvent(const AtomicString & type,PushSubscriptionChangeEventInit * initializer)20 PushSubscriptionChangeEvent::PushSubscriptionChangeEvent(
21 const AtomicString& type,
22 PushSubscriptionChangeEventInit* initializer)
23 : ExtendableEvent(type, initializer) {
24 if (initializer->hasNewSubscription())
25 new_subscription_ = initializer->newSubscription();
26 if (initializer->hasOldSubscription())
27 old_subscription_ = initializer->oldSubscription();
28 }
29
30 PushSubscriptionChangeEvent::~PushSubscriptionChangeEvent() = default;
31
newSubscription() const32 PushSubscription* PushSubscriptionChangeEvent::newSubscription() const {
33 return new_subscription_;
34 }
35
oldSubscription() const36 PushSubscription* PushSubscriptionChangeEvent::oldSubscription() const {
37 return old_subscription_;
38 }
39
Trace(Visitor * visitor)40 void PushSubscriptionChangeEvent::Trace(Visitor* visitor) {
41 visitor->Trace(new_subscription_);
42 visitor->Trace(old_subscription_);
43 ExtendableEvent::Trace(visitor);
44 }
45
46 } // namespace blink
47