18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2006, 2007, 2008, 2009 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 "IWebScriptObject.idl";
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebView.idl";
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebFrame.idl";
32643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockimport "JavaScriptCoreAPITypes.idl";
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebError;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrame;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebScriptObject;
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebView;
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @category WebFrameLoadDelegate
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion A WebView's WebFrameLoadDelegate tracks the loading progress of its frames.
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    When a data source of a frame starts to load, the data source is considered "provisional".
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Once at least one byte is received, the data source is considered "committed". This is done
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    so the contents of the frame will not be lost if the new data source fails to successfully load.
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @interface NSObject (WebFrameLoadDelegate)
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    object,
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    oleautomation,
520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    uuid(3354665B-84BA-4fdf-B35E-BF5CF9D96026),
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pointer_default(unique)
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project]
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrameLoadDelegate : IUnknown
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didStartProvisionalLoadForFrame:
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the provisional load of a frame has started
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which the provisional load has started
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after the provisional data source of a frame
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        has started to load.
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame;
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didStartProvisionalLoadForFrame([in] IWebView* webView, [in] IWebFrame* frame);
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didReceiveServerRedirectForProvisionalLoadForFrame:
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that a server redirect occurred during the provisional load
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which the redirect occurred
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didReceiveServerRedirectForProvisionalLoadForFrame:(WebFrame *)frame;
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didReceiveServerRedirectForProvisionalLoadForFrame([in] IWebView* webView, [in] IWebFrame* frame);
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didFailProvisionalLoadWithError:forFrame:
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the provisional load has failed
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param error The error that occurred
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which the error occurred
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after the provisional data source has failed to load.
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        The frame will continue to display the contents of the committed data source if there is one.
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didFailProvisionalLoadWithError:(NSError *)error forFrame:(WebFrame *)frame;
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didFailProvisionalLoadWithError([in] IWebView* webView, [in] IWebError* error, [in] IWebFrame* frame);
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didCommitLoadForFrame:
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the load has changed from provisional to committed
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which the load has committed
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after the provisional data source has become the
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        committed data source.
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        In some cases, a single load may be committed more than once. This happens
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        in the case of multipart/x-mixed-replace, also known as "server push". In this case,
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        a single location change leads to multiple documents that are loaded in sequence. When
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        this happens, a new commit will be sent for each document.
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame;
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didCommitLoadForFrame([in] IWebView* webView, [in] IWebFrame* frame);
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didReceiveTitle:forFrame:
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the page title for a frame has been received
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param title The new page title
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which the title has been received
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion The title may update during loading; clients should be prepared for this.
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame;
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didReceiveTitle([in] IWebView* webView, [in] BSTR title, [in] IWebFrame* frame);
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didReceiveIcon:forFrame:
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that a page icon image for a frame has been received
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param image The icon image. Also known as a "favicon".
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which a page icon has been received
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didReceiveIcon:(NSImage *)image forFrame:(WebFrame *)frame;
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didReceiveIcon([in] IWebView* webView, [in] OLE_HANDLE hBitmap, [in] IWebFrame* frame);
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didFinishLoadForFrame:
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the committed load of a frame has completed
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame that finished loading
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after the committed data source of a frame has successfully loaded
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        and will only be called when all subresources such as images and stylesheets are done loading.
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Plug-In content and JavaScript-requested loads may occur after this method is called.
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame;
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didFinishLoadForFrame([in] IWebView* webView, [in] IWebFrame* frame);
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didFailLoadWithError:forFrame:
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the committed load of a frame has failed
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param error The error that occurred
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame that failed to load
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after a data source has committed but failed to completely load.
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didFailLoadWithError:(NSError *)error forFrame:(WebFrame *)frame;
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didFailLoadWithError([in] IWebView* webView, [in] IWebError* error, [in] IWebFrame* forFrame);
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didChangeLocationWithinPageForFrame:
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the scroll position in a frame has changed
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame that scrolled
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called when anchors within a page have been clicked.
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didChangeLocationWithinPageForFrame:(WebFrame *)frame;
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didChangeLocationWithinPageForFrame([in] IWebView* webView, [in] IWebFrame* frame);
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:willPerformClientRedirectToURL:delay:fireDate:forFrame:
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that a frame will perform a client-side redirect
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param URL The URL to be redirected to
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param seconds Seconds in which the redirect will happen
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param date The fire date
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame on which the redirect will occur
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method can be used to continue progress feedback while a client-side
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        redirect is pending.
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender willPerformClientRedirectToURL:(NSURL *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date forFrame:(WebFrame *)frame;
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT willPerformClientRedirectToURL([in] IWebView* webView, [in] BSTR url, [in] double delaySeconds, [in] DATE fireDate, [in] IWebFrame* frame);
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:didCancelClientRedirectForFrame:
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that a pending client-side redirect has been cancelled
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame for which the pending redirect was cancelled
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion A client-side redirect can be cancelled if a frame changes location before the timeout.
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender didCancelClientRedirectForFrame:(WebFrame *)frame;
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT didCancelClientRedirectForFrame([in] IWebView* webView, [in] IWebFrame* frame);
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:willCloseFrame:
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that a frame will be closed
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the message
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The frame that will be closed
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called right before WebKit is done with the frame
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        and the objects that it contains.
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender willCloseFrame:(WebFrame *)frame;
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT willCloseFrame([in] IWebView* webView, [in] IWebFrame* frame);
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:windowScriptObjectAvailable:
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Notifies the delegate that the scripting object for a page is available.  This is called
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        before the page is loaded.  It may be useful to allow delegates to bind native objects to the window.
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The webView sending the message.
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param windowScriptObject The WebScriptObject for the window in the scripting environment.
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)webView windowScriptObjectAvailable:(WebScriptObject *)windowScriptObject;
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [local] HRESULT windowScriptObjectAvailable([in] IWebView* webView, [in] JSContextRef context, [in] JSObjectRef windowScriptObject);
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [local] HRESULT didClearWindowObject([in] IWebView* webView, [in] JSContextRef context, [in] JSObjectRef windowScriptObject, [in] IWebFrame* frame);
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
206