diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-05 14:34:32 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-05 14:34:32 -0800 |
commit | 635860845790a19bf50bbc51ba8fb66a96dde068 (patch) | |
tree | ef6ad9ff73a5b57f65249d4232a202fa77e6a140 /WebKit/mac/Plugins/WebBaseNetscapePluginView.h | |
parent | 8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 (diff) | |
download | external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.zip external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.tar.gz external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.tar.bz2 |
auto import from //depot/cupcake/@136594
Diffstat (limited to 'WebKit/mac/Plugins/WebBaseNetscapePluginView.h')
-rw-r--r-- | WebKit/mac/Plugins/WebBaseNetscapePluginView.h | 186 |
1 files changed, 31 insertions, 155 deletions
diff --git a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h index 909196b..b2ea2b1 100644 --- a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h +++ b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h @@ -29,118 +29,37 @@ #if ENABLE(NETSCAPE_PLUGIN_API) #import <Cocoa/Cocoa.h> -#import <WebKit/npfunctions.h> -#import <WebKit/npapi.h> -#import <WebKit/WebBasePluginPackage.h> -#import <wtf/HashMap.h> -#import <wtf/HashSet.h> +#import "WebNetscapePluginPackage.h" + +#import <wtf/RetainPtr.h> @class DOMElement; @class WebDataSource; @class WebFrame; -@class WebNetscapePluginPackage; @class WebView; -class PluginTimer; -class WebNetscapePluginStream; -class WebNetscapePluginEventHandler; - -typedef union PluginPort { -#ifndef NP_NO_QUICKDRAW - NP_Port qdPort; -#endif - NP_CGContext cgPort; -} PluginPort; - -typedef struct _NPPluginTextInputFuncs NPPluginTextInputFuncs; - -// Because the Adobe 7.x Acrobat plug-in has a hard coded check for a view named -// "WebNetscapePluginDocumentView", this class must retain the old name in order -// for the plug-in to function correctly. (rdar://problem/4699455) -#define WebBaseNetscapePluginView WebNetscapePluginDocumentView - -@interface WebBaseNetscapePluginView : NSView <WebPluginManualLoader, NSTextInput> +@interface WebBaseNetscapePluginView : NSView { - WebNetscapePluginPackage *pluginPackage; + RetainPtr<WebNetscapePluginPackage> _pluginPackage; - NSURL *sourceURL; WebFrame *_webFrame; - BOOL _loadManually; - RefPtr<WebNetscapePluginStream> _manualStream; -#ifndef BUILDING_ON_TIGER - CALayer *_layer; -#endif - unsigned _dataLengthReceived; - NSError *_error; - - int mode; - - unsigned argsCount; - char **cAttributes; - char **cValues; - - NPP plugin; - NPWindow window; - NPWindow lastSetWindow; - PluginPort nPort; - PluginPort lastSetPort; - NPDrawingModel drawingModel; - NPEventModel eventModel; + int _mode; - -#ifndef NP_NO_QUICKDRAW - // This is only valid when drawingModel is NPDrawingModelQuickDraw - GWorldPtr offscreenGWorld; -#endif - - WebNetscapePluginEventHandler *eventHandler; - - BOOL isStarted; - BOOL inSetWindow; - BOOL hasFocus; - BOOL isTransparent; - BOOL isCompletelyObscured; - BOOL shouldStopSoon; - - BOOL shouldFireTimers; - uint32 currentTimerID; - HashMap<uint32, PluginTimer*>* timers; - - unsigned pluginFunctionCallDepth; - - DOMElement *element; - - int32 specifiedHeight; - int32 specifiedWidth; - - NSString *MIMEType; - NSURL *baseURL; - NSTrackingRectTag trackingTag; - - HashSet<RefPtr<WebNetscapePluginStream> > streams; - NSMutableDictionary *pendingFrameLoads; + BOOL _loadManually; + BOOL _shouldFireTimers; + BOOL _isStarted; + BOOL _hasFocus; + BOOL _isCompletelyObscured; - NPPluginTextInputFuncs *textInputFuncs; + RetainPtr<DOMElement> _element; + RetainPtr<NSString> _MIMEType; + RetainPtr<NSURL> _baseURL; + RetainPtr<NSURL> _sourceURL; - NPP_NewProcPtr NPP_New; - NPP_DestroyProcPtr NPP_Destroy; - NPP_SetWindowProcPtr NPP_SetWindow; - NPP_NewStreamProcPtr NPP_NewStream; - NPP_DestroyStreamProcPtr NPP_DestroyStream; - NPP_StreamAsFileProcPtr NPP_StreamAsFile; - NPP_WriteReadyProcPtr NPP_WriteReady; - NPP_WriteProcPtr NPP_Write; - NPP_PrintProcPtr NPP_Print; - NPP_HandleEventProcPtr NPP_HandleEvent; - NPP_URLNotifyProcPtr NPP_URLNotify; - NPP_GetValueProcPtr NPP_GetValue; - NPP_SetValueProcPtr NPP_SetValue; + NSTrackingRectTag _trackingTag; } -+ (WebBaseNetscapePluginView *)currentPluginView; - - - (id)initWithFrame:(NSRect)r pluginPackage:(WebNetscapePluginPackage *)thePluginPackage URL:(NSURL *)URL @@ -151,74 +70,31 @@ typedef struct _NPPluginTextInputFuncs NPPluginTextInputFuncs; loadManually:(BOOL)loadManually DOMElement:(DOMElement *)anElement; +- (WebNetscapePluginPackage *)pluginPackage; -- (BOOL)start; -- (BOOL)isStarted; -- (void)stop; -- (void)stopTimers; -- (void)restartTimers; +- (NSMutableURLRequest *)requestWithURLCString:(const char *)URLCString; + +// Subclasses must override these. +- (void)handleMouseMoved:(NSEvent *)event; +- (void)setAttributeKeys:(NSArray *)keys andValues:(NSArray *)values; +- (void)focusChanged; - (WebFrame *)webFrame; - (WebDataSource *)dataSource; - (WebView *)webView; - (NSWindow *)currentWindow; -- (NPP)plugin; +- (void)removeTrackingRect; +- (void)resetTrackingRect; -- (WebNetscapePluginPackage *)pluginPackage; -- (void)setPluginPackage:(WebNetscapePluginPackage *)thePluginPackage; -- (void)setMIMEType:(NSString *)theMIMEType; -- (void)setBaseURL:(NSURL *)theBaseURL; -- (void)setAttributeKeys:(NSArray *)keys andValues:(NSArray *)values; -- (void)setMode:(int)theMode; -- (void)viewWillMoveToHostWindow:(NSWindow *)hostWindow; -- (void)viewDidMoveToHostWindow; -- (void)disconnectStream:(WebNetscapePluginStream*)stream; - -// Returns the NPObject that represents the plugin interface. -// The return value is expected to be retained. -- (NPObject *)createPluginScriptableObject; - -// -willCallPlugInFunction must be called before calling any of the NPP_* functions for this view's plugin. -// This is necessary to ensure that plug-ins are not destroyed while WebKit calls into them. Some plug-ins (Flash -// at least) are written with the assumption that nothing they do in their plug-in functions can cause NPP_Destroy() -// to be called. Unfortunately, this is not true, especially if the plug-in uses NPN_Invoke() to execute a -// document.write(), which clears the document and destroys the plug-in. -// See <rdar://problem/4480737>. -- (void)willCallPlugInFunction; - -// -didCallPlugInFunction should be called after returning from a plug-in function. It should be called exactly -// once for every call to -willCallPlugInFunction. -// See <rdar://problem/4480737>. -- (void)didCallPlugInFunction; - -- (void)handleMouseMoved:(NSEvent *)event; - -@end +- (void)stopTimers; +- (void)startTimers; +- (void)restartTimers; -@interface WebBaseNetscapePluginView (WebInternal) -- (BOOL)sendEvent:(void*)event isDrawRect:(BOOL)eventIsDrawRect; -- (NPEventModel)eventModel; - -- (NPError)loadRequest:(NSURLRequest *)request inTarget:(NSString *)target withNotifyData:(void *)notifyData sendNotification:(BOOL)sendNotification; -- (NPError)getURLNotify:(const char *)URL target:(const char *)target notifyData:(void *)notifyData; -- (NPError)getURL:(const char *)URL target:(const char *)target; -- (NPError)postURLNotify:(const char *)URL target:(const char *)target len:(UInt32)len buf:(const char *)buf file:(NPBool)file notifyData:(void *)notifyData; -- (NPError)postURL:(const char *)URL target:(const char *)target len:(UInt32)len buf:(const char *)buf file:(NPBool)file; -- (NPError)newStream:(NPMIMEType)type target:(const char *)target stream:(NPStream**)stream; -- (NPError)write:(NPStream*)stream len:(SInt32)len buffer:(void *)buffer; -- (NPError)destroyStream:(NPStream*)stream reason:(NPReason)reason; -- (void)status:(const char *)message; -- (const char *)userAgent; -- (void)invalidateRect:(NPRect *)invalidRect; -- (void)invalidateRegion:(NPRegion)invalidateRegion; -- (void)forceRedraw; -- (NPError)getVariable:(NPNVariable)variable value:(void *)value; -- (NPError)setVariable:(NPPVariable)variable value:(void *)value; -- (uint32)scheduleTimerWithInterval:(uint32)interval repeat:(NPBool)repeat timerFunc:(void (*)(NPP npp, uint32 timerID))timerFunc; -- (void)unscheduleTimer:(uint32)timerID; -- (NPError)popUpContextMenu:(NPMenu *)menu; +- (void)stop; +- (void)addWindowObservers; +- (void)removeWindowObservers; @end #endif |