Chromium Code Reviews| Index: apps/app_shim/extension_app_shim_handler_mac.mm |
| diff --git a/apps/app_shim/extension_app_shim_handler_mac.cc b/apps/app_shim/extension_app_shim_handler_mac.mm |
| similarity index 89% |
| rename from apps/app_shim/extension_app_shim_handler_mac.cc |
| rename to apps/app_shim/extension_app_shim_handler_mac.mm |
| index 9d31d694c01b0108da1fbd655424b845b69e8ccd..584b01431bd35b38f5ec4947be55aa654e6ca8ef 100644 |
| --- a/apps/app_shim/extension_app_shim_handler_mac.cc |
| +++ b/apps/app_shim/extension_app_shim_handler_mac.mm |
| @@ -4,6 +4,8 @@ |
| #include "apps/app_shim/extension_app_shim_handler_mac.h" |
| +#import <Cocoa/Cocoa.h> |
| + |
| #include "apps/app_shim/app_shim_messages.h" |
| #include "base/files/file_path.h" |
| #include "base/logging.h" |
| @@ -13,6 +15,7 @@ |
| #include "chrome/browser/extensions/shell_window_registry.h" |
| #include "chrome/browser/ui/extensions/application_launch.h" |
| #include "chrome/browser/ui/extensions/shell_window.h" |
| +#include "content/public/browser/web_contents.h" |
| #include "ui/base/cocoa/focus_window_set.h" |
| namespace apps { |
| @@ -80,6 +83,20 @@ void ExtensionAppShimHandler::OnShimFocus(Host* host) { |
| ui::FocusWindowSet(native_windows); |
| } |
| +void ExtensionAppShimHandler::OnShimQuit(Host* host) { |
| + if (!host->GetProfile()) |
| + return; |
| + |
| + extensions::ShellWindowRegistry::ShellWindowList windows = |
| + extensions::ShellWindowRegistry::Get(host->GetProfile())-> |
| + GetShellWindowsForApp(host->GetAppId()); |
| + for (extensions::ShellWindowRegistry::const_iterator it = windows.begin(); |
| + it != windows.end(); ++it) { |
| + NSWindow* window = (*it)->GetNativeWindow(); |
|
tapted
2013/05/24 08:43:51
What about (*it)->GetBaseWindow()->Close();
That
jackhou1
2013/05/27 01:02:47
Close() is not available on the NativeAppWindow in
tapted
2013/05/27 01:13:56
Sure it is! -- should be inherited from ui::BaseWi
jackhou1
2013/05/27 05:04:51
Done.
|
| + [window performClose:nil]; |
| + } |
| +} |
| + |
| bool ExtensionAppShimHandler::LaunchApp(Profile* profile, |
| const std::string& app_id) { |
| extensions::ExtensionSystem* extension_system = |