OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 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 14 matching lines...) Expand all Loading... | |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "config.h" | 31 #include "config.h" |
32 #include "FrameTestHelpers.h" | 32 #include "FrameTestHelpers.h" |
33 | 33 |
34 #include "URLTestHelpers.h" | 34 #include "URLTestHelpers.h" |
35 #include "wtf/StdLibExtras.h" | 35 #include "UserAgentStyleSheets.h" |
36 #include "WebFrameClient.h" | 36 #include "WebFrameClient.h" |
37 #include "WebFrameImpl.h" | 37 #include "WebFrameImpl.h" |
38 #include "WebSettings.h" | 38 #include "WebSettings.h" |
39 #include "WebViewClient.h" | 39 #include "WebViewClient.h" |
40 #include "core/css/CSSDefaultStyleSheets.h" | |
41 #include "core/css/RuleSet.h" | |
42 #include "core/css/StyleSheetContents.h" | |
43 #include "core/css/ViewportStyle.h" | |
44 #include "core/page/Settings.h" | |
45 #include "core/platform/ScrollbarTheme.h" | |
abarth-chromium
2013/11/27 18:43:50
It's sad to have all these detailed dependencies.
| |
40 #include "public/platform/Platform.h" | 46 #include "public/platform/Platform.h" |
41 #include "public/platform/WebString.h" | 47 #include "public/platform/WebString.h" |
42 #include "public/platform/WebThread.h" | 48 #include "public/platform/WebThread.h" |
43 #include "public/platform/WebURLRequest.h" | 49 #include "public/platform/WebURLRequest.h" |
44 #include "public/platform/WebURLResponse.h" | 50 #include "public/platform/WebURLResponse.h" |
45 #include "public/platform/WebUnitTestSupport.h" | 51 #include "public/platform/WebUnitTestSupport.h" |
52 #include "wtf/StdLibExtras.h" | |
53 #include <gtest/gtest.h> | |
46 | 54 |
47 namespace blink { | 55 namespace blink { |
48 namespace FrameTestHelpers { | 56 namespace FrameTestHelpers { |
49 | 57 |
50 namespace { | 58 namespace { |
51 | 59 |
52 class QuitTask : public WebThread::Task { | 60 class QuitTask : public WebThread::Task { |
53 public: | 61 public: |
54 void PostThis(WebCore::Timer<QuitTask>*) | 62 void PostThis(WebCore::Timer<QuitTask>*) |
55 { | 63 { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
89 } | 97 } |
90 | 98 |
91 void runPendingTasks() | 99 void runPendingTasks() |
92 { | 100 { |
93 // Pending tasks include Timers that have been scheduled. | 101 // Pending tasks include Timers that have been scheduled. |
94 WebCore::Timer<QuitTask> quitOnTimeout(new QuitTask, &QuitTask::PostThis); | 102 WebCore::Timer<QuitTask> quitOnTimeout(new QuitTask, &QuitTask::PostThis); |
95 quitOnTimeout.startOneShot(0); | 103 quitOnTimeout.startOneShot(0); |
96 Platform::current()->currentThread()->enterRunLoop(); | 104 Platform::current()->currentThread()->enterRunLoop(); |
97 } | 105 } |
98 | 106 |
107 void setViewportSettings(WebSettings* settings) | |
108 { | |
109 settings->setViewportMetaEnabled(true); | |
110 settings->setViewportEnabled(true); | |
111 settings->setMainFrameResizesAreOrientationChanges(true); | |
112 } | |
113 | |
99 WebViewHelper::WebViewHelper() | 114 WebViewHelper::WebViewHelper() |
100 : m_mainFrame(0) | 115 : m_mainFrame(0) |
101 , m_webView(0) | 116 , m_webView(0) |
102 { | 117 { |
103 } | 118 } |
104 | 119 |
105 WebViewHelper::~WebViewHelper() | 120 WebViewHelper::~WebViewHelper() |
106 { | 121 { |
107 reset(); | 122 reset(); |
108 } | 123 } |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
145 if (m_webView) { | 160 if (m_webView) { |
146 m_webView->close(); | 161 m_webView->close(); |
147 m_webView = 0; | 162 m_webView = 0; |
148 } | 163 } |
149 if (m_mainFrame) { | 164 if (m_mainFrame) { |
150 m_mainFrame->close(); | 165 m_mainFrame->close(); |
151 m_mainFrame = 0; | 166 m_mainFrame = 0; |
152 } | 167 } |
153 } | 168 } |
154 | 169 |
170 UseMockScrollbarSettings::UseMockScrollbarSettings() | |
171 { | |
172 WebCore::Settings::setMockScrollbarsEnabled(true); | |
173 WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); | |
174 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars()); | |
175 } | |
176 | |
177 UseMockScrollbarSettings::~UseMockScrollbarSettings() | |
178 { | |
179 WebCore::Settings::setMockScrollbarsEnabled(false); | |
180 WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false); | |
181 } | |
abarth-chromium
2013/11/27 18:43:50
These seem fine because they're poking at well-def
| |
182 | |
183 // Since UA stylesheets get loaded statically at first use, we need this to | |
184 // reset the UA stylesheets so that we can have per-test UA stylesheets and | |
185 // have Blink pick up a newly injected viewport stylesheet. | |
186 static void resetCSSDefaultStyleSheets() | |
187 { | |
188 if (WebCore::CSSDefaultStyleSheets::defaultPrintStyle | |
189 == WebCore::CSSDefaultStyleSheets::defaultStyle) | |
190 WebCore::CSSDefaultStyleSheets::defaultPrintStyle = 0; | |
191 | |
192 #define RESET(x) \ | |
193 if (WebCore::CSSDefaultStyleSheets::x) { \ | |
194 delete WebCore::CSSDefaultStyleSheets::x; \ | |
195 WebCore::CSSDefaultStyleSheets::x = 0; \ | |
196 } | |
197 | |
198 RESET(defaultStyle) | |
199 RESET(defaultQuirksStyle) | |
200 RESET(defaultPrintStyle) | |
201 RESET(defaultViewSourceStyle) | |
202 RESET(defaultXHTMLMobileProfileStyle) | |
203 | |
204 #undef RESET | |
205 #define RESET(x) \ | |
206 if (WebCore::CSSDefaultStyleSheets::x) { \ | |
207 WebCore::CSSDefaultStyleSheets::x->deref(); \ | |
208 WebCore::CSSDefaultStyleSheets::x = 0; \ | |
209 } | |
210 | |
211 RESET(defaultStyleSheet) | |
212 RESET(quirksStyleSheet) | |
213 RESET(svgStyleSheet) | |
214 RESET(mediaControlsStyleSheet) | |
215 RESET(fullscreenStyleSheet) | |
216 | |
217 #undef RESET | |
218 } | |
abarth-chromium
2013/11/27 18:43:50
These seem a bit more questionable....
bokan
2013/11/27 19:20:10
Yah, this feels wrong but there seems to be no way
| |
219 | |
220 ReplaceViewportUAStylesheet::ReplaceViewportUAStylesheet(WTF::String uaStyleshee t) | |
221 { | |
222 resetCSSDefaultStyleSheets(); | |
223 WebCore::ViewportStyle::styleOverrideString() = String(uaStylesheet); | |
224 } | |
225 | |
226 ReplaceViewportUAStylesheet::~ReplaceViewportUAStylesheet() | |
227 { | |
228 WebCore::ViewportStyle::styleOverrideString() = WTF::String(); | |
229 resetCSSDefaultStyleSheets(); | |
230 } | |
231 | |
232 UseAndroidViewportUAStylesheet::UseAndroidViewportUAStylesheet() | |
233 : ReplaceViewportUAStylesheet(String( | |
234 WebCore::viewportAndroidUserAgentStyleSheet, | |
235 sizeof(WebCore::viewportAndroidUserAgentStyleSheet))) | |
236 { | |
237 } | |
238 | |
155 } // namespace FrameTestHelpers | 239 } // namespace FrameTestHelpers |
156 } // namespace blink | 240 } // namespace blink |
OLD | NEW |