Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1297)

Unified Diff: chrome/browser/chrome_browser_application_mac.mm

Issue 8771028: [Mac] Remove content/ CrApplication. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 282ecc3ddb2dcfa8e0c7a248098fa05c41149d0b..f203f07ef9aef5290b4ec926bfece8896257b344 100644
--- a/chrome/browser/chrome_browser_application_mac.mm
+++ b/chrome/browser/chrome_browser_application_mac.mm
@@ -221,6 +221,24 @@ void SwizzleInit() {
return self;
}
+// Initialize NSApplication using the custom subclass. Check whether NSApp
+// was already initialized using another class, because that would break
+// some things.
++ (NSApplication*)sharedApplication {
+ NSApplication* app = [super sharedApplication];
+ if (![NSApp isKindOfClass:self]) {
+ LOG(ERROR) << "NSApp should be of type " << [[self className] UTF8String]
Robert Sesek 2011/12/02 17:10:17 LOG(FATAL)?
Scott Hess - ex-Googler 2011/12/02 19:15:25 My goal was crash-if-debug, but warn-if-release.
+ << ", not " << [[NSApp className] UTF8String];
+ DCHECK(false) << "NSApp is of wrong type";
+ }
+ if (!base::MessagePumpMac::UsingCrApp()) {
+ LOG(ERROR) << "MessagePumpMac::Create() was called before "
+ << [[self className] UTF8String] << " was initialized.";
+ DCHECK(false) << "MessagePumpMac is using the wrong pump implementation.";
+ }
+ return app;
+}
+
////////////////////////////////////////////////////////////////////////////////
// HISTORICAL COMMENT (by viettrungluu, from
// http://codereview.chromium.org/1520006 with mild editing):
@@ -368,6 +386,14 @@ void SwizzleInit() {
[eventHooks_ removeObject:handler];
}
+- (BOOL)isHandlingSendEvent {
+ return handlingSendEvent_;
+}
+
+- (void)setHandlingSendEvent:(BOOL)handlingSendEvent {
+ handlingSendEvent_ = handlingSendEvent;
+}
+
- (void)sendEvent:(NSEvent*)event {
base::mac::ScopedSendingEvent sendingEventScoper;
for (id<CrApplicationEventHookProtocol> handler in eventHooks_.get()) {
@@ -396,7 +422,7 @@ void SwizzleInit() {
// sidestep scopers is setjmp/longjmp (see above). The following
// is to "fix" this while the more fundamental concern is
// addressed elsewhere.
- [self clearIsHandlingSendEvent];
+ [self setHandlingSendEvent:NO];
// If |ScopedNSExceptionEnabler| is used to allow exceptions, and an
// uncaught exception is thrown, it will throw past all of the scopers.

Powered by Google App Engine
This is Rietveld 408576698