18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
2db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 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 *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1.  Redistributions of source code must retain the above copyright
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer.
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2.  Redistributions in binary form must reproduce the above copyright
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer in the
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     documentation and/or other materials provided with the distribution.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     its contributors may be used to endorse or promote products derived
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     from this software without specific prior written permission.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <WebKit/WebUIDelegate.h>
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_DASHBOARD_SUPPORT)
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_DASHBOARD_SUPPORT 1
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
355abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#if !defined(ENABLE_FULLSCREEN_API)
365abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#define ENABLE_FULLSCREEN_API 1
375abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#endif
385abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// Mail on Tiger expects the old value for WebMenuItemTagSearchInGoogle
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WebMenuItemTagSearchInGoogle OldWebMenuItemTagSearchWeb
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WEBMENUITEMTAG_WEBKIT_3_0_SPI_START 2000
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectenum {
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // The next three values were used in WebKit 2.0 for SPI. In WebKit 3.0 these are API, with different values.
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    OldWebMenuItemTagSearchInSpotlight = 1000,
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    OldWebMenuItemTagSearchWeb,
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    OldWebMenuItemTagLookUpInDictionary,
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // FIXME: These should move to WebUIDelegate.h as part of the WebMenuItemTag enum there, when we're not in API freeze
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // Note that these values must be kept aligned with values in WebCore/ContextMenuItem.h
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOpenLink = WEBMENUITEMTAG_WEBKIT_3_0_SPI_START,
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagIgnoreGrammar,
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagSpellingMenu,
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagShowSpellingPanel,
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCheckSpelling,
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCheckSpellingWhileTyping,
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCheckGrammarWithSpelling,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagFontMenu,
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagShowFonts,
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagBold,
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagItalic,
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagUnderline,
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOutline,
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStyles,
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagShowColors,
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagSpeechMenu,
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStartSpeaking,
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStopSpeaking,
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagWritingDirectionMenu,
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagDefaultDirection,
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagLeftToRight,
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagRightToLeft,
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFSinglePageScrolling,
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFFacingPagesScrolling,
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagInspectElement,
75635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    WebMenuItemTagTextDirectionMenu,
76635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    WebMenuItemTagTextDirectionDefault,
77635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    WebMenuItemTagTextDirectionLeftToRight,
78635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    WebMenuItemTagTextDirectionRightToLeft,
790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagCorrectSpellingAutomatically,
800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagSubstitutionsMenu,
810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagShowSubstitutions,
820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagSmartCopyPaste,
830bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagSmartQuotes,
840bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagSmartDashes,
850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagSmartLinks,
860bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagTextReplacement,
870bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagTransformationsMenu,
880bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagMakeUpperCase,
890bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagMakeLowerCase,
900bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagCapitalize,
910bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    WebMenuItemTagChangeBack,
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagBaseApplication = 10000
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
94643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
9581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch// Message Sources.
9681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageHTMLMessageSource;
9781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageWMLMessageSource;
9881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageXMLMessageSource;
9981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageJSMessageSource;
10081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageCSSMessageSource;
10181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageOtherMessageSource;
10281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
10381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch// Message Types.
10481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageLogMessageType;
10581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageObjectMessageType;
10681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageTraceMessageType;
10781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageStartGroupMessageType;
10881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageStartGroupCollapsedMessageType;
10981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageEndGroupMessageType;
11081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageAssertMessageType;
11181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageUncaughtExceptionMessageType;
11281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageNetworkErrorMessageType;
11381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
11481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch// Message Levels.
11581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageTipMessageLevel;
11681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageLogMessageLevel;
11781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageWarningMessageLevel;
11881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageErrorMessageLevel;
11981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSString *WebConsoleMessageDebugMessageLevel;
12081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebSecurityOrigin;
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
123643ca7872b450ea4efacab6188849e5aac2ba161Steve Block@protocol WebGeolocationPolicyListener <NSObject>
124643ca7872b450ea4efacab6188849e5aac2ba161Steve Block- (void)allow;
125643ca7872b450ea4efacab6188849e5aac2ba161Steve Block- (void)deny;
126643ca7872b450ea4efacab6188849e5aac2ba161Steve Block@end
127643ca7872b450ea4efacab6188849e5aac2ba161Steve Block
1285abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#if ENABLE_FULLSCREEN_API
1295ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen@protocol WebKitFullScreenListener<NSObject>
1305ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (void)webkitWillEnterFullScreen;
1315ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (void)webkitDidEnterFullScreen;
1325ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (void)webkitWillExitFullScreen;
1335ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (void)webkitDidExitFullScreen;
1345ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen@end
1355ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif
1365ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@interface NSObject (WebUIDelegatePrivate)
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)webView addMessageToConsole:(NSDictionary *)message;
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
14181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch/*!
14281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    @method webView:addMessageToConsole:withSource:
14381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    @param webView The WebView sending the delegate method.
14481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    @param message A dictionary representation of the console message.
14581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    @param source Where the message came from. See WebConsoleMessageHTMLMessageSource and other source types.
14681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    @discussion The dictionary contains the following keys:
14781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
14881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    <dl>
14981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dt>message</dt>
15081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dd>The message itself.</dd>
15181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dt>lineNumber</dt>
15281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dd>If this came from a file, this is the line number in the file this message originates from.</dd>
15381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dt>sourceURL</dt>
15481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dd>If this came from a file, this is the URL to the file this message originates from.</dd>
15581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dt>MessageSource</dt>
15681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dd>
15781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch            Where the message came from. HTML, XML, JavaScript, CSS, etc.
15881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch            See WebConsoleMessageHTMLMessageSource and similar constants.
15981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        </dd>
16081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dt>MessageType</dt>
16181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dd>
16281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch            Class of message. Start / End of a Group, a Log, Network related, etc.
16381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch            See WebConsoleMessageLogMessageType and similar constants.
16481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        </dd>
16581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dt>MessageLevel</dt>
16681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        <dd>
16781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch            Severity level of the message. Tip, Log, Warning, etc.
16881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch            See WebConsoleMessageTipMessageLevel and similar constants.
16981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        </dd>
17081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    </dl>
17181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch*/
17281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch- (void)webView:(WebView *)webView addMessageToConsole:(NSDictionary *)message withSource:(NSString *)source;
17381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSView *)webView:(WebView *)webView plugInViewWithArguments:(NSDictionary *)arguments;
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE_DASHBOARD_SUPPORT
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// regions is an dictionary whose keys are regions label and values are arrays of WebDashboardRegions.
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)webView dashboardRegionsChanged:(NSDictionary *)regions;
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender dragImage:(NSImage *)anImage at:(NSPoint)viewLocation offset:(NSSize)initialOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pboard source:(id)sourceObj slideBack:(BOOL)slideFlag forView:(NSView *)view;
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender didDrawRect:(NSRect)rect;
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender didScrollDocumentInFrameView:(WebFrameView *)frameView;
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// FIXME: If we ever make this method public, it should include a WebFrame parameter.
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (BOOL)webViewShouldInterruptJavaScript:(WebView *)sender;
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender willPopupMenu:(NSMenu *)menu;
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender contextMenuItemSelected:(NSMenuItem *)item forElement:(NSDictionary *)element;
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender saveFrameView:(WebFrameView *)frameView showingPanel:(BOOL)showingPanel;
189643ca7872b450ea4efacab6188849e5aac2ba161Steve Block- (BOOL)webView:(WebView *)sender shouldHaltPlugin:(DOMNode *)pluginNode isWindowed:(BOOL)isWindowed pluginName:(NSString *)pluginName;
190ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block- (BOOL)webView:(WebView *)sender didPressMissingPluginButton:(DOMElement *)element;
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param sender The WebView sending the delegate method.
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param frame The WebFrame whose JavaScript initiated this call.
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param origin The security origin that needs a larger quota.
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param databaseIdentifier The identifier of the database involved.
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(WebSecurityOrigin *)origin database:(NSString *)databaseIdentifier;
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
200db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block/*!
201db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    @method webView:exceededApplicationCacheOriginQuotaForSecurityOrigin:
202db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    @param sender The WebView sending the delegate method.
203db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    @param origin The security origin that needs a larger quota
204db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    @discussion This method is called when a page attempts to store more in the Application Cache
205db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    for an origin than was allowed by the quota (or default) set for the origin. This allows the
206db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    quota to be increased for the security origin.
207db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block*/
208db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block- (void)webView:(WebView *)sender exceededApplicationCacheOriginQuotaForSecurityOrigin:(WebSecurityOrigin *)origin;
209db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request windowFeatures:(NSDictionary *)features;
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (BOOL)webView:(WebView *)sender shouldReplaceUploadFile:(NSString *)path usingGeneratedFilename:(NSString **)filename;
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSString *)webView:(WebView *)sender generateReplacementFile:(NSString *)path;
214563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
215643ca7872b450ea4efacab6188849e5aac2ba161Steve Block/*!
216643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    @method webView:decidePolicyForGeolocationRequestFromOrigin:frame:listener:
217643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    @abstract
218643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    @param webView The WebView sending the delegate method.
219643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    @param origin The security origin that would like to use Geolocation.
220643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    @param frame The WebFrame whose JavaScript initiated this call.
221643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    @param listener The object to call when the decision is made
222643ca7872b450ea4efacab6188849e5aac2ba161Steve Block*/
223643ca7872b450ea4efacab6188849e5aac2ba161Steve Block- (void)webView:(WebView *)webView decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin *)origin
224643ca7872b450ea4efacab6188849e5aac2ba161Steve Block                                                                         frame:(WebFrame *)frame
225643ca7872b450ea4efacab6188849e5aac2ba161Steve Block                                                                      listener:(id<WebGeolocationPolicyListener>)listener;
226563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
227231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block- (void)webView:(WebView *)sender formDidFocusNode:(DOMNode *)node;
228231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block- (void)webView:(WebView *)sender formDidBlurNode:(DOMNode *)node;
2290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch/*!
2310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    @method webView:printFrame:
2320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    @abstract Informs that a WebFrame needs to be printed
2330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    @param webView The WebView sending the delegate method
2340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    @param frameView The WebFrame needing to be printed
2350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    @discussion This method is called when a script or user requests the page to be printed.
2360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch*/
2370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch- (void)webView:(WebView *)sender printFrame:(WebFrame *)frame;
2380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2395abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#if ENABLE_FULLSCREEN_API
2405ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (BOOL)webView:(WebView *)sender supportsFullScreenForElement:(DOMElement *)element;
2415ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (void)webView:(WebView *)sender enterFullScreenForElement:(DOMElement *)element;
2425ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen- (void)webView:(WebView *)sender exitFullScreenForElement:(DOMElement *)element;
2435ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif
2445ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen
245a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch- (void)webView:(WebView *)sender didDrawFrame:(WebFrame *)frame;
246a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@end
248