1 // Copyright 2014 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 #ifndef PushEvent_h 6 #define PushEvent_h 7 8 #include "modules/EventModules.h" 9 #include "platform/heap/Handle.h" 10 #include "wtf/text/AtomicString.h" 11 #include "wtf/text/WTFString.h" 12 13 namespace blink { 14 15 struct PushEventInit : public EventInit { 16 PushEventInit(); 17 18 String data; 19 }; 20 21 class PushEvent FINAL : public Event { 22 DEFINE_WRAPPERTYPEINFO(); 23 public: 24 static PassRefPtrWillBeRawPtr<PushEvent> create() 25 { 26 return adoptRefWillBeNoop(new PushEvent); 27 } 28 static PassRefPtrWillBeRawPtr<PushEvent> create(const AtomicString& type, const String& data) 29 { 30 return adoptRefWillBeNoop(new PushEvent(type, data)); 31 } 32 static PassRefPtrWillBeRawPtr<PushEvent> create(const AtomicString& type, const PushEventInit& initializer) 33 { 34 return adoptRefWillBeNoop(new PushEvent(type, initializer)); 35 } 36 37 virtual ~PushEvent(); 38 39 virtual const AtomicString& interfaceName() const OVERRIDE; 40 41 String data() const { return m_data; } 42 43 private: 44 PushEvent(); 45 PushEvent(const AtomicString& type, const String& data); 46 PushEvent(const AtomicString& type, const PushEventInit&); 47 String m_data; 48 }; 49 50 } // namespace blink 51 52 #endif // PushEvent_h 53