| 1 | /* |
|---|
| 2 | WebKitSystemInterface.h |
|---|
| 3 | Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
|---|
| 4 | |
|---|
| 5 | Public header file. |
|---|
| 6 | */ |
|---|
| 7 | |
|---|
| 8 | #import <Cocoa/Cocoa.h> |
|---|
| 9 | #import <Carbon/Carbon.h> |
|---|
| 10 | |
|---|
| 11 | @class QTMovie; |
|---|
| 12 | @class QTMovieView; |
|---|
| 13 | |
|---|
| 14 | #ifdef __cplusplus |
|---|
| 15 | extern "C" { |
|---|
| 16 | #endif |
|---|
| 17 | |
|---|
| 18 | typedef enum { |
|---|
| 19 | WKCertificateParseResultSucceeded = 0, |
|---|
| 20 | WKCertificateParseResultFailed = 1, |
|---|
| 21 | WKCertificateParseResultPKCS7 = 2, |
|---|
| 22 | } WKCertificateParseResult; |
|---|
| 23 | |
|---|
| 24 | CFStringRef WKCopyCFLocalizationPreferredName(CFStringRef localization); |
|---|
| 25 | CFStringRef WKSignedPublicKeyAndChallengeString(unsigned keySize, CFStringRef challenge, CFStringRef keyDescription); |
|---|
| 26 | WKCertificateParseResult WKAddCertificatesToKeychainFromData(const void *bytes, unsigned length); |
|---|
| 27 | |
|---|
| 28 | NSString *WKGetPreferredExtensionForMIMEType(NSString *type); |
|---|
| 29 | NSArray *WKGetExtensionsForMIMEType(NSString *type); |
|---|
| 30 | NSString *WKGetMIMETypeForExtension(NSString *extension); |
|---|
| 31 | |
|---|
| 32 | NSDate *WKGetNSURLResponseLastModifiedDate(NSURLResponse *response); |
|---|
| 33 | NSTimeInterval WKGetNSURLResponseFreshnessLifetime(NSURLResponse *response); |
|---|
| 34 | |
|---|
| 35 | CFStringEncoding WKGetWebDefaultCFStringEncoding(void); |
|---|
| 36 | |
|---|
| 37 | void WKSetMetadataURL(NSString *URLString, NSString *referrer, NSString *path); |
|---|
| 38 | void WKSetNSURLConnectionDefersCallbacks(NSURLConnection *connection, BOOL defers); |
|---|
| 39 | |
|---|
| 40 | void WKShowKeyAndMain(void); |
|---|
| 41 | #ifndef __LP64__ |
|---|
| 42 | OSStatus WKSyncWindowWithCGAfterMove(WindowRef); |
|---|
| 43 | unsigned WKCarbonWindowMask(void); |
|---|
| 44 | void *WKGetNativeWindowFromWindowRef(WindowRef); |
|---|
| 45 | OSType WKCarbonWindowPropertyCreator(void); |
|---|
| 46 | OSType WKCarbonWindowPropertyTag(void); |
|---|
| 47 | #endif |
|---|
| 48 | |
|---|
| 49 | typedef id WKNSURLConnectionDelegateProxyPtr; |
|---|
| 50 | |
|---|
| 51 | WKNSURLConnectionDelegateProxyPtr WKCreateNSURLConnectionDelegateProxy(void); |
|---|
| 52 | |
|---|
| 53 | void WKDisableCGDeferredUpdates(void); |
|---|
| 54 | |
|---|
| 55 | Class WKNSURLProtocolClassForRequest(NSURLRequest *request); |
|---|
| 56 | void WKSetNSURLRequestShouldContentSniff(NSMutableURLRequest *request, BOOL shouldContentSniff); |
|---|
| 57 | |
|---|
| 58 | unsigned WKGetNSAutoreleasePoolCount(void); |
|---|
| 59 | |
|---|
| 60 | void WKAdvanceDefaultButtonPulseAnimation(NSButtonCell *button); |
|---|
| 61 | |
|---|
| 62 | NSString *WKMouseMovedNotification(void); |
|---|
| 63 | NSString *WKWindowWillOrderOnScreenNotification(void); |
|---|
| 64 | void WKSetNSWindowShouldPostEventNotifications(NSWindow *window, BOOL post); |
|---|
| 65 | |
|---|
| 66 | CFTypeID WKGetAXTextMarkerTypeID(void); |
|---|
| 67 | CFTypeID WKGetAXTextMarkerRangeTypeID(void); |
|---|
| 68 | CFTypeRef WKCreateAXTextMarker(const void *bytes, size_t len); |
|---|
| 69 | BOOL WKGetBytesFromAXTextMarker(CFTypeRef textMarker, void *bytes, size_t length); |
|---|
| 70 | CFTypeRef WKCreateAXTextMarkerRange(CFTypeRef start, CFTypeRef end); |
|---|
| 71 | CFTypeRef WKCopyAXTextMarkerRangeStart(CFTypeRef range); |
|---|
| 72 | CFTypeRef WKCopyAXTextMarkerRangeEnd(CFTypeRef range); |
|---|
| 73 | void WKAccessibilityHandleFocusChanged(void); |
|---|
| 74 | AXUIElementRef WKCreateAXUIElementRef(id element); |
|---|
| 75 | void WKUnregisterUniqueIdForElement(id element); |
|---|
| 76 | |
|---|
| 77 | void WKSetUpFontCache(void); |
|---|
| 78 | |
|---|
| 79 | void WKSignalCFReadStreamEnd(CFReadStreamRef stream); |
|---|
| 80 | void WKSignalCFReadStreamHasBytes(CFReadStreamRef stream); |
|---|
| 81 | void WKSignalCFReadStreamError(CFReadStreamRef stream, CFStreamError *error); |
|---|
| 82 | |
|---|
| 83 | CFReadStreamRef WKCreateCustomCFReadStream(void *(*formCreate)(CFReadStreamRef, void *), |
|---|
| 84 | void (*formFinalize)(CFReadStreamRef, void *), |
|---|
| 85 | Boolean (*formOpen)(CFReadStreamRef, CFStreamError *, Boolean *, void *), |
|---|
| 86 | CFIndex (*formRead)(CFReadStreamRef, UInt8 *, CFIndex, CFStreamError *, Boolean *, void *), |
|---|
| 87 | Boolean (*formCanRead)(CFReadStreamRef, void *), |
|---|
| 88 | void (*formClose)(CFReadStreamRef, void *), |
|---|
| 89 | void (*formSchedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *), |
|---|
| 90 | void (*formUnschedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *), |
|---|
| 91 | void *context); |
|---|
| 92 | |
|---|
| 93 | void WKDrawCapsLockIndicator(CGContextRef, CGRect); |
|---|
| 94 | |
|---|
| 95 | void WKDrawFocusRing(CGContextRef context, CGColorRef color, int radius); |
|---|
| 96 | // The CG context's current path is the focus ring's path. |
|---|
| 97 | // A color of 0 means "use system focus ring color". |
|---|
| 98 | // A radius of 0 means "use default focus ring radius". |
|---|
| 99 | |
|---|
| 100 | void WKSetDragImage(NSImage *image, NSPoint offset); |
|---|
| 101 | |
|---|
| 102 | void WKDrawBezeledTextFieldCell(NSRect, BOOL enabled); |
|---|
| 103 | void WKDrawTextFieldCellFocusRing(NSTextFieldCell*, NSRect); |
|---|
| 104 | void WKDrawBezeledTextArea(NSRect, BOOL enabled); |
|---|
| 105 | void WKPopupMenu(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*); |
|---|
| 106 | |
|---|
| 107 | void WKSendUserChangeNotifications(void); |
|---|
| 108 | #ifndef __LP64__ |
|---|
| 109 | BOOL WKConvertNSEventToCarbonEvent(EventRecord *carbonEvent, NSEvent *cocoaEvent); |
|---|
| 110 | void WKSendKeyEventToTSM(NSEvent *theEvent); |
|---|
| 111 | void WKCallDrawingNotification(CGrafPtr port, Rect *bounds); |
|---|
| 112 | #endif |
|---|
| 113 | |
|---|
| 114 | BOOL WKGetGlyphTransformedAdvances(CGFontRef, NSFont*, CGAffineTransform *m, ATSGlyphRef *glyph, CGSize *advance); |
|---|
| 115 | NSFont *WKGetFontInLanguageForRange(NSFont *font, NSString *string, NSRange range); |
|---|
| 116 | NSFont *WKGetFontInLanguageForCharacter(NSFont *font, UniChar ch); |
|---|
| 117 | void WKSetCGFontRenderingMode(CGContextRef cgContext, NSFont *font); |
|---|
| 118 | BOOL WKCGContextGetShouldSmoothFonts(CGContextRef cgContext); |
|---|
| 119 | |
|---|
| 120 | #ifdef BUILDING_ON_TIGER |
|---|
| 121 | // CGFontGetAscent, CGFontGetDescent, CGFontGetLeading and CGFontGetUnitsPerEm were not available until Leopard |
|---|
| 122 | void WKGetFontMetrics(CGFontRef font, int *ascent, int *descent, int *lineGap, unsigned *unitsPerEm); |
|---|
| 123 | // CTFontCopyGraphicsFont was not available until Leopard |
|---|
| 124 | CGFontRef WKGetCGFontFromNSFont(NSFont *font); |
|---|
| 125 | // CTFontGetPlatformFont was not available until Leopard |
|---|
| 126 | ATSUFontID WKGetNSFontATSUFontId(NSFont *font); |
|---|
| 127 | // CGFontCopyFullName was not available until Leopard |
|---|
| 128 | CFStringRef WKCopyFullFontName(CGFontRef font); |
|---|
| 129 | #endif |
|---|
| 130 | |
|---|
| 131 | void WKSetPatternBaseCTM(CGContextRef, CGAffineTransform); |
|---|
| 132 | void WKSetPatternPhaseInUserSpace(CGContextRef, CGPoint); |
|---|
| 133 | |
|---|
| 134 | #ifndef BUILDING_ON_TIGER |
|---|
| 135 | void WKGetGlyphsForCharacters(CGFontRef, const UniChar[], CGGlyph[], size_t); |
|---|
| 136 | #else |
|---|
| 137 | typedef void *WKGlyphVectorRef; |
|---|
| 138 | OSStatus WKConvertCharToGlyphs(void *styleGroup, const UniChar *characters, unsigned numCharacters, WKGlyphVectorRef glyphs); |
|---|
| 139 | OSStatus WKGetATSStyleGroup(ATSUStyle fontStyle, void **styleGroup); |
|---|
| 140 | void WKReleaseStyleGroup(void *group); |
|---|
| 141 | OSStatus WKInitializeGlyphVector(int count, WKGlyphVectorRef glyphs); |
|---|
| 142 | void WKClearGlyphVector(WKGlyphVectorRef glyphs); |
|---|
| 143 | |
|---|
| 144 | int WKGetGlyphVectorNumGlyphs(WKGlyphVectorRef glyphVector); |
|---|
| 145 | ATSLayoutRecord *WKGetGlyphVectorFirstRecord(WKGlyphVectorRef glyphVector); |
|---|
| 146 | size_t WKGetGlyphVectorRecordSize(WKGlyphVectorRef glyphVector); |
|---|
| 147 | #endif |
|---|
| 148 | |
|---|
| 149 | #ifndef __LP64__ |
|---|
| 150 | NSEvent *WKCreateNSEventWithCarbonEvent(EventRef eventRef); |
|---|
| 151 | NSEvent *WKCreateNSEventWithCarbonMouseMoveEvent(EventRef inEvent, NSWindow *window); |
|---|
| 152 | NSEvent *WKCreateNSEventWithCarbonClickEvent(EventRef inEvent, WindowRef windowRef); |
|---|
| 153 | #endif |
|---|
| 154 | |
|---|
| 155 | CGContextRef WKNSWindowOverrideCGContext(NSWindow *, CGContextRef); |
|---|
| 156 | void WKNSWindowRestoreCGContext(NSWindow *, CGContextRef); |
|---|
| 157 | |
|---|
| 158 | void WKNSWindowMakeBottomCornersSquare(NSWindow *); |
|---|
| 159 | |
|---|
| 160 | // These constants match the ones used by ThemeScrollbarArrowStyle (some of the values are private, so we can't just |
|---|
| 161 | // use that enum directly). |
|---|
| 162 | typedef enum { |
|---|
| 163 | WKThemeScrollBarArrowsSingle = 0, |
|---|
| 164 | WKThemeScrollBarArrowsLowerRight = 1, |
|---|
| 165 | WKThemeScrollBarArrowsDouble = 2, |
|---|
| 166 | WKThemeScrollBarArrowsUpperLeft = 3, |
|---|
| 167 | } WKThemeScrollBarArrowStyle; |
|---|
| 168 | |
|---|
| 169 | OSStatus WKThemeDrawTrack(const HIThemeTrackDrawInfo* inDrawInfo, CGContextRef inContext, int inArrowStyle); |
|---|
| 170 | |
|---|
| 171 | #ifdef BUILDING_ON_TIGER |
|---|
| 172 | // WKSupportsMultipartXMixedReplace is not required on Leopard as multipart/x-mixed-replace is always handled by NSURLRequest |
|---|
| 173 | BOOL WKSupportsMultipartXMixedReplace(NSMutableURLRequest *request); |
|---|
| 174 | #endif |
|---|
| 175 | |
|---|
| 176 | BOOL WKCGContextIsBitmapContext(CGContextRef context); |
|---|
| 177 | |
|---|
| 178 | void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous); |
|---|
| 179 | |
|---|
| 180 | BOOL WKAppVersionCheckLessThan(NSString *, int, double); |
|---|
| 181 | |
|---|
| 182 | typedef enum { |
|---|
| 183 | WKMovieTypeUnknown, |
|---|
| 184 | WKMovieTypeDownload, |
|---|
| 185 | WKMovieTypeStoredStream, |
|---|
| 186 | WKMovieTypeLiveStream |
|---|
| 187 | } WKMovieType; |
|---|
| 188 | |
|---|
| 189 | int WKQTMovieGetType(QTMovie* movie); |
|---|
| 190 | |
|---|
| 191 | unsigned WKQTIncludeOnlyModernMediaFileTypes(void); |
|---|
| 192 | int WKQTMovieDataRate(QTMovie* movie); |
|---|
| 193 | float WKQTMovieMaxTimeLoaded(QTMovie* movie); |
|---|
| 194 | float WKQTMovieMaxTimeSeekable(QTMovie* movie); |
|---|
| 195 | NSString *WKQTMovieMaxTimeLoadedChangeNotification(void); |
|---|
| 196 | void WKQTMovieViewSetDrawSynchronously(QTMovieView* view, BOOL sync); |
|---|
| 197 | |
|---|
| 198 | CFStringRef WKCopyFoundationCacheDirectory(void); |
|---|
| 199 | |
|---|
| 200 | typedef enum { |
|---|
| 201 | WKMediaUIPartFullscreenButton = 0, |
|---|
| 202 | WKMediaUIPartMuteButton, |
|---|
| 203 | WKMediaUIPartPlayButton, |
|---|
| 204 | WKMediaUIPartSeekBackButton, |
|---|
| 205 | WKMediaUIPartSeekForwardButton, |
|---|
| 206 | WKMediaUIPartSlider, |
|---|
| 207 | WKMediaUIPartSliderThumb, |
|---|
| 208 | WKMediaUIPartRewindButton, |
|---|
| 209 | WKMediaUIPartSeekToRealtimeButton, |
|---|
| 210 | WKMediaUIPartUnMuteButton, |
|---|
| 211 | WKMediaUIPartPauseButton, |
|---|
| 212 | WKMediaUIPartBackground, |
|---|
| 213 | WKMediaUIPartCurrentTimeDisplay, |
|---|
| 214 | WKMediaUIPartTimeRemainingDisplay |
|---|
| 215 | } WKMediaUIPart; |
|---|
| 216 | |
|---|
| 217 | typedef enum { |
|---|
| 218 | WKMediaControllerThemeClassic = 1, |
|---|
| 219 | WKMediaControllerThemeQT = 2 |
|---|
| 220 | } WKMediaControllerThemeStyle; |
|---|
| 221 | |
|---|
| 222 | typedef enum { |
|---|
| 223 | WKMediaControllerStateNormal = 0, |
|---|
| 224 | WKMediaControllerStateActivated = 1, |
|---|
| 225 | WKMediaControllerStateDisabled = 2 |
|---|
| 226 | } WKMediaControllerThemeState; |
|---|
| 227 | |
|---|
| 228 | BOOL WKHitTestMediaUIPart(int part, int themeStyle, CGRect bounds, CGPoint point); |
|---|
| 229 | void WKMeasureMediaUIPart(int part, int themeStyle, CGRect *bounds, CGSize *naturalSize); |
|---|
| 230 | void WKDrawMediaUIPart(int part, int themeStyle, CGContextRef context, CGRect rect, int state); |
|---|
| 231 | void WKDrawMediaSliderTrack(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, float duration); |
|---|
| 232 | |
|---|
| 233 | #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && defined(__x86_64__) |
|---|
| 234 | mach_port_t WKInitializeRenderServer(void); |
|---|
| 235 | |
|---|
| 236 | @class CALayer; |
|---|
| 237 | |
|---|
| 238 | CALayer *WKMakeRenderLayer(uint32_t contextID); |
|---|
| 239 | |
|---|
| 240 | typedef struct __WKSoftwareCARendererRef *WKSoftwareCARendererRef; |
|---|
| 241 | |
|---|
| 242 | WKSoftwareCARendererRef WKSoftwareCARendererCreate(uint32_t contextID); |
|---|
| 243 | void WKSoftwareCARendererDestroy(WKSoftwareCARendererRef); |
|---|
| 244 | void WKSoftwareCARendererRender(WKSoftwareCARendererRef, CGContextRef, CGRect); |
|---|
| 245 | |
|---|
| 246 | #import <mach/mig.h> |
|---|
| 247 | |
|---|
| 248 | CFRunLoopSourceRef WKCreateMIGServerSource(mig_subsystem_t subsystem, mach_port_t serverPort); |
|---|
| 249 | |
|---|
| 250 | NSUInteger WKGetInputPanelWindowStyle(void); |
|---|
| 251 | |
|---|
| 252 | UInt8 WKGetNSEventKeyChar(NSEvent *); |
|---|
| 253 | |
|---|
| 254 | #endif |
|---|
| 255 | |
|---|
| 256 | @class CAPropertyAnimation; |
|---|
| 257 | void WKSetCAAnimationValueFunction(CAPropertyAnimation*, NSString* function); |
|---|
| 258 | |
|---|
| 259 | unsigned WKInitializeMaximumHTTPConnectionCountPerHost(unsigned preferredConnectionCount); |
|---|
| 260 | |
|---|
| 261 | #ifdef __cplusplus |
|---|
| 262 | } |
|---|
| 263 | #endif |
|---|