| /* |
| * Copyright (C) 2006-2020 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #pragma once |
| |
| #include "WebKit.h" |
| #include <CoreFoundation/CoreFoundation.h> |
| #include <WebCore/BString.h> |
| #include <wtf/RetainPtr.h> |
| |
| class WebPreferences final : public IWebPreferences, public IWebPreferencesPrivate8 { |
| public: |
| static WebPreferences* createInstance(); |
| |
| // IUnknown |
| virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject); |
| virtual ULONG STDMETHODCALLTYPE AddRef(); |
| virtual ULONG STDMETHODCALLTYPE Release(); |
| |
| // IWebPreferences |
| virtual HRESULT STDMETHODCALLTYPE standardPreferences(_COM_Outptr_opt_ IWebPreferences**); |
| virtual HRESULT STDMETHODCALLTYPE initWithIdentifier(_In_ BSTR, _COM_Outptr_opt_ IWebPreferences**); |
| virtual HRESULT STDMETHODCALLTYPE identifier(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE standardFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setStandardFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE fixedFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setFixedFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE serifFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setSerifFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE sansSerifFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setSansSerifFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE cursiveFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setCursiveFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE fantasyFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setFantasyFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE pictographFontFamily(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setPictographFontFamily(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE defaultFontSize(_Out_ int*); |
| virtual HRESULT STDMETHODCALLTYPE setDefaultFontSize(int); |
| virtual HRESULT STDMETHODCALLTYPE defaultFixedFontSize(_Out_ int*); |
| virtual HRESULT STDMETHODCALLTYPE setDefaultFixedFontSize(int); |
| virtual HRESULT STDMETHODCALLTYPE minimumFontSize(_Out_ int*); |
| virtual HRESULT STDMETHODCALLTYPE setMinimumFontSize(int); |
| virtual HRESULT STDMETHODCALLTYPE minimumLogicalFontSize(_Out_ int*); |
| virtual HRESULT STDMETHODCALLTYPE setMinimumLogicalFontSize(int); |
| virtual HRESULT STDMETHODCALLTYPE defaultTextEncodingName(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setDefaultTextEncodingName(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE userStyleSheetEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE userStyleSheetLocation(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetLocation(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE isJavaEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setJavaEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE isJavaScriptEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setJavaScriptEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE javaScriptCanOpenWindowsAutomatically(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanOpenWindowsAutomatically(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE arePlugInsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setPlugInsEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE isCSSRegionsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCSSRegionsEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE unused7(); |
| virtual HRESULT STDMETHODCALLTYPE unused8(); |
| virtual HRESULT STDMETHODCALLTYPE allowsAnimatedImages(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowsAnimatedImages(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE allowAnimatedImageLooping(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowAnimatedImageLooping(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setLoadsImagesAutomatically(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE loadsImagesAutomatically(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAutosaves(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE autosaves(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShouldPrintBackgrounds(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldPrintBackgrounds(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setPrivateBrowsingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE privateBrowsingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setTabsToLinks(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE tabsToLinks(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE textAreasAreResizable(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setTextAreasAreResizable(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE usesPageCache(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setUsesPageCache(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE unused1(); |
| virtual HRESULT STDMETHODCALLTYPE unused2(); |
| virtual HRESULT STDMETHODCALLTYPE iconDatabaseLocation(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setIconDatabaseLocation(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE iconDatabaseEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setIconDatabaseEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE fontSmoothing(_Out_ FontSmoothingType*); |
| virtual HRESULT STDMETHODCALLTYPE setFontSmoothing(FontSmoothingType); |
| virtual HRESULT STDMETHODCALLTYPE editableLinkBehavior(_Out_ WebKitEditableLinkBehavior*); |
| virtual HRESULT STDMETHODCALLTYPE setEditableLinkBehavior(WebKitEditableLinkBehavior); |
| virtual HRESULT STDMETHODCALLTYPE unused5(); |
| virtual HRESULT STDMETHODCALLTYPE unused6(); |
| virtual HRESULT STDMETHODCALLTYPE cookieStorageAcceptPolicy(_Out_ WebKitCookieStorageAcceptPolicy*); |
| virtual HRESULT STDMETHODCALLTYPE setCookieStorageAcceptPolicy(WebKitCookieStorageAcceptPolicy); |
| virtual HRESULT STDMETHODCALLTYPE continuousSpellCheckingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE grammarCheckingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE allowContinuousSpellChecking(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowContinuousSpellChecking(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE isDOMPasteAllowed(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setDOMPasteAllowed(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE cacheModel(_Out_ WebCacheModel*); |
| virtual HRESULT STDMETHODCALLTYPE setCacheModel(WebCacheModel); |
| virtual HRESULT STDMETHODCALLTYPE unused3(); |
| virtual HRESULT STDMETHODCALLTYPE unused4(); |
| virtual HRESULT STDMETHODCALLTYPE setAVFoundationEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE avFoundationEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShouldDisplaySubtitles(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldDisplaySubtitles(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShouldDisplayCaptions(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldDisplayCaptions(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShouldDisplayTextDescriptions(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldDisplayTextDescriptions(_Out_ BOOL*); |
| |
| // IWebPreferencesPrivate |
| virtual HRESULT STDMETHODCALLTYPE setDeveloperExtrasEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE developerExtrasEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAutomaticallyDetectsCacheModel(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE automaticallyDetectsCacheModel(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAuthorAndUserStylesEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE authorAndUserStylesEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE inApplicationChromeMode(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setApplicationChromeMode(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setOfflineWebApplicationCacheEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE offlineWebApplicationCacheEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setDatabasesEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE databasesEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setLocalStorageEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE localStorageEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE localStorageDatabasePath(__deref_opt_out BSTR*); |
| virtual HRESULT STDMETHODCALLTYPE setLocalStorageDatabasePath(_In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE experimentalNotificationsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setExperimentalNotificationsEnabled(BOOL); |
| |
| // These two methods are no-ops, and only retained to keep |
| // the Interface consistent. DO NOT USE THEM. |
| virtual HRESULT STDMETHODCALLTYPE setShouldPaintNativeControls(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldPaintNativeControls(_Out_ BOOL*); |
| |
| virtual HRESULT STDMETHODCALLTYPE setZoomsTextOnly(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE zoomsTextOnly(_Out_ BOOL *); |
| virtual HRESULT STDMETHODCALLTYPE fontSmoothingContrast(_Out_ float*); |
| virtual HRESULT STDMETHODCALLTYPE setFontSmoothingContrast(float); |
| virtual HRESULT STDMETHODCALLTYPE isWebSecurityEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setWebSecurityEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE allowUniversalAccessFromFileURLs(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowUniversalAccessFromFileURLs(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE allowFileAccessFromFileURLs(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowFileAccessFromFileURLs(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE javaScriptCanAccessClipboard(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanAccessClipboard(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE isXSSAuditorEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setXSSAuditorEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setShouldUseHighResolutionTimers(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldUseHighResolutionTimers(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE isFrameFlatteningEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setFrameFlatteningEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setPreferenceForTest(_In_ BSTR key, _In_ BSTR value); |
| virtual HRESULT STDMETHODCALLTYPE setAcceleratedCompositingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE acceleratedCompositingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCustomDragCursorsEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE customDragCursorsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShowDebugBorders(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE showDebugBorders(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShowRepaintCounter(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE showRepaintCounter(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setDNSPrefetchingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE isDNSPrefetchingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE hyperlinkAuditingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setHyperlinkAuditingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE loadsSiteIconsIgnoringImageLoadingPreference(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setLoadsSiteIconsIgnoringImageLoadingPreference(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setFullScreenEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE isFullScreenEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE hixie76WebSocketProtocolEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setHixie76WebSocketProtocolEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE mediaPlaybackRequiresUserGesture(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackRequiresUserGesture(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE mediaPlaybackAllowsInline(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackAllowsInline(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE showsToolTipOverTruncatedText(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShowsToolTipOverTruncatedText(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shouldInvertColors(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShouldInvertColors(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE requestAnimationFrameEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setRequestAnimationFrameEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE mockScrollbarsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setMockScrollbarsEnabled(BOOL); |
| |
| // These two methods are no-ops, and only retained to keep |
| // the Interface consistent. DO NOT USE THEM. |
| virtual HRESULT STDMETHODCALLTYPE screenFontSubstitutionEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setScreenFontSubstitutionEnabled(BOOL); |
| |
| virtual HRESULT STDMETHODCALLTYPE isInheritURIQueryComponentEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setEnableInheritURIQueryComponent(BOOL); |
| |
| // IWebPreferencesPrivate2 |
| virtual HRESULT STDMETHODCALLTYPE javaScriptRuntimeFlags(_Out_ unsigned*); |
| virtual HRESULT STDMETHODCALLTYPE setJavaScriptRuntimeFlags(unsigned); |
| virtual HRESULT STDMETHODCALLTYPE allowDisplayAndRunningOfInsecureContent(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowDisplayAndRunningOfInsecureContent(BOOL); |
| |
| // IWebPreferencesPrivate3 |
| virtual HRESULT STDMETHODCALLTYPE showTiledScrollingIndicator(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShowTiledScrollingIndicator(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE fetchAPIEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setFetchAPIEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE shadowDOMEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setShadowDOMEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE customElementsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCustomElementsEnabled(BOOL); |
| |
| // IWebPreferencesPrivate4 |
| virtual HRESULT STDMETHODCALLTYPE setApplicationId(BSTR); |
| virtual HRESULT STDMETHODCALLTYPE userTimingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setUserTimingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE resourceTimingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setResourceTimingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE linkPreloadEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setLinkPreloadEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE mediaPreloadingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setMediaPreloadingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE clearNetworkLoaderSession(); |
| virtual HRESULT STDMETHODCALLTYPE switchNetworkLoaderToNewTestingSession(); |
| |
| // IWebPreferencesPrivate5 |
| virtual HRESULT STDMETHODCALLTYPE isSecureContextAttributeEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setIsSecureContextAttributeEnabled(BOOL); |
| |
| // IWebPreferencesPrivate6 |
| virtual HRESULT STDMETHODCALLTYPE dataTransferItemsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setDataTransferItemsEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE inspectorAdditionsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setInspectorAdditionsEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE visualViewportAPIEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setVisualViewportAPIEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE CSSOMViewScrollingAPIEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCSSOMViewScrollingAPIEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE CSSOMViewSmoothScrollingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCSSOMViewSmoothScrollingEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE fetchAPIKeepAliveEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setFetchAPIKeepAliveEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE spatialNavigationEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setSpatialNavigationEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE menuItemElementEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setMenuItemElementEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE keygenElementEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setKeygenElementEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE serverTimingEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setServerTimingEnabled(BOOL); |
| |
| // IWebPreferencesPrivate7 |
| virtual HRESULT STDMETHODCALLTYPE crossOriginWindowPolicySupportEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCrossOriginWindowPolicySupportEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE resizeObserverEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setResizeObserverEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE coreMathMLEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCoreMathMLEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE requestIdleCallbackEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setRequestIdleCallbackEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE asyncClipboardAPIEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAsyncClipboardAPIEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE webAnimationsCompositeOperationsEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setWebAnimationsCompositeOperationsEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE webAnimationsMutableTimelinesEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setWebAnimationsMutableTimelinesEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE CSSCustomPropertiesAndValuesEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCSSCustomPropertiesAndValuesEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE aspectRatioOfImgFromWidthAndHeightEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAspectRatioOfImgFromWidthAndHeightEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE webSQLEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setWebSQLEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE CSSIndividualTransformPropertiesEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setCSSIndividualTransformPropertiesEnabled(BOOL); |
| |
| // IWebPreferencesPrivate8 |
| virtual HRESULT STDMETHODCALLTYPE allowTopNavigationToDataURLs(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setAllowTopNavigationToDataURLs(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE modernUnprefixedWebAudioEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setModernUnprefixedWebAudioEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE contactPickerAPIEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setContactPickerAPIEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setBoolPreferenceForTesting(_In_ BSTR key, _In_ BOOL); |
| virtual HRESULT STDMETHODCALLTYPE setUInt32PreferenceForTesting(_In_ BSTR key, _In_ unsigned); |
| virtual HRESULT STDMETHODCALLTYPE setDoublePreferenceForTesting(_In_ BSTR key, _In_ double); |
| virtual HRESULT STDMETHODCALLTYPE setStringPreferenceForTesting(_In_ BSTR key, _In_ BSTR); |
| virtual HRESULT STDMETHODCALLTYPE speechRecognitionEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setSpeechRecognitionEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE overscrollBehaviorEnabled(_Out_ BOOL*); |
| virtual HRESULT STDMETHODCALLTYPE setOverscrollBehaviorEnabled(BOOL); |
| virtual HRESULT STDMETHODCALLTYPE resetForTesting(); |
| virtual HRESULT STDMETHODCALLTYPE startBatchingUpdates(); |
| virtual HRESULT STDMETHODCALLTYPE stopBatchingUpdates(); |
| |
| // WebPreferences |
| |
| // This method accesses a different preference key than developerExtrasEnabled. |
| // See <rdar://5343767> for the justification. |
| bool developerExtrasDisabledByOverride(); |
| |
| static BSTR webPreferencesChangedNotification(); |
| static BSTR webPreferencesRemovedNotification(); |
| |
| static void setInstance(WebPreferences* instance, BSTR identifier); |
| static void removeReferenceForIdentifier(BSTR identifier); |
| static WebPreferences* sharedStandardPreferences(); |
| |
| static CFStringRef applicationId(); |
| |
| // From WebHistory.h |
| HRESULT historyItemLimit(_Out_ int*); |
| HRESULT setHistoryItemLimit(int); |
| HRESULT historyAgeInDaysLimit(_Out_ int*); |
| HRESULT setHistoryAgeInDaysLimit(int); |
| |
| void willAddToWebView(); |
| void didRemoveFromWebView(); |
| |
| HRESULT postPreferencesChangesNotification(); |
| |
| // The following preference accessors are not exposed via IWebPreferences* as they are only |
| // needed for testing purposes and can be toggled via the set*PreferenceForTesting functions. |
| bool canvasColorSpaceEnabled(); |
| bool mockScrollAnimatorEnabled(); |
| |
| private: |
| WebPreferences(); |
| ~WebPreferences(); |
| |
| #if USE(CF) |
| void setValueForKey(CFStringRef key, CFPropertyListRef value); |
| RetainPtr<CFPropertyListRef> valueForKey(CFStringRef key); |
| void setValueForKey(const char* key, CFPropertyListRef value); |
| RetainPtr<CFPropertyListRef> valueForKey(const char* key); |
| #endif |
| BSTR stringValueForKey(const char* key); |
| int integerValueForKey(const char* key); |
| BOOL boolValueForKey(const char* key); |
| float floatValueForKey(const char* key); |
| LONGLONG longlongValueForKey(const char* key); |
| void setStringValue(const char* key, BSTR value); |
| void setIntegerValue(const char* key, int value); |
| void setBoolValue(const char* key, BOOL value); |
| void setFloatValue(const char* key, float value); |
| void setLongLongValue(const char* key, LONGLONG value); |
| static WebPreferences* getInstanceForIdentifier(BSTR identifier); |
| static void initializeDefaultSettings(); |
| void save(); |
| void load(); |
| #if USE(CF) |
| void migrateWebKitPreferencesToCFPreferences(); |
| void copyWebKitPreferencesToCFPreferences(CFDictionaryRef); |
| #endif |
| |
| ULONG m_refCount { 0 }; |
| WebCore::BString m_identifier; |
| bool m_autoSaves { false }; |
| bool m_automaticallyDetectsCacheModel { true }; |
| unsigned m_numWebViews { 0 }; |
| unsigned m_updateBatchCount { 0 }; |
| bool m_needsUpdateAfterBatch { false }; |
| |
| #if USE(CF) |
| RetainPtr<CFMutableDictionaryRef> m_privatePrefs; |
| static RetainPtr<CFStringRef> m_applicationId; |
| #endif |
| }; |