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

Side by Side Diff: third_party/WebKit/Source/web/RemoteFrameOwner.h

Issue 2797813002: Replicate feature policy container policies. (Closed)
Patch Set: Addressing review comments Created 3 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be found 2 // Use of this source code is governed by a BSD-style license that can be found
3 // in the LICENSE file. 3 // in the LICENSE file.
4 4
5 #ifndef RemoteFrameOwner_h 5 #ifndef RemoteFrameOwner_h
6 #define RemoteFrameOwner_h 6 #define RemoteFrameOwner_h
7 7
8 #include "core/frame/FrameOwner.h" 8 #include "core/frame/FrameOwner.h"
9 #include "platform/scroll/ScrollTypes.h" 9 #include "platform/scroll/ScrollTypes.h"
10 #include "public/web/WebFrameOwnerProperties.h" 10 #include "public/web/WebFrameOwnerProperties.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 // Helper class to bridge communication for a frame with a remote parent. 14 // Helper class to bridge communication for a frame with a remote parent.
15 // Currently, it serves two purposes: 15 // Currently, it serves two purposes:
16 // 1. Allows the local frame's loader to retrieve sandbox flags associated with 16 // 1. Allows the local frame's loader to retrieve sandbox flags associated with
17 // its owner element in another process. 17 // its owner element in another process.
18 // 2. Trigger a load event on its owner element once it finishes a load. 18 // 2. Trigger a load event on its owner element once it finishes a load.
19 class RemoteFrameOwner final 19 class RemoteFrameOwner final
20 : public GarbageCollectedFinalized<RemoteFrameOwner>, 20 : public GarbageCollectedFinalized<RemoteFrameOwner>,
21 public FrameOwner { 21 public FrameOwner {
22 USING_GARBAGE_COLLECTED_MIXIN(RemoteFrameOwner); 22 USING_GARBAGE_COLLECTED_MIXIN(RemoteFrameOwner);
23 23
24 public: 24 public:
25 static RemoteFrameOwner* Create( 25 static RemoteFrameOwner* Create(
26 SandboxFlags flags, 26 SandboxFlags flags,
27 const WebParsedFeaturePolicy& container_policy,
27 const WebFrameOwnerProperties& frame_owner_properties) { 28 const WebFrameOwnerProperties& frame_owner_properties) {
28 return new RemoteFrameOwner(flags, frame_owner_properties); 29 return new RemoteFrameOwner(flags, container_policy,
30 frame_owner_properties);
29 } 31 }
30 32
31 // FrameOwner overrides: 33 // FrameOwner overrides:
32 Frame* ContentFrame() const override { return frame_.Get(); } 34 Frame* ContentFrame() const override { return frame_.Get(); }
33 void SetContentFrame(Frame&) override; 35 void SetContentFrame(Frame&) override;
34 void ClearContentFrame() override; 36 void ClearContentFrame() override;
35 SandboxFlags GetSandboxFlags() const override { return sandbox_flags_; } 37 SandboxFlags GetSandboxFlags() const override { return sandbox_flags_; }
36 void SetSandboxFlags(SandboxFlags flags) { sandbox_flags_ = flags; } 38 void SetSandboxFlags(SandboxFlags flags) { sandbox_flags_ = flags; }
37 void DispatchLoad() override; 39 void DispatchLoad() override;
38 // TODO(dcheng): Implement. 40 // TODO(dcheng): Implement.
39 bool CanRenderFallbackContent() const override { return false; } 41 bool CanRenderFallbackContent() const override { return false; }
40 void RenderFallbackContent() override {} 42 void RenderFallbackContent() override {}
41 43
42 AtomicString BrowsingContextContainerName() const override { 44 AtomicString BrowsingContextContainerName() const override {
43 return browsing_context_container_name_; 45 return browsing_context_container_name_;
44 } 46 }
45 ScrollbarMode ScrollingMode() const override { return scrolling_; } 47 ScrollbarMode ScrollingMode() const override { return scrolling_; }
46 int MarginWidth() const override { return margin_width_; } 48 int MarginWidth() const override { return margin_width_; }
47 int MarginHeight() const override { return margin_height_; } 49 int MarginHeight() const override { return margin_height_; }
48 bool AllowFullscreen() const override { return allow_fullscreen_; } 50 bool AllowFullscreen() const override { return allow_fullscreen_; }
49 bool AllowPaymentRequest() const override { return allow_payment_request_; } 51 bool AllowPaymentRequest() const override { return allow_payment_request_; }
50 bool IsDisplayNone() const override { return is_display_none_; } 52 bool IsDisplayNone() const override { return is_display_none_; }
51 AtomicString Csp() const override { return csp_; } 53 AtomicString Csp() const override { return csp_; }
52 const WebVector<WebFeaturePolicyFeature>& AllowedFeatures() const override { 54 const WebVector<WebFeaturePolicyFeature>& AllowedFeatures() const override {
53 return allowed_features_; 55 return allowed_features_;
54 } 56 }
57 const WebParsedFeaturePolicy& ContainerPolicy() const override {
58 return container_policy_;
59 }
55 60
56 void SetBrowsingContextContainerName(const WebString& name) { 61 void SetBrowsingContextContainerName(const WebString& name) {
57 browsing_context_container_name_ = name; 62 browsing_context_container_name_ = name;
58 } 63 }
59 void SetScrollingMode(WebFrameOwnerProperties::ScrollingMode); 64 void SetScrollingMode(WebFrameOwnerProperties::ScrollingMode);
60 void SetMarginWidth(int margin_width) { margin_width_ = margin_width; } 65 void SetMarginWidth(int margin_width) { margin_width_ = margin_width; }
61 void SetMarginHeight(int margin_height) { margin_height_ = margin_height; } 66 void SetMarginHeight(int margin_height) { margin_height_ = margin_height; }
62 void SetAllowFullscreen(bool allow_fullscreen) { 67 void SetAllowFullscreen(bool allow_fullscreen) {
63 allow_fullscreen_ = allow_fullscreen; 68 allow_fullscreen_ = allow_fullscreen;
64 } 69 }
65 void SetAllowPaymentRequest(bool allow_payment_request) { 70 void SetAllowPaymentRequest(bool allow_payment_request) {
66 allow_payment_request_ = allow_payment_request; 71 allow_payment_request_ = allow_payment_request;
67 } 72 }
68 void SetIsDisplayNone(bool is_display_none) { 73 void SetIsDisplayNone(bool is_display_none) {
69 is_display_none_ = is_display_none; 74 is_display_none_ = is_display_none;
70 } 75 }
71 void SetCsp(const WebString& csp) { csp_ = csp; } 76 void SetCsp(const WebString& csp) { csp_ = csp; }
72 void SetAllowedFeatures( 77 void SetAllowedFeatures(
73 const WebVector<WebFeaturePolicyFeature>& allowed_features) { 78 const WebVector<WebFeaturePolicyFeature>& allowed_features) {
74 allowed_features_ = allowed_features; 79 allowed_features_ = allowed_features;
75 } 80 }
81 void SetContainerPolicy(const WebParsedFeaturePolicy& container_policy) {
82 container_policy_ = container_policy;
83 }
76 84
77 DECLARE_VIRTUAL_TRACE(); 85 DECLARE_VIRTUAL_TRACE();
78 86
79 private: 87 private:
80 RemoteFrameOwner(SandboxFlags, const WebFrameOwnerProperties&); 88 RemoteFrameOwner(SandboxFlags,
89 const WebParsedFeaturePolicy&,
90 const WebFrameOwnerProperties&);
81 91
82 // Intentionally private to prevent redundant checks when the type is 92 // Intentionally private to prevent redundant checks when the type is
83 // already HTMLFrameOwnerElement. 93 // already HTMLFrameOwnerElement.
84 bool IsLocal() const override { return false; } 94 bool IsLocal() const override { return false; }
85 bool IsRemote() const override { return true; } 95 bool IsRemote() const override { return true; }
86 96
87 Member<Frame> frame_; 97 Member<Frame> frame_;
88 SandboxFlags sandbox_flags_; 98 SandboxFlags sandbox_flags_;
89 AtomicString browsing_context_container_name_; 99 AtomicString browsing_context_container_name_;
90 ScrollbarMode scrolling_; 100 ScrollbarMode scrolling_;
91 int margin_width_; 101 int margin_width_;
92 int margin_height_; 102 int margin_height_;
93 bool allow_fullscreen_; 103 bool allow_fullscreen_;
94 bool allow_payment_request_; 104 bool allow_payment_request_;
95 bool is_display_none_; 105 bool is_display_none_;
96 WebString csp_; 106 WebString csp_;
97 WebVector<WebFeaturePolicyFeature> allowed_features_; 107 WebVector<WebFeaturePolicyFeature> allowed_features_;
108 WebParsedFeaturePolicy container_policy_;
98 }; 109 };
99 110
100 DEFINE_TYPE_CASTS(RemoteFrameOwner, 111 DEFINE_TYPE_CASTS(RemoteFrameOwner,
101 FrameOwner, 112 FrameOwner,
102 owner, 113 owner,
103 owner->IsRemote(), 114 owner->IsRemote(),
104 owner.IsRemote()); 115 owner.IsRemote());
105 116
106 } // namespace blink 117 } // namespace blink
107 118
108 #endif // RemoteFrameOwner_h 119 #endif // RemoteFrameOwner_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/LocalFrameClientImpl.cpp ('k') | third_party/WebKit/Source/web/RemoteFrameOwner.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698