/* * Copyright (C) 2007, 2008, 2009 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. * 3. Neither the name of Apple Inc. ("Apple") nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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. */ #ifndef DO_NO_IMPORTS import "oaidl.idl"; import "ocidl.idl"; #endif typedef enum WebKitJavaScriptRuntimeFlags { WebKitJavaScriptRuntimeFlagsAllEnabled = 0 } WebKitJavaScriptRuntimeFlags; [ object, oleautomation, hidden, uuid(1380DE41-42CF-4170-9D5D-7840EDE5B36C), pointer_default(unique) ] interface IWebPreferencesPrivate : IUnknown { HRESULT setDeveloperExtrasEnabled([in] BOOL enabled); HRESULT developerExtrasEnabled([out, retval] BOOL* enabled); HRESULT setAutomaticallyDetectsCacheModel([in] BOOL automaticallyDetectsCacheModel); HRESULT automaticallyDetectsCacheModel([out, retval] BOOL* automaticallyDetectsCacheModel); HRESULT setAuthorAndUserStylesEnabled([in] BOOL enabled); HRESULT authorAndUserStylesEnabled([out, retval] BOOL* enabled); HRESULT inApplicationChromeMode([out, retval] BOOL *allowed); HRESULT setApplicationChromeMode([in] BOOL allowed); HRESULT setOfflineWebApplicationCacheEnabled([in] BOOL enabled); HRESULT offlineWebApplicationCacheEnabled([out, retval] BOOL *enabled); HRESULT localStorageDatabasePath([out, retval] BSTR* location); HRESULT setLocalStorageDatabasePath([in] BSTR location); // These two methods are no-ops, and only retained to keep // the Interface consistent. DO NOT USE THEM. HRESULT setShouldPaintNativeControls([in] BOOL shouldPaint); HRESULT shouldPaintNativeControls([out, retval] BOOL* enabled); HRESULT setDatabasesEnabled([in] BOOL enabled); HRESULT databasesEnabled([out, retval] BOOL *enabled); HRESULT setLocalStorageEnabled([in] BOOL enabled); HRESULT localStorageEnabled([out, retval] BOOL* enabled); HRESULT setFontSmoothingContrast([in] float contrast); HRESULT fontSmoothingContrast([out, retval] float* contrast); HRESULT isWebSecurityEnabled([out, retval] BOOL* enabled); HRESULT setWebSecurityEnabled([in] BOOL enabled); HRESULT allowUniversalAccessFromFileURLs([out, retval] BOOL *allowAccess); HRESULT setAllowUniversalAccessFromFileURLs([in] BOOL allowAccess); HRESULT isXSSAuditorEnabled([out, retval] BOOL *enabled); HRESULT setXSSAuditorEnabled([in] BOOL enabled); HRESULT isFrameFlatteningEnabled([out, retval] BOOL *enabled); HRESULT setFrameFlatteningEnabled([in] BOOL enabled); HRESULT experimentalNotificationsEnabled([out, retval] BOOL *enabled); HRESULT setExperimentalNotificationsEnabled([in] BOOL enabled); HRESULT setShouldUseHighResolutionTimers([in] BOOL useHighResolutionTimers); HRESULT shouldUseHighResolutionTimers([out, retval] BOOL* useHighResolutionTimers); // Used to set preference specified by a test via TestRunner.overridePreference(..). // Used by DumpRenderTree. HRESULT setPreferenceForTest([in] BSTR key, [in] BSTR value); HRESULT unused1(); HRESULT unused2(); HRESULT setAcceleratedCompositingEnabled([in] BOOL); HRESULT acceleratedCompositingEnabled([out, retval] BOOL*); HRESULT setCustomDragCursorsEnabled([in] BOOL); HRESULT customDragCursorsEnabled([out, retval] BOOL*); HRESULT allowFileAccessFromFileURLs([out, retval] BOOL *allowAccess); HRESULT setAllowFileAccessFromFileURLs([in] BOOL allowAccess); HRESULT setShowDebugBorders([in] BOOL); HRESULT showDebugBorders([out, retval] BOOL*); HRESULT setShowRepaintCounter([in] BOOL); HRESULT showRepaintCounter([out, retval] BOOL*); HRESULT javaScriptCanAccessClipboard([out, retval] BOOL *enabled); HRESULT setJavaScriptCanAccessClipboard([in] BOOL enabled); HRESULT isDNSPrefetchingEnabled([out, retval] BOOL *enabled); HRESULT setDNSPrefetchingEnabled([in] BOOL enabled); HRESULT hyperlinkAuditingEnabled(BOOL *hyperlinkAuditingEnabled); HRESULT setHyperlinkAuditingEnabled(BOOL hyperlinkAuditingEnabled); HRESULT setLoadsSiteIconsIgnoringImageLoadingPreference([in] BOOL enabled); HRESULT loadsSiteIconsIgnoringImageLoadingPreference([out, retval] BOOL* enabled); HRESULT setFullScreenEnabled([in] BOOL enabled); HRESULT isFullScreenEnabled([out, retval] BOOL* enabled); HRESULT setHixie76WebSocketProtocolEnabled([in] BOOL enabled); HRESULT hixie76WebSocketProtocolEnabled([out, retval] BOOL* enabled); HRESULT setMediaPlaybackRequiresUserGesture([in] BOOL); HRESULT mediaPlaybackRequiresUserGesture([out, retval] BOOL*); HRESULT setMediaPlaybackAllowsInline([in] BOOL); HRESULT mediaPlaybackAllowsInline([out, retval] BOOL*); HRESULT setShowsToolTipOverTruncatedText([in] BOOL); HRESULT showsToolTipOverTruncatedText([out, retval] BOOL*); HRESULT setShouldInvertColors([in] BOOL); HRESULT shouldInvertColors([out, retval] BOOL*); HRESULT setRequestAnimationFrameEnabled([in] BOOL); HRESULT requestAnimationFrameEnabled([out, retval] BOOL*); HRESULT mockScrollbarsEnabled([out, retval] BOOL* enabled); HRESULT setMockScrollbarsEnabled([in] BOOL enabled); // These two methods are no-ops, and only retained to keep // the Interface consistent. DO NOT USE THEM. HRESULT screenFontSubstitutionEnabled([out, retval] BOOL* enabled); HRESULT setScreenFontSubstitutionEnabled([in] BOOL enabled); HRESULT isInheritURIQueryComponentEnabled([out, retval] BOOL* enabled); HRESULT setEnableInheritURIQueryComponent([in] BOOL enabled); } [ uuid(0E1DDB80-6B38-4ABC-A252-B58A83EB6D8C) ] interface IWebPreferencesPrivate2 : IWebPreferencesPrivate { HRESULT javaScriptRuntimeFlags([out, retval] unsigned* flags); HRESULT setJavaScriptRuntimeFlags([in] unsigned flags); HRESULT allowDisplayAndRunningOfInsecureContent([out, retval] BOOL* enabled); HRESULT setAllowDisplayAndRunningOfInsecureContent([in] BOOL enabled); } [uuid(92809BFB-C24F-43AD-863F-601B08CC268D)] interface IWebPreferencesPrivate3 : IWebPreferencesPrivate2 { HRESULT showTiledScrollingIndicator([out, retval] BOOL* enabled); HRESULT setShowTiledScrollingIndicator([in] BOOL enabled); HRESULT fetchAPIEnabled([out, retval] BOOL* enabled); HRESULT setFetchAPIEnabled([in] BOOL enabled); HRESULT shadowDOMEnabled([out, retval] BOOL* enabled); HRESULT setShadowDOMEnabled([in] BOOL enabled); HRESULT customElementsEnabled([out, retval] BOOL* enabled); HRESULT setCustomElementsEnabled([in] BOOL enabled); } [uuid(F9582D72-6348-45B1-AB09-39E33459B5B9)] interface IWebPreferencesPrivate4 : IWebPreferencesPrivate3 { HRESULT setApplicationId([in] BSTR applicationId); HRESULT userTimingEnabled([out, retval] BOOL*); HRESULT setUserTimingEnabled([in] BOOL enabled); HRESULT resourceTimingEnabled([out, retval] BOOL*); HRESULT setResourceTimingEnabled([in] BOOL enabled); HRESULT linkPreloadEnabled([out, retval] BOOL*); HRESULT setLinkPreloadEnabled([in] BOOL enabled); HRESULT mediaPreloadingEnabled([out, retval] BOOL*); HRESULT setMediaPreloadingEnabled([in] BOOL enabled); HRESULT clearNetworkLoaderSession(); HRESULT switchNetworkLoaderToNewTestingSession(); } [uuid(9C4CBF53-19BC-46B3-831E-6A8B88200F20)] interface IWebPreferencesPrivate5 : IWebPreferencesPrivate4 { HRESULT isSecureContextAttributeEnabled([out, retval] BOOL*); HRESULT setIsSecureContextAttributeEnabled([in] BOOL enabled); } [uuid(B8BC62C9-1CA9-4FD1-B328-CB0BD171249F)] interface IWebPreferencesPrivate6 : IWebPreferencesPrivate5 { HRESULT dataTransferItemsEnabled([out, retval] BOOL*); HRESULT setDataTransferItemsEnabled([in] BOOL enabled); HRESULT visualViewportAPIEnabled([out, retval] BOOL*); HRESULT setVisualViewportAPIEnabled([in] BOOL enabled); HRESULT CSSOMViewScrollingAPIEnabled([out, retval] BOOL*); HRESULT setCSSOMViewScrollingAPIEnabled([in] BOOL enabled); HRESULT CSSOMViewSmoothScrollingEnabled([out, retval] BOOL*); HRESULT setCSSOMViewSmoothScrollingEnabled([in] BOOL enabled); HRESULT fetchAPIKeepAliveEnabled([out, retval] BOOL* enabled); HRESULT setFetchAPIKeepAliveEnabled([in] BOOL enabled); HRESULT spatialNavigationEnabled([out, retval] BOOL *enabled); HRESULT setSpatialNavigationEnabled([in] BOOL enabled); HRESULT menuItemElementEnabled([out, retval] BOOL* enabled); HRESULT setMenuItemElementEnabled([in] BOOL enabled); HRESULT keygenElementEnabled([out, retval] BOOL* enabled); HRESULT setKeygenElementEnabled([in] BOOL enabled); HRESULT serverTimingEnabled([out, retval] BOOL* enabled); HRESULT setServerTimingEnabled([in] BOOL enabled); } [uuid(9A49D1DE-53DD-11E8-95E6-003EE1C28AB6)] interface IWebPreferencesPrivate7 : IWebPreferencesPrivate6 { HRESULT crossOriginWindowPolicySupportEnabled([out, retval] BOOL* enabled); HRESULT setCrossOriginWindowPolicySupportEnabled([in] BOOL enabled); HRESULT resizeObserverEnabled([out, retval] BOOL*); HRESULT setResizeObserverEnabled([in] BOOL enabled); HRESULT coreMathMLEnabled([out, retval] BOOL* enabled); HRESULT setCoreMathMLEnabled([in] BOOL enabled); HRESULT requestIdleCallbackEnabled([out, retval] BOOL* enabled); HRESULT setRequestIdleCallbackEnabled([in] BOOL enabled); HRESULT asyncClipboardAPIEnabled([out, retval] BOOL* enabled); HRESULT setAsyncClipboardAPIEnabled([in] BOOL enabled); HRESULT webAnimationsCompositeOperationsEnabled([out, retval] BOOL*); HRESULT setWebAnimationsCompositeOperationsEnabled([in] BOOL enabled); HRESULT webAnimationsMutableTimelinesEnabled([out, retval] BOOL*); HRESULT setWebAnimationsMutableTimelinesEnabled([in] BOOL enabled); HRESULT CSSCustomPropertiesAndValuesEnabled([out, retval] BOOL*); HRESULT setCSSCustomPropertiesAndValuesEnabled([in] BOOL enabled); HRESULT aspectRatioOfImgFromWidthAndHeightEnabled([out, retval] BOOL*); HRESULT setAspectRatioOfImgFromWidthAndHeightEnabled([in] BOOL enabled); HRESULT setWebSQLEnabled([in] BOOL enabled); HRESULT webSQLEnabled([out, retval] BOOL* enabled); HRESULT CSSIndividualTransformPropertiesEnabled([out, retval] BOOL* enabled); HRESULT setCSSIndividualTransformPropertiesEnabled([in] BOOL enabled); } [uuid(04D4AAE1-5D01-4CCD-B46E-C022F10A6826)] interface IWebPreferencesPrivate8 : IWebPreferencesPrivate7 { HRESULT allowTopNavigationToDataURLs([out, retval] BOOL* enabled); HRESULT setAllowTopNavigationToDataURLs([in] BOOL enabled); HRESULT modernUnprefixedWebAudioEnabled([out, retval] BOOL* enabled); HRESULT setModernUnprefixedWebAudioEnabled([in] BOOL enabled); HRESULT contactPickerAPIEnabled([out, retval] BOOL* enabled); HRESULT setContactPickerAPIEnabled([in] BOOL enabled); HRESULT setBoolPreferenceForTesting([in] BSTR key, [in] BOOL value); HRESULT setUInt32PreferenceForTesting([in] BSTR key, [in] unsigned value); HRESULT setDoublePreferenceForTesting([in] BSTR key, [in] double value); HRESULT setStringPreferenceForTesting([in] BSTR key, [in] BSTR value); HRESULT speechRecognitionEnabled([out, retval] BOOL* enabled); HRESULT setSpeechRecognitionEnabled([in] BOOL enabled); HRESULT overscrollBehaviorEnabled([ out, retval ] BOOL*); HRESULT setOverscrollBehaviorEnabled([in] BOOL enabled); HRESULT resetForTesting(); HRESULT startBatchingUpdates(); HRESULT stopBatchingUpdates(); } // NOTE: Please do not add any more preferences that are only for testing purposes. Instead, // please use the generalized setPreferenceForTesting() functions.