| Index: chrome/browser/chrome_browser_application_mac.mm
|
| diff --git a/chrome/browser/chrome_browser_application_mac.mm b/chrome/browser/chrome_browser_application_mac.mm
|
| index c7706f234226b5a51a048982bac4b21a2e0cd67a..c219252d7ed9dcac0fb7387b19a16823498d63c0 100644
|
| --- a/chrome/browser/chrome_browser_application_mac.mm
|
| +++ b/chrome/browser/chrome_browser_application_mac.mm
|
| @@ -215,7 +215,10 @@ void SwizzleInit() {
|
|
|
| - (id)init {
|
| SwizzleInit();
|
| - return [super init];
|
| + if ((self = [super init])) {
|
| + eventHooks_.reset([[NSMutableArray alloc] init]);
|
| + }
|
| + return self;
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -357,6 +360,22 @@ void SwizzleInit() {
|
| return [super sendAction:anAction to:aTarget from:sender];
|
| }
|
|
|
| +- (void)addEventHook:(id<CrApplicationEventHookProtocol>)handler {
|
| + [eventHooks_ addObject:handler];
|
| +}
|
| +
|
| +- (void)removeEventHook:(id<CrApplicationEventHookProtocol>)handler {
|
| + [eventHooks_ removeObject:handler];
|
| +}
|
| +
|
| +- (void)sendEvent:(NSEvent*)event {
|
| + content::mac::ScopedSendingEvent sendingEventScoper;
|
| + for (id<CrApplicationEventHookProtocol> handler in eventHooks_.get()) {
|
| + [handler hookForEvent:event];
|
| + }
|
| + [super sendEvent:event];
|
| +}
|
| +
|
| // NSExceptions which are caught by the event loop are logged here.
|
| // NSException uses setjmp/longjmp, which can be very bad for C++, so
|
| // we attempt to track and report them.
|
|
|