1/*
2 * Copyright (C) 2010, 2012 Apple 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
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "WKPreferences.h"
28#include "WKPreferencesPrivate.h"
29
30#include "WKAPICast.h"
31#include "WebContext.h"
32#include "WebPreferences.h"
33#include <WebCore/Settings.h>
34#include <wtf/PassRefPtr.h>
35#include <wtf/RefPtr.h>
36
37using namespace WebKit;
38
39WKTypeID WKPreferencesGetTypeID()
40{
41    return toAPI(WebPreferences::APIType);
42}
43
44WKPreferencesRef WKPreferencesCreate()
45{
46    RefPtr<WebPreferences> preferences = WebPreferences::create();
47    return toAPI(preferences.release().leakRef());
48}
49
50WKPreferencesRef WKPreferencesCreateWithIdentifier(WKStringRef identifierRef)
51{
52    RefPtr<WebPreferences> preferences = WebPreferences::create(toWTFString(identifierRef));
53    return toAPI(preferences.release().leakRef());
54}
55
56WKPreferencesRef WKPreferencesCreateCopy(WKPreferencesRef preferencesRef)
57{
58    RefPtr<WebPreferences> preferences = WebPreferences::create(*toImpl(preferencesRef));
59    return toAPI(preferences.release().leakRef());
60}
61
62void WKPreferencesSetJavaScriptEnabled(WKPreferencesRef preferencesRef, bool javaScriptEnabled)
63{
64    toImpl(preferencesRef)->setJavaScriptEnabled(javaScriptEnabled);
65}
66
67bool WKPreferencesGetJavaScriptEnabled(WKPreferencesRef preferencesRef)
68{
69    return toImpl(preferencesRef)->javaScriptEnabled();
70}
71
72void WKPreferencesSetJavaScriptMarkupEnabled(WKPreferencesRef preferencesRef, bool javaScriptMarkupEnabled)
73{
74    toImpl(preferencesRef)->setJavaScriptMarkupEnabled(javaScriptMarkupEnabled);
75}
76
77bool WKPreferencesGetJavaScriptMarkupEnabled(WKPreferencesRef preferencesRef)
78{
79    return toImpl(preferencesRef)->javaScriptMarkupEnabled();
80}
81
82void WKPreferencesSetLoadsImagesAutomatically(WKPreferencesRef preferencesRef, bool loadsImagesAutomatically)
83{
84    toImpl(preferencesRef)->setLoadsImagesAutomatically(loadsImagesAutomatically);
85}
86
87bool WKPreferencesGetLoadsImagesAutomatically(WKPreferencesRef preferencesRef)
88{
89    return toImpl(preferencesRef)->loadsImagesAutomatically();
90}
91
92void WKPreferencesSetLoadsSiteIconsIgnoringImageLoadingPreference(WKPreferencesRef preferencesRef, bool loadsSiteIconsIgnoringImageLoadingPreference)
93{
94    toImpl(preferencesRef)->setLoadsSiteIconsIgnoringImageLoadingPreference(loadsSiteIconsIgnoringImageLoadingPreference);
95}
96
97bool WKPreferencesGetLoadsSiteIconsIgnoringImageLoadingPreference(WKPreferencesRef preferencesRef)
98{
99    return toImpl(preferencesRef)->loadsSiteIconsIgnoringImageLoadingPreference();
100}
101
102void WKPreferencesSetOfflineWebApplicationCacheEnabled(WKPreferencesRef preferencesRef, bool offlineWebApplicationCacheEnabled)
103{
104    toImpl(preferencesRef)->setOfflineWebApplicationCacheEnabled(offlineWebApplicationCacheEnabled);
105}
106
107bool WKPreferencesGetOfflineWebApplicationCacheEnabled(WKPreferencesRef preferencesRef)
108{
109    return toImpl(preferencesRef)->offlineWebApplicationCacheEnabled();
110}
111
112void WKPreferencesSetLocalStorageEnabled(WKPreferencesRef preferencesRef, bool localStorageEnabled)
113{
114    toImpl(preferencesRef)->setLocalStorageEnabled(localStorageEnabled);
115}
116
117bool WKPreferencesGetLocalStorageEnabled(WKPreferencesRef preferencesRef)
118{
119    return toImpl(preferencesRef)->localStorageEnabled();
120}
121
122void WKPreferencesSetDatabasesEnabled(WKPreferencesRef preferencesRef, bool databasesEnabled)
123{
124    toImpl(preferencesRef)->setDatabasesEnabled(databasesEnabled);
125}
126
127bool WKPreferencesGetDatabasesEnabled(WKPreferencesRef preferencesRef)
128{
129    return toImpl(preferencesRef)->databasesEnabled();
130}
131
132void WKPreferencesSetXSSAuditorEnabled(WKPreferencesRef preferencesRef, bool xssAuditorEnabled)
133{
134    toImpl(preferencesRef)->setXSSAuditorEnabled(xssAuditorEnabled);
135}
136
137bool WKPreferencesGetXSSAuditorEnabled(WKPreferencesRef preferencesRef)
138{
139    return toImpl(preferencesRef)->xssAuditorEnabled();
140}
141
142void WKPreferencesSetFrameFlatteningEnabled(WKPreferencesRef preferencesRef, bool frameFlatteningEnabled)
143{
144    toImpl(preferencesRef)->setFrameFlatteningEnabled(frameFlatteningEnabled);
145}
146
147bool WKPreferencesGetFrameFlatteningEnabled(WKPreferencesRef preferencesRef)
148{
149    return toImpl(preferencesRef)->frameFlatteningEnabled();
150}
151
152void WKPreferencesSetPluginsEnabled(WKPreferencesRef preferencesRef, bool pluginsEnabled)
153{
154    toImpl(preferencesRef)->setPluginsEnabled(pluginsEnabled);
155}
156
157bool WKPreferencesGetPluginsEnabled(WKPreferencesRef preferencesRef)
158{
159    return toImpl(preferencesRef)->pluginsEnabled();
160}
161
162void WKPreferencesSetJavaEnabled(WKPreferencesRef preferencesRef, bool javaEnabled)
163{
164    toImpl(preferencesRef)->setJavaEnabled(javaEnabled);
165}
166
167bool WKPreferencesGetJavaEnabled(WKPreferencesRef preferencesRef)
168{
169    return toImpl(preferencesRef)->javaEnabled();
170}
171
172void WKPreferencesSetJavaEnabledForLocalFiles(WKPreferencesRef preferencesRef, bool javaEnabledForLocalFiles)
173{
174    toImpl(preferencesRef)->setJavaEnabledForLocalFiles(javaEnabledForLocalFiles);
175}
176
177bool WKPreferencesGetJavaEnabledForLocalFiles(WKPreferencesRef preferencesRef)
178{
179    return toImpl(preferencesRef)->javaEnabledForLocalFiles();
180}
181
182void WKPreferencesSetJavaScriptCanOpenWindowsAutomatically(WKPreferencesRef preferencesRef, bool javaScriptCanOpenWindowsAutomatically)
183{
184    toImpl(preferencesRef)->setJavaScriptCanOpenWindowsAutomatically(javaScriptCanOpenWindowsAutomatically);
185}
186
187bool WKPreferencesGetJavaScriptCanOpenWindowsAutomatically(WKPreferencesRef preferencesRef)
188{
189    return toImpl(preferencesRef)->javaScriptCanOpenWindowsAutomatically();
190}
191
192void WKPreferencesSetHyperlinkAuditingEnabled(WKPreferencesRef preferencesRef, bool hyperlinkAuditingEnabled)
193{
194    toImpl(preferencesRef)->setHyperlinkAuditingEnabled(hyperlinkAuditingEnabled);
195}
196
197bool WKPreferencesGetHyperlinkAuditingEnabled(WKPreferencesRef preferencesRef)
198{
199    return toImpl(preferencesRef)->hyperlinkAuditingEnabled();
200}
201
202void WKPreferencesSetStandardFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
203{
204    toImpl(preferencesRef)->setStandardFontFamily(toWTFString(family));
205}
206
207WKStringRef WKPreferencesCopyStandardFontFamily(WKPreferencesRef preferencesRef)
208{
209    return toCopiedAPI(toImpl(preferencesRef)->standardFontFamily());
210}
211
212void WKPreferencesSetFixedFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
213{
214    toImpl(preferencesRef)->setFixedFontFamily(toWTFString(family));
215}
216
217WKStringRef WKPreferencesCopyFixedFontFamily(WKPreferencesRef preferencesRef)
218{
219    return toCopiedAPI(toImpl(preferencesRef)->fixedFontFamily());
220}
221
222void WKPreferencesSetSerifFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
223{
224    toImpl(preferencesRef)->setSerifFontFamily(toWTFString(family));
225}
226
227WKStringRef WKPreferencesCopySerifFontFamily(WKPreferencesRef preferencesRef)
228{
229    return toCopiedAPI(toImpl(preferencesRef)->serifFontFamily());
230}
231
232void WKPreferencesSetSansSerifFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
233{
234    toImpl(preferencesRef)->setSansSerifFontFamily(toWTFString(family));
235}
236
237WKStringRef WKPreferencesCopySansSerifFontFamily(WKPreferencesRef preferencesRef)
238{
239    return toCopiedAPI(toImpl(preferencesRef)->sansSerifFontFamily());
240}
241
242void WKPreferencesSetCursiveFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
243{
244    toImpl(preferencesRef)->setCursiveFontFamily(toWTFString(family));
245}
246
247WKStringRef WKPreferencesCopyCursiveFontFamily(WKPreferencesRef preferencesRef)
248{
249    return toCopiedAPI(toImpl(preferencesRef)->cursiveFontFamily());
250}
251
252void WKPreferencesSetFantasyFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
253{
254    toImpl(preferencesRef)->setFantasyFontFamily(toWTFString(family));
255}
256
257WKStringRef WKPreferencesCopyFantasyFontFamily(WKPreferencesRef preferencesRef)
258{
259    return toCopiedAPI(toImpl(preferencesRef)->fantasyFontFamily());
260}
261
262void WKPreferencesSetPictographFontFamily(WKPreferencesRef preferencesRef, WKStringRef family)
263{
264    toImpl(preferencesRef)->setPictographFontFamily(toWTFString(family));
265}
266
267WKStringRef WKPreferencesCopyPictographFontFamily(WKPreferencesRef preferencesRef)
268{
269    return toCopiedAPI(toImpl(preferencesRef)->pictographFontFamily());
270}
271
272void WKPreferencesSetDefaultFontSize(WKPreferencesRef preferencesRef, uint32_t size)
273{
274    toImpl(preferencesRef)->setDefaultFontSize(size);
275}
276
277uint32_t WKPreferencesGetDefaultFontSize(WKPreferencesRef preferencesRef)
278{
279    return toImpl(preferencesRef)->defaultFontSize();
280}
281
282void WKPreferencesSetDefaultFixedFontSize(WKPreferencesRef preferencesRef, uint32_t size)
283{
284    toImpl(preferencesRef)->setDefaultFixedFontSize(size);
285}
286
287uint32_t WKPreferencesGetDefaultFixedFontSize(WKPreferencesRef preferencesRef)
288{
289    return toImpl(preferencesRef)->defaultFixedFontSize();
290}
291
292void WKPreferencesSetMinimumFontSize(WKPreferencesRef preferencesRef, uint32_t size)
293{
294    toImpl(preferencesRef)->setMinimumFontSize(size);
295}
296
297uint32_t WKPreferencesGetMinimumFontSize(WKPreferencesRef preferencesRef)
298{
299    return toImpl(preferencesRef)->minimumFontSize();
300}
301
302void WKPreferencesSetScreenFontSubstitutionEnabled(WKPreferencesRef preferencesRef, bool enabled)
303{
304    toImpl(preferencesRef)->setScreenFontSubstitutionEnabled(enabled);
305}
306
307bool WKPreferencesGetScreenFontSubstitutionEnabled(WKPreferencesRef preferencesRef)
308{
309    return toImpl(preferencesRef)->screenFontSubstitutionEnabled();
310}
311
312void WKPreferencesSetCookieEnabled(WKPreferencesRef preferencesRef, bool enabled)
313{
314    toImpl(preferencesRef)->setCookieEnabled(enabled);
315}
316
317bool WKPreferencesGetCookieEnabled(WKPreferencesRef preferencesRef)
318{
319    return toImpl(preferencesRef)->cookieEnabled();
320}
321
322void WKPreferencesSetEditableLinkBehavior(WKPreferencesRef preferencesRef, WKEditableLinkBehavior wkBehavior)
323{
324    toImpl(preferencesRef)->setEditableLinkBehavior(toEditableLinkBehavior(wkBehavior));
325}
326
327WKEditableLinkBehavior WKPreferencesGetEditableLinkBehavior(WKPreferencesRef preferencesRef)
328{
329    return toAPI(static_cast<WebCore::EditableLinkBehavior>(toImpl(preferencesRef)->editableLinkBehavior()));
330}
331
332void WKPreferencesSetDefaultTextEncodingName(WKPreferencesRef preferencesRef, WKStringRef name)
333{
334    toImpl(preferencesRef)->setDefaultTextEncodingName(toWTFString(name));
335}
336
337WKStringRef WKPreferencesCopyDefaultTextEncodingName(WKPreferencesRef preferencesRef)
338{
339    return toCopiedAPI(toImpl(preferencesRef)->defaultTextEncodingName());
340}
341
342void WKPreferencesSetPrivateBrowsingEnabled(WKPreferencesRef preferencesRef, bool enabled)
343{
344    toImpl(preferencesRef)->setPrivateBrowsingEnabled(enabled);
345}
346
347bool WKPreferencesGetPrivateBrowsingEnabled(WKPreferencesRef preferencesRef)
348{
349    return toImpl(preferencesRef)->privateBrowsingEnabled();
350}
351
352void WKPreferencesSetDeveloperExtrasEnabled(WKPreferencesRef preferencesRef, bool enabled)
353{
354    toImpl(preferencesRef)->setDeveloperExtrasEnabled(enabled);
355}
356
357bool WKPreferencesGetDeveloperExtrasEnabled(WKPreferencesRef preferencesRef)
358{
359    return toImpl(preferencesRef)->developerExtrasEnabled();
360}
361
362void WKPreferencesSetJavaScriptExperimentsEnabled(WKPreferencesRef preferencesRef, bool enabled)
363{
364    toImpl(preferencesRef)->setJavaScriptExperimentsEnabled(enabled);
365}
366
367bool WKPreferencesGetJavaScriptExperimentsEnabled(WKPreferencesRef preferencesRef)
368{
369    return toImpl(preferencesRef)->javaScriptExperimentsEnabled();
370}
371
372void WKPreferencesSetTextAreasAreResizable(WKPreferencesRef preferencesRef, bool resizable)
373{
374    toImpl(preferencesRef)->setTextAreasAreResizable(resizable);
375}
376
377bool WKPreferencesGetTextAreasAreResizable(WKPreferencesRef preferencesRef)
378{
379    return toImpl(preferencesRef)->textAreasAreResizable();
380}
381
382void WKPreferencesSetFontSmoothingLevel(WKPreferencesRef preferencesRef, WKFontSmoothingLevel wkLevel)
383{
384    toImpl(preferencesRef)->setFontSmoothingLevel(toFontSmoothingLevel(wkLevel));
385}
386
387WKFontSmoothingLevel WKPreferencesGetFontSmoothingLevel(WKPreferencesRef preferencesRef)
388{
389    return toAPI(static_cast<FontSmoothingLevel>(toImpl(preferencesRef)->fontSmoothingLevel()));
390}
391
392void WKPreferencesSetAcceleratedDrawingEnabled(WKPreferencesRef preferencesRef, bool flag)
393{
394    toImpl(preferencesRef)->setAcceleratedDrawingEnabled(flag);
395}
396
397bool WKPreferencesGetAcceleratedDrawingEnabled(WKPreferencesRef preferencesRef)
398{
399    return toImpl(preferencesRef)->acceleratedDrawingEnabled();
400}
401
402void WKPreferencesSetCanvasUsesAcceleratedDrawing(WKPreferencesRef preferencesRef, bool flag)
403{
404    toImpl(preferencesRef)->setCanvasUsesAcceleratedDrawing(flag);
405}
406
407bool WKPreferencesGetCanvasUsesAcceleratedDrawing(WKPreferencesRef preferencesRef)
408{
409    return toImpl(preferencesRef)->canvasUsesAcceleratedDrawing();
410}
411
412void WKPreferencesSetAcceleratedCompositingEnabled(WKPreferencesRef preferencesRef, bool flag)
413{
414    toImpl(preferencesRef)->setAcceleratedCompositingEnabled(flag);
415}
416
417bool WKPreferencesGetAcceleratedCompositingEnabled(WKPreferencesRef preferencesRef)
418{
419    return toImpl(preferencesRef)->acceleratedCompositingEnabled();
420}
421
422void WKPreferencesSetAcceleratedCompositingForOverflowScrollEnabled(WKPreferencesRef preferencesRef, bool flag)
423{
424    toImpl(preferencesRef)->setAcceleratedCompositingForOverflowScrollEnabled(flag);
425}
426
427bool WKPreferencesGetAcceleratedCompositingForOverflowScrollEnabled(WKPreferencesRef preferencesRef)
428{
429    return toImpl(preferencesRef)->acceleratedCompositingForOverflowScrollEnabled();
430}
431
432void WKPreferencesSetCompositingBordersVisible(WKPreferencesRef preferencesRef, bool flag)
433{
434    toImpl(preferencesRef)->setCompositingBordersVisible(flag);
435}
436
437bool WKPreferencesGetCompositingBordersVisible(WKPreferencesRef preferencesRef)
438{
439    return toImpl(preferencesRef)->compositingBordersVisible();
440}
441
442void WKPreferencesSetCompositingRepaintCountersVisible(WKPreferencesRef preferencesRef, bool flag)
443{
444    toImpl(preferencesRef)->setCompositingRepaintCountersVisible(flag);
445}
446
447bool WKPreferencesGetCompositingRepaintCountersVisible(WKPreferencesRef preferencesRef)
448{
449    return toImpl(preferencesRef)->compositingRepaintCountersVisible();
450}
451
452void WKPreferencesSetTiledScrollingIndicatorVisible(WKPreferencesRef preferencesRef, bool flag)
453{
454    toImpl(preferencesRef)->setTiledScrollingIndicatorVisible(flag);
455}
456
457bool WKPreferencesGetTiledScrollingIndicatorVisible(WKPreferencesRef preferencesRef)
458{
459    return toImpl(preferencesRef)->tiledScrollingIndicatorVisible();
460}
461
462void WKPreferencesSetCSSCustomFilterEnabled(WKPreferencesRef preferencesRef, bool flag)
463{
464    toImpl(preferencesRef)->setCSSCustomFilterEnabled(flag);
465}
466
467bool WKPreferencesGetCSSCustomFilterEnabled(WKPreferencesRef preferencesRef)
468{
469    return toImpl(preferencesRef)->cssCustomFilterEnabled();
470}
471
472void WKPreferencesSetWebGLEnabled(WKPreferencesRef preferencesRef, bool flag)
473{
474    toImpl(preferencesRef)->setWebGLEnabled(flag);
475}
476
477bool WKPreferencesGetWebGLEnabled(WKPreferencesRef preferencesRef)
478{
479    return toImpl(preferencesRef)->webGLEnabled();
480}
481
482void WKPreferencesSetAccelerated2DCanvasEnabled(WKPreferencesRef preferencesRef, bool flag)
483{
484    toImpl(preferencesRef)->setAccelerated2dCanvasEnabled(flag);
485}
486
487bool WKPreferencesGetAccelerated2DCanvasEnabled(WKPreferencesRef preferencesRef)
488{
489    return toImpl(preferencesRef)->accelerated2dCanvasEnabled();
490}
491
492void WKPreferencesSetCSSRegionsEnabled(WKPreferencesRef preferencesRef, bool flag)
493{
494    toImpl(preferencesRef)->setCSSRegionsEnabled(flag);
495}
496
497bool WKPreferencesGetCSSRegionsEnabled(WKPreferencesRef preferencesRef)
498{
499    return toImpl(preferencesRef)->cssRegionsEnabled();
500}
501
502void WKPreferencesSetCSSGridLayoutEnabled(WKPreferencesRef preferencesRef, bool flag)
503{
504    toImpl(preferencesRef)->setCSSGridLayoutEnabled(flag);
505}
506
507bool WKPreferencesGetCSSGridLayoutEnabled(WKPreferencesRef preferencesRef)
508{
509    return toImpl(preferencesRef)->cssGridLayoutEnabled();
510}
511
512void WKPreferencesSetRegionBasedColumnsEnabled(WKPreferencesRef preferencesRef, bool flag)
513{
514    toImpl(preferencesRef)->setRegionBasedColumnsEnabled(flag);
515}
516
517bool WKPreferencesGetRegionBasedColumnsEnabled(WKPreferencesRef preferencesRef)
518{
519    return toImpl(preferencesRef)->regionBasedColumnsEnabled();
520}
521
522void WKPreferencesSetNeedsSiteSpecificQuirks(WKPreferencesRef preferencesRef, bool flag)
523{
524    toImpl(preferencesRef)->setNeedsSiteSpecificQuirks(flag);
525}
526
527bool WKPreferencesUseLegacyTextAlignPositionedElementBehavior(WKPreferencesRef preferencesRef)
528{
529    return toImpl(preferencesRef)->useLegacyTextAlignPositionedElementBehavior();
530}
531
532void WKPreferencesSetUseLegacyTextAlignPositionedElementBehavior(WKPreferencesRef preferencesRef, bool flag)
533{
534    toImpl(preferencesRef)->setUseLegacyTextAlignPositionedElementBehavior(flag);
535}
536
537bool WKPreferencesGetNeedsSiteSpecificQuirks(WKPreferencesRef preferencesRef)
538{
539    return toImpl(preferencesRef)->needsSiteSpecificQuirks();
540}
541
542void WKPreferencesSetForceFTPDirectoryListings(WKPreferencesRef preferencesRef, bool flag)
543{
544    toImpl(preferencesRef)->setForceFTPDirectoryListings(flag);
545}
546
547bool WKPreferencesGetForceFTPDirectoryListings(WKPreferencesRef preferencesRef)
548{
549    return toImpl(preferencesRef)->forceFTPDirectoryListings();
550}
551
552void WKPreferencesSetFTPDirectoryTemplatePath(WKPreferencesRef preferencesRef, WKStringRef pathRef)
553{
554    toImpl(preferencesRef)->setFTPDirectoryTemplatePath(toWTFString(pathRef));
555}
556
557WKStringRef WKPreferencesCopyFTPDirectoryTemplatePath(WKPreferencesRef preferencesRef)
558{
559    return toCopiedAPI(toImpl(preferencesRef)->ftpDirectoryTemplatePath());
560}
561
562void WKPreferencesSetTabsToLinks(WKPreferencesRef preferencesRef, bool tabsToLinks)
563{
564    toImpl(preferencesRef)->setTabsToLinks(tabsToLinks);
565}
566
567bool WKPreferencesGetTabsToLinks(WKPreferencesRef preferencesRef)
568{
569    return toImpl(preferencesRef)->tabsToLinks();
570}
571
572void WKPreferencesSetDNSPrefetchingEnabled(WKPreferencesRef preferencesRef, bool enabled)
573{
574    toImpl(preferencesRef)->setDNSPrefetchingEnabled(enabled);
575}
576
577bool WKPreferencesGetDNSPrefetchingEnabled(WKPreferencesRef preferencesRef)
578{
579    return toImpl(preferencesRef)->dnsPrefetchingEnabled();
580}
581
582void WKPreferencesSetAuthorAndUserStylesEnabled(WKPreferencesRef preferencesRef, bool enabled)
583{
584    toImpl(preferencesRef)->setAuthorAndUserStylesEnabled(enabled);
585}
586
587bool WKPreferencesGetAuthorAndUserStylesEnabled(WKPreferencesRef preferencesRef)
588{
589    return toImpl(preferencesRef)->authorAndUserStylesEnabled();
590}
591
592void WKPreferencesSetShouldPrintBackgrounds(WKPreferencesRef preferencesRef, bool flag)
593{
594    toImpl(preferencesRef)->setShouldPrintBackgrounds(flag);
595}
596
597bool WKPreferencesGetShouldPrintBackgrounds(WKPreferencesRef preferencesRef)
598{
599    return toImpl(preferencesRef)->shouldPrintBackgrounds();
600}
601
602void WKPreferencesSetWebArchiveDebugModeEnabled(WKPreferencesRef preferencesRef, bool enabled)
603{
604    toImpl(preferencesRef)->setWebArchiveDebugModeEnabled(enabled);
605}
606
607bool WKPreferencesGetWebArchiveDebugModeEnabled(WKPreferencesRef preferencesRef)
608{
609    return toImpl(preferencesRef)->webArchiveDebugModeEnabled();
610}
611
612void WKPreferencesSetLocalFileContentSniffingEnabled(WKPreferencesRef preferencesRef, bool enabled)
613{
614    toImpl(preferencesRef)->setLocalFileContentSniffingEnabled(enabled);
615}
616
617bool WKPreferencesGetLocalFileContentSniffingEnabled(WKPreferencesRef preferencesRef)
618{
619    return toImpl(preferencesRef)->localFileContentSniffingEnabled();
620}
621
622void WKPreferencesSetPageCacheEnabled(WKPreferencesRef preferencesRef, bool enabled)
623{
624    toImpl(preferencesRef)->setUsesPageCache(enabled);
625}
626
627bool WKPreferencesGetPageCacheEnabled(WKPreferencesRef preferencesRef)
628{
629    return toImpl(preferencesRef)->usesPageCache();
630}
631
632void WKPreferencesSetPageCacheSupportsPlugins(WKPreferencesRef preferencesRef, bool pageCacheSupportsPlugins)
633{
634    toImpl(preferencesRef)->setPageCacheSupportsPlugins(pageCacheSupportsPlugins);
635}
636
637bool WKPreferencesGetPageCacheSupportsPlugins(WKPreferencesRef preferencesRef)
638{
639    return toImpl(preferencesRef)->pageCacheSupportsPlugins();
640}
641
642void WKPreferencesSetPaginateDuringLayoutEnabled(WKPreferencesRef preferencesRef, bool enabled)
643{
644    toImpl(preferencesRef)->setPaginateDuringLayoutEnabled(enabled);
645}
646
647bool WKPreferencesGetPaginateDuringLayoutEnabled(WKPreferencesRef preferencesRef)
648{
649    return toImpl(preferencesRef)->paginateDuringLayoutEnabled();
650}
651
652void WKPreferencesSetDOMPasteAllowed(WKPreferencesRef preferencesRef, bool enabled)
653{
654    toImpl(preferencesRef)->setDOMPasteAllowed(enabled);
655}
656
657bool WKPreferencesGetDOMPasteAllowed(WKPreferencesRef preferencesRef)
658{
659    return toImpl(preferencesRef)->domPasteAllowed();
660}
661
662void WKPreferencesSetJavaScriptCanAccessClipboard(WKPreferencesRef preferencesRef, bool enabled)
663{
664    toImpl(preferencesRef)->setJavaScriptCanAccessClipboard(enabled);
665}
666
667bool WKPreferencesGetJavaScriptCanAccessClipboard(WKPreferencesRef preferencesRef)
668{
669    return toImpl(preferencesRef)->javaScriptCanAccessClipboard();
670}
671
672void WKPreferencesSetFullScreenEnabled(WKPreferencesRef preferencesRef, bool enabled)
673{
674    toImpl(preferencesRef)->setFullScreenEnabled(enabled);
675}
676
677bool WKPreferencesGetFullScreenEnabled(WKPreferencesRef preferencesRef)
678{
679    return toImpl(preferencesRef)->fullScreenEnabled();
680}
681
682void WKPreferencesSetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef, bool enabled)
683{
684    toImpl(preferencesRef)->setAsynchronousSpellCheckingEnabled(enabled);
685}
686
687bool WKPreferencesGetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef)
688{
689    return toImpl(preferencesRef)->asynchronousSpellCheckingEnabled();
690}
691
692void WKPreferencesSetAVFoundationEnabled(WKPreferencesRef preferencesRef, bool enabled)
693{
694    toImpl(preferencesRef)->setAVFoundationEnabled(enabled);
695}
696
697bool WKPreferencesGetAVFoundationEnabled(WKPreferencesRef preferencesRef)
698{
699    return toImpl(preferencesRef)->isAVFoundationEnabled();
700}
701
702void WKPreferencesSetWebSecurityEnabled(WKPreferencesRef preferencesRef, bool enabled)
703{
704    toImpl(preferencesRef)->setWebSecurityEnabled(enabled);
705}
706
707bool WKPreferencesGetWebSecurityEnabled(WKPreferencesRef preferencesRef)
708{
709    return toImpl(preferencesRef)->webSecurityEnabled();
710}
711
712void WKPreferencesSetUniversalAccessFromFileURLsAllowed(WKPreferencesRef preferencesRef, bool allowed)
713{
714    toImpl(preferencesRef)->setAllowUniversalAccessFromFileURLs(allowed);
715}
716
717bool WKPreferencesGetUniversalAccessFromFileURLsAllowed(WKPreferencesRef preferencesRef)
718{
719    return toImpl(preferencesRef)->allowUniversalAccessFromFileURLs();
720}
721
722void WKPreferencesSetFileAccessFromFileURLsAllowed(WKPreferencesRef preferencesRef, bool allowed)
723{
724    toImpl(preferencesRef)->setAllowFileAccessFromFileURLs(allowed);
725}
726
727bool WKPreferencesGetFileAccessFromFileURLsAllowed(WKPreferencesRef preferencesRef)
728{
729    return toImpl(preferencesRef)->allowFileAccessFromFileURLs();
730}
731
732void WKPreferencesSetHixie76WebSocketProtocolEnabled(WKPreferencesRef, bool /*enabled*/)
733{
734}
735
736bool WKPreferencesGetHixie76WebSocketProtocolEnabled(WKPreferencesRef)
737{
738    return false;
739}
740
741void WKPreferencesSetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag)
742{
743    toImpl(preferencesRef)->setMediaPlaybackRequiresUserGesture(flag);
744}
745
746bool WKPreferencesGetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef)
747{
748    return toImpl(preferencesRef)->mediaPlaybackRequiresUserGesture();
749}
750
751void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag)
752{
753    toImpl(preferencesRef)->setMediaPlaybackAllowsInline(flag);
754}
755
756bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef)
757{
758    return toImpl(preferencesRef)->mediaPlaybackAllowsInline();
759}
760
761void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag)
762{
763    toImpl(preferencesRef)->setShowsToolTipOverTruncatedText(flag);
764}
765
766bool WKPreferencesGetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef)
767{
768    return toImpl(preferencesRef)->showsToolTipOverTruncatedText();
769}
770
771void WKPreferencesSetMockScrollbarsEnabled(WKPreferencesRef preferencesRef, bool flag)
772{
773    toImpl(preferencesRef)->setMockScrollbarsEnabled(flag);
774}
775
776bool WKPreferencesGetMockScrollbarsEnabled(WKPreferencesRef preferencesRef)
777{
778    return toImpl(preferencesRef)->mockScrollbarsEnabled();
779}
780
781void WKPreferencesSetWebAudioEnabled(WKPreferencesRef preferencesRef, bool enabled)
782{
783    toImpl(preferencesRef)->setWebAudioEnabled(enabled);
784}
785
786bool WKPreferencesGetWebAudioEnabled(WKPreferencesRef preferencesRef)
787{
788    return toImpl(preferencesRef)->webAudioEnabled();
789}
790
791void WKPreferencesSetApplicationChromeModeEnabled(WKPreferencesRef preferencesRef, bool enabled)
792{
793    toImpl(preferencesRef)->setApplicationChromeModeEnabled(enabled);
794}
795
796bool WKPreferencesGetApplicationChromeModeEnabled(WKPreferencesRef preferencesRef)
797{
798    return toImpl(preferencesRef)->applicationChromeMode();
799}
800
801void WKPreferencesSetInspectorUsesWebKitUserInterface(WKPreferencesRef preferencesRef, bool enabled)
802{
803    toImpl(preferencesRef)->setInspectorUsesWebKitUserInterface(enabled);
804}
805
806bool WKPreferencesGetInspectorUsesWebKitUserInterface(WKPreferencesRef preferencesRef)
807{
808    return toImpl(preferencesRef)->inspectorUsesWebKitUserInterface();
809}
810
811void WKPreferencesSetSuppressesIncrementalRendering(WKPreferencesRef preferencesRef, bool enabled)
812{
813    toImpl(preferencesRef)->setSuppressesIncrementalRendering(enabled);
814}
815
816bool WKPreferencesGetSuppressesIncrementalRendering(WKPreferencesRef preferencesRef)
817{
818    return toImpl(preferencesRef)->suppressesIncrementalRendering();
819}
820
821void WKPreferencesSetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled)
822{
823    toImpl(preferencesRef)->setBackspaceKeyNavigationEnabled(enabled);
824}
825
826bool WKPreferencesGetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef)
827{
828    return toImpl(preferencesRef)->backspaceKeyNavigationEnabled();
829}
830
831void WKPreferencesSetCaretBrowsingEnabled(WKPreferencesRef preferencesRef, bool enabled)
832{
833    toImpl(preferencesRef)->setCaretBrowsingEnabled(enabled);
834}
835
836bool WKPreferencesGetCaretBrowsingEnabled(WKPreferencesRef preferencesRef)
837{
838    return toImpl(preferencesRef)->caretBrowsingEnabled();
839}
840
841void WKPreferencesSetShouldDisplaySubtitles(WKPreferencesRef preferencesRef, bool enabled)
842{
843    toImpl(preferencesRef)->setShouldDisplaySubtitles(enabled);
844}
845
846bool WKPreferencesGetShouldDisplaySubtitles(WKPreferencesRef preferencesRef)
847{
848    return toImpl(preferencesRef)->shouldDisplaySubtitles();
849}
850
851void WKPreferencesSetShouldDisplayCaptions(WKPreferencesRef preferencesRef, bool enabled)
852{
853    toImpl(preferencesRef)->setShouldDisplayCaptions(enabled);
854}
855
856bool WKPreferencesGetShouldDisplayCaptions(WKPreferencesRef preferencesRef)
857{
858    return toImpl(preferencesRef)->shouldDisplayCaptions();
859}
860
861void WKPreferencesSetShouldDisplayTextDescriptions(WKPreferencesRef preferencesRef, bool enabled)
862{
863    toImpl(preferencesRef)->setShouldDisplayTextDescriptions(enabled);
864}
865
866bool WKPreferencesGetShouldDisplayTextDescriptions(WKPreferencesRef preferencesRef)
867{
868    return toImpl(preferencesRef)->shouldDisplayTextDescriptions();
869}
870
871void WKPreferencesSetNotificationsEnabled(WKPreferencesRef preferencesRef, bool enabled)
872{
873    toImpl(preferencesRef)->setNotificationsEnabled(enabled);
874}
875
876bool WKPreferencesGetNotificationsEnabled(WKPreferencesRef preferencesRef)
877{
878    return toImpl(preferencesRef)->notificationsEnabled();
879}
880
881void WKPreferencesSetShouldRespectImageOrientation(WKPreferencesRef preferencesRef, bool enabled)
882{
883    toImpl(preferencesRef)->setShouldRespectImageOrientation(enabled);
884}
885
886bool WKPreferencesGetShouldRespectImageOrientation(WKPreferencesRef preferencesRef)
887{
888    return toImpl(preferencesRef)->shouldRespectImageOrientation();
889}
890
891void WKPreferencesSetRequestAnimationFrameEnabled(WKPreferencesRef preferencesRef, bool flag)
892{
893    toImpl(preferencesRef)->setRequestAnimationFrameEnabled(flag);
894}
895
896bool WKPreferencesGetRequestAnimationFrameEnabled(WKPreferencesRef preferencesRef)
897{
898    return toImpl(preferencesRef)->requestAnimationFrameEnabled();
899}
900
901void WKPreferencesSetStorageBlockingPolicy(WKPreferencesRef preferencesRef, WKStorageBlockingPolicy policy)
902{
903    toImpl(preferencesRef)->setStorageBlockingPolicy(toStorageBlockingPolicy(policy));
904}
905
906WKStorageBlockingPolicy WKPreferencesGetStorageBlockingPolicy(WKPreferencesRef preferencesRef)
907{
908    return toAPI(static_cast<WebCore::SecurityOrigin::StorageBlockingPolicy>(toImpl(preferencesRef)->storageBlockingPolicy()));
909}
910
911void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef)
912{
913    // Currently we reset the overrides on the web process when preferencesDidChange() is called. Since WTR preferences
914    // are usually always the same (in the UI process), they are not sent to web process, not triggering the reset.
915    toImpl(preferencesRef)->forceUpdate();
916}
917
918void WKPreferencesSetDiagnosticLoggingEnabled(WKPreferencesRef preferencesRef, bool enabled)
919{
920    toImpl(preferencesRef)->setDiagnosticLoggingEnabled(enabled);
921}
922
923bool WKPreferencesGetDiagnosticLoggingEnabled(WKPreferencesRef preferencesRef)
924{
925    return toImpl(preferencesRef)->diagnosticLoggingEnabled();
926}
927
928void WKPreferencesSetAsynchronousPluginInitializationEnabled(WKPreferencesRef preferencesRef, bool enabled)
929{
930    toImpl(preferencesRef)->setAsynchronousPluginInitializationEnabled(enabled);
931}
932
933bool WKPreferencesGetAsynchronousPluginInitializationEnabled(WKPreferencesRef preferencesRef)
934{
935    return toImpl(preferencesRef)->asynchronousPluginInitializationEnabled();
936}
937
938void WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins(WKPreferencesRef preferencesRef, bool enabled)
939{
940    toImpl(preferencesRef)->setAsynchronousPluginInitializationEnabledForAllPlugins(enabled);
941}
942
943bool WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins(WKPreferencesRef preferencesRef)
944{
945    return toImpl(preferencesRef)->asynchronousPluginInitializationEnabledForAllPlugins();
946}
947
948void WKPreferencesSetArtificialPluginInitializationDelayEnabled(WKPreferencesRef preferencesRef, bool enabled)
949{
950    toImpl(preferencesRef)->setArtificialPluginInitializationDelayEnabled(enabled);
951}
952
953bool WKPreferencesGetArtificialPluginInitializationDelayEnabled(WKPreferencesRef preferencesRef)
954{
955    return toImpl(preferencesRef)->artificialPluginInitializationDelayEnabled();
956}
957
958void WKPreferencesSetTabToLinksEnabled(WKPreferencesRef preferencesRef, bool enabled)
959{
960    toImpl(preferencesRef)->setTabToLinksEnabled(enabled);
961}
962
963bool WKPreferencesGetTabToLinksEnabled(WKPreferencesRef preferencesRef)
964{
965    return toImpl(preferencesRef)->tabToLinksEnabled();
966}
967
968void WKPreferencesSetInteractiveFormValidationEnabled(WKPreferencesRef preferencesRef, bool enabled)
969{
970    toImpl(preferencesRef)->setInteractiveFormValidationEnabled(enabled);
971}
972
973bool WKPreferencesGetInteractiveFormValidationEnabled(WKPreferencesRef preferencesRef)
974{
975    return toImpl(preferencesRef)->interactiveFormValidationEnabled();
976}
977
978void WKPreferencesSetScrollingPerformanceLoggingEnabled(WKPreferencesRef preferencesRef, bool enabled)
979{
980    toImpl(preferencesRef)->setScrollingPerformanceLoggingEnabled(enabled);
981}
982
983bool WKPreferencesGetScrollingPerformanceLoggingEnabled(WKPreferencesRef preferencesRef)
984{
985    return toImpl(preferencesRef)->scrollingPerformanceLoggingEnabled();
986}
987
988void WKPreferencesSetPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef, bool enabled)
989{
990    toImpl(preferencesRef)->setPlugInSnapshottingEnabled(enabled);
991}
992
993bool WKPreferencesGetPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef)
994{
995    return toImpl(preferencesRef)->plugInSnapshottingEnabled();
996}
997
998void WKPreferencesSetSnapshotAllPlugIns(WKPreferencesRef preferencesRef, bool enabled)
999{
1000    toImpl(preferencesRef)->setSnapshotAllPlugIns(enabled);
1001}
1002
1003bool WKPreferencesGetSnapshotAllPlugIns(WKPreferencesRef preferencesRef)
1004{
1005    return toImpl(preferencesRef)->snapshotAllPlugIns();
1006}
1007
1008void WKPreferencesSetAutostartOriginPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef, bool enabled)
1009{
1010    toImpl(preferencesRef)->setAutostartOriginPlugInSnapshottingEnabled(enabled);
1011}
1012
1013bool WKPreferencesGetAutostartOriginPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef)
1014{
1015    return toImpl(preferencesRef)->autostartOriginPlugInSnapshottingEnabled();
1016}
1017
1018void WKPreferencesSetPrimaryPlugInSnapshotDetectionEnabled(WKPreferencesRef preferencesRef, bool enabled)
1019{
1020    toImpl(preferencesRef)->setPrimaryPlugInSnapshotDetectionEnabled(enabled);
1021}
1022
1023bool WKPreferencesGetPrimaryPlugInSnapshotDetectionEnabled(WKPreferencesRef preferencesRef)
1024{
1025    return toImpl(preferencesRef)->primaryPlugInSnapshotDetectionEnabled();
1026}
1027
1028void WKPreferencesSetPDFPluginEnabled(WKPreferencesRef preferencesRef, bool enabled)
1029{
1030    toImpl(preferencesRef)->setPDFPluginEnabled(enabled);
1031}
1032
1033bool WKPreferencesGetPDFPluginEnabled(WKPreferencesRef preferencesRef)
1034{
1035    return toImpl(preferencesRef)->pdfPluginEnabled();
1036}
1037
1038void WKPreferencesSetEncodingDetectorEnabled(WKPreferencesRef preferencesRef, bool enabled)
1039{
1040    toImpl(preferencesRef)->setUsesEncodingDetector(enabled);
1041}
1042
1043bool WKPreferencesGetEncodingDetectorEnabled(WKPreferencesRef preferencesRef)
1044{
1045    return toImpl(preferencesRef)->usesEncodingDetector();
1046}
1047
1048void WKPreferencesSetTextAutosizingEnabled(WKPreferencesRef preferencesRef, bool textAutosizingEnabled)
1049{
1050    toImpl(preferencesRef)->setTextAutosizingEnabled(textAutosizingEnabled);
1051}
1052
1053bool WKPreferencesGetTextAutosizingEnabled(WKPreferencesRef preferencesRef)
1054{
1055    return toImpl(preferencesRef)->textAutosizingEnabled();
1056}
1057
1058void WKPreferencesSetAggressiveTileRetentionEnabled(WKPreferencesRef preferencesRef, bool enabled)
1059{
1060    toImpl(preferencesRef)->setAggressiveTileRetentionEnabled(enabled);
1061}
1062
1063bool WKPreferencesGetAggressiveTileRetentionEnabled(WKPreferencesRef preferencesRef)
1064{
1065    return toImpl(preferencesRef)->aggressiveTileRetentionEnabled();
1066}
1067
1068void WKPreferencesSetQTKitEnabled(WKPreferencesRef preferencesRef, bool enabled)
1069{
1070    toImpl(preferencesRef)->setQTKitEnabled(enabled);
1071}
1072
1073bool WKPreferencesGetQTKitEnabled(WKPreferencesRef preferencesRef)
1074{
1075    return toImpl(preferencesRef)->isQTKitEnabled();
1076}
1077
1078void WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled(WKPreferencesRef preferencesRef, bool enabled)
1079{
1080    toImpl(preferencesRef)->setLogsPageMessagesToSystemConsoleEnabled(enabled);
1081}
1082
1083bool WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled(WKPreferencesRef preferencesRef)
1084{
1085    return toImpl(preferencesRef)->logsPageMessagesToSystemConsoleEnabled();
1086}
1087
1088void WKPreferencesSetPageVisibilityBasedProcessSuppressionEnabled(WKPreferencesRef preferencesRef, bool enabled)
1089{
1090    toImpl(preferencesRef)->setPageVisibilityBasedProcessSuppressionEnabled(enabled);
1091}
1092
1093bool WKPreferencesGetPageVisibilityBasedProcessSuppressionEnabled(WKPreferencesRef preferencesRef)
1094{
1095    return toImpl(preferencesRef)->pageVisibilityBasedProcessSuppressionEnabled();
1096}
1097
1098void WKPreferencesSetSmartInsertDeleteEnabled(WKPreferencesRef preferencesRef, bool enabled)
1099{
1100    toImpl(preferencesRef)->setSmartInsertDeleteEnabled(enabled);
1101}
1102
1103bool WKPreferencesGetSmartInsertDeleteEnabled(WKPreferencesRef preferencesRef)
1104{
1105    return toImpl(preferencesRef)->smartInsertDeleteEnabled();
1106}
1107
1108void WKPreferencesSetSelectTrailingWhitespaceEnabled(WKPreferencesRef preferencesRef, bool enabled)
1109{
1110    toImpl(preferencesRef)->setSelectTrailingWhitespaceEnabled(enabled);
1111}
1112
1113bool WKPreferencesGetSelectTrailingWhitespaceEnabled(WKPreferencesRef preferencesRef)
1114{
1115    return toImpl(preferencesRef)->selectTrailingWhitespaceEnabled();
1116}
1117
1118void WKPreferencesSetShowsURLsInToolTipsEnabled(WKPreferencesRef preferencesRef, bool enabled)
1119{
1120    toImpl(preferencesRef)->setShowsURLsInToolTipsEnabled(enabled);
1121}
1122
1123bool WKPreferencesGetShowsURLsInToolTipsEnabled(WKPreferencesRef preferencesRef)
1124{
1125    return toImpl(preferencesRef)->showsURLsInToolTipsEnabled();
1126}
1127
1128void WKPreferencesSetHiddenPageDOMTimerThrottlingEnabled(WKPreferencesRef preferencesRef, bool enabled)
1129{
1130    toImpl(preferencesRef)->setHiddenPageDOMTimerThrottlingEnabled(enabled);
1131}
1132
1133bool WKPreferencesGetHiddenPageDOMTimerThrottlingEnabled(WKPreferencesRef preferencesRef)
1134{
1135    return toImpl(preferencesRef)->hiddenPageDOMTimerThrottlingEnabled();
1136}
1137
1138void WKPreferencesSetHiddenPageCSSAnimationSuspensionEnabled(WKPreferencesRef preferencesRef, bool enabled)
1139{
1140    toImpl(preferencesRef)->setHiddenPageCSSAnimationSuspensionEnabled(enabled);
1141}
1142
1143bool WKPreferencesGetHiddenPageCSSAnimationSuspensionEnabled(WKPreferencesRef preferencesRef)
1144{
1145    return toImpl(preferencesRef)->hiddenPageCSSAnimationSuspensionEnabled();
1146}
1147
1148void WKPreferencesSetIncrementalRenderingSuppressionTimeout(WKPreferencesRef preferencesRef, double timeout)
1149{
1150    toImpl(preferencesRef)->setIncrementalRenderingSuppressionTimeout(timeout);
1151}
1152
1153double WKPreferencesGetIncrementalRenderingSuppressionTimeout(WKPreferencesRef preferencesRef)
1154{
1155    return toAPI(toImpl(preferencesRef)->incrementalRenderingSuppressionTimeout());
1156}
1157
1158void WKPreferencesSetEnableInheritURIQueryComponent(WKPreferencesRef preferencesRef, bool enabled)
1159{
1160    toImpl(preferencesRef)->setEnableInheritURIQueryComponent(enabled);
1161}
1162
1163bool WKPreferencesGetEnableInheritURIQueryComponent(WKPreferencesRef preferencesRef)
1164{
1165    return toImpl(preferencesRef)->enableInheritURIQueryComponent();
1166}
1167