aec1c06310346d5286a6143f3bc706112048d9b4
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / presentation / Presentation.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 Presentation_h
6 #define Presentation_h
7
8 #include "core/dom/ContextLifecycleObserver.h"
9 #include "core/events/EventTarget.h"
10
11 namespace blink {
12
13 class Presentation FINAL
14     : public RefCountedGarbageCollectedWillBeGarbageCollectedFinalized<Presentation>
15     , public EventTargetWithInlineData
16     , public ContextLifecycleObserver {
17     DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(RefCountedGarbageCollected<Presentation>);
18     DEFINE_WRAPPERTYPEINFO();
19 public:
20     static Presentation* create(ExecutionContext*);
21     virtual ~Presentation();
22
23     // EventTarget implementation.
24     virtual const AtomicString& interfaceName() const OVERRIDE;
25     virtual ExecutionContext* executionContext() const OVERRIDE;
26
27     virtual void trace(Visitor*) OVERRIDE;
28
29     DEFINE_ATTRIBUTE_EVENT_LISTENER(availablechange);
30
31 private:
32     explicit Presentation(ExecutionContext*);
33 };
34
35 } // namespace blink
36
37 #endif // Presentation_h