Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / presentation / NavigatorPresentation.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 NavigatorPresentation_h
6 #define NavigatorPresentation_h
7
8 #include "core/frame/DOMWindowProperty.h"
9 #include "platform/Supplementable.h"
10
11 namespace blink {
12
13 class Navigator;
14 class Presentation;
15
16 class NavigatorPresentation final
17     : public NoBaseWillBeGarbageCollectedFinalized<NavigatorPresentation>
18     , public WillBeHeapSupplement<Navigator>
19     , public DOMWindowProperty {
20     WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(NavigatorPresentation);
21 public:
22     virtual ~NavigatorPresentation();
23
24     static NavigatorPresentation& from(Navigator&);
25     static Presentation* presentation(Navigator&);
26
27     virtual void trace(Visitor*) override;
28
29 private:
30     static const char* supplementName();
31
32     explicit NavigatorPresentation(LocalFrame*);
33
34     Presentation* presentation();
35
36     PersistentWillBeMember<Presentation> m_presentation;
37 };
38
39 } // namespace blink
40
41 #endif // NavigatorPresentation_h