summaryrefslogtreecommitdiffstats
path: root/base/message_pump_mac.h
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-18 01:18:29 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-18 01:18:29 +0000
commita366880f8475fa9e0e70ace062af10654b297574 (patch)
tree5c2a777d77feebefc4b8c0f0c78525d57be93b16 /base/message_pump_mac.h
parentc811184533d882af419cab0dabe0bf317c6c985f (diff)
downloadchromium_src-a366880f8475fa9e0e70ace062af10654b297574.zip
chromium_src-a366880f8475fa9e0e70ace062af10654b297574.tar.gz
chromium_src-a366880f8475fa9e0e70ace062af10654b297574.tar.bz2
Remove CrApplication dependency from base
Add a @protocol CrAppProtocol that clients of base must implement in their NSApplication subclass, and let base depend only on this protocol. Let MessagePumpNSApplication::DoRun() no longer initialize NSApplication (fixes a TODO). Add a MockCrApplication that the simple unittests in base and app can use, move chrome_application to chrome/common. Test shell might run nested run loops, so I gave it a real but simplified CrAppProtocol implementation. BUG=62968,46929 TEST=Everything still works. The PDF plugin prints one fewer warning when loaded. Review URL: http://codereview.chromium.org/5950003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69615 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_pump_mac.h')
-rw-r--r--base/message_pump_mac.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/base/message_pump_mac.h b/base/message_pump_mac.h
index e016d54..c30a8ea 100644
--- a/base/message_pump_mac.h
+++ b/base/message_pump_mac.h
@@ -36,11 +36,20 @@
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>
-#if defined(__OBJC__)
-@class NSAutoreleasePool;
-#else // defined(__OBJC__)
+#if !defined(__OBJC__)
class NSAutoreleasePool;
-#endif // defined(__OBJC__)
+#else // !defined(__OBJC__)
+#import <AppKit/AppKit.h>
+
+// Clients must subclass NSApplication and implement this protocol if they use
+// MessagePumpMac.
+@protocol CrAppProtocol
+// Must return true if -[NSApplication sendEvent:] is currently on the stack.
+// See the comment for |CreateAutoreleasePool()| in the cc file for why this is
+// necessary.
+- (BOOL)isHandlingSendEvent;
+@end
+#endif // !defined(__OBJC__)
namespace base {