18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2005, 2007 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#if ENABLE(NETSCAPE_PLUGIN_API) 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <Cocoa/Cocoa.h> 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 32635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#import "WebNetscapePluginPackage.h" 330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#import "WebPluginContainerCheck.h" 34dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#import <wtf/Forward.h> 35231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#import <wtf/OwnPtr.h> 36563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#import <wtf/PassRefPtr.h> 37563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#import <wtf/RefPtr.h> 38635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#import <wtf/RetainPtr.h> 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class DOMElement; 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebDataSource; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebFrame; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class WebView; 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocknamespace WebCore { 46563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark class HTMLPlugInElement; 47563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 48563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 49231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockclass WebHaltablePlugin; 50231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block// Also declared in WebCore/WidgetMac.mm 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block@interface NSView (Widget) 53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- (void)visibleRectDidChange; 54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block@end 55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 56635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project@interface WebBaseNetscapePluginView : NSView 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 58635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RetainPtr<WebNetscapePluginPackage> _pluginPackage; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebFrame *_webFrame; 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 62635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project int _mode; 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 640bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch BOOL _triedAndFailedToCreatePlugin; 65635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project BOOL _loadManually; 66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project BOOL _shouldFireTimers; 67635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project BOOL _isStarted; 68635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project BOOL _hasFocus; 69635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project BOOL _isCompletelyObscured; 70cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block BOOL _isPrivateBrowsingEnabled; 71cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block BOOL _isHalted; 72cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block BOOL _hasBeenHalted; 73f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch BOOL _snapshotting; 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 75563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark RefPtr<WebCore::HTMLPlugInElement> _element; 76635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RetainPtr<NSString> _MIMEType; 77635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RetainPtr<NSURL> _baseURL; 78635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RetainPtr<NSURL> _sourceURL; 79f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch RetainPtr<NSImage> _cachedSnapshot; 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 81231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block OwnPtr<WebHaltablePlugin> _haltable; 82231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 83635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project NSTrackingRectTag _trackingTag; 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (id)initWithFrame:(NSRect)r 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project pluginPackage:(WebNetscapePluginPackage *)thePluginPackage 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project URL:(NSURL *)URL 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project baseURL:(NSURL *)baseURL 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MIMEType:(NSString *)MIME 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project attributeKeys:(NSArray *)keys 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project attributeValues:(NSArray *)values 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project loadManually:(BOOL)loadManually 94563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark element:(PassRefPtr<WebCore::HTMLPlugInElement>)element; 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 96635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (WebNetscapePluginPackage *)pluginPackage; 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch- (NSURL *)URLWithCString:(const char *)URLCString; 99635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (NSMutableURLRequest *)requestWithURLCString:(const char *)URLCString; 100635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 101635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project// Subclasses must override these. 102692e5dbf12901edacf14812a6fae25462920af42Steve Block// The "handle" prefix is needed to avoid overriding NSView methods. 103635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)handleMouseMoved:(NSEvent *)event; 104692e5dbf12901edacf14812a6fae25462920af42Steve Block- (void)handleMouseEntered:(NSEvent *)event; 105692e5dbf12901edacf14812a6fae25462920af42Steve Block- (void)handleMouseExited:(NSEvent *)event; 106635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)setAttributeKeys:(NSArray *)keys andValues:(NSArray *)values; 107635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)focusChanged; 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (WebFrame *)webFrame; 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (WebDataSource *)dataSource; 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (WebView *)webView; 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project- (NSWindow *)currentWindow; 113563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark- (WebCore::HTMLPlugInElement*)element; 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 115635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)removeTrackingRect; 116635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)resetTrackingRect; 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 118635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)stopTimers; 119635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)startTimers; 120635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)restartTimers; 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 122231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block- (void)start; 123635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)stop; 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 125cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block- (void)halt; 126cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block- (void)resumeFromHalt; 127cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block- (BOOL)isHalted; 128cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block- (BOOL)hasBeenHalted; 129cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 130635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)addWindowObservers; 131635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project- (void)removeWindowObservers; 1328a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block- (BOOL)shouldClipOutPlugin; 133dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- (BOOL)inFlatteningPaint; 134f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- (BOOL)supportsSnapshotting; 136f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch- (void)cacheSnapshot; 137f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch- (void)clearCachedSnapshot; 1380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch- (BOOL)convertFromX:(double)sourceX andY:(double)sourceY space:(NPCoordinateSpace)sourceSpace 1400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch toX:(double *)destX andY:(double *)destY space:(NPCoordinateSpace)destSpace; 141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- (WTF::CString)resolvedURLStringForURL:(const char*)url target:(const char*)target; 1420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch- (void)invalidatePluginContentRect:(NSRect)rect; 1440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 14565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch- (NSRect)actualVisibleRectInWindow; // takes transforms into account. 14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 147967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#ifndef BUILDING_ON_TIGER 148967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch- (CALayer *)pluginLayer; 149967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#endif 150967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@end 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochnamespace WebKit { 1550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochbool getAuthenticationInfo(const char* protocolStr, const char* hostStr, int32_t port, const char* schemeStr, const char* realmStr, 156dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WTF::CString& username, WTF::CString& password); 1570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 1580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 161