Index: content/common/frame_replication_state.cc |
diff --git a/content/common/frame_replication_state.cc b/content/common/frame_replication_state.cc |
index 239c9ab82c23d547cc74b074b23027ffdc3eaa1f..8d00fdd80a9da98ff6fef7e763e59a94c36fbf93 100644 |
--- a/content/common/frame_replication_state.cc |
+++ b/content/common/frame_replication_state.cc |
@@ -2,12 +2,59 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/strings/utf_string_conversions.h" |
#include "content/common/frame_replication_state.h" |
#include "third_party/WebKit/public/web/WebSandboxFlags.h" |
#include "third_party/WebKit/public/web/WebTreeScopeType.h" |
namespace content { |
+// static |
+std::vector<FeaturePolicyParsedWhitelist> |
+FeaturePolicyParsedWhitelist::fromWebFeaturePolicyParsedWhitelist( |
+ const blink::WebVector<blink::WebFeaturePolicy::ParsedWhitelist>& |
+ web_parsed_whitelists) { |
+ std::vector<FeaturePolicyParsedWhitelist> result; |
+ for (const blink::WebFeaturePolicy::ParsedWhitelist& web_whitelist : |
+ web_parsed_whitelists) { |
+ FeaturePolicyParsedWhitelist whitelist; |
+ whitelist.feature_name = |
+ base::UTF16ToUTF8(base::StringPiece16(web_whitelist.featureName)); |
+ whitelist.matches_all_origins = web_whitelist.matchesAllOrigins; |
+ for (const blink::WebString& web_origin : web_whitelist.origins) |
+ whitelist.origins.push_back( |
+ base::UTF16ToUTF8(base::StringPiece16(web_origin))); |
+ result.push_back(whitelist); |
+ } |
+ return result; |
+} |
+ |
+// static |
+blink::WebVector<blink::WebFeaturePolicy::ParsedWhitelist> |
+FeaturePolicyParsedWhitelist::toWebFeaturePolicyParsedWhitelist( |
+ const std::vector<FeaturePolicyParsedWhitelist>& parsed_whitelists) { |
+ std::vector<blink::WebFeaturePolicy::ParsedWhitelist> result; |
+ for (const FeaturePolicyParsedWhitelist& whitelist : parsed_whitelists) { |
+ blink::WebFeaturePolicy::ParsedWhitelist web_whitelist; |
+ web_whitelist.featureName = |
+ blink::WebString(base::UTF8ToUTF16(whitelist.feature_name)); |
+ web_whitelist.matchesAllOrigins = whitelist.matches_all_origins; |
+ std::vector<blink::WebString> web_origins; |
+ for (const std::string& origin : whitelist.origins) |
+ web_origins.push_back(base::UTF8ToUTF16(origin)); |
+ result.push_back(web_whitelist); |
+ } |
+ return result; |
+} |
+ |
+FeaturePolicyParsedWhitelist::FeaturePolicyParsedWhitelist() |
+ : matches_all_origins(false) {} |
+ |
+FeaturePolicyParsedWhitelist::FeaturePolicyParsedWhitelist( |
+ const FeaturePolicyParsedWhitelist& fpw) = default; |
+ |
+FeaturePolicyParsedWhitelist::~FeaturePolicyParsedWhitelist() {} |
+ |
FrameReplicationState::FrameReplicationState() |
: sandbox_flags(blink::WebSandboxFlags::None), |
scope(blink::WebTreeScopeType::Document), |