OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2015, Google Inc. All rights reserved. | 2 * Copyright (c) 2015, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 #include "core/page/Page.h" | 43 #include "core/page/Page.h" |
44 #include "core/testing/DummyPageHolder.h" | 44 #include "core/testing/DummyPageHolder.h" |
45 #include "platform/loader/fetch/FetchInitiatorInfo.h" | 45 #include "platform/loader/fetch/FetchInitiatorInfo.h" |
46 #include "platform/loader/fetch/MockResource.h" | 46 #include "platform/loader/fetch/MockResource.h" |
47 #include "platform/loader/fetch/UniqueIdentifier.h" | 47 #include "platform/loader/fetch/UniqueIdentifier.h" |
48 #include "platform/network/ResourceRequest.h" | 48 #include "platform/network/ResourceRequest.h" |
49 #include "platform/weborigin/KURL.h" | 49 #include "platform/weborigin/KURL.h" |
50 #include "public/platform/WebAddressSpace.h" | 50 #include "public/platform/WebAddressSpace.h" |
51 #include "public/platform/WebCachePolicy.h" | 51 #include "public/platform/WebCachePolicy.h" |
52 #include "public/platform/WebDocumentSubresourceFilter.h" | 52 #include "public/platform/WebDocumentSubresourceFilter.h" |
| 53 #include "public/platform/WebDocumentSubresourceFilterLoadPolicy.h" |
53 #include "public/platform/WebInsecureRequestPolicy.h" | 54 #include "public/platform/WebInsecureRequestPolicy.h" |
54 #include "testing/gmock/include/gmock/gmock.h" | 55 #include "testing/gmock/include/gmock/gmock.h" |
55 #include "testing/gtest/include/gtest/gtest.h" | 56 #include "testing/gtest/include/gtest/gtest.h" |
56 | 57 |
57 namespace blink { | 58 namespace blink { |
58 | 59 |
59 class StubFrameLoaderClientWithParent final : public EmptyFrameLoaderClient { | 60 class StubFrameLoaderClientWithParent final : public EmptyFrameLoaderClient { |
60 public: | 61 public: |
61 static StubFrameLoaderClientWithParent* create(Frame* parent) { | 62 static StubFrameLoaderClientWithParent* create(Frame* parent) { |
62 return new StubFrameLoaderClientWithParent(parent); | 63 return new StubFrameLoaderClientWithParent(parent); |
(...skipping 15 matching lines...) Expand all Loading... |
78 class MockFrameLoaderClient : public EmptyFrameLoaderClient { | 79 class MockFrameLoaderClient : public EmptyFrameLoaderClient { |
79 public: | 80 public: |
80 MockFrameLoaderClient() : EmptyFrameLoaderClient() {} | 81 MockFrameLoaderClient() : EmptyFrameLoaderClient() {} |
81 MOCK_METHOD1(didDisplayContentWithCertificateErrors, void(const KURL&)); | 82 MOCK_METHOD1(didDisplayContentWithCertificateErrors, void(const KURL&)); |
82 MOCK_METHOD2(dispatchDidLoadResourceFromMemoryCache, | 83 MOCK_METHOD2(dispatchDidLoadResourceFromMemoryCache, |
83 void(const ResourceRequest&, const ResourceResponse&)); | 84 void(const ResourceRequest&, const ResourceResponse&)); |
84 }; | 85 }; |
85 | 86 |
86 class FixedPolicySubresourceFilter : public WebDocumentSubresourceFilter { | 87 class FixedPolicySubresourceFilter : public WebDocumentSubresourceFilter { |
87 public: | 88 public: |
88 FixedPolicySubresourceFilter(LoadPolicy policy, int* filteredLoadCounter) | 89 FixedPolicySubresourceFilter(WebDocumentSubresourceFilterLoadPolicy policy, |
| 90 int* filteredLoadCounter) |
89 : m_policy(policy), m_filteredLoadCounter(filteredLoadCounter) {} | 91 : m_policy(policy), m_filteredLoadCounter(filteredLoadCounter) {} |
90 | 92 |
91 LoadPolicy getLoadPolicy(const WebURL& resourceUrl, | 93 WebDocumentSubresourceFilterLoadPolicy getLoadPolicy( |
92 WebURLRequest::RequestContext) override { | 94 const WebURL& resourceUrl, |
| 95 WebURLRequest::RequestContext) override { |
93 return m_policy; | 96 return m_policy; |
94 } | 97 } |
95 | 98 |
96 void reportDisallowedLoad() override { ++*m_filteredLoadCounter; } | 99 void reportDisallowedLoad() override { ++*m_filteredLoadCounter; } |
97 | 100 |
98 private: | 101 private: |
99 const LoadPolicy m_policy; | 102 const WebDocumentSubresourceFilterLoadPolicy m_policy; |
100 int* m_filteredLoadCounter; | 103 int* m_filteredLoadCounter; |
101 }; | 104 }; |
102 | 105 |
103 class FrameFetchContextTest : public ::testing::Test { | 106 class FrameFetchContextTest : public ::testing::Test { |
104 protected: | 107 protected: |
105 void SetUp() override { | 108 void SetUp() override { |
106 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); | 109 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); |
107 dummyPageHolder->page().setDeviceScaleFactor(1.0); | 110 dummyPageHolder->page().setDeviceScaleFactor(1.0); |
108 document = &dummyPageHolder->document(); | 111 document = &dummyPageHolder->document(); |
109 fetchContext = | 112 fetchContext = |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 m_filteredLoadCallbackCounter = 0; | 154 m_filteredLoadCallbackCounter = 0; |
152 } | 155 } |
153 | 156 |
154 void TearDown() override { | 157 void TearDown() override { |
155 document->loader()->setSubresourceFilter(nullptr); | 158 document->loader()->setSubresourceFilter(nullptr); |
156 FrameFetchContextTest::TearDown(); | 159 FrameFetchContextTest::TearDown(); |
157 } | 160 } |
158 | 161 |
159 int getFilteredLoadCallCount() const { return m_filteredLoadCallbackCounter; } | 162 int getFilteredLoadCallCount() const { return m_filteredLoadCallbackCounter; } |
160 | 163 |
161 void setFilterPolicy(WebDocumentSubresourceFilter::LoadPolicy policy) { | 164 void setFilterPolicy(WebDocumentSubresourceFilterLoadPolicy policy) { |
162 document->loader()->setSubresourceFilter( | 165 document->loader()->setSubresourceFilter( |
163 WTF::makeUnique<FixedPolicySubresourceFilter>( | 166 WTF::makeUnique<FixedPolicySubresourceFilter>( |
164 policy, &m_filteredLoadCallbackCounter)); | 167 policy, &m_filteredLoadCallbackCounter)); |
165 } | 168 } |
166 | 169 |
167 ResourceRequestBlockedReason canRequest() { | 170 ResourceRequestBlockedReason canRequest() { |
168 return canRequestInternal( | 171 return canRequestInternal( |
169 FetchContext::SecurityViolationReportingPolicy::Report); | 172 FetchContext::SecurityViolationReportingPolicy::Report); |
170 } | 173 } |
171 | 174 |
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 fetchContext->addAdditionalRequestHeaders(mainRequest, FetchMainResource); | 867 fetchContext->addAdditionalRequestHeaders(mainRequest, FetchMainResource); |
865 EXPECT_EQ(test.isExternalExpectation, mainRequest.isExternalRequest()); | 868 EXPECT_EQ(test.isExternalExpectation, mainRequest.isExternalRequest()); |
866 | 869 |
867 ResourceRequest subRequest(test.url); | 870 ResourceRequest subRequest(test.url); |
868 fetchContext->addAdditionalRequestHeaders(subRequest, FetchSubresource); | 871 fetchContext->addAdditionalRequestHeaders(subRequest, FetchSubresource); |
869 EXPECT_EQ(test.isExternalExpectation, subRequest.isExternalRequest()); | 872 EXPECT_EQ(test.isExternalExpectation, subRequest.isExternalRequest()); |
870 } | 873 } |
871 } | 874 } |
872 | 875 |
873 TEST_F(FrameFetchContextSubresourceFilterTest, Filter) { | 876 TEST_F(FrameFetchContextSubresourceFilterTest, Filter) { |
874 setFilterPolicy(WebDocumentSubresourceFilter::Disallow); | 877 setFilterPolicy(WebDocumentSubresourceFilterLoadPolicy::Disallow); |
875 | 878 |
876 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, canRequest()); | 879 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, canRequest()); |
877 EXPECT_EQ(1, getFilteredLoadCallCount()); | 880 EXPECT_EQ(1, getFilteredLoadCallCount()); |
878 | 881 |
879 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, canRequest()); | 882 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, canRequest()); |
880 EXPECT_EQ(2, getFilteredLoadCallCount()); | 883 EXPECT_EQ(2, getFilteredLoadCallCount()); |
881 | 884 |
882 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, | 885 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, |
883 canRequestPreload()); | 886 canRequestPreload()); |
884 EXPECT_EQ(2, getFilteredLoadCallCount()); | 887 EXPECT_EQ(2, getFilteredLoadCallCount()); |
885 | 888 |
886 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, canRequest()); | 889 EXPECT_EQ(ResourceRequestBlockedReason::SubresourceFilter, canRequest()); |
887 EXPECT_EQ(3, getFilteredLoadCallCount()); | 890 EXPECT_EQ(3, getFilteredLoadCallCount()); |
888 } | 891 } |
889 | 892 |
890 TEST_F(FrameFetchContextSubresourceFilterTest, Allow) { | 893 TEST_F(FrameFetchContextSubresourceFilterTest, Allow) { |
891 setFilterPolicy(WebDocumentSubresourceFilter::Allow); | 894 setFilterPolicy(WebDocumentSubresourceFilterLoadPolicy::Allow); |
892 | 895 |
893 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequest()); | 896 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequest()); |
894 EXPECT_EQ(0, getFilteredLoadCallCount()); | 897 EXPECT_EQ(0, getFilteredLoadCallCount()); |
895 | 898 |
896 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequestPreload()); | 899 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequestPreload()); |
897 EXPECT_EQ(0, getFilteredLoadCallCount()); | 900 EXPECT_EQ(0, getFilteredLoadCallCount()); |
898 } | 901 } |
899 | 902 |
900 TEST_F(FrameFetchContextSubresourceFilterTest, WouldDisallow) { | 903 TEST_F(FrameFetchContextSubresourceFilterTest, WouldDisallow) { |
901 setFilterPolicy(WebDocumentSubresourceFilter::WouldDisallow); | 904 setFilterPolicy(WebDocumentSubresourceFilterLoadPolicy::WouldDisallow); |
902 | 905 |
903 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequest()); | 906 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequest()); |
904 EXPECT_EQ(0, getFilteredLoadCallCount()); | 907 EXPECT_EQ(0, getFilteredLoadCallCount()); |
905 | 908 |
906 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequestPreload()); | 909 EXPECT_EQ(ResourceRequestBlockedReason::None, canRequestPreload()); |
907 EXPECT_EQ(0, getFilteredLoadCallCount()); | 910 EXPECT_EQ(0, getFilteredLoadCallCount()); |
908 } | 911 } |
909 | 912 |
910 } // namespace blink | 913 } // namespace blink |
OLD | NEW |