1 /* 2 * Copyright (C) 2004 Apple Computer, Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14 * its contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #import <Cocoa/Cocoa.h> 30 #import <JavaScriptCore/WebKitAvailability.h> 31 32 /*! 33 @constant WebPlugInBaseURLKey REQUIRED. The base URL of the document containing 34 the plug-in's view. 35 */ 36 extern NSString *WebPlugInBaseURLKey; 37 38 /*! 39 @constant WebPlugInAttributesKey REQUIRED. The dictionary containing the names 40 and values of all attributes of the HTML element associated with the plug-in AND 41 the names and values of all parameters to be passed to the plug-in (e.g. PARAM 42 elements within an APPLET element). In the case of a conflict between names, 43 the attributes of an element take precedence over any PARAMs. All of the keys 44 and values in this NSDictionary must be NSStrings. 45 */ 46 extern NSString *WebPlugInAttributesKey; 47 48 /*! 49 @constant WebPlugInContainer OPTIONAL. An object that conforms to the 50 WebPlugInContainer informal protocol. This object is used for 51 callbacks from the plug-in to the app. if this argument is nil, no callbacks will 52 occur. 53 */ 54 extern NSString *WebPlugInContainerKey; 55 56 /*! 57 @constant WebPlugInContainingElementKey The DOMElement that was used to specify 58 the plug-in. May be nil. 59 */ 60 extern NSString *WebPlugInContainingElementKey; 61 62 /*! 63 @constant WebPlugInShouldLoadMainResourceKey REQUIRED. NSNumber (BOOL) indicating whether the plug-in should load its 64 own main resource (the "src" URL, in most cases). If YES, the plug-in should load its own main resource. If NO, the 65 plug-in should use the data provided by WebKit. See -webPlugInMainResourceReceivedData: in WebPluginPrivate.h. 66 For compatibility with older versions of WebKit, the plug-in should assume that the value for 67 WebPlugInShouldLoadMainResourceKey is NO if it is absent from the arguments dictionary. 68 */ 69 extern NSString *WebPlugInShouldLoadMainResourceKey AVAILABLE_IN_WEBKIT_VERSION_4_0; 70 71 /*! 72 @protocol WebPlugInViewFactory 73 @discussion WebPlugInViewFactory are used to create the NSView for a plug-in. 74 The principal class of the plug-in bundle must implement this protocol. 75 */ 76 77 @protocol WebPlugInViewFactory <NSObject> 78 79 /*! 80 @method plugInViewWithArguments: 81 @param arguments The arguments dictionary with the mentioned keys and objects. This method is required to implement. 82 @result Returns an NSView object that conforms to the WebPlugIn informal protocol. 83 */ 84 + (NSView *)plugInViewWithArguments:(NSDictionary *)arguments; 85 86 @end 87