| /* |
| * Copyright (C) 2006, 2007, 2008 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 COMPUTER, 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 COMPUTER, 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. |
| */ |
| |
| #ifndef DO_NO_IMPORTS |
| import "oaidl.idl"; |
| import "ocidl.idl"; |
| import "IWebFormDelegate.idl"; |
| import "IWebFrameLoadDelegatePrivate.idl"; |
| import "IWebHistoryDelegate.idl"; |
| import "IWebInspector.idl"; |
| import "IWebInspectorPrivate.idl"; |
| #endif |
| |
| // Sent when IWebView::close is called. No userInfo is associated with this notification. |
| cpp_quote("#define WebViewWillCloseNotification L\"WebViewWillCloseNotification\"") |
| |
| interface IEnumTextMatches; |
| interface IWebFormDelegate; |
| interface IWebFrameLoadDelegatePrivate; |
| interface IWebHistoryDelegate; |
| interface IWebInspector; |
| interface IWebInspectorPrivate; |
| interface IWebPluginHalterDelegate; |
| interface IWebURLRequest; |
| interface IWebView; |
| |
| typedef enum { |
| WebInjectAtDocumentStart = 0, |
| WebInjectAtDocumentEnd, |
| } WebUserScriptInjectionTime; |
| |
| [ |
| object, |
| oleautomation, |
| uuid(44914369-DEB5-4fcf-A6A3-30C02E73154F), |
| pointer_default(unique) |
| ] |
| interface IWebViewPrivate : IUnknown |
| { |
| /*! |
| @method _setInViewSourceMode: |
| @abstract Used to place a WebView into a special source-viewing mode. |
| - (void)_setInViewSourceMode:(BOOL)flag; |
| */ |
| HRESULT setInViewSourceMode([in] BOOL flag); |
| |
| /*! |
| @method _inViewSourceMode; |
| @abstract Whether or not the WebView is in source-view mode for HTML. |
| - (BOOL)_inViewSourceMode; |
| */ |
| HRESULT inViewSourceMode([out, retval] BOOL* flag); |
| |
| HRESULT viewWindow([out, retval] OLE_HANDLE* window); |
| |
| // May well become public |
| //- (void)_setFormDelegate:(id<WebFormDelegate>)delegate; |
| HRESULT setFormDelegate([in] IWebFormDelegate* formDelegate); |
| |
| //- (id<WebFormDelegate>)_formDelegate; |
| HRESULT formDelegate([out, retval] IWebFormDelegate** formDelegate); |
| |
| HRESULT setFrameLoadDelegatePrivate([in] IWebFrameLoadDelegatePrivate* frameLoadDelegatePrivate); |
| HRESULT frameLoadDelegatePrivate([out, retval] IWebFrameLoadDelegatePrivate** frameLoadDelegatePrivate); |
| |
| HRESULT scrollOffset([out, retval] LPPOINT offset); |
| HRESULT scrollBy([in] LPPOINT offset); |
| HRESULT visibleContentRect([out, retval] LPRECT rect); |
| |
| // SPI for DumpRenderTree |
| HRESULT updateFocusedAndActiveState(); |
| |
| // Support for displaying multiple text matches. |
| HRESULT markAllMatchesForText([in] BSTR search, [in] BOOL caseSensitive, [in] BOOL highlight, [in] UINT limit, [out] UINT* matches); |
| HRESULT unmarkAllTextMatches(); |
| HRESULT rectsForTextMatches([out]IEnumTextMatches** pmatches); |
| HRESULT selectionRect([in, out] RECT* rc); |
| HRESULT generateSelectionImage(BOOL forceWhiteText, [out, retval] OLE_HANDLE* hBitmap); |
| |
| HRESULT canHandleRequest([in] IWebURLRequest* request, [out, retval] BOOL* result); |
| |
| HRESULT clearFocusNode(); |
| |
| HRESULT setTabKeyCyclesThroughElements([in] BOOL cycles); |
| HRESULT tabKeyCyclesThroughElements([out, retval] BOOL* result); |
| |
| HRESULT setAllowSiteSpecificHacks([in] BOOL allows); |
| HRESULT addAdditionalPluginDirectory([in] BSTR directory); |
| |
| HRESULT loadBackForwardListFromOtherView([in] IWebView* otherView); |
| |
| HRESULT setCustomDropTarget([in] IDropTarget* dt); |
| HRESULT removeCustomDropTarget(); |
| |
| HRESULT setInitialFocus([in] BOOL forward); |
| |
| HRESULT inspector([out, retval] IWebInspector**); |
| |
| HRESULT clearUndoRedoOperations(); |
| |
| HRESULT setProhibitsMainFrameScrolling([in] BOOL prohibits); |
| |
| // SPI for DumpRenderTree. This is global to all WebViews. |
| HRESULT setShouldApplyMacFontAscentHack([in] BOOL shouldApply); |
| |
| /*! |
| @method shouldClose: |
| @abstract This function will fire the before unload handler for a page. |
| If the user cancels the closing of a webview from the alert popped up by the |
| before unload handler, then this function will return false. |
| */ |
| HRESULT shouldClose([out, retval] BOOL* result); |
| |
| // SPI for DumpRenderTree |
| HRESULT executeCoreCommandByName([in] BSTR name, [in] BSTR value); |
| |
| HRESULT windowAncestryDidChange(); |
| |
| HRESULT paintDocumentRectToContext([in] RECT rect, [in] OLE_HANDLE dc); |
| |
| HRESULT setDefersCallbacks([in] BOOL defersCallbacks); |
| HRESULT defersCallbacks([out, retval] BOOL* defersCallbacks); |
| |
| HRESULT standardUserAgentWithApplicationName([in] BSTR applicationName, [retval][out] BSTR* groupName); |
| |
| HRESULT setCustomHTMLTokenizerTimeDelay([in] double timeDelay); |
| HRESULT setCustomHTMLTokenizerChunkSize([in] int chunkSize); |
| |
| HRESULT backingStore([out, retval] OLE_HANDLE* hBitmap); |
| |
| HRESULT setTransparent([in] BOOL transparent); |
| HRESULT transparent([out, retval] BOOL* transparent); |
| |
| HRESULT setAlwaysUsesComplexTextCodePath([in] BOOL complex); |
| HRESULT alwaysUsesComplexTextCodePath([out, retval] BOOL* complex); |
| |
| HRESULT setCookieEnabled([in] BOOL enable); |
| HRESULT cookieEnabled([out, retval] BOOL* enabled); |
| |
| HRESULT setMediaVolume([in] float volume); |
| HRESULT mediaVolume([out, retval] float* volume); |
| |
| // SPI for DumpRenderTree |
| HRESULT clearMainFrameName(); |
| |
| HRESULT globalHistoryItem([out, retval] IWebHistoryItem**); |
| |
| HRESULT registerEmbeddedViewMIMEType([in] BSTR mimeType); |
| |
| HRESULT setMemoryCacheDelegateCallsEnabled([in] BOOL enabled); |
| |
| HRESULT setJavaScriptURLsAreAllowed([in] BOOL areAllowed); |
| |
| HRESULT setCanStartPlugins([in] BOOL canStartPlugins); |
| |
| /*! |
| @method MIMETypeForExtension: |
| @abstract Returns the mime type for a certian file extension. |
| @param path The extension of the file to check. |
| @result The mime type of the specified extension. |
| + (BSTR)MIMETypeForPath:(NSString *)path; |
| */ |
| HRESULT MIMETypeForExtension([in] BSTR extension, [out, retval] BSTR* mimeType); |
| |
| HRESULT addUserScriptToGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR source, [in] BSTR url, |
| [in] unsigned whitelistCount, [in, size_is(whitelistCount)] BSTR* whitelist, |
| [in] unsigned blacklistCount, [in, size_is(blacklistCount)] BSTR* blacklist, |
| [in] WebUserScriptInjectionTime injectionTime); |
| HRESULT addUserStyleSheetToGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR source, [in] BSTR url, |
| [in] unsigned whitelistCount, [in, size_is(whitelistCount)] BSTR* whitelist, |
| [in] unsigned blacklistCount, [in, size_is(blacklistCount)] BSTR* blacklist); |
| HRESULT removeUserScriptFromGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR url); |
| HRESULT removeUserStyleSheetFromGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR url); |
| HRESULT removeUserScriptsFromGroup([in] BSTR groupName, [in] IWebScriptWorld*); |
| HRESULT removeUserStyleSheetsFromGroup([in] BSTR groupName, [in] IWebScriptWorld*); |
| HRESULT removeAllUserContentFromGroup([in] BSTR groupName); |
| |
| HRESULT setPluginHalterDelegate([in] IWebPluginHalterDelegate* d); |
| HRESULT pluginHalterDelegate([retval, out] IWebPluginHalterDelegate** d); |
| |
| // If rect is 0, the entire backing store will be invalidated. |
| HRESULT invalidateBackingStore([in] const RECT* rect); |
| |
| // Whitelists access from an origin (sourceOrigin) to a set of one or more origins described by the parameters: |
| // - destinationProtocol: The protocol to grant access to. |
| // - destinationHost: The host to grant access to. |
| // - allowDestinationSubdomains: If host is a domain, setting this to YES will whitelist host and all its subdomains, recursively. |
| HRESULT addOriginAccessWhitelistEntry([in] BSTR sourceOrigin, [in] BSTR destinationProtocol, [in] BSTR destinationHost, [in] BOOL allowDestinationSubdomains); |
| |
| // Removes a white list entry created with addOriginAccessWhitelistEntry. See above. |
| HRESULT removeOriginAccessWhitelistEntry([in] BSTR sourceOrigin, [in] BSTR destinationProtocol, [in] BSTR destinationHost, [in] BOOL allowDestinationSubdomains); |
| |
| // Removes all white list entries created with addOriginAccessWhitelistEntry. |
| HRESULT resetOriginAccessWhitelists(); |
| |
| HRESULT setHistoryDelegate([in] IWebHistoryDelegate* historyDelegate); |
| HRESULT historyDelegate([out,retval] IWebHistoryDelegate** historyDelegate); |
| HRESULT addVisitedLinks([in] BSTR* visitedURLs, [in] unsigned visitedURLCount); |
| |
| HRESULT isNodeHaltedPlugin([in] IDOMNode*, [retval, out] BOOL*); |
| HRESULT restartHaltedPluginForNode([in] IDOMNode*); |
| HRESULT hasPluginForNodeBeenHalted([in] IDOMNode*, [retval, out] BOOL*); |
| |
| HRESULT setGeolocationProvider([in] IWebGeolocationProvider* locationProvider); |
| HRESULT geolocationProvider([out, retval] IWebGeolocationProvider** locationProvider); |
| HRESULT geolocationDidChangePosition([in] IWebGeolocationPosition* position); |
| HRESULT geolocationDidFailWithError([in] IWebError* error); |
| |
| HRESULT setDomainRelaxationForbiddenForURLScheme([in] BOOL forbidden, [in] BSTR scheme); |
| |
| HRESULT registerURLSchemeAsSecure([in] BSTR scheme); |
| |
| HRESULT nextDisplayIsSynchronous(); |
| |
| HRESULT paintScrollViewRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE dc); |
| |
| [local] HRESULT reportException([in] JSContextRef context, [in] JSValueRef exception); |
| |
| [local] HRESULT elementFromJS([in] JSContextRef context, [in] JSValueRef nodeObject, [out, retval] IDOMElement** element); |
| |
| |
| /*! |
| @method defaultMinimumTimerInterval |
| @discussion Returns the default minimum interval for DOMTimers on all pages, not |
| just the one associated with this receiver. |
| - (double)interval; |
| */ |
| HRESULT defaultMinimumTimerInterval([out, retval] double* interval); |
| |
| /*! |
| @method setMinimumTimerInterval |
| @discussion Sets the minimum interval for DOMTimers on the web page associated |
| with the receiver. |
| - (double)interval; |
| */ |
| HRESULT setMinimumTimerInterval([in] double interval); |
| } |