| Index: third_party/WebKit/Source/platform/feature_policy/FeaturePolicyTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/feature_policy/FeaturePolicyTest.cpp b/third_party/WebKit/Source/platform/feature_policy/FeaturePolicyTest.cpp
|
| index 54ba7bbe975c3a48c023db7a1bca15f65ad5a2bf..83fbd6090871de65a757855e9bc18066203989bf 100644
|
| --- a/third_party/WebKit/Source/platform/feature_policy/FeaturePolicyTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/feature_policy/FeaturePolicyTest.cpp
|
| @@ -89,7 +89,8 @@ TEST_F(FeaturePolicyTest, ParseValidPolicy) {
|
| messages.clear();
|
| std::unique_ptr<FeaturePolicy> policy =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy->setHeaderPolicy(policyString, &messages);
|
| + policy->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + policyString, m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| }
|
| }
|
| @@ -100,7 +101,8 @@ TEST_F(FeaturePolicyTest, ParseInvalidPolicy) {
|
| messages.clear();
|
| std::unique_ptr<FeaturePolicy> policy =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy->setHeaderPolicy(policyString, &messages);
|
| + policy->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + policyString, m_originA.get(), &messages));
|
| EXPECT_NE(0UL, messages.size());
|
| }
|
| }
|
| @@ -175,7 +177,8 @@ TEST_F(FeaturePolicyTest, TestCrossOriginChildCannotEnableFeature) {
|
| createFromParentPolicy(nullptr, m_originA);
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-self\": [\"self\"]}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\"]}", m_originB.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| EXPECT_FALSE(policy2->isFeatureEnabled(kDefaultSelfFeature));
|
| }
|
| @@ -199,7 +202,8 @@ TEST_F(FeaturePolicyTest, TestFrameSelfInheritance) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"self\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originA);
|
| @@ -233,7 +237,8 @@ TEST_F(FeaturePolicyTest, TestReflexiveFrameSelfInheritance) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"self\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -262,7 +267,8 @@ TEST_F(FeaturePolicyTest, TestSelectiveFrameInheritance) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"" ORIGIN_B "\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"" ORIGIN_B "\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -284,7 +290,8 @@ TEST_F(FeaturePolicyTest, TestPolicyCanBlockSelf) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-on\": []}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": []}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| EXPECT_FALSE(policy1->isFeatureEnabled(kDefaultOnFeature));
|
| }
|
| @@ -302,7 +309,8 @@ TEST_F(FeaturePolicyTest, TestParentPolicyBlocksSameOriginChildPolicy) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-on\": []}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": []}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originA);
|
| @@ -324,7 +332,8 @@ TEST_F(FeaturePolicyTest, TestChildPolicyCanBlockSelf) {
|
| createFromParentPolicy(nullptr, m_originA);
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-on\": []}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": []}", m_originB.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| EXPECT_FALSE(policy2->isFeatureEnabled(kDefaultOnFeature));
|
| }
|
| @@ -349,7 +358,8 @@ TEST_F(FeaturePolicyTest, TestChildPolicyCanBlockChildren) {
|
| createFromParentPolicy(nullptr, m_originA);
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-on\": [\"self\"]}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": [\"self\"]}", m_originB.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy3 =
|
| createFromParentPolicy(policy2.get(), m_originC);
|
| @@ -370,7 +380,8 @@ TEST_F(FeaturePolicyTest, TestParentPolicyBlocksCrossOriginChildPolicy) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-on\": []}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": []}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -394,7 +405,8 @@ TEST_F(FeaturePolicyTest, TestEnableForAllOrigins) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"*\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"*\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -422,7 +434,8 @@ TEST_F(FeaturePolicyTest, TestDefaultOnEnablesForAllAncestors) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-on\": [\"" ORIGIN_B "\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": [\"" ORIGIN_B "\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -453,7 +466,8 @@ TEST_F(FeaturePolicyTest, TestDefaultSelfRespectsSameOriginEmbedding) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"" ORIGIN_B "\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"" ORIGIN_B "\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -484,16 +498,19 @@ TEST_F(FeaturePolicyTest, TestDefaultOffMustBeDelegatedToAllCrossOriginFrames) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-off\": [\"" ORIGIN_B "\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-off\": [\"" ORIGIN_B "\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-off\": [\"self\"]}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-off\": [\"self\"]}", m_originB.get(), &messages));
|
| std::unique_ptr<FeaturePolicy> policy3 =
|
| createFromParentPolicy(policy2.get(), m_originB);
|
| std::unique_ptr<FeaturePolicy> policy4 =
|
| createFromParentPolicy(policy2.get(), m_originC);
|
| - policy4->setHeaderPolicy("{\"default-off\": [\"self\"]}", &messages);
|
| + policy4->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-off\": [\"self\"]}", m_originC.get(), &messages));
|
| EXPECT_FALSE(policy1->isFeatureEnabled(kDefaultOffFeature));
|
| EXPECT_TRUE(policy2->isFeatureEnabled(kDefaultOffFeature));
|
| EXPECT_FALSE(policy3->isFeatureEnabled(kDefaultOffFeature));
|
| @@ -517,11 +534,13 @@ TEST_F(FeaturePolicyTest, TestReenableForAllOrigins) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"*\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"*\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-self\": [\"*\"]}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"*\"]}", m_originB.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy3 =
|
| createFromParentPolicy(policy2.get(), m_originA);
|
| @@ -547,11 +566,13 @@ TEST_F(FeaturePolicyTest, TestBlockedFrameCannotReenable) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"self\"]}", &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\"]}", m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-self\": [\"*\"]}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"*\"]}", m_originB.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy3 =
|
| createFromParentPolicy(policy2.get(), m_originA);
|
| @@ -580,13 +601,15 @@ TEST_F(FeaturePolicyTest, TestEnabledFrameCanDelegate) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"self\", \"" ORIGIN_B "\"]}",
|
| - &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\", \"" ORIGIN_B "\"]}", m_originA.get(),
|
| + &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy("{\"default-self\": [\"self\", \"" ORIGIN_C "\"]}",
|
| - &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\", \"" ORIGIN_C "\"]}", m_originB.get(),
|
| + &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy3 =
|
| createFromParentPolicy(policy2.get(), m_originC);
|
| @@ -612,8 +635,9 @@ TEST_F(FeaturePolicyTest, TestEnabledFrameCanDelegateByDefault) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-on\": [\"self\", \"" ORIGIN_B "\"]}",
|
| - &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-on\": [\"self\", \"" ORIGIN_B "\"]}", m_originA.get(),
|
| + &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -645,8 +669,9 @@ TEST_F(FeaturePolicyTest, TestNonNestedFeaturesDontDelegateByDefault) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"self\", \"" ORIGIN_B "\"]}",
|
| - &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\", \"" ORIGIN_B "\"]}", m_originA.get(),
|
| + &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| @@ -680,14 +705,16 @@ TEST_F(FeaturePolicyTest, TestFeaturesAreIndependent) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-self\": [\"self\", \"" ORIGIN_B
|
| - "\"], \"default-on\": [\"self\"]}",
|
| - &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"self\", \"" ORIGIN_B
|
| + "\"], \"default-on\": [\"self\"]}",
|
| + m_originA.get(), &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy2 =
|
| createFromParentPolicy(policy1.get(), m_originB);
|
| - policy2->setHeaderPolicy(
|
| - "{\"default-self\": [\"*\"], \"default-on\": [\"*\"]}", &messages);
|
| + policy2->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-self\": [\"*\"], \"default-on\": [\"*\"]}", m_originB.get(),
|
| + &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| std::unique_ptr<FeaturePolicy> policy3 =
|
| createFromParentPolicy(policy2.get(), m_originC);
|
| @@ -709,8 +736,9 @@ TEST_F(FeaturePolicyTest, TestFeatureEnabledForOrigin) {
|
| Vector<String> messages;
|
| std::unique_ptr<FeaturePolicy> policy1 =
|
| createFromParentPolicy(nullptr, m_originA);
|
| - policy1->setHeaderPolicy("{\"default-off\": [\"self\", \"" ORIGIN_B "\"]}",
|
| - &messages);
|
| + policy1->setHeaderPolicy(FeaturePolicy::parseFeaturePolicy(
|
| + "{\"default-off\": [\"self\", \"" ORIGIN_B "\"]}", m_originA.get(),
|
| + &messages));
|
| EXPECT_EQ(0UL, messages.size());
|
| EXPECT_TRUE(
|
| policy1->isFeatureEnabledForOrigin(kDefaultOffFeature, *m_originA));
|
|
|