#import <WebKit/WebView.h>
#import <WebKit/WebFramePrivate.h>
#import <JavaScriptCore/JSBase.h>
#if !defined(ENABLE_DASHBOARD_SUPPORT)
#define ENABLE_DASHBOARD_SUPPORT 1
#endif
@class NSError;
@class WebFrame;
@class WebDeviceOrientation;
@class WebGeolocationPosition;
@class WebInspector;
@class WebNotification;
@class WebPreferences;
@class WebScriptWorld;
@class WebSecurityOrigin;
@class WebTextIterator;
@protocol WebDeviceOrientationProvider;
@protocol WebFormDelegate;
extern NSString *_WebCanGoBackKey;
extern NSString *_WebCanGoForwardKey;
extern NSString *_WebEstimatedProgressKey;
extern NSString *_WebIsLoadingKey;
extern NSString *_WebMainFrameIconKey;
extern NSString *_WebMainFrameTitleKey;
extern NSString *_WebMainFrameURLKey;
extern NSString *_WebMainFrameDocumentKey;
extern NSString *WebElementTitleKey; extern NSString *WebElementSpellingToolTipKey; extern NSString *WebElementIsContentEditableKey; extern NSString *WebElementMediaURLKey;
extern NSString *WebElementLinkIsLiveKey; extern NSString *WebElementIsInScrollBarKey;
extern NSString *_WebViewDidStartAcceleratedCompositingNotification;
#if ENABLE_DASHBOARD_SUPPORT
typedef enum {
WebDashboardBehaviorAlwaysSendMouseEventsToAllWindows,
WebDashboardBehaviorAlwaysSendActiveNullEventsToPlugIns,
WebDashboardBehaviorAlwaysAcceptsFirstMouse,
WebDashboardBehaviorAllowWheelScrolling,
WebDashboardBehaviorUseBackwardCompatibilityMode
} WebDashboardBehavior;
#endif
typedef enum {
WebInjectAtDocumentStart,
WebInjectAtDocumentEnd,
} WebUserScriptInjectionTime;
typedef enum {
WebInjectInAllFrames,
WebInjectInTopFrameOnly
} WebUserContentInjectedFrames;
enum {
WebFindOptionsCaseInsensitive = 1 << 0,
WebFindOptionsAtWordStarts = 1 << 1,
WebFindOptionsTreatMedialCapitalAsWordStart = 1 << 2,
WebFindOptionsBackwards = 1 << 3,
WebFindOptionsWrapAround = 1 << 4,
WebFindOptionsStartInSelection = 1 << 5
};
typedef NSUInteger WebFindOptions;
typedef enum {
WebPaginationModeUnpaginated,
WebPaginationModeLeftToRight,
WebPaginationModeRightToLeft,
WebPaginationModeTopToBottom,
WebPaginationModeBottomToTop,
} WebPaginationMode;
enum {
WebDidFirstLayout = 1 << 0,
WebDidFirstVisuallyNonEmptyLayout = 1 << 1,
WebDidHitRelevantRepaintedObjectsAreaThreshold = 1 << 2
};
typedef NSUInteger WebLayoutMilestones;
typedef enum {
WebPageVisibilityStateVisible,
WebPageVisibilityStateHidden,
WebPageVisibilityStatePrerender,
WebPageVisibilityStateUnloaded
} WebPageVisibilityState;
typedef enum {
WebNotificationPermissionAllowed,
WebNotificationPermissionNotAllowed,
WebNotificationPermissionDenied
} WebNotificationPermission;
@interface WebController : NSTreeController {
IBOutlet WebView *webView;
}
- (WebView *)webView;
- (void)setWebView:(WebView *)newWebView;
@end
@interface WebView (WebViewEditingActionsPendingPublic)
- (void)outdent:(id)sender;
@end
@interface WebView (WebPendingPublic)
- (void)scheduleInRunLoop:(NSRunLoop *)runLoop forMode:(NSString *)mode;
- (void)unscheduleFromRunLoop:(NSRunLoop *)runLoop forMode:(NSString *)mode;
- (BOOL)findString:(NSString *)string options:(WebFindOptions)options;
- (DOMRange *)DOMRangeOfString:(NSString *)string relativeTo:(DOMRange *)previousRange options:(WebFindOptions)options;
- (void)setMainFrameDocumentReady:(BOOL)mainFrameDocumentReady;
- (void)setTabKeyCyclesThroughElements:(BOOL)cyclesElements;
- (BOOL)tabKeyCyclesThroughElements;
- (void)scrollDOMRangeToVisible:(DOMRange *)range;
- (void)setScriptDebugDelegate:(id)delegate;
- (id)scriptDebugDelegate;
- (void)setHistoryDelegate:(id)delegate;
- (id)historyDelegate;
- (BOOL)shouldClose;
- (NSAppleEventDescriptor *)aeDescByEvaluatingJavaScriptFromString:(NSString *)script;
- (BOOL)canMarkAllTextMatches;
- (NSUInteger)countMatchesForText:(NSString *)string options:(WebFindOptions)options highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches;
- (NSUInteger)countMatchesForText:(NSString *)string inDOMRange:(DOMRange *)range options:(WebFindOptions)options highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches;
- (void)unmarkAllTextMatches;
- (NSArray *)rectsForTextMatches;
- (BOOL)allowsUndo;
- (void)setAllowsUndo:(BOOL)flag;
- (void)setPageSizeMultiplier:(float)multiplier;
- (float)pageSizeMultiplier;
- (BOOL)canZoomPageIn;
- (IBAction)zoomPageIn:(id)sender;
- (BOOL)canZoomPageOut;
- (IBAction)zoomPageOut:(id)sender;
- (BOOL)canResetPageZoom;
- (IBAction)resetPageZoom:(id)sender;
- (void)setMediaVolume:(float)volume;
- (float)mediaVolume;
- (void)addVisitedLinks:(NSArray *)visitedLinks;
@end
@interface WebView (WebPrivate)
- (WebInspector *)inspector;
- (void)setBackgroundColor:(NSColor *)backgroundColor;
- (NSColor *)backgroundColor;
- (void)_loadBackForwardListFromOtherView:(WebView *)otherView;
+ (void)_reportException:(JSValueRef)exception inContext:(JSContextRef)context;
- (void)_dispatchPendingLoadRequests;
+ (NSArray *)_supportedFileExtensions;
+ (BOOL)canShowFile:(NSString *)path;
+ (NSString *)suggestedFileExtensionForMIMEType: (NSString *)MIMEType;
+ (NSString *)_standardUserAgentWithApplicationName:(NSString *)applicationName;
+ (BOOL)canCloseAllWebViews;
- (void)_setFormDelegate:(id<WebFormDelegate>)delegate;
- (id<WebFormDelegate>)_formDelegate;
- (BOOL)_isClosed;
- (void)_close;
- (BOOL)_isProcessingUserGesture;
- (BOOL)_isViewVisible;
- (void)_updateVisibilityState;
- (void)_updateActiveState;
+ (void)_registerViewClass:(Class)viewClass representationClass:(Class)representationClass forURLScheme:(NSString *)URLScheme;
+ (void)_unregisterViewClassAndRepresentationClassForMIMEType:(NSString *)MIMEType;
+ (BOOL)_canHandleRequest:(NSURLRequest *)request;
+ (NSString *)_decodeData:(NSData *)data;
+ (void)_setAlwaysUsesComplexTextCodePath:(BOOL)f;
+ (void)_setAlwaysUseATSU:(BOOL)f;
+ (void)_setAllowsRoundingHacks:(BOOL)allowsRoundingHacks;
+ (BOOL)_allowsRoundingHacks;
- (NSCachedURLResponse *)_cachedResponseForURL:(NSURL *)URL;
#if ENABLE_DASHBOARD_SUPPORT
- (void)_addScrollerDashboardRegions:(NSMutableDictionary *)regions;
- (NSDictionary *)_dashboardRegions;
- (void)_setDashboardBehavior:(WebDashboardBehavior)behavior to:(BOOL)flag;
- (BOOL)_dashboardBehavior:(WebDashboardBehavior)behavior;
#endif
+ (void)_setShouldUseFontSmoothing:(BOOL)f;
+ (BOOL)_shouldUseFontSmoothing;
+ (void)_setUsesTestModeFocusRingColor:(BOOL)f;
+ (BOOL)_usesTestModeFocusRingColor;
- (void)setAlwaysShowVerticalScroller:(BOOL)flag;
- (BOOL)alwaysShowVerticalScroller;
- (void)setAlwaysShowHorizontalScroller:(BOOL)flag;
- (BOOL)alwaysShowHorizontalScroller;
- (void)setProhibitsMainFrameScrolling:(BOOL)prohibits;
- (void)_setAdditionalWebPlugInPaths:(NSArray *)newPaths;
- (void)_setInViewSourceMode:(BOOL)flag;
- (BOOL)_inViewSourceMode;
- (void)_attachScriptDebuggerToAllFrames;
- (void)_detachScriptDebuggerFromAllFrames;
- (BOOL)defersCallbacks; - (void)setDefersCallbacks:(BOOL)defer;
- (BOOL)usesPageCache;
- (void)setUsesPageCache:(BOOL)usesPageCache;
- (WebHistoryItem *)_globalHistoryItem;
- (WebTextIterator *)textIteratorForRect:(NSRect)rect;
#if ENABLE_DASHBOARD_SUPPORT
- (void)handleAuthenticationForResource:(id)identifier challenge:(NSURLAuthenticationChallenge *)challenge fromDataSource:(WebDataSource *)dataSource;
#endif
- (void)_clearUndoRedoOperations;
- (BOOL)_inFastImageScalingMode;
- (void)_setUseFastImageScalingMode:(BOOL)flag;
- (BOOL)_cookieEnabled;
- (void)_setCookieEnabled:(BOOL)enable;
- (void)_executeCoreCommandByName:(NSString *)name value:(NSString *)value;
- (void)_clearMainFrameName;
- (void)_setCustomHTMLTokenizerTimeDelay:(double)timeDelay;
- (void)_setCustomHTMLTokenizerChunkSize:(int)chunkSize;
- (void)setSelectTrailingWhitespaceEnabled:(BOOL)flag;
- (BOOL)isSelectTrailingWhitespaceEnabled;
- (void)setMemoryCacheDelegateCallsEnabled:(BOOL)suspend;
- (BOOL)areMemoryCacheDelegateCallsEnabled;
+ (NSCursor *)_pointingHandCursor;
- (BOOL)_postsAcceleratedCompositingNotifications;
- (void)_setPostsAcceleratedCompositingNotifications:(BOOL)flag;
- (BOOL)_isUsingAcceleratedCompositing;
- (void)_setBaseCTM:(CGAffineTransform)transform forContext:(CGContextRef)context;
- (BOOL)interactiveFormValidationEnabled;
- (void)setInteractiveFormValidationEnabled:(BOOL)enabled;
- (int)validationMessageTimerMagnification;
- (void)setValidationMessageTimerMagnification:(int)newValue;
- (BOOL)_isSoftwareRenderable;
- (void)_setIncludesFlattenedCompositingLayersWhenDrawingToBitmap:(BOOL)flag;
- (BOOL)_includesFlattenedCompositingLayersWhenDrawingToBitmap;
- (void)setTracksRepaints:(BOOL)flag;
- (BOOL)isTrackingRepaints;
- (void)resetTrackedRepaints;
- (NSArray*)trackedRepaintRects;
- (NSPasteboard *)_insertionPasteboard;
+ (void)_addOriginAccessWhitelistEntryWithSourceOrigin:(NSString *)sourceOrigin destinationProtocol:(NSString *)destinationProtocol destinationHost:(NSString *)destinationHost allowDestinationSubdomains:(BOOL)allowDestinationSubdomains;
+ (void)_removeOriginAccessWhitelistEntryWithSourceOrigin:(NSString *)sourceOrigin destinationProtocol:(NSString *)destinationProtocol destinationHost:(NSString *)destinationHost allowDestinationSubdomains:(BOOL)allowDestinationSubdomains;
+ (void)_resetOriginAccessWhitelists;
+ (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectionTime:(WebUserScriptInjectionTime)injectionTime;
+ (void)_addUserStyleSheetToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist;
+ (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectionTime:(WebUserScriptInjectionTime)injectionTime injectedFrames:(WebUserContentInjectedFrames)injectedFrames;
+ (void)_addUserStyleSheetToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectedFrames:(WebUserContentInjectedFrames)injectedFrames;
+ (void)_removeUserScriptFromGroup:(NSString *)groupName world:(WebScriptWorld *)world url:(NSURL *)url;
+ (void)_removeUserStyleSheetFromGroup:(NSString *)groupName world:(WebScriptWorld *)world url:(NSURL *)url;
+ (void)_removeUserScriptsFromGroup:(NSString *)groupName world:(WebScriptWorld *)world;
+ (void)_removeUserStyleSheetsFromGroup:(NSString *)groupName world:(WebScriptWorld *)world;
+ (void)_removeAllUserContentFromGroup:(NSString *)groupName;
+ (void)_setLoadResourcesSerially:(BOOL)serialize;
- (BOOL)cssAnimationsSuspended;
- (void)setCSSAnimationsSuspended:(BOOL)suspended;
+ (void)_setDomainRelaxationForbidden:(BOOL)forbidden forURLScheme:(NSString *)scheme;
+ (void)_registerURLSchemeAsSecure:(NSString *)scheme;
+ (void)_registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing:(NSString *)scheme;
+ (void)_registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing:(NSString *)scheme;
- (void)_scaleWebView:(float)scale atOrigin:(NSPoint)origin;
- (float)_viewScaleFactor;
- (void)_setUseFixedLayout:(BOOL)fixed;
- (void)_setFixedLayoutSize:(NSSize)size;
- (BOOL)_useFixedLayout;
- (NSSize)_fixedLayoutSize;
- (void)_setPaginationMode:(WebPaginationMode)paginationMode;
- (WebPaginationMode)_paginationMode;
- (void)_listenForLayoutMilestones:(WebLayoutMilestones)layoutMilestones;
- (WebLayoutMilestones)_layoutMilestones;
- (void)_setVisibilityState:(WebPageVisibilityState)visibilityState isInitialState:(BOOL)isInitialState;
- (void)_setPaginationBehavesLikeColumns:(BOOL)behavesLikeColumns;
- (BOOL)_paginationBehavesLikeColumns;
- (void)_setPageLength:(CGFloat)pageLength;
- (CGFloat)_pageLength;
- (void)_setGapBetweenPages:(CGFloat)pageGap;
- (CGFloat)_gapBetweenPages;
- (NSUInteger)_pageCount;
- (void)_setCustomBackingScaleFactor:(CGFloat)overrideScaleFactor;
- (CGFloat)_backingScaleFactor;
- (NSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit;
- (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches;
- (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag startInSelection:(BOOL)startInSelection;
+ (BOOL)_HTTPPipeliningEnabled;
+ (void)_setHTTPPipeliningEnabled:(BOOL)enabled;
@property (nonatomic, copy, getter=_sourceApplicationAuditData, setter=_setSourceApplicationAuditData:) NSData *sourceApplicationAuditData;
@end
@interface WebView (WebViewPrintingPrivate)
- (void)_adjustPrintingMarginsForHeaderAndFooter;
- (void)_drawHeaderAndFooter;
@end
@interface WebView (WebViewGrammarChecking)
- (BOOL)isGrammarCheckingEnabled;
- (void)setGrammarCheckingEnabled:(BOOL)flag;
- (void)toggleGrammarChecking:(id)sender;
@end
@interface WebView (WebViewTextChecking)
- (BOOL)isAutomaticQuoteSubstitutionEnabled;
- (BOOL)isAutomaticLinkDetectionEnabled;
- (BOOL)isAutomaticDashSubstitutionEnabled;
- (BOOL)isAutomaticTextReplacementEnabled;
- (BOOL)isAutomaticSpellingCorrectionEnabled;
- (void)setAutomaticQuoteSubstitutionEnabled:(BOOL)flag;
- (void)toggleAutomaticQuoteSubstitution:(id)sender;
- (void)setAutomaticLinkDetectionEnabled:(BOOL)flag;
- (void)toggleAutomaticLinkDetection:(id)sender;
- (void)setAutomaticDashSubstitutionEnabled:(BOOL)flag;
- (void)toggleAutomaticDashSubstitution:(id)sender;
- (void)setAutomaticTextReplacementEnabled:(BOOL)flag;
- (void)toggleAutomaticTextReplacement:(id)sender;
- (void)setAutomaticSpellingCorrectionEnabled:(BOOL)flag;
- (void)toggleAutomaticSpellingCorrection:(id)sender;
@end
@interface WebView (WebViewEditingInMail)
- (void)_insertNewlineInQuotedContent;
- (void)_replaceSelectionWithNode:(DOMNode *)node matchStyle:(BOOL)matchStyle;
- (BOOL)_selectionIsCaret;
- (BOOL)_selectionIsAll;
- (void)_simplifyMarkup:(DOMNode *)startNode endNode:(DOMNode *)endNode;
@end
@interface WebView (WebViewDeviceOrientation)
- (void)_setDeviceOrientationProvider:(id<WebDeviceOrientationProvider>)deviceOrientationProvider;
- (id<WebDeviceOrientationProvider>)_deviceOrientationProvider;
@end
@protocol WebGeolocationProvider <NSObject>
- (void)registerWebView:(WebView *)webView;
- (void)unregisterWebView:(WebView *)webView;
- (WebGeolocationPosition *)lastPosition;
@end
@protocol WebNotificationProvider
- (void)registerWebView:(WebView *)webView;
- (void)unregisterWebView:(WebView *)webView;
- (void)showNotification:(WebNotification *)notification fromWebView:(WebView *)webView;
- (void)cancelNotification:(WebNotification *)notification;
- (void)notificationDestroyed:(WebNotification *)notification;
- (void)clearNotifications:(NSArray *)notificationIDs;
- (WebNotificationPermission)policyForOrigin:(WebSecurityOrigin *)origin;
- (void)webView:(WebView *)webView didShowNotification:(uint64_t)notificationID;
- (void)webView:(WebView *)webView didClickNotification:(uint64_t)notificationID;
- (void)webView:(WebView *)webView didCloseNotifications:(NSArray *)notificationIDs;
@end
@interface WebView (WebViewGeolocation)
- (void)_setGeolocationProvider:(id<WebGeolocationProvider>)locationProvider;
- (id<WebGeolocationProvider>)_geolocationProvider;
- (void)_geolocationDidChangePosition:(WebGeolocationPosition *)position;
- (void)_geolocationDidFailWithMessage:(NSString *)errorMessage;
@end
@interface WebView (WebViewNotification)
- (void)_setNotificationProvider:(id<WebNotificationProvider>)notificationProvider;
- (id<WebNotificationProvider>)_notificationProvider;
- (void)_notificationDidShow:(uint64_t)notificationID;
- (void)_notificationDidClick:(uint64_t)notificationID;
- (void)_notificationsDidClose:(NSArray *)notificationIDs;
- (uint64_t)_notificationIDForTesting:(JSValueRef)jsNotification;
@end
@interface NSObject (WebViewFrameLoadDelegatePrivate)
- (void)webView:(WebView *)sender didFirstLayoutInFrame:(WebFrame *)frame;
- (void)webView:(WebView *)sender didFinishDocumentLoadForFrame:(WebFrame *)frame;
- (void)webView:(WebView *)sender didHandleOnloadEventsForFrame:(WebFrame *)frame;
- (void)webView:(WebView *)sender didFirstVisuallyNonEmptyLayoutInFrame:(WebFrame *)frame;
- (void)webView:(WebView *)sender didLayout:(WebLayoutMilestones)milestones;
- (void)webView:(WebView *)webView didClearInspectorWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame;
@end
@interface NSObject (WebViewResourceLoadDelegatePrivate)
- (NSCachedURLResponse *)webView:(WebView *)sender resource:(id)identifier willCacheResponse:(NSCachedURLResponse *)response fromDataSource:(WebDataSource *)dataSource;
@end
#ifdef __cplusplus
extern "C" {
#endif
void WebInstallMemoryPressureHandler(void);
#ifdef __cplusplus
}
#endif