1 // Copyright 2020 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 THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_SECURITY_CONTEXT_INIT_H_ 6 #define THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_SECURITY_CONTEXT_INIT_H_ 7 8 #include "third_party/blink/public/common/feature_policy/document_policy.h" 9 #include "third_party/blink/public/common/feature_policy/feature_policy.h" 10 #include "third_party/blink/public/common/frame/frame_policy.h" 11 #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-blink.h" 12 #include "third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom-blink.h" 13 #include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-blink-forward.h" 14 #include "third_party/blink/public/web/web_origin_policy.h" 15 #include "third_party/blink/renderer/core/execution_context/execution_context.h" 16 #include "third_party/blink/renderer/core/feature_policy/policy_helper.h" 17 #include "third_party/blink/renderer/core/frame/web_feature.h" 18 #include "third_party/blink/renderer/platform/heap/handle.h" 19 #include "third_party/blink/renderer/platform/wtf/hash_set.h" 20 #include "third_party/blink/renderer/platform/wtf/vector.h" 21 22 namespace blink { 23 class LocalFrame; 24 class ResourceResponse; 25 26 class CORE_EXPORT SecurityContextInit { 27 STACK_ALLOCATED(); 28 29 public: 30 explicit SecurityContextInit(ExecutionContext*); 31 32 void ApplyFeaturePolicy(LocalFrame* frame, 33 const ResourceResponse& response, 34 const base::Optional<WebOriginPolicy>& origin_policy, 35 const FramePolicy& frame_policy); 36 void ApplyDocumentPolicy( 37 DocumentPolicy::ParsedDocumentPolicy& document_policy, 38 const String& report_only_document_policy_header); 39 FeaturePolicyHeader()40 const ParsedFeaturePolicy& FeaturePolicyHeader() const { 41 return feature_policy_header_; 42 } 43 44 private: 45 ExecutionContext* execution_context_ = nullptr; 46 ParsedFeaturePolicy feature_policy_header_; 47 }; 48 49 } // namespace blink 50 51 #endif // THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_SECURITY_CONTEXT_INIT_H_ 52