summaryrefslogtreecommitdiffstats
path: root/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-05 14:34:32 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-05 14:34:32 -0800
commit635860845790a19bf50bbc51ba8fb66a96dde068 (patch)
treeef6ad9ff73a5b57f65249d4232a202fa77e6a140 /WebKit/mac/Plugins/WebBaseNetscapePluginView.h
parent8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 (diff)
downloadexternal_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.h186
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