• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2009 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  *     * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *     * Redistributions in binary form must reproduce the above
11  * copyright notice, this list of conditions and the following disclaimer
12  * in the documentation and/or other materials provided with the
13  * distribution.
14  *     * Neither the name of Google Inc. nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
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.
29  */
30 
31 #include "config.h"
32 #include "WebSettingsImpl.h"
33 
34 #include "FontRenderingMode.h"
35 #include "Settings.h"
36 #include "WebString.h"
37 #include "WebURL.h"
38 #include <wtf/UnusedParam.h>
39 
40 #if defined(OS_WIN)
41 #include "RenderThemeChromiumWin.h"
42 #endif
43 
44 using namespace WebCore;
45 
46 namespace WebKit {
47 
WebSettingsImpl(Settings * settings)48 WebSettingsImpl::WebSettingsImpl(Settings* settings)
49     : m_settings(settings)
50     , m_compositeToTextureEnabled(false)
51     , m_showFPSCounter(false)
52     , m_showPlatformLayerTree(false)
53 {
54     ASSERT(settings);
55 }
56 
setStandardFontFamily(const WebString & font)57 void WebSettingsImpl::setStandardFontFamily(const WebString& font)
58 {
59     m_settings->setStandardFontFamily(font);
60 }
61 
setFixedFontFamily(const WebString & font)62 void WebSettingsImpl::setFixedFontFamily(const WebString& font)
63 {
64     m_settings->setFixedFontFamily((String)font);
65 }
66 
setSerifFontFamily(const WebString & font)67 void WebSettingsImpl::setSerifFontFamily(const WebString& font)
68 {
69     m_settings->setSerifFontFamily((String)font);
70 }
71 
setSansSerifFontFamily(const WebString & font)72 void WebSettingsImpl::setSansSerifFontFamily(const WebString& font)
73 {
74     m_settings->setSansSerifFontFamily((String)font);
75 }
76 
setCursiveFontFamily(const WebString & font)77 void WebSettingsImpl::setCursiveFontFamily(const WebString& font)
78 {
79     m_settings->setCursiveFontFamily((String)font);
80 }
81 
setFantasyFontFamily(const WebString & font)82 void WebSettingsImpl::setFantasyFontFamily(const WebString& font)
83 {
84     m_settings->setFantasyFontFamily((String)font);
85 }
86 
setDefaultFontSize(int size)87 void WebSettingsImpl::setDefaultFontSize(int size)
88 {
89     m_settings->setDefaultFontSize(size);
90 #if defined(OS_WIN)
91     // RenderTheme is a singleton that needs to know the default font size to
92     // draw some form controls.  We let it know each time the size changes.
93     WebCore::RenderThemeChromiumWin::setDefaultFontSize(size);
94 #endif
95 }
96 
setDefaultFixedFontSize(int size)97 void WebSettingsImpl::setDefaultFixedFontSize(int size)
98 {
99     m_settings->setDefaultFixedFontSize(size);
100 }
101 
setMinimumFontSize(int size)102 void WebSettingsImpl::setMinimumFontSize(int size)
103 {
104     m_settings->setMinimumFontSize(size);
105 }
106 
setMinimumLogicalFontSize(int size)107 void WebSettingsImpl::setMinimumLogicalFontSize(int size)
108 {
109     m_settings->setMinimumLogicalFontSize(size);
110 }
111 
setDefaultTextEncodingName(const WebString & encoding)112 void WebSettingsImpl::setDefaultTextEncodingName(const WebString& encoding)
113 {
114     m_settings->setDefaultTextEncodingName((String)encoding);
115 }
116 
setJavaScriptEnabled(bool enabled)117 void WebSettingsImpl::setJavaScriptEnabled(bool enabled)
118 {
119     m_settings->setJavaScriptEnabled(enabled);
120 }
121 
setWebSecurityEnabled(bool enabled)122 void WebSettingsImpl::setWebSecurityEnabled(bool enabled)
123 {
124     m_settings->setWebSecurityEnabled(enabled);
125 }
126 
setJavaScriptCanOpenWindowsAutomatically(bool canOpenWindows)127 void WebSettingsImpl::setJavaScriptCanOpenWindowsAutomatically(bool canOpenWindows)
128 {
129     m_settings->setJavaScriptCanOpenWindowsAutomatically(canOpenWindows);
130 }
131 
setLoadsImagesAutomatically(bool loadsImagesAutomatically)132 void WebSettingsImpl::setLoadsImagesAutomatically(bool loadsImagesAutomatically)
133 {
134     m_settings->setLoadsImagesAutomatically(loadsImagesAutomatically);
135 }
136 
setImagesEnabled(bool enabled)137 void WebSettingsImpl::setImagesEnabled(bool enabled)
138 {
139     m_settings->setImagesEnabled(enabled);
140 }
141 
setPluginsEnabled(bool enabled)142 void WebSettingsImpl::setPluginsEnabled(bool enabled)
143 {
144     m_settings->setPluginsEnabled(enabled);
145 }
146 
setDOMPasteAllowed(bool enabled)147 void WebSettingsImpl::setDOMPasteAllowed(bool enabled)
148 {
149     m_settings->setDOMPasteAllowed(enabled);
150 }
151 
setDeveloperExtrasEnabled(bool enabled)152 void WebSettingsImpl::setDeveloperExtrasEnabled(bool enabled)
153 {
154     m_settings->setDeveloperExtrasEnabled(enabled);
155 }
156 
setNeedsSiteSpecificQuirks(bool enabled)157 void WebSettingsImpl::setNeedsSiteSpecificQuirks(bool enabled)
158 {
159     m_settings->setNeedsSiteSpecificQuirks(enabled);
160 }
161 
setShrinksStandaloneImagesToFit(bool shrinkImages)162 void WebSettingsImpl::setShrinksStandaloneImagesToFit(bool shrinkImages)
163 {
164     m_settings->setShrinksStandaloneImagesToFit(shrinkImages);
165 }
166 
setUsesEncodingDetector(bool usesDetector)167 void WebSettingsImpl::setUsesEncodingDetector(bool usesDetector)
168 {
169     m_settings->setUsesEncodingDetector(usesDetector);
170 }
171 
setTextAreasAreResizable(bool areResizable)172 void WebSettingsImpl::setTextAreasAreResizable(bool areResizable)
173 {
174     m_settings->setTextAreasAreResizable(areResizable);
175 }
176 
setJavaEnabled(bool enabled)177 void WebSettingsImpl::setJavaEnabled(bool enabled)
178 {
179     m_settings->setJavaEnabled(enabled);
180 }
181 
setAllowScriptsToCloseWindows(bool allow)182 void WebSettingsImpl::setAllowScriptsToCloseWindows(bool allow)
183 {
184     m_settings->setAllowScriptsToCloseWindows(allow);
185 }
186 
setUserStyleSheetLocation(const WebURL & location)187 void WebSettingsImpl::setUserStyleSheetLocation(const WebURL& location)
188 {
189     m_settings->setUserStyleSheetLocation(location);
190 }
191 
setAuthorAndUserStylesEnabled(bool enabled)192 void WebSettingsImpl::setAuthorAndUserStylesEnabled(bool enabled)
193 {
194     m_settings->setAuthorAndUserStylesEnabled(enabled);
195 }
196 
setUsesPageCache(bool usesPageCache)197 void WebSettingsImpl::setUsesPageCache(bool usesPageCache)
198 {
199     m_settings->setUsesPageCache(usesPageCache);
200 }
201 
setDownloadableBinaryFontsEnabled(bool enabled)202 void WebSettingsImpl::setDownloadableBinaryFontsEnabled(bool enabled)
203 {
204     m_settings->setDownloadableBinaryFontsEnabled(enabled);
205 }
206 
setJavaScriptCanAccessClipboard(bool enabled)207 void WebSettingsImpl::setJavaScriptCanAccessClipboard(bool enabled)
208 {
209     m_settings->setJavaScriptCanAccessClipboard(enabled);
210 }
211 
setXSSAuditorEnabled(bool enabled)212 void WebSettingsImpl::setXSSAuditorEnabled(bool enabled)
213 {
214     m_settings->setXSSAuditorEnabled(enabled);
215 }
216 
setLocalStorageEnabled(bool enabled)217 void WebSettingsImpl::setLocalStorageEnabled(bool enabled)
218 {
219     m_settings->setLocalStorageEnabled(enabled);
220 }
221 
setEditableLinkBehaviorNeverLive()222 void WebSettingsImpl::setEditableLinkBehaviorNeverLive()
223 {
224     // FIXME: If you ever need more behaviors than this, then we should probably
225     //        define an enum in WebSettings.h and have a switch statement that
226     //        translates.  Until then, this is probably fine, though.
227     m_settings->setEditableLinkBehavior(WebCore::EditableLinkNeverLive);
228 }
229 
setFrameFlatteningEnabled(bool enabled)230 void WebSettingsImpl::setFrameFlatteningEnabled(bool enabled)
231 {
232     m_settings->setFrameFlatteningEnabled(enabled);
233 }
234 
setFontRenderingModeNormal()235 void WebSettingsImpl::setFontRenderingModeNormal()
236 {
237     // FIXME: If you ever need more behaviors than this, then we should probably
238     //        define an enum in WebSettings.h and have a switch statement that
239     //        translates.  Until then, this is probably fine, though.
240     m_settings->setFontRenderingMode(WebCore::NormalRenderingMode);
241 }
242 
setShouldPaintCustomScrollbars(bool enabled)243 void WebSettingsImpl::setShouldPaintCustomScrollbars(bool enabled)
244 {
245     m_settings->setShouldPaintCustomScrollbars(enabled);
246 }
247 
setAllowUniversalAccessFromFileURLs(bool allow)248 void WebSettingsImpl::setAllowUniversalAccessFromFileURLs(bool allow)
249 {
250     m_settings->setAllowUniversalAccessFromFileURLs(allow);
251 }
252 
setAllowFileAccessFromFileURLs(bool allow)253 void WebSettingsImpl::setAllowFileAccessFromFileURLs(bool allow)
254 {
255     m_settings->setAllowFileAccessFromFileURLs(allow);
256 }
257 
setTextDirectionSubmenuInclusionBehaviorNeverIncluded()258 void WebSettingsImpl::setTextDirectionSubmenuInclusionBehaviorNeverIncluded()
259 {
260     // FIXME: If you ever need more behaviors than this, then we should probably
261     //        define an enum in WebSettings.h and have a switch statement that
262     //        translates.  Until then, this is probably fine, though.
263     m_settings->setTextDirectionSubmenuInclusionBehavior(WebCore::TextDirectionSubmenuNeverIncluded);
264 }
265 
setOfflineWebApplicationCacheEnabled(bool enabled)266 void WebSettingsImpl::setOfflineWebApplicationCacheEnabled(bool enabled)
267 {
268     m_settings->setOfflineWebApplicationCacheEnabled(enabled);
269 }
270 
setWebAudioEnabled(bool enabled)271 void WebSettingsImpl::setWebAudioEnabled(bool enabled)
272 {
273     m_settings->setWebAudioEnabled(enabled);
274 }
275 
setExperimentalWebGLEnabled(bool enabled)276 void WebSettingsImpl::setExperimentalWebGLEnabled(bool enabled)
277 {
278     m_settings->setWebGLEnabled(enabled);
279 }
280 
setOpenGLMultisamplingEnabled(bool enabled)281 void WebSettingsImpl::setOpenGLMultisamplingEnabled(bool enabled)
282 {
283     m_settings->setOpenGLMultisamplingEnabled(enabled);
284 }
285 
setShowDebugBorders(bool show)286 void WebSettingsImpl::setShowDebugBorders(bool show)
287 {
288     m_settings->setShowDebugBorders(show);
289 }
290 
setShowFPSCounter(bool show)291 void WebSettingsImpl::setShowFPSCounter(bool show)
292 {
293     m_showFPSCounter = show;
294 }
295 
setShowPlatformLayerTree(bool show)296 void WebSettingsImpl::setShowPlatformLayerTree(bool show)
297 {
298     m_showPlatformLayerTree = show;
299 }
300 
setEditingBehavior(EditingBehavior behavior)301 void WebSettingsImpl::setEditingBehavior(EditingBehavior behavior)
302 {
303     m_settings->setEditingBehaviorType(static_cast<WebCore::EditingBehaviorType>(behavior));
304 }
305 
setAcceleratedCompositingEnabled(bool enabled)306 void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled)
307 {
308     m_settings->setAcceleratedCompositingEnabled(enabled);
309 }
310 
setForceCompositingMode(bool enabled)311 void WebSettingsImpl::setForceCompositingMode(bool enabled)
312 {
313     m_settings->setForceCompositingMode(enabled);
314 }
315 
setCompositeToTextureEnabled(bool enabled)316 void WebSettingsImpl::setCompositeToTextureEnabled(bool enabled)
317 {
318     m_compositeToTextureEnabled = enabled;
319 }
320 
setAcceleratedCompositingFor3DTransformsEnabled(bool enabled)321 void WebSettingsImpl::setAcceleratedCompositingFor3DTransformsEnabled(bool enabled)
322 {
323     m_settings->setAcceleratedCompositingFor3DTransformsEnabled(enabled);
324 }
325 
setAcceleratedCompositingForVideoEnabled(bool enabled)326 void WebSettingsImpl::setAcceleratedCompositingForVideoEnabled(bool enabled)
327 {
328     m_settings->setAcceleratedCompositingForVideoEnabled(enabled);
329 }
330 
setAcceleratedCompositingForPluginsEnabled(bool enabled)331 void WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled(bool enabled)
332 {
333     m_settings->setAcceleratedCompositingForPluginsEnabled(enabled);
334 }
335 
setAcceleratedCompositingForCanvasEnabled(bool enabled)336 void WebSettingsImpl::setAcceleratedCompositingForCanvasEnabled(bool enabled)
337 {
338     m_settings->setAcceleratedCompositingForCanvasEnabled(enabled);
339 }
340 
setAcceleratedCompositingForAnimationEnabled(bool enabled)341 void WebSettingsImpl::setAcceleratedCompositingForAnimationEnabled(bool enabled)
342 {
343     m_settings->setAcceleratedCompositingForAnimationEnabled(enabled);
344 }
345 
setAcceleratedDrawingEnabled(bool enabled)346 void WebSettingsImpl::setAcceleratedDrawingEnabled(bool enabled)
347 {
348     m_settings->setAcceleratedDrawingEnabled(enabled);
349 }
350 
setAccelerated2dCanvasEnabled(bool enabled)351 void WebSettingsImpl::setAccelerated2dCanvasEnabled(bool enabled)
352 {
353     m_settings->setAccelerated2dCanvasEnabled(enabled);
354 }
355 
setMemoryInfoEnabled(bool enabled)356 void WebSettingsImpl::setMemoryInfoEnabled(bool enabled)
357 {
358     m_settings->setMemoryInfoEnabled(enabled);
359 }
360 
setHyperlinkAuditingEnabled(bool enabled)361 void WebSettingsImpl::setHyperlinkAuditingEnabled(bool enabled)
362 {
363     m_settings->setHyperlinkAuditingEnabled(enabled);
364 }
365 
setAsynchronousSpellCheckingEnabled(bool enabled)366 void WebSettingsImpl::setAsynchronousSpellCheckingEnabled(bool enabled)
367 {
368     m_settings->setAsynchronousSpellCheckingEnabled(enabled);
369 }
370 
setCaretBrowsingEnabled(bool enabled)371 void WebSettingsImpl::setCaretBrowsingEnabled(bool enabled)
372 {
373     m_settings->setCaretBrowsingEnabled(enabled);
374 }
375 
setInteractiveFormValidationEnabled(bool enabled)376 void WebSettingsImpl::setInteractiveFormValidationEnabled(bool enabled)
377 {
378     m_settings->setInteractiveFormValidationEnabled(enabled);
379 }
380 
setValidationMessageTimerMagnification(int newValue)381 void WebSettingsImpl::setValidationMessageTimerMagnification(int newValue)
382 {
383     m_settings->setValidationMessageTimerMagnification(newValue);
384 }
385 
setMinimumTimerInterval(double interval)386 void WebSettingsImpl::setMinimumTimerInterval(double interval)
387 {
388     m_settings->setMinDOMTimerInterval(interval);
389 }
390 
setFullScreenEnabled(bool enabled)391 void WebSettingsImpl::setFullScreenEnabled(bool enabled)
392 {
393 #if ENABLE(FULLSCREEN_API)
394     m_settings->setFullScreenEnabled(enabled);
395 #else
396     UNUSED_PARAM(enabled);
397 #endif
398 }
399 
400 } // namespace WebKit
401