Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / push_messaging / PushEvent.h
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