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 "DOMHTML.idl";
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebArchive.idl";
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebFrameView.idl";
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebView.idl";
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebURLRequest.idl";
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "DOMCore.idl";
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcpp_quote("// this is done to get midl to treat the JavaScriptCore API types as pointer types")
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcpp_quote("#if 0")
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef void* JSGlobalContextRef;
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcpp_quote("#else")
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcpp_quote("typedef struct OpaqueJSContext* JSGlobalContextRef;")
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectcpp_quote("#endif")
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IDOMDocument;
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IDOMElement;
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IDOMHTMLElement;
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebURLRequest;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebArchive;
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebDataSource;
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFramePrivate;
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrameView;
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebView;
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @class WebFrame
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion Every web page is represented by at least one WebFrame.  A WebFrame
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    has a WebFrameView and a WebDataSource.
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @interface WebFrame : NSObject
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    object,
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    oleautomation,
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    uuid(B4B22EF7-DD43-4d01-A992-99C4A8B1F845),
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pointer_default(unique)
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project]
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrame : IUnknown
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method name
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The frame name.
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSString *)name;
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT name([out, retval] BSTR* frameName);
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result Returns the WebView for the document that includes this frame.
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebView *)webView;
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webView([out, retval] IWebView** view);
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method frameView
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The WebFrameView for this frame.
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebFrameView *)frameView;
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT frameView([out, retval] IWebFrameView** view);
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method DOMDocument
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns the DOM document of the frame.
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @description Returns nil if the frame does not contain a DOM document such as a standalone image.
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (DOMDocument *)DOMDocument;
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT DOMDocument([out, retval] IDOMDocument** document);
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method frameElement
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns the frame element of the frame.
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @description The class of the result is either DOMHTMLFrameElement, DOMHTMLIFrameElement or DOMHTMLObjectElement.
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns nil if the frame is the main frame since there is no frame element for the frame in this case.
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (DOMHTMLElement *)frameElement;
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT frameElement([out, retval] IDOMHTMLElement** frameElement);
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method loadRequest:
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param request The web request to load.
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)loadRequest:(NSURLRequest *)request;
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT loadRequest([in] IWebURLRequest* request);
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method loadData:MIMEType:textEncodingName:baseURL:
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param data The data to use for the main page of the document.
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param MIMEType The MIME type of the data.
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param encodingName The encoding of the data.
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param URL The base URL to apply to relative URLs within the document.
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)URL;
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT loadData([in] IStream* data, [in] BSTR mimeType, [in] BSTR textEncodingName, [in] BSTR url);
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method loadHTMLString:baseURL:
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param string The string to use for the main page of the document.
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param URL The base URL to apply to relative URLs within the document.
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)URL;
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT loadHTMLString([in] BSTR string, [in] BSTR baseURL);
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method loadAlternateHTMLString:baseURL:forUnreachableURL:
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Loads a page to display as a substitute for a URL that could not be reached.
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This allows clients to display page-loading errors in the webview itself.
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        This is typically called while processing the WebFrameLoadDelegate method
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        -webView:didFailProvisionalLoadWithError:forFrame: or one of the the WebPolicyDelegate methods
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        -webView:decidePolicyForMIMEType:request:frame:decisionListener: or
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        -webView:unableToImplementPolicyWithError:frame:. If it is called from within one of those
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        three delegate methods then the back/forward list will be maintained appropriately.
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param string The string to use for the main page of the document.
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param baseURL The baseURL to apply to relative URLs within the document.
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param unreachableURL The URL for which this page will serve as alternate content.
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL;
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT loadAlternateHTMLString([in] BSTR str, [in] BSTR baseURL, [in] BSTR unreachableURL);
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method loadArchive:
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Causes WebFrame to load a WebArchive.
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param archive The archive to be loaded.
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)loadArchive:(WebArchive *)archive;
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT loadArchive([in] IWebArchive* archive);
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method dataSource
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Returns the committed data source.  Will return nil if the
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        provisional data source hasn't yet been loaded.
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The datasource for this frame.
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebDataSource *)dataSource;
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT dataSource([out, retval] IWebDataSource** source);
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method provisionalDataSource
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Will return the provisional data source.  The provisional data source will
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        be nil if no data source has been set on the frame, or the data source
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        has successfully transitioned to the committed data source.
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The provisional datasource of this frame.
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebDataSource *)provisionalDataSource;
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT provisionalDataSource([out, retval] IWebDataSource** source);
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method stopLoading
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Stop any pending loads on the frame's data source,
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        and its children.
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)stopLoading;
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT stopLoading();
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method reload
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)reload;
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT reload();
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method findFrameNamed:
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method returns a frame with the given name. findFrameNamed returns self
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        for _self and _current, the parent frame for _parent and the main frame for _top.
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        findFrameNamed returns self for _parent and _top if the receiver is the mainFrame.
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        findFrameNamed first searches from the current frame to all descending frames then the
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        rest of the frames in the WebView. If still not found, findFrameNamed searches the
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        frames of the other WebViews.
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param name The name of the frame to find.
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The frame matching the provided name. nil if the frame is not found.
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebFrame *)findFrameNamed:(NSString *)name;
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT findFrameNamed([in] BSTR name, [out, retval] IWebFrame** frame);
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method parentFrame
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The frame containing this frame, or nil if this is a top level frame.
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebFrame *)parentFrame;
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT parentFrame([out, retval] IWebFrame** frame);
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method childFrames
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion The frames in the array are associated with a frame set or iframe.
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result Returns an array of WebFrame.
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSArray *)childFrames;
2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT childFrames([out, retval] IEnumVARIANT** enumFrames);
2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  /* This is a DOMElement on mac, but maybe should be a DOMHTMLFrameElement? */
2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT currentForm([out, retval] IDOMElement** frameElement);
2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method setAllowsScrolling:
2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Sets whether the WebFrameView allows its document to be scrolled
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param flag YES to allow the document to be scrolled, NO to disallow scrolling
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)setAllowsScrolling:(BOOL)flag;
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   HRESULT setAllowsScrolling([in] BOOL flag);
2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method allowsScrolling
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns whether the WebFrameView allows its document to be scrolled
2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result YES if the document is allowed to scroll, otherwise NO
2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)allowsScrolling;
2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   HRESULT allowsScrolling([out, retval] BOOL* flag);
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method globalContext
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The frame's global JavaScript execution context.  Use this method to
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        bridge between the WebKit and JavaScriptCore APIs.
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   [local] JSGlobalContextRef globalContext();
2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   /*!
2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method setIsDisconnected
2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set whether a frame is disconnected
2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param flag YES to mark the frame as disconnected, NO keeps it a regular frame
2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   */
2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   HRESULT setIsDisconnected([in] BOOL flag);
2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      /*!
2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method setExcludeFromTextSearch
2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set whether a frame should be excluded from text search
2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param flag YES to mark the frame as not searchable
2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   */
2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project   HRESULT setExcludeFromTextSearch([in] BOOL flag);
257231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
258231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block   /*!
259231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block       @method reloadFromOrigin
260231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block       @discussion Performs HTTP/1.1 end-to-end reload.
261231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block   */
262231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block   HRESULT reloadFromOrigin();
2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
264