Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameOwner.h

Issue 2011763006: Add an iframe permissions= attribute for implementing permission delegation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission-delegation-1-flag
Patch Set: Blink-side Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/core.gypi ('k') | third_party/WebKit/Source/core/html/HTMLAttributeNames.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698