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