summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/message_pump_mac.h38
-rw-r--r--base/message_pump_mac.mm51
-rw-r--r--base/test/mock_chrome_application_mac.mm3
-rw-r--r--chrome/browser/DEPS1
-rw-r--r--chrome/browser/chrome_browser_application_mac.h11
-rw-r--r--chrome/browser/chrome_browser_application_mac.mm34
-rw-r--r--chrome/browser/chrome_browser_application_mac_unittest.mm2
-rw-r--r--chrome/browser/chrome_browser_main_mac.mm2
-rw-r--r--chrome/browser/tab_contents/tab_contents_view_mac.mm8
-rw-r--r--chrome/browser/ui/window_snapshot/window_snapshot_mac_unittest.mm1
-rw-r--r--chrome/chrome_browser.gypi3
-rw-r--r--chrome/service/chrome_service_application_mac.h10
-rw-r--r--chrome/service/chrome_service_application_mac.mm14
-rw-r--r--chrome/service/service_main.cc8
-rw-r--r--content/common/chrome_application_mac.h38
-rw-r--r--content/common/chrome_application_mac.mm52
-rw-r--r--content/common/sandbox_mac.mm1
-rw-r--r--content/content_common.gypi2
-rw-r--r--content/gpu/gpu_main.cc8
-rw-r--r--content/plugin/plugin_main_mac.mm6
-rw-r--r--content/renderer/renderer_main_platform_delegate_mac.mm7
-rw-r--r--remoting/host/simple_host_process.cc2
-rw-r--r--remoting/remoting.gyp2
23 files changed, 147 insertions, 157 deletions
diff --git a/base/message_pump_mac.h b/base/message_pump_mac.h
index 501d8c6..1f7ea10 100644
--- a/base/message_pump_mac.h
+++ b/base/message_pump_mac.h
@@ -232,10 +232,6 @@ class MessagePumpNSApplication : public MessagePumpCFRunLoopBase {
virtual void DoRun(Delegate* delegate) OVERRIDE;
virtual void Quit() OVERRIDE;
- protected:
- // Returns nil if NSApp is currently in the middle of calling -sendEvent.
- virtual NSAutoreleasePool* CreateAutoreleasePool() OVERRIDE;
-
private:
// False after Quit is called.
bool keep_running_;
@@ -249,12 +245,42 @@ class MessagePumpNSApplication : public MessagePumpCFRunLoopBase {
DISALLOW_COPY_AND_ASSIGN(MessagePumpNSApplication);
};
+class MessagePumpCrApplication : public MessagePumpNSApplication {
+ public:
+ MessagePumpCrApplication();
+
+ protected:
+ // Returns nil if NSApp is currently in the middle of calling
+ // -sendEvent. Requires NSApp implementing CrAppProtocol.
+ virtual NSAutoreleasePool* CreateAutoreleasePool() OVERRIDE;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MessagePumpCrApplication);
+};
+
class MessagePumpMac {
public:
- // Returns a new instance of MessagePumpNSApplication if called on the main
- // thread. Otherwise, returns a new instance of MessagePumpNSRunLoop.
+ // If not on the main thread, returns a new instance of
+ // MessagePumpNSRunLoop.
+ //
+ // On the main thread, if NSApp exists and conforms to
+ // CrAppProtocol, creates an instances of MessagePumpCrApplication.
+ //
+ // Otherwise creates an instance of MessagePumpNSApplication using a
+ // default NSApplication.
static MessagePump* Create();
+ // If a pump is created before the required CrAppProtocol is
+ // created, the wrong MessagePump subclass could be used.
+ // UsingCrApp() returns false if the message pump was created before
+ // NSApp was initialized, or if NSApp does not implement
+ // CrAppProtocol. NSApp must be initialized before calling.
+ static bool UsingCrApp();
+
+ // Wrapper to query -[NSApp isHandlingSendEvent] from C++ code.
+ // Requires NSApp to implement CrAppProtocol.
+ static bool IsHandlingSendEvent();
+
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(MessagePumpMac);
};
diff --git a/base/message_pump_mac.mm b/base/message_pump_mac.mm
index 2a50b64..615147c 100644
--- a/base/message_pump_mac.mm
+++ b/base/message_pump_mac.mm
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/message_pump_mac.h"
+#import "base/message_pump_mac.h"
#import <AppKit/AppKit.h>
#import <Foundation/Foundation.h>
@@ -20,6 +20,10 @@ void NoOp(void* info) {
const CFTimeInterval kCFTimeIntervalMax =
std::numeric_limits<CFTimeInterval>::max();
+// Set to true if MessagePumpMac::Create() is called before NSApp is
+// initialized. Only accessed from the main thread.
+bool not_using_crapp = false;
+
} // namespace
namespace base {
@@ -591,6 +595,9 @@ void MessagePumpNSApplication::Quit() {
atStart:NO];
}
+MessagePumpCrApplication::MessagePumpCrApplication() {
+}
+
// Prevents an autorelease pool from being created if the app is in the midst of
// handling a UI event because various parts of AppKit depend on objects that
// are created while handling a UI event to be autoreleased in the event loop.
@@ -622,22 +629,50 @@ void MessagePumpNSApplication::Quit() {
// CrApplication is responsible for setting handlingSendEvent to true just
// before it sends the event through the event handling mechanism, and
// returning it to its previous value once the event has been sent.
-NSAutoreleasePool* MessagePumpNSApplication::CreateAutoreleasePool() {
- NSAutoreleasePool* pool = nil;
- DCHECK([NSApp conformsToProtocol:@protocol(CrAppProtocol)]);
- if (![NSApp isHandlingSendEvent]) {
- pool = MessagePumpCFRunLoopBase::CreateAutoreleasePool();
- }
- return pool;
+NSAutoreleasePool* MessagePumpCrApplication::CreateAutoreleasePool() {
+ if (MessagePumpMac::IsHandlingSendEvent())
+ return nil;
+ return MessagePumpNSApplication::CreateAutoreleasePool();
}
// static
MessagePump* MessagePumpMac::Create() {
if ([NSThread isMainThread]) {
+ if ([NSApp conformsToProtocol:@protocol(CrAppProtocol)])
+ return new MessagePumpCrApplication;
+
+ // The main-thread MessagePump implementations REQUIRE an NSApp.
+ // Executables which have specific requirements for their
+ // NSApplication subclass should initialize appropriately before
+ // creating an event loop.
+ [NSApplication sharedApplication];
+ not_using_crapp = true;
return new MessagePumpNSApplication;
}
return new MessagePumpNSRunLoop;
}
+// static
+bool MessagePumpMac::UsingCrApp() {
+ DCHECK([NSThread isMainThread]);
+
+ // If NSApp is still not initialized, then the subclass used cannot
+ // be determined.
+ DCHECK(NSApp);
+
+ // The pump was created using MessagePumpNSApplication.
+ if (not_using_crapp)
+ return false;
+
+ return [NSApp conformsToProtocol:@protocol(CrAppProtocol)];
+}
+
+// static
+bool MessagePumpMac::IsHandlingSendEvent() {
+ DCHECK([NSApp conformsToProtocol:@protocol(CrAppProtocol)]);
+ NSObject<CrAppProtocol>* app = static_cast<NSObject<CrAppProtocol>*>(NSApp);
+ return [app isHandlingSendEvent];
+}
+
} // namespace base
diff --git a/base/test/mock_chrome_application_mac.mm b/base/test/mock_chrome_application_mac.mm
index b0b8617..9135293 100644
--- a/base/test/mock_chrome_application_mac.mm
+++ b/base/test/mock_chrome_application_mac.mm
@@ -14,6 +14,9 @@
DCHECK([app conformsToProtocol:@protocol(CrAppControlProtocol)])
<< "Existing NSApp (class " << [[app className] UTF8String]
<< ") does not conform to required protocol.";
+ DCHECK(base::MessagePumpMac::UsingCrApp())
+ << "MessagePumpMac::Create() was called before "
+ << "+[MockCrApp sharedApplication]";
return app;
}
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index d5dcd1c..b40dc6b 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -31,7 +31,6 @@ include_rules = [
"-content/common",
# TODO(jam): remove all the exceptions. BUG=98716
- "+content/common/chrome_application_mac.h",
"+content/common/view_messages.h",
# Other libraries.
diff --git a/chrome/browser/chrome_browser_application_mac.h b/chrome/browser/chrome_browser_application_mac.h
index bab4b65..c6147fd 100644
--- a/chrome/browser/chrome_browser_application_mac.h
+++ b/chrome/browser/chrome_browser_application_mac.h
@@ -8,15 +8,22 @@
#ifdef __OBJC__
-#import "content/common/chrome_application_mac.h"
+#import <AppKit/AppKit.h>
+
+#import "base/mac/scoped_sending_event.h"
+#import "base/memory/scoped_nsobject.h"
+#import "base/message_pump_mac.h"
// Event hooks must implement this protocol.
@protocol CrApplicationEventHookProtocol
- (void)hookForEvent:(NSEvent*)theEvent;
@end
-@interface BrowserCrApplication : CrApplication {
+@interface BrowserCrApplication : NSApplication<CrAppProtocol,
+ CrAppControlProtocol> {
@private
+ BOOL handlingSendEvent_;
+
// Array of objects implementing CrApplicationEventHookProtocol.
scoped_nsobject<NSMutableArray> eventHooks_;
}
diff --git a/chrome/browser/chrome_browser_application_mac.mm b/chrome/browser/chrome_browser_application_mac.mm
index 282ecc3..c498832 100644
--- a/chrome/browser/chrome_browser_application_mac.mm
+++ b/chrome/browser/chrome_browser_application_mac.mm
@@ -221,6 +221,30 @@ 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];
+
+ // +sharedApplication initializes the global NSApp, so if a specific
+ // NSApplication subclass is requested, require that to be the one
+ // delivered. The practical effect is to require a consistent NSApp
+ // across the executable.
+ CHECK([NSApp isKindOfClass:self])
+ << "NSApp must be of type " << [[self className] UTF8String]
+ << ", not " << [[NSApp className] UTF8String];
+
+ // If the message loop was initialized before NSApp is setup, the
+ // message pump will be setup incorrectly. Failing this implies
+ // that RegisterBrowserCrApp() should be called earlier.
+ CHECK(base::MessagePumpMac::UsingCrApp())
+ << "MessagePumpMac::Create() is using the wrong pump implementation"
+ << " for " << [[self className] UTF8String];
+
+ return app;
+}
+
////////////////////////////////////////////////////////////////////////////////
// HISTORICAL COMMENT (by viettrungluu, from
// http://codereview.chromium.org/1520006 with mild editing):
@@ -368,6 +392,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 +428,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.
diff --git a/chrome/browser/chrome_browser_application_mac_unittest.mm b/chrome/browser/chrome_browser_application_mac_unittest.mm
index 4511559..9aa005a 100644
--- a/chrome/browser/chrome_browser_application_mac_unittest.mm
+++ b/chrome/browser/chrome_browser_application_mac_unittest.mm
@@ -4,8 +4,8 @@
#import <Cocoa/Cocoa.h>
-#include "base/metrics/histogram.h"
#import "base/mac/scoped_nsexception_enabler.h"
+#include "base/metrics/histogram.h"
#import "chrome/browser/chrome_browser_application_mac.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/chrome_browser_main_mac.mm b/chrome/browser/chrome_browser_main_mac.mm
index 02c9d05..b8aaf29 100644
--- a/chrome/browser/chrome_browser_main_mac.mm
+++ b/chrome/browser/chrome_browser_main_mac.mm
@@ -71,7 +71,7 @@ void ChromeBrowserMainPartsMac::PreMainMessageLoopStart() {
// CFRunLoop.
// Initialize NSApplication using the custom subclass.
- [BrowserCrApplication sharedApplication];
+ chrome_browser_application_mac::RegisterBrowserCrApp();
// If ui_task is not NULL, the app is actually a browser_test, so startup is
// handled outside of BrowserMain (which is what called this).
diff --git a/chrome/browser/tab_contents/tab_contents_view_mac.mm b/chrome/browser/tab_contents/tab_contents_view_mac.mm
index 121e082..927af25 100644
--- a/chrome/browser/tab_contents/tab_contents_view_mac.mm
+++ b/chrome/browser/tab_contents/tab_contents_view_mac.mm
@@ -9,6 +9,7 @@
#include <string>
#import "base/mac/scoped_sending_event.h"
+#import "base/message_pump_mac.h"
#import "chrome/browser/renderer_host/chrome_render_widget_host_view_mac_delegate.h"
#include "chrome/browser/tab_contents/render_view_context_menu_mac.h"
#include "chrome/browser/tab_contents/web_drag_bookmark_handler_mac.h"
@@ -23,7 +24,6 @@
#include "content/browser/tab_contents/tab_contents_delegate.h"
#import "content/browser/tab_contents/web_drag_dest_mac.h"
#import "content/browser/tab_contents/web_drag_source_mac.h"
-#import "content/common/chrome_application_mac.h"
#include "content/common/view_messages.h"
#include "skia/ext/skia_utils_mac.h"
#import "third_party/mozilla/NSPasteboard+Utils.h"
@@ -369,11 +369,7 @@ void TabContentsViewMac::ShowPopupMenu(
}
bool TabContentsViewMac::IsEventTracking() const {
- if ([NSApp isKindOfClass:[CrApplication class]] &&
- [static_cast<CrApplication*>(NSApp) isHandlingSendEvent]) {
- return true;
- }
- return false;
+ return base::MessagePumpMac::IsHandlingSendEvent();
}
// Arrange to call CloseTab() after we're back to the main event loop.
diff --git a/chrome/browser/ui/window_snapshot/window_snapshot_mac_unittest.mm b/chrome/browser/ui/window_snapshot/window_snapshot_mac_unittest.mm
index 7641891..0a1faa6 100644
--- a/chrome/browser/ui/window_snapshot/window_snapshot_mac_unittest.mm
+++ b/chrome/browser/ui/window_snapshot/window_snapshot_mac_unittest.mm
@@ -8,7 +8,6 @@
#include "base/memory/scoped_nsobject.h"
#include "base/memory/scoped_ptr.h"
-#include "base/test/mock_chrome_application_mac.h"
#include "testing/platform_test.h"
#include "ui/gfx/rect.h"
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 027703d..e5270b4 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -4428,9 +4428,6 @@
'../third_party/mozilla/NSURL+Utils.m',
'../third_party/mozilla/NSWorkspace+Utils.h',
'../third_party/mozilla/NSWorkspace+Utils.m',
- # Headers so that IB can find classes it needs to resolve classes
- # in XIB files.
- 'common/chrome_application_mac.h',
],
'include_dirs': [
'../third_party/apple',
diff --git a/chrome/service/chrome_service_application_mac.h b/chrome/service/chrome_service_application_mac.h
index 554a19f..235c2a8 100644
--- a/chrome/service/chrome_service_application_mac.h
+++ b/chrome/service/chrome_service_application_mac.h
@@ -8,10 +8,10 @@
#ifdef __OBJC__
-#import "content/common/chrome_application_mac.h"
+#import <AppKit/AppKit.h>
// Top level Mac Application for the service process.
-@interface ServiceCrApplication : CrApplication
+@interface ServiceApplication : NSApplication
@end
@@ -19,9 +19,9 @@
namespace chrome_service_application_mac {
-// To be used to instantiate ServiceCrApplication from C++ code.
-void RegisterServiceCrApp();
+// To be used to instantiate ServiceApplication from C++ code.
+void RegisterServiceApp();
+
} // namespace chrome_service_application_mac
#endif // CHROME_SERVICE_CHROME_SERVICE_APPLICATION_MAC_H_
-
diff --git a/chrome/service/chrome_service_application_mac.mm b/chrome/service/chrome_service_application_mac.mm
index 845d9f06..75f6b05 100644
--- a/chrome/service/chrome_service_application_mac.mm
+++ b/chrome/service/chrome_service_application_mac.mm
@@ -9,14 +9,14 @@
#import "chrome/common/cloud_print/cloud_print_class_mac.h"
#include "chrome/common/chrome_switches.h"
-@interface ServiceCrApplication ()
+@interface ServiceApplication ()
- (void)setCloudPrintHandler;
- (void)submitPrint:(NSAppleEventDescriptor*)event;
@end
-@implementation ServiceCrApplication
+@implementation ServiceApplication
--(void)setCloudPrintHandler {
+- (void)setCloudPrintHandler {
NSAppleEventManager* em = [NSAppleEventManager sharedAppleEventManager];
[em setEventHandler:self
andSelector:@selector(submitPrint:)
@@ -90,10 +90,10 @@
namespace chrome_service_application_mac {
-void RegisterServiceCrApp() {
- ServiceCrApplication* var =
- static_cast<ServiceCrApplication*>
- ([ServiceCrApplication sharedApplication]);
+void RegisterServiceApp() {
+ ServiceApplication* var =
+ base::mac::ObjCCastStrict<ServiceApplication>(
+ [ServiceApplication sharedApplication]);
[var setCloudPrintHandler];
}
diff --git a/chrome/service/service_main.cc b/chrome/service/service_main.cc
index 99d6c83..bcde1ba 100644
--- a/chrome/service/service_main.cc
+++ b/chrome/service/service_main.cc
@@ -18,6 +18,10 @@
// Mainline routine for running as the service process.
int ServiceProcessMain(const content::MainFunctionParams& parameters) {
+#if defined(OS_MACOSX)
+ chrome_service_application_mac::RegisterServiceApp();
+#endif
+
MessageLoopForUI main_message_loop;
main_message_loop.set_thread_name("MainThread");
if (parameters.command_line.HasSwitch(switches::kWaitForDebugger)) {
@@ -27,10 +31,6 @@ int ServiceProcessMain(const content::MainFunctionParams& parameters) {
VLOG(1) << "Service process launched: "
<< parameters.command_line.GetCommandLineString();
-#if defined(OS_MACOSX)
- chrome_service_application_mac::RegisterServiceCrApp();
-#endif
-
base::PlatformThread::SetName("CrServiceMain");
// If there is already a service process running, quit now.
diff --git a/content/common/chrome_application_mac.h b/content/common/chrome_application_mac.h
deleted file mode 100644
index 35e09a7..0000000
--- a/content/common/chrome_application_mac.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_COMMON_CHROME_APPLICATION_MAC_H_
-#define CONTENT_COMMON_CHROME_APPLICATION_MAC_H_
-#pragma once
-
-#if defined(__OBJC__)
-
-#import <AppKit/AppKit.h>
-
-#include "base/basictypes.h"
-#import "base/mac/scoped_sending_event.h"
-
-@interface CrApplication : NSApplication<CrAppControlProtocol> {
- @private
- BOOL handlingSendEvent_;
-}
-- (BOOL)isHandlingSendEvent;
-
-// Unconditionally clears |handlingSendEvent_|. This should not be
-// used except in recovering from some sort of exceptional condition.
-- (void)clearIsHandlingSendEvent;
-
-+ (NSApplication*)sharedApplication;
-@end
-
-#endif // defined(__OBJC__)
-
-namespace chrome_application_mac {
-
-// To be used to instantiate CrApplication from C++ code.
-void RegisterCrApp();
-
-} // namespace chrome_application_mac
-
-#endif // CONTENT_COMMON_CHROME_APPLICATION_MAC_H_
diff --git a/content/common/chrome_application_mac.mm b/content/common/chrome_application_mac.mm
deleted file mode 100644
index 81b341c..0000000
--- a/content/common/chrome_application_mac.mm
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "content/common/chrome_application_mac.h"
-
-#include "base/logging.h"
-
-@interface CrApplication ()
-- (void)setHandlingSendEvent:(BOOL)handlingSendEvent;
-@end
-
-@implementation CrApplication
-// 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]) {
- DLOG(ERROR) << "NSApp should be of type " << [[self className] UTF8String]
- << ", not " << [[NSApp className] UTF8String];
- DCHECK(false) << "NSApp is of wrong type";
- }
- return app;
-}
-
-- (BOOL)isHandlingSendEvent {
- return handlingSendEvent_;
-}
-
-- (void)setHandlingSendEvent:(BOOL)handlingSendEvent {
- handlingSendEvent_ = handlingSendEvent;
-}
-
-- (void)clearIsHandlingSendEvent {
- [self setHandlingSendEvent:NO];
-}
-
-- (void)sendEvent:(NSEvent*)event {
- base::mac::ScopedSendingEvent sendingEventScoper;
- [super sendEvent:event];
-}
-
-@end
-
-namespace chrome_application_mac {
-
-void RegisterCrApp() {
- [CrApplication sharedApplication];
-}
-
-} // namespace chrome_application_mac
diff --git a/content/common/sandbox_mac.mm b/content/common/sandbox_mac.mm
index d58e001..24d9453 100644
--- a/content/common/sandbox_mac.mm
+++ b/content/common/sandbox_mac.mm
@@ -27,7 +27,6 @@ extern "C" {
#include "base/sys_info.h"
#include "base/sys_string_conversions.h"
#include "base/utf_string_conversions.h"
-#include "content/common/chrome_application_mac.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
#include "grit/content_resources.h"
diff --git a/content/content_common.gypi b/content/content_common.gypi
index b57d320..3fe4642 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -93,8 +93,6 @@
'common/child_thread.h',
'common/child_trace_message_filter.cc',
'common/child_trace_message_filter.h',
- 'common/chrome_application_mac.h',
- 'common/chrome_application_mac.mm',
'common/chrome_descriptors.h',
'common/clipboard_messages.h',
'common/content_message_generator.cc',
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
index 48ff837..8ecc3f7 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
@@ -22,9 +22,7 @@
#include "ui/gfx/gl/gl_surface.h"
#include "ui/gfx/gl/gl_switches.h"
-#if defined(OS_MACOSX)
-#include "content/common/chrome_application_mac.h"
-#elif defined(OS_WIN)
+#if defined(OS_WIN)
#include "sandbox/src/sandbox.h"
#endif
@@ -85,10 +83,6 @@ int GpuMain(const content::MainFunctionParams& parameters) {
target_services->LowerToken();
#endif
-#if defined(OS_MACOSX)
- chrome_application_mac::RegisterCrApp();
-#endif
-
MessageLoop::Type message_loop_type = MessageLoop::TYPE_UI;
#if defined(OS_WIN)
// Unless we're running on desktop GL, we don't need a UI message
diff --git a/content/plugin/plugin_main_mac.mm b/content/plugin/plugin_main_mac.mm
index c5a3cc3..6d28fd8 100644
--- a/content/plugin/plugin_main_mac.mm
+++ b/content/plugin/plugin_main_mac.mm
@@ -2,10 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#import <AppKit/AppKit.h>
+
#include "base/environment.h"
#include "base/memory/scoped_ptr.h"
#include "base/string_util.h"
-#include "content/common/chrome_application_mac.h"
#include "content/common/plugin_carbon_interpose_constants_mac.h"
#include "content/plugin/plugin_interpose_util_mac.h"
@@ -44,7 +45,6 @@ void TrimInterposeEnvironment() {
#endif
void InitializeChromeApplication() {
- [CrApplication sharedApplication];
-
+ [NSApplication sharedApplication];
mac_plugin_interposing::SetUpCocoaInterposing();
}
diff --git a/content/renderer/renderer_main_platform_delegate_mac.mm b/content/renderer/renderer_main_platform_delegate_mac.mm
index 34912e4..59a6c63 100644
--- a/content/renderer/renderer_main_platform_delegate_mac.mm
+++ b/content/renderer/renderer_main_platform_delegate_mac.mm
@@ -11,7 +11,6 @@
#include "base/logging.h"
#include "base/sys_string_conversions.h"
#import "chrome/test/security_tests/renderer_sandbox_tests_mac.h"
-#import "content/common/chrome_application_mac.h"
#include "content/common/sandbox_mac.h"
#include "content/public/common/content_switches.h"
#include "content/common/sandbox_init_mac.h"
@@ -29,9 +28,9 @@ RendererMainPlatformDelegate::~RendererMainPlatformDelegate() {
// running a renderer needs to also be reflected in chrome_main.cc for
// --single-process support.
void RendererMainPlatformDelegate::PlatformInitialize() {
- // Initialize NSApplication using the custom subclass. Without this call,
- // drawing of native UI elements (e.g. buttons) in WebKit will explode.
- [CrApplication sharedApplication];
+ // Initialize NSApplication up front. Without this call, drawing of
+ // native UI elements (e.g. buttons) in WebKit will explode.
+ [NSApplication sharedApplication];
// Load WebKit system interfaces.
InitWebCoreSystemInterface();
diff --git a/remoting/host/simple_host_process.cc b/remoting/host/simple_host_process.cc
index 9ffa7ff..3ab83ee 100644
--- a/remoting/host/simple_host_process.cc
+++ b/remoting/host/simple_host_process.cc
@@ -28,7 +28,6 @@
#include "base/logging.h"
#include "base/message_loop.h"
#include "base/path_service.h"
-#include "base/test/mock_chrome_application_mac.h"
#include "base/threading/thread.h"
#include "crypto/nss_util.h"
#include "remoting/base/constants.h"
@@ -262,7 +261,6 @@ int main(int argc, char** argv) {
#if defined(OS_MACOSX)
// Needed so we don't leak objects when threads are created.
base::mac::ScopedNSAutoreleasePool pool;
- mock_cr_app::RegisterMockCrApp();
#endif
CommandLine::Init(argc, argv);
diff --git a/remoting/remoting.gyp b/remoting/remoting.gyp
index 4f0922f..d236613 100644
--- a/remoting/remoting.gyp
+++ b/remoting/remoting.gyp
@@ -669,8 +669,6 @@
'host/it2me_host_user_interface.cc',
'host/it2me_host_user_interface.h',
'host/simple_host_process.cc',
- '../base/test/mock_chrome_application_mac.mm',
- '../base/test/mock_chrome_application_mac.h',
],
}, # end of target 'remoting_simple_host'