Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(395)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutTestHelper.h

Issue 2504573002: Don't call isURLAllowed() from layout. (Closed)
Patch Set: Fix bad formatting that caused clang-format-diff to get confused. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef LayoutTestHelper_h 5 #ifndef LayoutTestHelper_h
6 #define LayoutTestHelper_h 6 #define LayoutTestHelper_h
7 7
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/frame/FrameHost.h" 9 #include "core/frame/FrameHost.h"
10 #include "core/frame/FrameView.h" 10 #include "core/frame/FrameView.h"
11 #include "core/frame/Settings.h" 11 #include "core/frame/Settings.h"
12 #include "core/html/HTMLElement.h" 12 #include "core/html/HTMLElement.h"
13 #include "core/layout/api/LayoutAPIShim.h" 13 #include "core/layout/api/LayoutAPIShim.h"
14 #include "core/layout/api/LayoutViewItem.h" 14 #include "core/layout/api/LayoutViewItem.h"
15 #include "core/loader/EmptyClients.h" 15 #include "core/loader/EmptyClients.h"
16 #include "core/testing/DummyPageHolder.h" 16 #include "core/testing/DummyPageHolder.h"
17 #include "wtf/Allocator.h" 17 #include "wtf/Allocator.h"
18 #include <gtest/gtest.h> 18 #include <gtest/gtest.h>
19 #include <memory> 19 #include <memory>
20 20
21 namespace blink { 21 namespace blink {
22 22
23 class SingleChildFrameLoaderClient final : public EmptyFrameLoaderClient {
24 public:
25 static SingleChildFrameLoaderClient* create() {
26 return new SingleChildFrameLoaderClient();
27 }
28
29 DEFINE_INLINE_VIRTUAL_TRACE() {
30 visitor->trace(m_child);
31 EmptyFrameLoaderClient::trace(visitor);
32 }
33
34 // FrameLoaderClient overrides:
35 LocalFrame* firstChild() const override { return m_child.get(); }
36 LocalFrame* createFrame(const FrameLoadRequest&,
37 const AtomicString& name,
38 HTMLFrameOwnerElement*) override;
39
40 void didDetachChild() { m_child = nullptr; }
41
42 private:
43 explicit SingleChildFrameLoaderClient() {}
44
45 Member<LocalFrame> m_child;
46 };
47
48 class FrameLoaderClientWithParent final : public EmptyFrameLoaderClient {
49 public:
50 static FrameLoaderClientWithParent* create(LocalFrame* parent) {
51 return new FrameLoaderClientWithParent(parent);
52 }
53
54 DEFINE_INLINE_VIRTUAL_TRACE() {
55 visitor->trace(m_parent);
56 EmptyFrameLoaderClient::trace(visitor);
57 }
58
59 // FrameClient overrides:
60 void detached(FrameDetachType) override;
61 LocalFrame* parent() const override { return m_parent.get(); }
62
63 private:
64 explicit FrameLoaderClientWithParent(LocalFrame* parent) : m_parent(parent) {}
65
66 Member<LocalFrame> m_parent;
67 };
68
23 class RenderingTest : public testing::Test { 69 class RenderingTest : public testing::Test {
24 USING_FAST_MALLOC(RenderingTest); 70 USING_FAST_MALLOC(RenderingTest);
25 71
26 public: 72 public:
27 virtual FrameSettingOverrideFunction settingOverrider() const { 73 virtual FrameSettingOverrideFunction settingOverrider() const {
28 return nullptr; 74 return nullptr;
29 } 75 }
30 76
31 RenderingTest(FrameLoaderClient* = nullptr); 77 RenderingTest(FrameLoaderClient* = nullptr);
32 78
33 protected: 79 protected:
34 void SetUp() override; 80 void SetUp() override;
35 void TearDown() override; 81 void TearDown() override;
36 82
37 Document& document() const { return m_pageHolder->document(); } 83 Document& document() const { return m_pageHolder->document(); }
38 LayoutView& layoutView() const { 84 LayoutView& layoutView() const {
39 return *toLayoutView( 85 return *toLayoutView(
40 LayoutAPIShim::layoutObjectFrom(document().view()->layoutViewItem())); 86 LayoutAPIShim::layoutObjectFrom(document().view()->layoutViewItem()));
41 } 87 }
42 88
43 // Both sets the inner html and runs the document lifecycle. 89 // Both sets the inner html and runs the document lifecycle.
44 void setBodyInnerHTML(const String& htmlContent) { 90 void setBodyInnerHTML(const String& htmlContent) {
45 document().body()->setInnerHTML(htmlContent, ASSERT_NO_EXCEPTION); 91 document().body()->setInnerHTML(htmlContent, ASSERT_NO_EXCEPTION);
46 document().view()->updateAllLifecyclePhases(); 92 document().view()->updateAllLifecyclePhases();
47 } 93 }
48 94
49 // Returns the Document for the iframe. 95 Document& childDocument() {
50 Document& setupChildIframe(const AtomicString& iframeElementId, 96 return *toLocalFrame(m_pageHolder->frame().tree().firstChild())->document();
51 const String& htmlContentOfIframe); 97 }
98
99 void setChildFrameHTML(const String&);
52 100
53 // Both enables compositing and runs the document lifecycle. 101 // Both enables compositing and runs the document lifecycle.
54 void enableCompositing() { 102 void enableCompositing() {
55 m_pageHolder->page().settings().setAcceleratedCompositingEnabled(true); 103 m_pageHolder->page().settings().setAcceleratedCompositingEnabled(true);
56 document().view()->setParentVisible(true); 104 document().view()->setParentVisible(true);
57 document().view()->setSelfVisible(true); 105 document().view()->setSelfVisible(true);
58 document().view()->updateAllLifecyclePhases(); 106 document().view()->updateAllLifecyclePhases();
59 } 107 }
60 108
61 LayoutObject* getLayoutObjectByElementId(const char* id) const { 109 LayoutObject* getLayoutObjectByElementId(const char* id) const {
62 Node* node = document().getElementById(id); 110 Node* node = document().getElementById(id);
63 return node ? node->layoutObject() : nullptr; 111 return node ? node->layoutObject() : nullptr;
64 } 112 }
65 113
66 private: 114 private:
67 Persistent<LocalFrame> m_subframe;
68 Persistent<FrameLoaderClient> m_frameLoaderClient; 115 Persistent<FrameLoaderClient> m_frameLoaderClient;
69 Persistent<FrameLoaderClient> m_childFrameLoaderClient;
70 std::unique_ptr<DummyPageHolder> m_pageHolder; 116 std::unique_ptr<DummyPageHolder> m_pageHolder;
71 }; 117 };
72 118
73 class SingleChildFrameLoaderClient final : public EmptyFrameLoaderClient {
74 public:
75 static SingleChildFrameLoaderClient* create() {
76 return new SingleChildFrameLoaderClient;
77 }
78
79 DEFINE_INLINE_VIRTUAL_TRACE() {
80 visitor->trace(m_child);
81 EmptyFrameLoaderClient::trace(visitor);
82 }
83
84 Frame* firstChild() const override { return m_child.get(); }
85
86 void setChild(Frame* child) { m_child = child; }
87
88 private:
89 SingleChildFrameLoaderClient() : m_child(nullptr) {}
90
91 Member<Frame> m_child;
92 };
93
94 class FrameLoaderClientWithParent final : public EmptyFrameLoaderClient {
95 public:
96 static FrameLoaderClientWithParent* create(Frame* parent) {
97 return new FrameLoaderClientWithParent(parent);
98 }
99
100 DEFINE_INLINE_VIRTUAL_TRACE() {
101 visitor->trace(m_parent);
102 EmptyFrameLoaderClient::trace(visitor);
103 }
104
105 Frame* parent() const override { return m_parent.get(); }
106
107 private:
108 explicit FrameLoaderClientWithParent(Frame* parent) : m_parent(parent) {}
109
110 Member<Frame> m_parent;
111 };
112
113 } // namespace blink 119 } // namespace blink
114 120
115 #endif // LayoutTestHelper_h 121 #endif // LayoutTestHelper_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698