Fixed:
[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
13 #import <Foundation/NSPrivateDecls.h>
14 #import <Foundation/NSString_NSURLExtras.h>
15
16 NSString *WebPlugInBaseURLKey =     @"WebPlugInBaseURLKey";
17 NSString *WebPlugInAttributesKey =  @"WebPlugInAttributesKey";
18 NSString *WebPlugInContainerKey =   @"WebPlugInContainerKey";
19 NSString *WebPlugInModeKey =        @"WebPlugInModeKey";
20
21 /*!
22         @constant WebPlugInContainingElementKey The DOMElement that was used to specify
23         the plug-in.  May be nil.
24 */
25 extern NSString *WebPlugInContainingElementKey;
26
27 @implementation WebPluginPackage
28
29 - initWithPath:(NSString *)pluginPath
30 {
31     [super initWithPath:pluginPath];
32
33     if (bundle == nil) {
34         [self release];
35         return nil;
36     }
37     
38     if (![[pluginPath pathExtension] _web_isCaseInsensitiveEqualToString:@"webplugin"]) {
39         UInt32 type = 0;
40         CFBundleGetPackageInfo([bundle _cfBundle], &type, NULL);
41         if (type != FOUR_CHAR_CODE('WBPL')) {
42             [self release];
43             return nil;
44         }
45     }
46
47     if (![self getPluginInfoFromBundleAndMIMEDictionary:nil]) {
48         [self release];
49         return nil;
50     }
51
52     return self;
53 }
54
55 - (Class)viewFactory
56 {
57     return [bundle principalClass];
58 }
59
60 - (BOOL)load
61 {
62 #if !LOG_DISABLED
63     BOOL wasLoaded = [self isLoaded];
64     CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
65 #endif
66     
67     [bundle principalClass];
68
69 #if !LOG_DISABLED
70     if (!wasLoaded) {
71         CFAbsoluteTime duration = CFAbsoluteTimeGetCurrent() - start;
72         LOG(Plugins, "principalClass took %f seconds for: %@", duration, [self name]);
73     }
74 #endif
75    
76     return YES;
77 }
78
79 - (void)unload
80 {
81 }
82
83 - (BOOL)isLoaded
84 {
85     return [bundle isLoaded];
86 }
87
88 @end
89
90 @implementation NSObject (WebScripting)
91
92 + (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector
93 {
94     return YES;
95 }
96
97 + (BOOL)isKeyExcludedFromWebScript:(const char *)name
98 {
99     return YES;
100 }
101
102 @end
103