[Release] Webkit2-efl-123997_0.11.86
[framework/web/webkit-efl.git] / Source / WebKit / win / WebPreferences.h
1 /*
2  * Copyright (C) 2006, 2007, 2008, 2009 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 COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 #ifndef WebPreferences_H
27 #define WebPreferences_H
28
29 #include "WebKit.h"
30 #include <CoreFoundation/CoreFoundation.h>
31 #include <WebCore/BString.h>
32 #include <wtf/RetainPtr.h>
33
34 class WebPreferences : public IWebPreferences, public IWebPreferencesPrivate {
35 public:
36     static WebPreferences* createInstance();
37 protected:
38     WebPreferences();
39     ~WebPreferences();
40
41 public:
42     // IUnknown
43     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
44     virtual ULONG STDMETHODCALLTYPE AddRef(void);
45     virtual ULONG STDMETHODCALLTYPE Release(void);
46
47     // IWebPreferences
48     virtual HRESULT STDMETHODCALLTYPE standardPreferences( 
49         /* [retval][out] */ IWebPreferences** standardPreferences);
50     
51     virtual HRESULT STDMETHODCALLTYPE initWithIdentifier( 
52         /* [in] */ BSTR anIdentifier,
53         /* [retval][out] */ IWebPreferences** preferences);
54     
55     virtual HRESULT STDMETHODCALLTYPE identifier( 
56         /* [retval][out] */ BSTR* ident);
57     
58     virtual HRESULT STDMETHODCALLTYPE standardFontFamily( 
59         /* [retval][out] */ BSTR* family);
60     
61     virtual HRESULT STDMETHODCALLTYPE setStandardFontFamily( 
62         /* [in] */ BSTR family);
63     
64     virtual HRESULT STDMETHODCALLTYPE fixedFontFamily( 
65         /* [retval][out] */ BSTR* family);
66     
67     virtual HRESULT STDMETHODCALLTYPE setFixedFontFamily( 
68         /* [in] */ BSTR family);
69     
70     virtual HRESULT STDMETHODCALLTYPE serifFontFamily( 
71         /* [retval][out] */ BSTR* fontFamily);
72     
73     virtual HRESULT STDMETHODCALLTYPE setSerifFontFamily( 
74         /* [in] */ BSTR family);
75     
76     virtual HRESULT STDMETHODCALLTYPE sansSerifFontFamily( 
77         /* [retval][out] */ BSTR* family);
78     
79     virtual HRESULT STDMETHODCALLTYPE setSansSerifFontFamily( 
80         /* [in] */ BSTR family);
81     
82     virtual HRESULT STDMETHODCALLTYPE cursiveFontFamily( 
83         /* [retval][out] */ BSTR* family);
84     
85     virtual HRESULT STDMETHODCALLTYPE setCursiveFontFamily( 
86         /* [in] */ BSTR family);
87     
88     virtual HRESULT STDMETHODCALLTYPE fantasyFontFamily( 
89         /* [retval][out] */ BSTR* family);
90     
91     virtual HRESULT STDMETHODCALLTYPE setFantasyFontFamily( 
92         /* [in] */ BSTR family);
93     
94     virtual HRESULT STDMETHODCALLTYPE pictographFontFamily( 
95         /* [retval][out] */ BSTR* family);
96     
97     virtual HRESULT STDMETHODCALLTYPE setPictographFontFamily( 
98         /* [in] */ BSTR family);
99     
100     virtual HRESULT STDMETHODCALLTYPE defaultFontSize( 
101         /* [retval][out] */ int* fontSize);
102     
103     virtual HRESULT STDMETHODCALLTYPE setDefaultFontSize( 
104         /* [in] */ int fontSize);
105     
106     virtual HRESULT STDMETHODCALLTYPE defaultFixedFontSize( 
107         /* [retval][out] */ int* fontSize);
108     
109     virtual HRESULT STDMETHODCALLTYPE setDefaultFixedFontSize( 
110         /* [in] */ int fontSize);
111     
112     virtual HRESULT STDMETHODCALLTYPE minimumFontSize( 
113         /* [retval][out] */ int* fontSize);
114     
115     virtual HRESULT STDMETHODCALLTYPE setMinimumFontSize( 
116         /* [in] */ int fontSize);
117     
118     virtual HRESULT STDMETHODCALLTYPE minimumLogicalFontSize( 
119         /* [retval][out] */ int* fontSize);
120     
121     virtual HRESULT STDMETHODCALLTYPE setMinimumLogicalFontSize( 
122         /* [in] */ int fontSize);
123     
124     virtual HRESULT STDMETHODCALLTYPE defaultTextEncodingName( 
125         /* [retval][out] */ BSTR* name);
126     
127     virtual HRESULT STDMETHODCALLTYPE setDefaultTextEncodingName( 
128         /* [in] */ BSTR name);
129     
130     virtual HRESULT STDMETHODCALLTYPE userStyleSheetEnabled( 
131         /* [retval][out] */ BOOL* enabled);
132     
133     virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetEnabled( 
134         /* [in] */ BOOL enabled);
135     
136     virtual HRESULT STDMETHODCALLTYPE userStyleSheetLocation( 
137         /* [retval][out] */ BSTR* location);
138     
139     virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetLocation( 
140         /* [in] */ BSTR location);
141     
142     virtual HRESULT STDMETHODCALLTYPE isJavaEnabled( 
143         /* [retval][out] */ BOOL* enabled);
144     
145     virtual HRESULT STDMETHODCALLTYPE setJavaEnabled( 
146         /* [in] */ BOOL enabled);
147     
148     virtual HRESULT STDMETHODCALLTYPE isJavaScriptEnabled( 
149         /* [retval][out] */ BOOL* enabled);
150     
151     virtual HRESULT STDMETHODCALLTYPE setJavaScriptEnabled( 
152         /* [in] */ BOOL enabled);
153     
154     virtual HRESULT STDMETHODCALLTYPE javaScriptCanOpenWindowsAutomatically( 
155         /* [retval][out] */ BOOL* enabled);
156     
157     virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanOpenWindowsAutomatically( 
158         /* [in] */ BOOL enabled);
159     
160     virtual HRESULT STDMETHODCALLTYPE arePlugInsEnabled( 
161         /* [retval][out] */ BOOL* enabled);
162     
163     virtual HRESULT STDMETHODCALLTYPE setPlugInsEnabled( 
164         /* [in] */ BOOL enabled);
165
166     virtual HRESULT STDMETHODCALLTYPE isCSSRegionsEnabled(
167         /* [retval][out] */ BOOL* enabled);
168     
169     virtual HRESULT STDMETHODCALLTYPE setCSSRegionsEnabled(
170         /* [in] */ BOOL);
171     
172     virtual HRESULT STDMETHODCALLTYPE allowsAnimatedImages( 
173         /* [retval][out] */ BOOL* enabled);
174     
175     virtual HRESULT STDMETHODCALLTYPE setAllowsAnimatedImages( 
176         /* [in] */ BOOL enabled);
177     
178     virtual HRESULT STDMETHODCALLTYPE allowAnimatedImageLooping( 
179         /* [retval][out] */ BOOL* enabled);
180     
181     virtual HRESULT STDMETHODCALLTYPE setAllowAnimatedImageLooping( 
182         /* [in] */ BOOL enabled);
183     
184     virtual HRESULT STDMETHODCALLTYPE setLoadsImagesAutomatically( 
185         /* [in] */ BOOL enabled);
186     
187     virtual HRESULT STDMETHODCALLTYPE loadsImagesAutomatically( 
188         /* [retval][out] */ BOOL* enabled);
189     
190     virtual HRESULT STDMETHODCALLTYPE setAutosaves( 
191         /* [in] */ BOOL enabled);
192     
193     virtual HRESULT STDMETHODCALLTYPE autosaves( 
194         /* [retval][out] */ BOOL* enabled);
195     
196     virtual HRESULT STDMETHODCALLTYPE setShouldPrintBackgrounds( 
197         /* [in] */ BOOL enabled);
198     
199     virtual HRESULT STDMETHODCALLTYPE shouldPrintBackgrounds( 
200         /* [retval][out] */ BOOL* enabled);
201     
202     virtual HRESULT STDMETHODCALLTYPE setPrivateBrowsingEnabled( 
203         /* [in] */ BOOL enabled);
204     
205     virtual HRESULT STDMETHODCALLTYPE privateBrowsingEnabled( 
206         /* [retval][out] */ BOOL* enabled);
207     
208     virtual HRESULT STDMETHODCALLTYPE setTabsToLinks( 
209         /* [in] */ BOOL enabled);
210     
211     virtual HRESULT STDMETHODCALLTYPE tabsToLinks( 
212         /* [retval][out] */ BOOL* enabled);
213
214     virtual HRESULT STDMETHODCALLTYPE textAreasAreResizable( 
215         /* [retval][out] */ BOOL *enabled);
216     
217     virtual HRESULT STDMETHODCALLTYPE setTextAreasAreResizable( 
218         /* [in] */ BOOL enabled);
219
220     virtual HRESULT STDMETHODCALLTYPE usesPageCache( 
221         /* [retval][out] */ BOOL *usesPageCache);
222
223     virtual HRESULT STDMETHODCALLTYPE setUsesPageCache( 
224         /* [in] */ BOOL usesPageCache);
225
226     virtual HRESULT STDMETHODCALLTYPE unused1();
227     virtual HRESULT STDMETHODCALLTYPE unused2();
228
229     virtual HRESULT STDMETHODCALLTYPE iconDatabaseLocation(
230         /* [retval][out] */ BSTR* location);
231
232     virtual HRESULT STDMETHODCALLTYPE setIconDatabaseLocation(
233         /* [in] */ BSTR location);
234
235     virtual HRESULT STDMETHODCALLTYPE iconDatabaseEnabled(
236         /* [retval][out] */ BOOL* enabled);
237
238     virtual HRESULT STDMETHODCALLTYPE setIconDatabaseEnabled(
239         /* [in] */ BOOL enabled);
240
241     virtual HRESULT STDMETHODCALLTYPE fontSmoothing( 
242         /* [retval][out] */ FontSmoothingType* smoothingType);
243     
244     virtual HRESULT STDMETHODCALLTYPE setFontSmoothing( 
245         /* [in] */ FontSmoothingType smoothingType);
246
247     virtual HRESULT STDMETHODCALLTYPE editableLinkBehavior( 
248         /* [retval][out] */ WebKitEditableLinkBehavior* behavior);
249     
250     virtual HRESULT STDMETHODCALLTYPE setEditableLinkBehavior( 
251         /* [in] */ WebKitEditableLinkBehavior behavior);
252
253     virtual HRESULT STDMETHODCALLTYPE unused5();
254     virtual HRESULT STDMETHODCALLTYPE unused6();
255
256     virtual HRESULT STDMETHODCALLTYPE cookieStorageAcceptPolicy( 
257         /* [retval][out] */ WebKitCookieStorageAcceptPolicy *acceptPolicy);
258         
259     virtual HRESULT STDMETHODCALLTYPE setCookieStorageAcceptPolicy( 
260         /* [in] */ WebKitCookieStorageAcceptPolicy acceptPolicy);
261
262     virtual HRESULT STDMETHODCALLTYPE continuousSpellCheckingEnabled( 
263         /* [retval][out] */ BOOL *enabled);
264     
265     virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled( 
266         /* [in] */ BOOL enabled);
267     
268     virtual HRESULT STDMETHODCALLTYPE grammarCheckingEnabled( 
269         /* [retval][out] */ BOOL *enabled);
270     
271     virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled( 
272         /* [in] */ BOOL enabled);
273
274     virtual HRESULT STDMETHODCALLTYPE allowContinuousSpellChecking( 
275         /* [retval][out] */ BOOL *enabled);
276     
277     virtual HRESULT STDMETHODCALLTYPE setAllowContinuousSpellChecking( 
278         /* [in] */ BOOL enabled);
279
280     virtual HRESULT STDMETHODCALLTYPE isDOMPasteAllowed( 
281         /* [retval][out] */ BOOL *enabled);
282     
283     virtual HRESULT STDMETHODCALLTYPE setDOMPasteAllowed( 
284         /* [in] */ BOOL enabled);
285
286     virtual HRESULT STDMETHODCALLTYPE cacheModel(
287      /* [retval][out] */ WebCacheModel* cacheModel);
288
289     virtual HRESULT STDMETHODCALLTYPE setCacheModel(
290      /* [in] */ WebCacheModel cacheModel);
291
292     virtual HRESULT STDMETHODCALLTYPE unused3();
293     virtual HRESULT STDMETHODCALLTYPE unused4();
294
295     virtual HRESULT STDMETHODCALLTYPE setAVFoundationEnabled(
296     /* [in] */ BOOL);
297
298     virtual HRESULT STDMETHODCALLTYPE avFoundationEnabled(
299     /* [retval][out] */ BOOL*);
300
301     virtual HRESULT STDMETHODCALLTYPE setShouldDisplaySubtitles(
302     /* [in] */ BOOL);
303
304     virtual HRESULT STDMETHODCALLTYPE shouldDisplaySubtitles(
305     /* [retval][out] */ BOOL*);
306
307     virtual HRESULT STDMETHODCALLTYPE setShouldDisplayCaptions(
308     /* [in] */ BOOL);
309
310     virtual HRESULT STDMETHODCALLTYPE shouldDisplayCaptions(
311     /* [retval][out] */ BOOL*);
312
313     virtual HRESULT STDMETHODCALLTYPE setShouldDisplayTextDescriptions(
314     /* [in] */ BOOL);
315
316     virtual HRESULT STDMETHODCALLTYPE shouldDisplayTextDescriptions(
317     /* [retval][out] */ BOOL*);
318
319     // IWebPreferencesPrivate
320     virtual HRESULT STDMETHODCALLTYPE setDeveloperExtrasEnabled(
321         /* [in] */ BOOL);
322
323     virtual HRESULT STDMETHODCALLTYPE developerExtrasEnabled(
324         /* [retval][out] */ BOOL*);
325
326      virtual HRESULT STDMETHODCALLTYPE setAutomaticallyDetectsCacheModel(
327          /* [in] */ BOOL automaticallyDetectsCacheModel);
328
329      virtual HRESULT STDMETHODCALLTYPE automaticallyDetectsCacheModel(
330          /* [out, retval] */ BOOL* automaticallyDetectsCacheModel);
331
332     virtual HRESULT STDMETHODCALLTYPE setAuthorAndUserStylesEnabled(BOOL);
333     virtual HRESULT STDMETHODCALLTYPE authorAndUserStylesEnabled(BOOL*);
334
335     virtual HRESULT STDMETHODCALLTYPE inApplicationChromeMode( 
336         /* [retval][out] */ BOOL *enabled);
337     
338     virtual HRESULT STDMETHODCALLTYPE setApplicationChromeMode( 
339         /* [in] */ BOOL enabled);
340
341     virtual HRESULT STDMETHODCALLTYPE setOfflineWebApplicationCacheEnabled( 
342         /* [in] */ BOOL enabled);
343         
344     virtual HRESULT STDMETHODCALLTYPE offlineWebApplicationCacheEnabled( 
345         /* [retval][out] */ BOOL *enabled);
346
347     virtual HRESULT STDMETHODCALLTYPE setDatabasesEnabled( 
348         /* [in] */ BOOL enabled);
349         
350     virtual HRESULT STDMETHODCALLTYPE databasesEnabled( 
351         /* [retval][out] */ BOOL *enabled);
352
353     virtual HRESULT STDMETHODCALLTYPE setLocalStorageEnabled( 
354         /* [in] */ BOOL enabled);
355         
356     virtual HRESULT STDMETHODCALLTYPE localStorageEnabled( 
357         /* [retval][out] */ BOOL *enabled);
358
359     virtual HRESULT STDMETHODCALLTYPE localStorageDatabasePath(
360         /* [out, retval] */ BSTR* location);
361
362     virtual HRESULT STDMETHODCALLTYPE setLocalStorageDatabasePath(
363         /* [in] */ BSTR location);
364
365     virtual HRESULT STDMETHODCALLTYPE experimentalNotificationsEnabled(
366         /* [retval][out] */ BOOL *enabled);
367
368     virtual HRESULT STDMETHODCALLTYPE setExperimentalNotificationsEnabled(
369         /* [in] */ BOOL enabled);
370
371     virtual HRESULT STDMETHODCALLTYPE setShouldPaintNativeControls( 
372     /* [in] */ BOOL shouldPaint);
373
374     virtual HRESULT STDMETHODCALLTYPE shouldPaintNativeControls( 
375     /* [retval][out] */ BOOL *shouldPaint);
376
377     virtual HRESULT STDMETHODCALLTYPE setZoomsTextOnly( 
378     /* [retval][out] */ BOOL zoomsTextOnly);
379
380     virtual HRESULT STDMETHODCALLTYPE zoomsTextOnly( 
381     /* [retval][out] */ BOOL *zoomsTextOnly);
382
383     virtual HRESULT STDMETHODCALLTYPE fontSmoothingContrast( 
384     /* [retval][out] */ float* contrast);
385
386     virtual HRESULT STDMETHODCALLTYPE setFontSmoothingContrast( 
387     /* [in] */ float contrast);
388
389     virtual HRESULT STDMETHODCALLTYPE isWebSecurityEnabled(
390     /* [retval][out] */ BOOL* enabled);
391
392     virtual HRESULT STDMETHODCALLTYPE setWebSecurityEnabled(
393     /* [in] */ BOOL enabled);
394
395     virtual HRESULT STDMETHODCALLTYPE allowUniversalAccessFromFileURLs(
396     /* [retval][out] */ BOOL* allowAccess);
397
398     virtual HRESULT STDMETHODCALLTYPE setAllowUniversalAccessFromFileURLs(
399     /* [in] */ BOOL allowAccess);
400
401     virtual HRESULT STDMETHODCALLTYPE allowFileAccessFromFileURLs(
402     /* [retval][out] */ BOOL* allowAccess);
403
404     virtual HRESULT STDMETHODCALLTYPE setAllowFileAccessFromFileURLs(
405     /* [in] */ BOOL allowAccess);
406
407     virtual HRESULT STDMETHODCALLTYPE javaScriptCanAccessClipboard(
408     /* [retval][out] */ BOOL* enabled);
409
410     virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanAccessClipboard(
411     /* [in] */ BOOL enabled);
412
413     virtual HRESULT STDMETHODCALLTYPE isXSSAuditorEnabled(
414     /* [retval][out] */ BOOL* enabled);
415
416     virtual HRESULT STDMETHODCALLTYPE setXSSAuditorEnabled(
417     /* [in] */ BOOL enabled);
418
419     virtual HRESULT STDMETHODCALLTYPE setShouldUseHighResolutionTimers(
420     /* [in] */ BOOL useHighResolutionTimers);
421
422     virtual HRESULT STDMETHODCALLTYPE shouldUseHighResolutionTimers(
423     /* [retval][out] */ BOOL* useHighResolutionTimers);
424
425     virtual HRESULT STDMETHODCALLTYPE isFrameFlatteningEnabled(
426     /* [retval][out] */ BOOL* enabled);
427
428     virtual HRESULT STDMETHODCALLTYPE setFrameFlatteningEnabled(
429     /* [in] */ BOOL enabled);
430
431     virtual HRESULT STDMETHODCALLTYPE setPreferenceForTest(
432     /* [in] */ BSTR key,
433     /* [in] */ BSTR value);
434
435     virtual HRESULT STDMETHODCALLTYPE setAcceleratedCompositingEnabled(BOOL);
436     virtual HRESULT STDMETHODCALLTYPE acceleratedCompositingEnabled(BOOL*);
437
438     virtual HRESULT STDMETHODCALLTYPE setCustomDragCursorsEnabled(BOOL);
439     virtual HRESULT STDMETHODCALLTYPE customDragCursorsEnabled(BOOL*);
440
441     virtual HRESULT STDMETHODCALLTYPE setShowDebugBorders(BOOL);
442     virtual HRESULT STDMETHODCALLTYPE showDebugBorders(BOOL*);
443
444     virtual HRESULT STDMETHODCALLTYPE setShowRepaintCounter(BOOL);
445     virtual HRESULT STDMETHODCALLTYPE showRepaintCounter(BOOL*);
446
447     virtual HRESULT STDMETHODCALLTYPE setDNSPrefetchingEnabled(BOOL);
448     virtual HRESULT STDMETHODCALLTYPE isDNSPrefetchingEnabled(BOOL*);
449
450     virtual HRESULT STDMETHODCALLTYPE setMemoryInfoEnabled(BOOL);
451     virtual HRESULT STDMETHODCALLTYPE memoryInfoEnabled(BOOL*);
452
453     virtual HRESULT STDMETHODCALLTYPE hyperlinkAuditingEnabled(BOOL*);
454     virtual HRESULT STDMETHODCALLTYPE setHyperlinkAuditingEnabled(BOOL);
455
456     virtual HRESULT STDMETHODCALLTYPE loadsSiteIconsIgnoringImageLoadingPreference(BOOL*);
457     virtual HRESULT STDMETHODCALLTYPE setLoadsSiteIconsIgnoringImageLoadingPreference(BOOL);
458
459     virtual HRESULT STDMETHODCALLTYPE setFullScreenEnabled(BOOL);
460     virtual HRESULT STDMETHODCALLTYPE isFullScreenEnabled(BOOL*);
461
462     virtual HRESULT STDMETHODCALLTYPE hixie76WebSocketProtocolEnabled(BOOL*);
463     virtual HRESULT STDMETHODCALLTYPE setHixie76WebSocketProtocolEnabled(BOOL);
464
465     virtual HRESULT STDMETHODCALLTYPE mediaPlaybackRequiresUserGesture(BOOL*);
466     virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackRequiresUserGesture(BOOL);
467
468     virtual HRESULT STDMETHODCALLTYPE mediaPlaybackAllowsInline(BOOL*);
469     virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackAllowsInline(BOOL);
470
471     virtual HRESULT STDMETHODCALLTYPE showsToolTipOverTruncatedText(BOOL*);
472     virtual HRESULT STDMETHODCALLTYPE setShowsToolTipOverTruncatedText(BOOL);
473
474     virtual HRESULT STDMETHODCALLTYPE shouldInvertColors(BOOL*);
475     virtual HRESULT STDMETHODCALLTYPE setShouldInvertColors(BOOL);
476
477     virtual HRESULT STDMETHODCALLTYPE requestAnimationFrameEnabled(BOOL*);
478     virtual HRESULT STDMETHODCALLTYPE setRequestAnimationFrameEnabled(BOOL);
479
480     // WebPreferences
481
482     // This method accesses a different preference key than developerExtrasEnabled.
483     // See <rdar://5343767> for the justification.
484     bool developerExtrasDisabledByOverride();
485
486     static BSTR webPreferencesChangedNotification();
487     static BSTR webPreferencesRemovedNotification();
488
489     static void setInstance(WebPreferences* instance, BSTR identifier);
490     static void removeReferenceForIdentifier(BSTR identifier);
491     static WebPreferences* sharedStandardPreferences();
492
493     // From WebHistory.h
494     HRESULT historyItemLimit(int* limit);
495     HRESULT setHistoryItemLimit(int limit);
496     HRESULT historyAgeInDaysLimit(int* limit);
497     HRESULT setHistoryAgeInDaysLimit(int limit);
498
499      void willAddToWebView();
500      void didRemoveFromWebView();
501
502     HRESULT postPreferencesChangesNotification();
503
504 protected:
505     void setValueForKey(CFStringRef key, CFPropertyListRef value);
506     RetainPtr<CFPropertyListRef> valueForKey(CFStringRef key);
507     BSTR stringValueForKey(CFStringRef key);
508     int integerValueForKey(CFStringRef key);
509     BOOL boolValueForKey(CFStringRef key);
510     float floatValueForKey(CFStringRef key);
511     LONGLONG longlongValueForKey(CFStringRef key);
512     void setStringValue(CFStringRef key, LPCTSTR value);
513     void setIntegerValue(CFStringRef key, int value);
514     void setBoolValue(CFStringRef key, BOOL value);
515     void setFloatValue(CFStringRef key, float value);
516     void setLongLongValue(CFStringRef key, LONGLONG value);
517     static WebPreferences* getInstanceForIdentifier(BSTR identifier);
518     static void initializeDefaultSettings();
519     void save();
520     void load();
521     void migrateWebKitPreferencesToCFPreferences();
522     void copyWebKitPreferencesToCFPreferences(CFDictionaryRef);
523
524 protected:
525     ULONG m_refCount;
526     RetainPtr<CFMutableDictionaryRef> m_privatePrefs;
527     WebCore::BString m_identifier;
528     bool m_autoSaves;
529     bool m_automaticallyDetectsCacheModel;
530     unsigned m_numWebViews;
531 };
532
533 #endif