Skip to content

Commit 402485d

Browse files
committed
1 parent 5da7602 commit 402485d

19 files changed

+207
-1930
lines changed

AppDelegate.h

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11

22
#import <Cocoa/Cocoa.h>
3-
#import <WebKit/WebKit.h>
3+
44
#import "JSConsole.h"
5+
#import "NotificationProvider.h"
56

67
@interface AppDelegate : NSObject <NSApplicationDelegate> {
78
NSWindow *window;
89
WebView *webView;
910
JSConsole *console;
11+
NotificationProvider *notificationProvider;
1012
NSArray *userScripts;
1113
}
1214

13-
- (int)checkPermission;
14-
- (WebScriptObject *)createNotificationWithIcon:(NSString *)icon title:(NSString *)title message:(NSString *)message;
15-
- (void)requestPermissionWithCallback:(WebScriptObject *)callback;
16-
1715
@property (assign) IBOutlet NSWindow *window;
1816
@property (assign) IBOutlet WebView *webView;
1917

20-
2118
@end

AppDelegate.m

+5-45
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11

22
#import "AppDelegate.h"
3-
#import "Notification.h"
4-
5-
#import <Growl/Growl.h>
63

74
@interface AppDelegate (PrivateMethods)
85
- (void)loadUserScripts;
@@ -17,6 +14,10 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
1714
[webView setPolicyDelegate:self];
1815
[webView setUIDelegate:self];
1916

17+
// webview -> notification center bridge
18+
notificationProvider = [[NotificationProvider alloc] init];
19+
[webView _setNotificationProvider:notificationProvider];
20+
2021
// user agent
2122
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
2223
[webView setApplicationNameForUserAgent:[NSString stringWithFormat:@"nimbus/%@", version]];
@@ -27,9 +28,6 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
2728
options:NSKeyValueObservingOptionNew
2829
context:NULL];
2930

30-
// seems you have to kickstart the GrowlApplicationBridge :|
31-
[GrowlApplicationBridge setGrowlDelegate:nil];
32-
3331
console = [[JSConsole alloc] init];
3432

3533
[self loadUserScripts];
@@ -98,7 +96,6 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N
9896
#pragma mark FrameLoadDelegate
9997

10098
- (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowScriptObject forFrame:(WebFrame *)frame {
101-
[windowScriptObject setValue:self forKey:@"webkitNotifications"];
10299
[windowScriptObject setValue:console forKey:@"console"];
103100

104101
// inject userscripts
@@ -132,48 +129,11 @@ - (void)webView:(WebView *)webView addMessageToConsole:(NSDictionary *)dictionar
132129
NSLog(@"ERROR: %@", [dictionary objectForKey:@"message"]);
133130
}
134131

135-
#pragma mark WebkitNotifications
136-
137-
- (int)checkPermission {
138-
// always grant permission (0 = allow, 1 = unknown, 2 = denied)
139-
return 0;
140-
}
141-
142-
- (WebScriptObject *)createNotificationWithIcon:(NSString *)icon title:(NSString *)title message:(NSString *)message {
143-
Notification *note = [[Notification alloc] initWithTitle:title message:message];
144-
return (WebScriptObject *)[note autorelease];
145-
}
146-
147-
- (void)requestPermissionWithCallback:(WebScriptObject *)callback {
148-
if (callback && [callback isMemberOfClass:[WebScriptObject class]]) {
149-
[callback callWebScriptMethod:@"call" withArguments:nil];
150-
}
151-
}
152-
153-
+ (NSString *)webScriptNameForSelector:(SEL)sel {
154-
if (sel == @selector(checkPermission)) {
155-
return @"checkPermission";
156-
} else if (sel == @selector(createNotificationWithIcon:title:message:)) {
157-
return @"createNotification";
158-
} else if (sel == @selector(requestPermissionWithCallback:)) {
159-
return @"requestPermission";
160-
}
161-
return nil;
162-
}
163-
164-
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)sel {
165-
if (sel == @selector(checkPermission) ||
166-
sel == @selector(createNotificationWithIcon:title:message:) ||
167-
sel == @selector(requestPermissionWithCallback:)) {
168-
return NO;
169-
}
170-
return YES;
171-
}
172-
173132
#pragma mark -
174133

175134
- (void)dealloc {
176135
[console release];
136+
[notificationProvider release];
177137
[userScripts release];
178138
[super dealloc];
179139
}

Growl Registration Ticket.growlRegDict

-16
This file was deleted.

Growl.framework/Growl

-1
This file was deleted.

Growl.framework/Headers

-1
This file was deleted.

Growl.framework/Resources

-1
This file was deleted.

Growl.framework/Versions/A/Growl

-253 KB
Binary file not shown.

Growl.framework/Versions/A/Headers/Growl.h

-6
This file was deleted.

0 commit comments

Comments
 (0)