From a366880f8475fa9e0e70ace062af10654b297574 Mon Sep 17 00:00:00 2001 From: "thakis@chromium.org" Date: Sat, 18 Dec 2010 01:18:29 +0000 Subject: 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 --- .../test_shell/test_shell_platform_delegate_mac.mm | 28 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'webkit/tools') diff --git a/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm b/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm index b02da7d..5f1fcd0 100644 --- a/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm +++ b/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm @@ -10,9 +10,9 @@ #import #include -#include "base/chrome_application_mac.h" #include "base/command_line.h" #include "base/logging.h" +#include "base/message_pump_mac.h" #include "third_party/WebKit/WebKit/mac/WebCoreSupport/WebSystemInterface.h" #include "webkit/tools/test_shell/test_shell.h" #include "webkit/tools/test_shell/test_shell_platform_delegate.h" @@ -20,6 +20,26 @@ static NSAutoreleasePool *gTestShellAutoreleasePool = nil; +@interface CrApplication : NSApplication { + @private + BOOL handlingSendEvent_; +} +- (BOOL)isHandlingSendEvent; +@end + +@implementation CrApplication +- (BOOL)isHandlingSendEvent { + return handlingSendEvent_; +} + +- (void)sendEvent:(NSEvent*)event { + BOOL wasHandlingSendEvent = handlingSendEvent_; + handlingSendEvent_ = YES; + [super sendEvent:event]; + handlingSendEvent_ = wasHandlingSendEvent; +} +@end + static void SetDefaultsToLayoutTestValues(void) { // So we can match the WebKit layout tests, we want to force a bunch of // preferences that control appearance to match. @@ -90,10 +110,12 @@ static void ClearAnyDefaultsForLayoutTests(void) { #if OBJC_API_VERSION == 2 static void SwizzleAllMethods(Class imposter, Class original) { unsigned int imposterMethodCount = 0; - Method* imposterMethods = class_copyMethodList(imposter, &imposterMethodCount); + Method* imposterMethods = + class_copyMethodList(imposter, &imposterMethodCount); unsigned int originalMethodCount = 0; - Method* originalMethods = class_copyMethodList(original, &originalMethodCount); + Method* originalMethods = + class_copyMethodList(original, &originalMethodCount); for (unsigned int i = 0; i < imposterMethodCount; i++) { SEL imposterMethodName = method_getName(imposterMethods[i]); -- cgit v1.1