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 "core/page/Settings.h"
35#include "core/platform/graphics/chromium/DeferredImageDecoder.h"
36#include "wtf/UnusedParam.h"
37
38#include "public/platform/WebString.h"
39#include "public/platform/WebURL.h"
40
41#if OS(WINDOWS)
42#include "core/rendering/RenderThemeChromiumWin.h"
43#endif
44
45using namespace WebCore;
46
47namespace WebKit {
48
49WebSettingsImpl::WebSettingsImpl(Settings* settings)
50    : m_settings(settings)
51    , m_showFPSCounter(false)
52    , m_showPaintRects(false)
53    , m_renderVSyncNotificationEnabled(false)
54    , m_viewportEnabled(false)
55    , m_gestureTapHighlightEnabled(true)
56    , m_autoZoomFocusedNodeToLegibleScale(false)
57    , m_deferredImageDecodingEnabled(false)
58    , m_doubleTapToZoomEnabled(false)
59    , m_supportDeprecatedTargetDensityDPI(false)
60    , m_viewportMetaLayoutSizeQuirk(false)
61    , m_pinchOverlayScrollbarThickness(0)
62{
63    ASSERT(settings);
64}
65
66void WebSettingsImpl::setStandardFontFamily(const WebString& font, UScriptCode script)
67{
68    m_settings->setStandardFontFamily(font, script);
69}
70
71void WebSettingsImpl::setFixedFontFamily(const WebString& font, UScriptCode script)
72{
73    m_settings->setFixedFontFamily(font, script);
74}
75
76void WebSettingsImpl::setSerifFontFamily(const WebString& font, UScriptCode script)
77{
78    m_settings->setSerifFontFamily(font, script);
79}
80
81void WebSettingsImpl::setSansSerifFontFamily(const WebString& font, UScriptCode script)
82{
83    m_settings->setSansSerifFontFamily(font, script);
84}
85
86void WebSettingsImpl::setCursiveFontFamily(const WebString& font, UScriptCode script)
87{
88    m_settings->setCursiveFontFamily(font, script);
89}
90
91void WebSettingsImpl::setFantasyFontFamily(const WebString& font, UScriptCode script)
92{
93    m_settings->setFantasyFontFamily(font, script);
94}
95
96void WebSettingsImpl::setPictographFontFamily(const WebString& font, UScriptCode script)
97{
98    m_settings->setPictographFontFamily(font, script);
99}
100
101void WebSettingsImpl::setDefaultFontSize(int size)
102{
103    m_settings->setDefaultFontSize(size);
104#if OS(WINDOWS)
105    // RenderTheme is a singleton that needs to know the default font size to
106    // draw some form controls. We let it know each time the size changes.
107    WebCore::RenderThemeChromiumWin::setDefaultFontSize(size);
108#endif
109}
110
111void WebSettingsImpl::setDefaultFixedFontSize(int size)
112{
113    m_settings->setDefaultFixedFontSize(size);
114}
115
116void WebSettingsImpl::setDefaultVideoPosterURL(const WebString& url)
117{
118    m_settings->setDefaultVideoPosterURL(url);
119}
120
121void WebSettingsImpl::setMinimumFontSize(int size)
122{
123    m_settings->setMinimumFontSize(size);
124}
125
126void WebSettingsImpl::setMinimumLogicalFontSize(int size)
127{
128    m_settings->setMinimumLogicalFontSize(size);
129}
130
131void WebSettingsImpl::setDeviceSupportsTouch(bool deviceSupportsTouch)
132{
133    m_settings->setDeviceSupportsTouch(deviceSupportsTouch);
134}
135
136void WebSettingsImpl::setDeviceSupportsMouse(bool deviceSupportsMouse)
137{
138    m_settings->setDeviceSupportsMouse(deviceSupportsMouse);
139}
140
141bool WebSettingsImpl::deviceSupportsTouch()
142{
143    return m_settings->deviceSupportsTouch();
144}
145
146void WebSettingsImpl::setAutoZoomFocusedNodeToLegibleScale(bool autoZoomFocusedNodeToLegibleScale)
147{
148    m_autoZoomFocusedNodeToLegibleScale = autoZoomFocusedNodeToLegibleScale;
149}
150
151void WebSettingsImpl::setTextAutosizingEnabled(bool enabled)
152{
153    m_settings->setTextAutosizingEnabled(enabled);
154}
155
156void WebSettingsImpl::setTextAutosizingFontScaleFactor(float fontScaleFactor)
157{
158    m_settings->setTextAutosizingFontScaleFactor(fontScaleFactor);
159}
160
161void WebSettingsImpl::setDefaultTextEncodingName(const WebString& encoding)
162{
163    m_settings->setDefaultTextEncodingName((String)encoding);
164}
165
166void WebSettingsImpl::setJavaScriptEnabled(bool enabled)
167{
168    m_settings->setScriptEnabled(enabled);
169}
170
171void WebSettingsImpl::setWebSecurityEnabled(bool enabled)
172{
173    m_settings->setWebSecurityEnabled(enabled);
174}
175
176void WebSettingsImpl::setJavaScriptCanOpenWindowsAutomatically(bool canOpenWindows)
177{
178    m_settings->setJavaScriptCanOpenWindowsAutomatically(canOpenWindows);
179}
180
181void WebSettingsImpl::setSupportDeprecatedTargetDensityDPI(bool supportDeprecatedTargetDensityDPI)
182{
183    m_supportDeprecatedTargetDensityDPI = supportDeprecatedTargetDensityDPI;
184}
185
186void WebSettingsImpl::setViewportMetaLayoutSizeQuirk(bool viewportMetaLayoutSizeQuirk)
187{
188    m_viewportMetaLayoutSizeQuirk = viewportMetaLayoutSizeQuirk;
189}
190
191void WebSettingsImpl::setViewportMetaMergeQuirk(bool viewportMetaMergeQuirk)
192{
193    m_settings->setViewportMetaMergeQuirk(viewportMetaMergeQuirk);
194}
195
196void WebSettingsImpl::setViewportMetaZeroValuesQuirk(bool viewportMetaZeroValuesQuirk)
197{
198    m_settings->setViewportMetaZeroValuesQuirk(viewportMetaZeroValuesQuirk);
199}
200
201void WebSettingsImpl::setIgnoreMainFrameOverflowHiddenQuirk(bool ignoreMainFrameOverflowHiddenQuirk)
202{
203    m_settings->setIgnoreMainFrameOverflowHiddenQuirk(ignoreMainFrameOverflowHiddenQuirk);
204}
205
206void WebSettingsImpl::setReportScreenSizeInPhysicalPixelsQuirk(bool reportScreenSizeInPhysicalPixelsQuirk)
207{
208    m_settings->setReportScreenSizeInPhysicalPixelsQuirk(reportScreenSizeInPhysicalPixelsQuirk);
209}
210
211void WebSettingsImpl::setSupportsMultipleWindows(bool supportsMultipleWindows)
212{
213    m_settings->setSupportsMultipleWindows(supportsMultipleWindows);
214}
215
216void WebSettingsImpl::setLoadsImagesAutomatically(bool loadsImagesAutomatically)
217{
218    m_settings->setLoadsImagesAutomatically(loadsImagesAutomatically);
219}
220
221void WebSettingsImpl::setImagesEnabled(bool enabled)
222{
223    m_settings->setImagesEnabled(enabled);
224}
225
226void WebSettingsImpl::setLoadWithOverviewMode(bool enabled)
227{
228    m_settings->setLoadWithOverviewMode(enabled);
229}
230
231void WebSettingsImpl::setPluginsEnabled(bool enabled)
232{
233    m_settings->setPluginsEnabled(enabled);
234}
235
236void WebSettingsImpl::setDOMPasteAllowed(bool enabled)
237{
238    m_settings->setDOMPasteAllowed(enabled);
239}
240
241void WebSettingsImpl::setNeedsSiteSpecificQuirks(bool enabled)
242{
243    m_settings->setNeedsSiteSpecificQuirks(enabled);
244}
245
246void WebSettingsImpl::setShrinksStandaloneImagesToFit(bool shrinkImages)
247{
248    m_settings->setShrinksStandaloneImagesToFit(shrinkImages);
249}
250
251void WebSettingsImpl::setSpatialNavigationEnabled(bool enabled)
252{
253    m_settings->setSpatialNavigationEnabled(enabled);
254}
255
256void WebSettingsImpl::setUsesEncodingDetector(bool usesDetector)
257{
258    m_settings->setUsesEncodingDetector(usesDetector);
259}
260
261void WebSettingsImpl::setTextAreasAreResizable(bool areResizable)
262{
263    m_settings->setTextAreasAreResizable(areResizable);
264}
265
266void WebSettingsImpl::setJavaEnabled(bool enabled)
267{
268    m_settings->setJavaEnabled(enabled);
269}
270
271void WebSettingsImpl::setAllowScriptsToCloseWindows(bool allow)
272{
273    m_settings->setAllowScriptsToCloseWindows(allow);
274}
275
276void WebSettingsImpl::setUserStyleSheetLocation(const WebURL& location)
277{
278    m_settings->setUserStyleSheetLocation(location);
279}
280
281void WebSettingsImpl::setAuthorAndUserStylesEnabled(bool enabled)
282{
283    m_settings->setAuthorAndUserStylesEnabled(enabled);
284}
285
286void WebSettingsImpl::setUseLegacyBackgroundSizeShorthandBehavior(bool useLegacyBackgroundSizeShorthandBehavior)
287{
288    m_settings->setUseLegacyBackgroundSizeShorthandBehavior(useLegacyBackgroundSizeShorthandBehavior);
289}
290
291void WebSettingsImpl::setWideViewportQuirkEnabled(bool wideViewportQuirkEnabled)
292{
293    m_settings->setWideViewportQuirkEnabled(wideViewportQuirkEnabled);
294}
295
296void WebSettingsImpl::setUseWideViewport(bool useWideViewport)
297{
298    m_settings->setUseWideViewport(useWideViewport);
299}
300
301void WebSettingsImpl::setDoubleTapToZoomEnabled(bool doubleTapToZoomEnabled)
302{
303    m_doubleTapToZoomEnabled = doubleTapToZoomEnabled;
304}
305
306void WebSettingsImpl::setDownloadableBinaryFontsEnabled(bool enabled)
307{
308    m_settings->setDownloadableBinaryFontsEnabled(enabled);
309}
310
311void WebSettingsImpl::setJavaScriptCanAccessClipboard(bool enabled)
312{
313    m_settings->setJavaScriptCanAccessClipboard(enabled);
314}
315
316void WebSettingsImpl::setXSSAuditorEnabled(bool enabled)
317{
318    m_settings->setXSSAuditorEnabled(enabled);
319}
320
321void WebSettingsImpl::setUnsafePluginPastingEnabled(bool enabled)
322{
323    m_settings->setUnsafePluginPastingEnabled(enabled);
324}
325
326void WebSettingsImpl::setDNSPrefetchingEnabled(bool enabled)
327{
328    m_settings->setDNSPrefetchingEnabled(enabled);
329}
330
331void WebSettingsImpl::setLocalStorageEnabled(bool enabled)
332{
333    m_settings->setLocalStorageEnabled(enabled);
334}
335
336void WebSettingsImpl::setEditableLinkBehaviorNeverLive()
337{
338    // FIXME: If you ever need more behaviors than this, then we should probably
339    //        define an enum in WebSettings.h and have a switch statement that
340    //        translates.  Until then, this is probably fine, though.
341    m_settings->setEditableLinkBehavior(WebCore::EditableLinkNeverLive);
342}
343
344void WebSettingsImpl::setAllowUniversalAccessFromFileURLs(bool allow)
345{
346    m_settings->setAllowUniversalAccessFromFileURLs(allow);
347}
348
349void WebSettingsImpl::setAllowFileAccessFromFileURLs(bool allow)
350{
351    m_settings->setAllowFileAccessFromFileURLs(allow);
352}
353
354void WebSettingsImpl::setTouchDragDropEnabled(bool enabled)
355{
356    m_settings->setTouchDragDropEnabled(enabled);
357}
358
359void WebSettingsImpl::setTouchEditingEnabled(bool enabled)
360{
361    m_settings->setTouchEditingEnabled(enabled);
362}
363
364void WebSettingsImpl::setThreadedHTMLParser(bool enabled)
365{
366    m_settings->setThreadedHTMLParser(enabled);
367}
368
369void WebSettingsImpl::setOfflineWebApplicationCacheEnabled(bool enabled)
370{
371    m_settings->setOfflineWebApplicationCacheEnabled(enabled);
372}
373
374void WebSettingsImpl::setWebAudioEnabled(bool enabled)
375{
376    m_settings->setWebAudioEnabled(enabled);
377}
378
379void WebSettingsImpl::setExperimentalWebGLEnabled(bool enabled)
380{
381    m_settings->setWebGLEnabled(enabled);
382}
383
384void WebSettingsImpl::setExperimentalWebSocketEnabled(bool enabled)
385{
386    m_settings->setExperimentalWebSocketEnabled(enabled);
387}
388
389void WebSettingsImpl::setCSSStickyPositionEnabled(bool enabled)
390{
391    m_settings->setCSSStickyPositionEnabled(enabled);
392}
393
394void WebSettingsImpl::setRegionBasedColumnsEnabled(bool enabled)
395{
396    m_settings->setRegionBasedColumnsEnabled(enabled);
397}
398
399void WebSettingsImpl::setExperimentalCSSCustomFilterEnabled(bool enabled)
400{
401    m_settings->setCSSCustomFilterEnabled(enabled);
402}
403
404void WebSettingsImpl::setOpenGLMultisamplingEnabled(bool enabled)
405{
406    m_settings->setOpenGLMultisamplingEnabled(enabled);
407}
408
409void WebSettingsImpl::setPrivilegedWebGLExtensionsEnabled(bool enabled)
410{
411    m_settings->setPrivilegedWebGLExtensionsEnabled(enabled);
412}
413
414void WebSettingsImpl::setRenderVSyncNotificationEnabled(bool enabled)
415{
416    m_renderVSyncNotificationEnabled = enabled;
417}
418
419void WebSettingsImpl::setWebGLErrorsToConsoleEnabled(bool enabled)
420{
421    m_settings->setWebGLErrorsToConsoleEnabled(enabled);
422}
423
424void WebSettingsImpl::setShowFPSCounter(bool show)
425{
426    m_showFPSCounter = show;
427}
428
429void WebSettingsImpl::setShowPaintRects(bool show)
430{
431    m_showPaintRects = show;
432}
433
434void WebSettingsImpl::setEditingBehavior(EditingBehavior behavior)
435{
436    m_settings->setEditingBehaviorType(static_cast<WebCore::EditingBehaviorType>(behavior));
437}
438
439void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled)
440{
441    m_settings->setAcceleratedCompositingEnabled(enabled);
442    m_settings->setScrollingCoordinatorEnabled(enabled);
443}
444
445void WebSettingsImpl::setForceCompositingMode(bool enabled)
446{
447    m_settings->setForceCompositingMode(enabled);
448}
449
450void WebSettingsImpl::setMockScrollbarsEnabled(bool enabled)
451{
452    m_settings->setMockScrollbarsEnabled(enabled);
453}
454
455void WebSettingsImpl::setAcceleratedCompositingFor3DTransformsEnabled(bool enabled)
456{
457    m_settings->setAcceleratedCompositingFor3DTransformsEnabled(enabled);
458}
459
460void WebSettingsImpl::setAcceleratedCompositingForFiltersEnabled(bool enabled)
461{
462    m_settings->setAcceleratedCompositingForFiltersEnabled(enabled);
463}
464
465void WebSettingsImpl::setAcceleratedCompositingForVideoEnabled(bool enabled)
466{
467    m_settings->setAcceleratedCompositingForVideoEnabled(enabled);
468}
469
470void WebSettingsImpl::setAcceleratedCompositingForOverflowScrollEnabled(bool enabled)
471{
472    m_settings->setAcceleratedCompositingForOverflowScrollEnabled(enabled);
473}
474
475void WebSettingsImpl::setAcceleratedCompositingForFixedRootBackgroundEnabled(bool enabled)
476{
477    m_settings->setAcceleratedCompositingForFixedRootBackgroundEnabled(enabled);
478}
479
480void WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled(bool enabled)
481{
482    m_settings->setAcceleratedCompositingForPluginsEnabled(enabled);
483}
484
485void WebSettingsImpl::setAcceleratedCompositingForCanvasEnabled(bool enabled)
486{
487    m_settings->setAcceleratedCompositingForCanvasEnabled(enabled);
488}
489
490void WebSettingsImpl::setAcceleratedCompositingForAnimationEnabled(bool enabled)
491{
492    m_settings->setAcceleratedCompositingForAnimationEnabled(enabled);
493}
494
495void WebSettingsImpl::setAcceleratedCompositingForScrollableFramesEnabled(bool enabled)
496{
497    m_settings->setAcceleratedCompositingForScrollableFramesEnabled(enabled);
498}
499
500void WebSettingsImpl::setAcceleratedFiltersEnabled(bool enabled)
501{
502    m_settings->setAcceleratedFiltersEnabled(enabled);
503}
504
505void WebSettingsImpl::setAccelerated2dCanvasEnabled(bool enabled)
506{
507    m_settings->setAccelerated2dCanvasEnabled(enabled);
508}
509
510void WebSettingsImpl::setAntialiased2dCanvasEnabled(bool enabled)
511{
512    m_settings->setAntialiased2dCanvasEnabled(enabled);
513}
514
515void WebSettingsImpl::setDeferred2dCanvasEnabled(bool enabled)
516{
517}
518
519void WebSettingsImpl::setDeferredImageDecodingEnabled(bool enabled)
520{
521    DeferredImageDecoder::setEnabled(enabled);
522    m_deferredImageDecodingEnabled = enabled;
523}
524
525void WebSettingsImpl::setAcceleratedCompositingForFixedPositionEnabled(bool enabled)
526{
527    m_settings->setAcceleratedCompositingForFixedPositionEnabled(enabled);
528}
529
530void WebSettingsImpl::setAcceleratedCompositingForTransitionEnabled(bool enabled)
531{
532    m_settings->setAcceleratedCompositingForTransitionEnabled(enabled);
533}
534
535void WebSettingsImpl::setMinimumAccelerated2dCanvasSize(int numPixels)
536{
537    m_settings->setMinimumAccelerated2dCanvasSize(numPixels);
538}
539
540void WebSettingsImpl::setMemoryInfoEnabled(bool enabled)
541{
542    m_settings->setMemoryInfoEnabled(enabled);
543}
544
545void WebSettingsImpl::setHyperlinkAuditingEnabled(bool enabled)
546{
547    m_settings->setHyperlinkAuditingEnabled(enabled);
548}
549
550void WebSettingsImpl::setLayoutFallbackWidth(int width)
551{
552    m_settings->setLayoutFallbackWidth(width);
553}
554
555void WebSettingsImpl::setAsynchronousSpellCheckingEnabled(bool enabled)
556{
557    m_settings->setAsynchronousSpellCheckingEnabled(enabled);
558}
559
560void WebSettingsImpl::setUnifiedTextCheckerEnabled(bool enabled)
561{
562    m_settings->setUnifiedTextCheckerEnabled(enabled);
563}
564
565void WebSettingsImpl::setCaretBrowsingEnabled(bool enabled)
566{
567    m_settings->setCaretBrowsingEnabled(enabled);
568}
569
570void WebSettingsImpl::setValidationMessageTimerMagnification(int newValue)
571{
572    m_settings->setValidationMessageTimerMagnification(newValue);
573}
574
575void WebSettingsImpl::setFullScreenEnabled(bool enabled)
576{
577    m_settings->setFullScreenEnabled(enabled);
578}
579
580void WebSettingsImpl::setAllowDisplayOfInsecureContent(bool enabled)
581{
582    m_settings->setAllowDisplayOfInsecureContent(enabled);
583}
584
585void WebSettingsImpl::setAllowRunningOfInsecureContent(bool enabled)
586{
587    m_settings->setAllowRunningOfInsecureContent(enabled);
588}
589
590void WebSettingsImpl::setPasswordEchoEnabled(bool flag)
591{
592    m_settings->setPasswordEchoEnabled(flag);
593}
594
595void WebSettingsImpl::setPasswordEchoDurationInSeconds(double durationInSeconds)
596{
597    m_settings->setPasswordEchoDurationInSeconds(durationInSeconds);
598}
599
600void WebSettingsImpl::setPerTilePaintingEnabled(bool enabled)
601{
602    m_perTilePaintingEnabled = enabled;
603}
604
605void WebSettingsImpl::setShouldPrintBackgrounds(bool enabled)
606{
607    m_settings->setShouldPrintBackgrounds(enabled);
608}
609
610void WebSettingsImpl::setShouldClearDocumentBackground(bool enabled)
611{
612    m_settings->setShouldClearDocumentBackground(enabled);
613}
614
615void WebSettingsImpl::setEnableScrollAnimator(bool enabled)
616{
617    m_settings->setScrollAnimatorEnabled(enabled);
618}
619
620void WebSettingsImpl::setEnableTouchAdjustment(bool enabled)
621{
622    m_settings->setTouchAdjustmentEnabled(enabled);
623}
624
625bool WebSettingsImpl::scrollAnimatorEnabled() const
626{
627    return m_settings->scrollAnimatorEnabled();
628}
629
630bool WebSettingsImpl::touchEditingEnabled() const
631{
632    return m_settings->touchEditingEnabled();
633}
634
635void WebSettingsImpl::setVisualWordMovementEnabled(bool enabled)
636{
637    m_settings->setVisualWordMovementEnabled(enabled);
638}
639
640void WebSettingsImpl::setShouldDisplaySubtitles(bool enabled)
641{
642    m_settings->setShouldDisplaySubtitles(enabled);
643}
644
645void WebSettingsImpl::setShouldDisplayCaptions(bool enabled)
646{
647    m_settings->setShouldDisplayCaptions(enabled);
648}
649
650void WebSettingsImpl::setShouldDisplayTextDescriptions(bool enabled)
651{
652    m_settings->setShouldDisplayTextDescriptions(enabled);
653}
654
655void WebSettingsImpl::setShouldRespectImageOrientation(bool enabled)
656{
657    m_settings->setShouldRespectImageOrientation(enabled);
658}
659
660void WebSettingsImpl::setMediaPlaybackRequiresUserGesture(bool required)
661{
662    m_settings->setMediaPlaybackRequiresUserGesture(required);
663}
664
665void WebSettingsImpl::setFixedPositionCreatesStackingContext(bool creates)
666{
667    m_settings->setFixedPositionCreatesStackingContext(creates);
668}
669
670void WebSettingsImpl::setViewportEnabled(bool enabled)
671{
672    m_viewportEnabled = enabled;
673}
674
675void WebSettingsImpl::setSyncXHRInDocumentsEnabled(bool enabled)
676{
677    m_settings->setSyncXHRInDocumentsEnabled(enabled);
678}
679
680void WebSettingsImpl::setCookieEnabled(bool enabled)
681{
682    m_settings->setCookieEnabled(enabled);
683}
684
685void WebSettingsImpl::setGestureTapHighlightEnabled(bool enableHighlight)
686{
687    m_gestureTapHighlightEnabled = enableHighlight;
688}
689
690void WebSettingsImpl::setAllowCustomScrollbarInMainFrame(bool enabled)
691{
692    m_settings->setAllowCustomScrollbarInMainFrame(enabled);
693}
694
695void WebSettingsImpl::setCompositedScrollingForFramesEnabled(bool enabled)
696{
697    m_settings->setCompositedScrollingForFramesEnabled(enabled);
698}
699
700void WebSettingsImpl::setCompositorTouchHitTesting(bool enabled)
701{
702    m_settings->setCompositorTouchHitTesting(enabled);
703}
704
705void WebSettingsImpl::setSelectTrailingWhitespaceEnabled(bool enabled)
706{
707    m_settings->setSelectTrailingWhitespaceEnabled(enabled);
708}
709
710void WebSettingsImpl::setSelectionIncludesAltImageText(bool enabled)
711{
712    m_settings->setSelectionIncludesAltImageText(enabled);
713}
714
715void WebSettingsImpl::setSmartInsertDeleteEnabled(bool enabled)
716{
717    m_settings->setSmartInsertDeleteEnabled(enabled);
718}
719
720void WebSettingsImpl::setPinchOverlayScrollbarThickness(int thickness)
721{
722    m_pinchOverlayScrollbarThickness = thickness;
723}
724
725void WebSettingsImpl::setPinchVirtualViewportEnabled(bool enabled)
726{
727    m_settings->setPinchVirtualViewportEnabled(enabled);
728}
729
730} // namespace WebKit
731