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