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 WebCore { 14 15 struct PushEventInit : public EventInit { 16 PushEventInit(); 17 18 String data; 19 }; 20 21 class PushEvent FINAL : public Event { 22 public: create()23 static PassRefPtrWillBeRawPtr<PushEvent> create() 24 { 25 return adoptRefWillBeNoop(new PushEvent); 26 } create(const AtomicString & type,const String & data)27 static PassRefPtrWillBeRawPtr<PushEvent> create(const AtomicString& type, const String& data) 28 { 29 return adoptRefWillBeNoop(new PushEvent(type, data)); 30 } create(const AtomicString & type,const PushEventInit & initializer)31 static PassRefPtrWillBeRawPtr<PushEvent> create(const AtomicString& type, const PushEventInit& initializer) 32 { 33 return adoptRefWillBeNoop(new PushEvent(type, initializer)); 34 } 35 36 virtual ~PushEvent(); 37 38 virtual const AtomicString& interfaceName() const OVERRIDE; 39 data()40 String data() const { return m_data; } 41 42 private: 43 PushEvent(); 44 PushEvent(const AtomicString& type, const String& data); 45 PushEvent(const AtomicString& type, const PushEventInit&); 46 String m_data; 47 }; 48 49 } // namespace WebCore 50 51 #endif // PushEvent_h 52