Reviewed by Vicki.
[WebKit-https.git] / WebKit / Plugins.subproj / WebPluginPackage.m
1 //
2 //  WebPluginPackage.m
3 //  WebKit
4 //
5 //  Created by Chris Blumenberg on Tue Oct 22 2002.
6 //  Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
7 //
8
9 #import <WebKit/WebPluginPackage.h>
10
11 #import <WebKit/WebKitLogging.h>
12 #import <WebKit/WebKitNSStringExtras.h>
13
14 NSString *WebPlugInBaseURLKey =     @"WebPlugInBaseURLKey";
15 NSString *WebPlugInAttributesKey =  @"WebPlugInAttributesKey";
16 NSString *WebPlugInContainerKey =   @"WebPlugInContainerKey";
17 NSString *WebPlugInModeKey =        @"WebPlugInModeKey";
18
19 /*!
20         @constant WebPlugInContainingElementKey The DOMElement that was used to specify
21         the plug-in.  May be nil.
22 */
23 extern NSString *WebPlugInContainingElementKey;
24
25 @implementation WebPluginPackage
26
27 - initWithPath:(NSString *)pluginPath
28 {
29     [super initWithPath:pluginPath];
30
31     if (bundle == nil) {
32         [self release];
33         return nil;
34     }
35     
36     if (![[pluginPath pathExtension] _webkit_isCaseInsensitiveEqualToString:@"webplugin"]) {
37         UInt32 type = 0;
38         CFBundleGetPackageInfo(cfBundle, &type, NULL);
39         if (type != FOUR_CHAR_CODE('WBPL')) {
40             [self release];
41             return nil;
42         }
43     }
44
45     if (![self getPluginInfoFromPLists]) {
46         [self release];
47         return nil;
48     }
49
50     return self;
51 }
52
53 - (Class)viewFactory
54 {
55     return [bundle principalClass];
56 }
57
58 - (BOOL)load
59 {
60     if (isLoaded) {
61         return YES;
62     }
63     
64 #if !LOG_DISABLED
65     CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
66 #endif
67     
68     [bundle principalClass];
69     isLoaded = [bundle isLoaded];
70     if (!isLoaded) {
71         return NO;
72     }
73
74 #if !LOG_DISABLED
75     CFAbsoluteTime duration = CFAbsoluteTimeGetCurrent() - start;
76     LOG(Plugins, "principalClass took %f seconds for: %@", duration, [self name]);
77 #endif
78     return [super load];
79 }
80
81 - (void)unload
82 {
83 }
84
85 - (BOOL)isLoaded
86 {
87     return [bundle isLoaded];
88 }
89
90 @end
91
92 @implementation NSObject (WebScripting)
93
94 + (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector
95 {
96     return YES;
97 }
98
99 + (BOOL)isKeyExcludedFromWebScript:(const char *)name
100 {
101     return YES;
102 }
103
104 @end
105