diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-18 01:18:29 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-18 01:18:29 +0000 |
commit | a366880f8475fa9e0e70ace062af10654b297574 (patch) | |
tree | 5c2a777d77feebefc4b8c0f0c78525d57be93b16 /webkit | |
parent | c811184533d882af419cab0dabe0bf317c6c985f (diff) | |
download | chromium_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 'webkit')
-rw-r--r-- | webkit/tools/test_shell/test_shell_platform_delegate_mac.mm | 28 |
1 files changed, 25 insertions, 3 deletions
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 <objc/objc-runtime.h> #include <mach/task.h> -#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<CrAppProtocol> { + @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]); |