18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef DO_NO_IMPORTS
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "oaidl.idl";
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "ocidl.idl";
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebFormDelegate.idl";
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebFrameLoadDelegatePrivate.idl";
31cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Blockimport "IWebHistoryDelegate.idl";
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebInspector.idl";
33231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockimport "IWebInspectorPrivate.idl";
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
36231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block// Sent when IWebView::close is called. No userInfo is associated with this notification.
37231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockcpp_quote("#define WebViewWillCloseNotification L\"WebViewWillCloseNotification\"")
38231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IEnumTextMatches;
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFormDelegate;
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrameLoadDelegatePrivate;
42cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Blockinterface IWebHistoryDelegate;
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebInspector;
44231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockinterface IWebInspectorPrivate;
45231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockinterface IWebPluginHalterDelegate;
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebURLRequest;
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebView;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
49231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blocktypedef enum {
50231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    WebInjectAtDocumentStart = 0,
51231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    WebInjectAtDocumentEnd,
52231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} WebUserScriptInjectionTime;
53231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    object,
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    oleautomation,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    uuid(44914369-DEB5-4fcf-A6A3-30C02E73154F),
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pointer_default(unique)
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project]
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebViewPrivate : IUnknown
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method _setInViewSourceMode:
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Used to place a WebView into a special source-viewing mode.
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)_setInViewSourceMode:(BOOL)flag;
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      */
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setInViewSourceMode([in] BOOL flag);
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method _inViewSourceMode;
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Whether or not the WebView is in source-view mode for HTML.
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)_inViewSourceMode;
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      */
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT inViewSourceMode([out, retval] BOOL* flag);
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT viewWindow([out, retval] OLE_HANDLE* window);
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // May well become public
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    //- (void)_setFormDelegate:(id<WebFormDelegate>)delegate;
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setFormDelegate([in] IWebFormDelegate* formDelegate);
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    //- (id<WebFormDelegate>)_formDelegate;
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT formDelegate([out, retval] IWebFormDelegate** formDelegate);
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setFrameLoadDelegatePrivate([in] IWebFrameLoadDelegatePrivate* frameLoadDelegatePrivate);
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT frameLoadDelegatePrivate([out, retval] IWebFrameLoadDelegatePrivate** frameLoadDelegatePrivate);
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT scrollOffset([out, retval] LPPOINT offset);
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT scrollBy([in] LPPOINT offset);
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT visibleContentRect([out, retval] LPRECT rect);
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // SPI for DumpRenderTree
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT updateFocusedAndActiveState();
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // Support for displaying multiple text matches.
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT markAllMatchesForText([in] BSTR search, [in] BOOL caseSensitive, [in] BOOL highlight, [in] UINT limit, [out] UINT* matches);
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT unmarkAllTextMatches();
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT rectsForTextMatches([out]IEnumTextMatches** pmatches);
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT selectionRect([in, out] RECT* rc);
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT generateSelectionImage(BOOL forceWhiteText, [out, retval] OLE_HANDLE* hBitmap);
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT canHandleRequest([in] IWebURLRequest* request, [out, retval] BOOL* result);
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT clearFocusNode();
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setTabKeyCyclesThroughElements([in] BOOL cycles);
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT tabKeyCyclesThroughElements([out, retval] BOOL* result);
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setAllowSiteSpecificHacks([in] BOOL allows);
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT addAdditionalPluginDirectory([in] BSTR directory);
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT loadBackForwardListFromOtherView([in] IWebView* otherView);
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setCustomDropTarget([in] IDropTarget* dt);
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT removeCustomDropTarget();
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setInitialFocus([in] BOOL forward);
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT inspector([out, retval] IWebInspector**);
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT clearUndoRedoOperations();
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setProhibitsMainFrameScrolling([in] BOOL prohibits);
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // SPI for DumpRenderTree. This is global to all WebViews.
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setShouldApplyMacFontAscentHack([in] BOOL shouldApply);
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method shouldClose:
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract This function will fire the before unload handler for a page.
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        If the user cancels the closing of a webview from the alert popped up by the
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        before unload handler, then this function will return false.
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT shouldClose([out, retval] BOOL* result);
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // SPI for DumpRenderTree
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT executeCoreCommandByName([in] BSTR name, [in] BSTR value);
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT windowAncestryDidChange();
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT paintDocumentRectToContext([in] RECT rect, [in] OLE_HANDLE dc);
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setDefersCallbacks([in] BOOL defersCallbacks);
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT defersCallbacks([out, retval] BOOL* defersCallbacks);
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT standardUserAgentWithApplicationName([in] BSTR applicationName, [retval][out] BSTR* groupName);
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setCustomHTMLTokenizerTimeDelay([in] double timeDelay);
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setCustomHTMLTokenizerChunkSize([in] int chunkSize);
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT backingStore([out, retval] OLE_HANDLE* hBitmap);
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setTransparent([in] BOOL transparent);
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT transparent([out, retval] BOOL* transparent);
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setAlwaysUsesComplexTextCodePath([in] BOOL complex);
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT alwaysUsesComplexTextCodePath([out, retval] BOOL* complex);
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setCookieEnabled([in] BOOL enable);
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT cookieEnabled([out, retval] BOOL* enabled);
161635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
162635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HRESULT setMediaVolume([in] float volume);
163635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HRESULT mediaVolume([out, retval] float* volume);
164635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
165635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    // SPI for DumpRenderTree
166635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HRESULT clearMainFrameName();
167635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
168635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HRESULT globalHistoryItem([out, retval] IWebHistoryItem**);
169635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
170635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HRESULT registerEmbeddedViewMIMEType([in] BSTR mimeType);
171635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
172635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HRESULT setMemoryCacheDelegateCallsEnabled([in] BOOL enabled);
173563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
174563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    HRESULT setJavaScriptURLsAreAllowed([in] BOOL areAllowed);
1750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    HRESULT setCanStartPlugins([in] BOOL canStartPlugins);
177231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
178231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    /*!
179231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        @method MIMETypeForExtension:
180231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        @abstract Returns the mime type for a certian file extension.
181231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        @param path The extension of the file to check.
182231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        @result The mime type of the specified extension.
183231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        + (BSTR)MIMETypeForPath:(NSString *)path;
184231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    */
185231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    HRESULT MIMETypeForExtension([in] BSTR extension, [out, retval] BSTR* mimeType);
186231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
187643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    HRESULT addUserScriptToGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR source, [in] BSTR url,
188231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block                                 [in] unsigned whitelistCount, [in, size_is(whitelistCount)] BSTR* whitelist,
189231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block                                 [in] unsigned blacklistCount, [in, size_is(blacklistCount)] BSTR* blacklist,
190231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block                                 [in] WebUserScriptInjectionTime injectionTime);
191643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    HRESULT addUserStyleSheetToGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR source, [in] BSTR url,
192231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block                                     [in] unsigned whitelistCount, [in, size_is(whitelistCount)] BSTR* whitelist,
193231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block                                     [in] unsigned blacklistCount, [in, size_is(blacklistCount)] BSTR* blacklist);
194643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    HRESULT removeUserScriptFromGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR url);
195643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    HRESULT removeUserStyleSheetFromGroup([in] BSTR groupName, [in] IWebScriptWorld*, [in] BSTR url);
196643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    HRESULT removeUserScriptsFromGroup([in] BSTR groupName, [in] IWebScriptWorld*);
197643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    HRESULT removeUserStyleSheetsFromGroup([in] BSTR groupName, [in] IWebScriptWorld*);
198231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    HRESULT removeAllUserContentFromGroup([in] BSTR groupName);
199231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
200231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    HRESULT setPluginHalterDelegate([in] IWebPluginHalterDelegate* d);
201231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    HRESULT pluginHalterDelegate([retval, out] IWebPluginHalterDelegate** d);
202231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
203231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // If rect is 0, the entire backing store will be invalidated.
204231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    HRESULT invalidateBackingStore([in] const RECT* rect);
205231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
206231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // Whitelists access from an origin (sourceOrigin) to a set of one or more origins described by the parameters:
207231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // - destinationProtocol: The protocol to grant access to.
208231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // - destinationHost: The host to grant access to.
209231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // - allowDestinationSubdomains: If host is a domain, setting this to YES will whitelist host and all its subdomains, recursively.
210dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    HRESULT addOriginAccessWhitelistEntry([in] BSTR sourceOrigin, [in] BSTR destinationProtocol, [in] BSTR destinationHost, [in] BOOL allowDestinationSubdomains);
211231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
212dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    // Removes a white list entry created with addOriginAccessWhitelistEntry. See above.
213dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    HRESULT removeOriginAccessWhitelistEntry([in] BSTR sourceOrigin, [in] BSTR destinationProtocol, [in] BSTR destinationHost, [in] BOOL allowDestinationSubdomains);
214dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
215dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    // Removes all white list entries created with addOriginAccessWhitelistEntry.
216dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    HRESULT resetOriginAccessWhitelists();
217cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block
218cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    HRESULT setHistoryDelegate([in] IWebHistoryDelegate* historyDelegate);
219cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    HRESULT historyDelegate([out,retval] IWebHistoryDelegate** historyDelegate);
220cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    HRESULT addVisitedLinks([in] BSTR* visitedURLs, [in] unsigned visitedURLCount);
221cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block
222cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    HRESULT isNodeHaltedPlugin([in] IDOMNode*, [retval, out] BOOL*);
223cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    HRESULT restartHaltedPluginForNode([in] IDOMNode*);
224cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    HRESULT hasPluginForNodeBeenHalted([in] IDOMNode*, [retval, out] BOOL*);
225d0825bca7fe65beaee391d30da42e937db621564Steve Block
226d0825bca7fe65beaee391d30da42e937db621564Steve Block    HRESULT setGeolocationProvider([in] IWebGeolocationProvider* locationProvider);
227d0825bca7fe65beaee391d30da42e937db621564Steve Block    HRESULT geolocationProvider([out, retval] IWebGeolocationProvider** locationProvider);
228d0825bca7fe65beaee391d30da42e937db621564Steve Block    HRESULT geolocationDidChangePosition([in] IWebGeolocationPosition* position);
229d0825bca7fe65beaee391d30da42e937db621564Steve Block    HRESULT geolocationDidFailWithError([in] IWebError* error);
230d0825bca7fe65beaee391d30da42e937db621564Steve Block
231d0825bca7fe65beaee391d30da42e937db621564Steve Block    HRESULT setDomainRelaxationForbiddenForURLScheme([in] BOOL forbidden, [in] BSTR scheme);
232dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
233dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    HRESULT registerURLSchemeAsSecure([in] BSTR scheme);
23421939df44de1705786c545cd1bf519d47250322dBen Murdoch
23521939df44de1705786c545cd1bf519d47250322dBen Murdoch    HRESULT nextDisplayIsSynchronous();
2366c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen
237545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch    HRESULT paintScrollViewRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE dc);
2386c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen
2396c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen    [local] HRESULT reportException([in] JSContextRef context, [in] JSValueRef exception);
240967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch
241967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch    [local] HRESULT elementFromJS([in] JSContextRef context, [in] JSValueRef nodeObject, [out, retval] IDOMElement** element);
24281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
24381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
24481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    /*!
24581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        @method defaultMinimumTimerInterval
24681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        @discussion Returns the default minimum interval for DOMTimers on all pages, not
24781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        just the one associated with this receiver.
24881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        - (double)interval;
24981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    */
25081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    HRESULT defaultMinimumTimerInterval([out, retval] double* interval);
25181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
25281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    /*!
25381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        @method setMinimumTimerInterval
25481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        @discussion Sets the minimum interval for DOMTimers on the web page associated
25581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        with the receiver.
25681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        - (double)interval;
25781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    */
25881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    HRESULT setMinimumTimerInterval([in] double interval);
2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
260