Home | History | Annotate | Download | only in push_messaging
      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