summaryrefslogtreecommitdiffstats
path: root/webkit
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 /webkit
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 'webkit')
-rw-r--r--webkit/tools/test_shell/test_shell_platform_delegate_mac.mm28
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]);