OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef FrameOwner_h | 5 #ifndef FrameOwner_h |
6 #define FrameOwner_h | 6 #define FrameOwner_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "core/dom/SandboxFlags.h" | 9 #include "core/dom/SandboxFlags.h" |
10 #include "platform/heap/Handle.h" | 10 #include "platform/heap/Handle.h" |
11 #include "platform/scroll/ScrollTypes.h" | 11 #include "platform/scroll/ScrollTypes.h" |
| 12 #include "public/platform/WebVector.h" |
| 13 #include "public/platform/modules/permissions/WebPermissionType.h" |
12 | 14 |
13 namespace blink { | 15 namespace blink { |
14 | 16 |
15 class Frame; | 17 class Frame; |
16 | 18 |
17 // Oilpan: all FrameOwner instances are GCed objects. FrameOwner additionally | 19 // Oilpan: all FrameOwner instances are GCed objects. FrameOwner additionally |
18 // derives from GarbageCollectedMixin so that Member<FrameOwner> references can | 20 // derives from GarbageCollectedMixin so that Member<FrameOwner> references can |
19 // be kept (e.g., Frame::m_owner.) | 21 // be kept (e.g., Frame::m_owner.) |
20 class CORE_EXPORT FrameOwner : public GarbageCollectedMixin { | 22 class CORE_EXPORT FrameOwner : public GarbageCollectedMixin { |
21 public: | 23 public: |
(...skipping 10 matching lines...) Expand all Loading... |
32 virtual void dispatchLoad() = 0; | 34 virtual void dispatchLoad() = 0; |
33 | 35 |
34 // On load failure, a frame can ask its owner to render fallback content | 36 // On load failure, a frame can ask its owner to render fallback content |
35 // which replaces the frame contents. | 37 // which replaces the frame contents. |
36 virtual void renderFallbackContent() = 0; | 38 virtual void renderFallbackContent() = 0; |
37 | 39 |
38 virtual ScrollbarMode scrollingMode() const = 0; | 40 virtual ScrollbarMode scrollingMode() const = 0; |
39 virtual int marginWidth() const = 0; | 41 virtual int marginWidth() const = 0; |
40 virtual int marginHeight() const = 0; | 42 virtual int marginHeight() const = 0; |
41 virtual bool allowFullscreen() const = 0; | 43 virtual bool allowFullscreen() const = 0; |
| 44 virtual const WebVector<WebPermissionType>& delegatedPermissions() const = 0
; |
42 }; | 45 }; |
43 | 46 |
44 class CORE_EXPORT DummyFrameOwner : public GarbageCollectedFinalized<DummyFrameO
wner>, public FrameOwner { | 47 class CORE_EXPORT DummyFrameOwner : public GarbageCollectedFinalized<DummyFrameO
wner>, public FrameOwner { |
45 USING_GARBAGE_COLLECTED_MIXIN(DummyFrameOwner); | 48 USING_GARBAGE_COLLECTED_MIXIN(DummyFrameOwner); |
46 public: | 49 public: |
47 static DummyFrameOwner* create() | 50 static DummyFrameOwner* create() |
48 { | 51 { |
49 return new DummyFrameOwner; | 52 return new DummyFrameOwner; |
50 } | 53 } |
51 | 54 |
52 DEFINE_INLINE_VIRTUAL_TRACE() { FrameOwner::trace(visitor); } | 55 DEFINE_INLINE_VIRTUAL_TRACE() { FrameOwner::trace(visitor); } |
53 | 56 |
54 // FrameOwner overrides: | 57 // FrameOwner overrides: |
55 void setContentFrame(Frame&) override { } | 58 void setContentFrame(Frame&) override { } |
56 void clearContentFrame() override { } | 59 void clearContentFrame() override { } |
57 SandboxFlags getSandboxFlags() const override { return SandboxNone; } | 60 SandboxFlags getSandboxFlags() const override { return SandboxNone; } |
58 void dispatchLoad() override { } | 61 void dispatchLoad() override { } |
59 void renderFallbackContent() override { } | 62 void renderFallbackContent() override { } |
60 ScrollbarMode scrollingMode() const override { return ScrollbarAuto; } | 63 ScrollbarMode scrollingMode() const override { return ScrollbarAuto; } |
61 int marginWidth() const override { return -1; } | 64 int marginWidth() const override { return -1; } |
62 int marginHeight() const override { return -1; } | 65 int marginHeight() const override { return -1; } |
63 bool allowFullscreen() const override { return false; } | 66 bool allowFullscreen() const override { return false; } |
| 67 const WebVector<WebPermissionType>& delegatedPermissions() const override |
| 68 { |
| 69 DEFINE_STATIC_LOCAL(WebVector<WebPermissionType>, permissions, ()); |
| 70 return permissions; |
| 71 } |
64 | 72 |
65 private: | 73 private: |
66 // Intentionally private to prevent redundant checks when the type is | 74 // Intentionally private to prevent redundant checks when the type is |
67 // already DummyFrameOwner. | 75 // already DummyFrameOwner. |
68 bool isLocal() const override { return false; } | 76 bool isLocal() const override { return false; } |
69 bool isRemote() const override { return false; } | 77 bool isRemote() const override { return false; } |
70 }; | 78 }; |
71 | 79 |
72 } // namespace blink | 80 } // namespace blink |
73 | 81 |
74 #endif // FrameOwner_h | 82 #endif // FrameOwner_h |
OLD | NEW |