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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 : m_parent(parent) | 67 : m_parent(parent) |
68 { | 68 { |
69 } | 69 } |
70 | 70 |
71 RawPtrWillBeMember<Frame> m_parent; | 71 RawPtrWillBeMember<Frame> m_parent; |
72 }; | 72 }; |
73 | 73 |
74 class StubFrameOwner : public NoBaseWillBeGarbageCollectedFinalized<StubFrameOwn
er>, public FrameOwner { | 74 class StubFrameOwner : public NoBaseWillBeGarbageCollectedFinalized<StubFrameOwn
er>, public FrameOwner { |
75 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(StubFrameOwner); | 75 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(StubFrameOwner); |
76 public: | 76 public: |
| 77 static PassOwnPtrWillBeRawPtr<StubFrameOwner> create() |
| 78 { |
| 79 return adoptPtrWillBeNoop(new StubFrameOwner); |
| 80 } |
| 81 |
77 DEFINE_INLINE_VIRTUAL_TRACE() { FrameOwner::trace(visitor); } | 82 DEFINE_INLINE_VIRTUAL_TRACE() { FrameOwner::trace(visitor); } |
78 | 83 |
79 bool isLocal() const override { return false; } | 84 bool isLocal() const override { return false; } |
80 SandboxFlags sandboxFlags() const override { return SandboxNone; } | 85 SandboxFlags sandboxFlags() const override { return SandboxNone; } |
81 void dispatchLoad() override { } | 86 void dispatchLoad() override { } |
82 void renderFallbackContent() override { } | 87 void renderFallbackContent() override { } |
83 }; | 88 }; |
84 | 89 |
85 class FrameFetchContextTest : public ::testing::Test { | 90 class FrameFetchContextTest : public ::testing::Test { |
86 protected: | 91 protected: |
87 void SetUp() override | 92 void SetUp() override |
88 { | 93 { |
89 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); | 94 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); |
90 dummyPageHolder->page().setDeviceScaleFactor(1.0); | 95 dummyPageHolder->page().setDeviceScaleFactor(1.0); |
91 documentLoader = DocumentLoader::create(&dummyPageHolder->frame(), Resou
rceRequest("http://www.example.com"), SubstituteData()); | 96 documentLoader = DocumentLoader::create(&dummyPageHolder->frame(), Resou
rceRequest("http://www.example.com"), SubstituteData()); |
92 document = toHTMLDocument(&dummyPageHolder->document()); | 97 document = toHTMLDocument(&dummyPageHolder->document()); |
93 fetchContext = static_cast<FrameFetchContext*>(&documentLoader->fetcher(
)->context()); | 98 fetchContext = static_cast<FrameFetchContext*>(&documentLoader->fetcher(
)->context()); |
| 99 owner = StubFrameOwner::create(); |
94 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get(
)); | 100 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get(
)); |
95 } | 101 } |
96 | 102 |
97 void TearDown() override | 103 void TearDown() override |
98 { | 104 { |
99 documentLoader->detachFromFrame(); | 105 documentLoader->detachFromFrame(); |
100 documentLoader.clear(); | 106 documentLoader.clear(); |
101 | 107 |
102 if (childFrame) { | 108 if (childFrame) { |
103 childDocumentLoader->detachFromFrame(); | 109 childDocumentLoader->detachFromFrame(); |
104 childDocumentLoader.clear(); | 110 childDocumentLoader.clear(); |
105 childFrame->detach(FrameDetachType::Remove); | 111 childFrame->detach(FrameDetachType::Remove); |
106 } | 112 } |
107 } | 113 } |
108 | 114 |
109 FrameFetchContext* createChildFrame() | 115 FrameFetchContext* createChildFrame() |
110 { | 116 { |
111 childClient = StubFrameLoaderClientWithParent::create(document->frame())
; | 117 childClient = StubFrameLoaderClientWithParent::create(document->frame())
; |
112 childFrame = LocalFrame::create(childClient.get(), document->frame()->ho
st(), &owner); | 118 childFrame = LocalFrame::create(childClient.get(), document->frame()->ho
st(), owner.get()); |
113 childFrame->setView(FrameView::create(childFrame.get(), IntSize(500, 500
))); | 119 childFrame->setView(FrameView::create(childFrame.get(), IntSize(500, 500
))); |
114 childFrame->init(); | 120 childFrame->init(); |
115 childDocumentLoader = DocumentLoader::create(childFrame.get(), ResourceR
equest("http://www.example.com"), SubstituteData()); | 121 childDocumentLoader = DocumentLoader::create(childFrame.get(), ResourceR
equest("http://www.example.com"), SubstituteData()); |
116 childDocument = childFrame->document(); | 122 childDocument = childFrame->document(); |
117 FrameFetchContext* childFetchContext = static_cast<FrameFetchContext*>(&
childDocumentLoader->fetcher()->context()); | 123 FrameFetchContext* childFetchContext = static_cast<FrameFetchContext*>(&
childDocumentLoader->fetcher()->context()); |
118 FrameFetchContext::provideDocumentToContext(*childFetchContext, childDoc
ument.get()); | 124 FrameFetchContext::provideDocumentToContext(*childFetchContext, childDoc
ument.get()); |
119 return childFetchContext; | 125 return childFetchContext; |
120 } | 126 } |
121 | 127 |
122 OwnPtr<DummyPageHolder> dummyPageHolder; | 128 OwnPtr<DummyPageHolder> dummyPageHolder; |
123 // We don't use the DocumentLoader directly in any tests, but need to keep i
t around as long | 129 // We don't use the DocumentLoader directly in any tests, but need to keep i
t around as long |
124 // as the ResourceFetcher and Document live due to indirect usage. | 130 // as the ResourceFetcher and Document live due to indirect usage. |
125 RefPtrWillBePersistent<DocumentLoader> documentLoader; | 131 RefPtrWillBePersistent<DocumentLoader> documentLoader; |
126 RefPtrWillBePersistent<Document> document; | 132 RefPtrWillBePersistent<Document> document; |
127 Persistent<FrameFetchContext> fetchContext; | 133 Persistent<FrameFetchContext> fetchContext; |
128 | 134 |
129 OwnPtrWillBeRawPtr<StubFrameLoaderClientWithParent> childClient; | 135 OwnPtrWillBePersistent<StubFrameLoaderClientWithParent> childClient; |
130 RefPtrWillBeRawPtr<LocalFrame> childFrame; | 136 RefPtrWillBePersistent<LocalFrame> childFrame; |
131 RefPtrWillBePersistent<DocumentLoader> childDocumentLoader; | 137 RefPtrWillBePersistent<DocumentLoader> childDocumentLoader; |
132 RefPtrWillBePersistent<Document> childDocument; | 138 RefPtrWillBePersistent<Document> childDocument; |
133 StubFrameOwner owner; | 139 OwnPtrWillBePersistent<StubFrameOwner> owner; |
134 | |
135 }; | 140 }; |
136 | 141 |
137 class FrameFetchContextUpgradeTest : public FrameFetchContextTest { | 142 class FrameFetchContextUpgradeTest : public FrameFetchContextTest { |
138 public: | 143 public: |
139 FrameFetchContextUpgradeTest() | 144 FrameFetchContextUpgradeTest() |
140 : exampleOrigin(SecurityOrigin::create(KURL(ParsedURLString, "https://ex
ample.test/"))) | 145 : exampleOrigin(SecurityOrigin::create(KURL(ParsedURLString, "https://ex
ample.test/"))) |
141 , secureOrigin(SecurityOrigin::create(KURL(ParsedURLString, "https://sec
ureorigin.test/image.png"))) | 146 , secureOrigin(SecurityOrigin::create(KURL(ParsedURLString, "https://sec
ureorigin.test/image.png"))) |
142 { | 147 { |
143 } | 148 } |
144 | 149 |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 | 487 |
483 // Ensure we don't go out of bounds | 488 // Ensure we don't go out of bounds |
484 settings->setFEtchIncreasePriorities(true); | 489 settings->setFEtchIncreasePriorities(true); |
485 EXPECT_EQ(ResourceLoadPriorityVeryHigh, fetchContext->modifyPriorityForExper
iments(ResourceLoadPriorityVeryHigh, Resource::Script, request)); | 490 EXPECT_EQ(ResourceLoadPriorityVeryHigh, fetchContext->modifyPriorityForExper
iments(ResourceLoadPriorityVeryHigh, Resource::Script, request)); |
486 settings->setFEtchIncreasePriorities(false); | 491 settings->setFEtchIncreasePriorities(false); |
487 settings->setFEtchDeferLateScripts(true); | 492 settings->setFEtchDeferLateScripts(true); |
488 EXPECT_EQ(ResourceLoadPriorityVeryLow, fetchContext->modifyPriorityForExperi
ments(ResourceLoadPriorityVeryLow, Resource::Script, preloadRequest)); | 493 EXPECT_EQ(ResourceLoadPriorityVeryLow, fetchContext->modifyPriorityForExperi
ments(ResourceLoadPriorityVeryLow, Resource::Script, preloadRequest)); |
489 } | 494 } |
490 | 495 |
491 } // namespace | 496 } // namespace |
OLD | NEW |