Chromium Code Reviews| Index: chrome/browser/ui/cocoa/browser_window_cocoa.mm |
| diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm |
| index 0079cf187a145ef6b48ce567bc0c2803b0f54755..b8cb5a57fc4ed6d5b6ce6fb361d4af10e43f8b72 100644 |
| --- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm |
| +++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm |
| @@ -14,17 +14,12 @@ |
| #include "chrome/app/chrome_command_ids.h" |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/download/download_shelf.h" |
| -#include "chrome/browser/extensions/bookmark_app_helper.h" |
| -#include "chrome/browser/extensions/extension_service.h" |
| -#include "chrome/browser/extensions/launch_util.h" |
| #include "chrome/browser/extensions/tab_helper.h" |
| #include "chrome/browser/fullscreen.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/shell_integration.h" |
| #include "chrome/browser/signin/signin_header_helper.h" |
| #include "chrome/browser/translate/chrome_translate_client.h" |
| -#include "chrome/browser/ui/app_list/app_list_util.h" |
| -#include "chrome/browser/ui/app_list/app_list_service.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_command_controller.h" |
| #include "chrome/browser/ui/browser_commands_mac.h" |
| @@ -52,7 +47,6 @@ |
| #include "chrome/browser/ui/search/search_model.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/browser/web_applications/web_app.h" |
| -#include "chrome/browser/web_applications/web_app_mac.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/grit/generated_resources.h" |
| @@ -64,7 +58,6 @@ |
| #include "content/public/browser/web_contents.h" |
| #include "extensions/browser/extension_registry.h" |
| #include "extensions/browser/extension_system.h" |
| -#include "extensions/browser/pref_names.h" |
| #include "extensions/common/constants.h" |
| #include "ui/base/l10n/l10n_util_mac.h" |
| #include "ui/gfx/geometry/rect.h" |
| @@ -503,9 +496,7 @@ void BrowserWindowCocoa::ShowBookmarkBubble(const GURL& url, |
| void BrowserWindowCocoa::ShowBookmarkAppBubble( |
| const WebApplicationInfo& web_app_info, |
| - const std::string& extension_id) { |
| - Profile* profile = browser_->profile(); |
| - |
| + const ShowBookmarkAppBubbleCallback& callback) { |
| base::scoped_nsobject<NSAlert> alert([[NSAlert alloc] init]); |
| [alert setMessageText:l10n_util::GetNSString(IDS_BOOKMARK_APP_BUBBLE_TITLE)]; |
| [alert setAlertStyle:NSInformationalAlertStyle]; |
| @@ -522,10 +513,7 @@ void BrowserWindowCocoa::ShowBookmarkAppBubble( |
| [open_as_window_checkbox setButtonType:NSSwitchButton]; |
| [open_as_window_checkbox |
| setTitle:l10n_util::GetNSString(IDS_BOOKMARK_APP_BUBBLE_OPEN_AS_WINDOW)]; |
| - [open_as_window_checkbox setState: |
| - profile->GetPrefs()->GetInteger( |
| - extensions::pref_names::kBookmarkAppCreationLaunchType) == |
| - extensions::LAUNCH_TYPE_WINDOW]; |
| + [open_as_window_checkbox setState:web_app_info.open_as_window]; |
|
mitchellj
2015/02/03 23:43:47
Don't we still need to set |open_as_window| (or at
benwells
2015/02/04 16:01:00
Oh yeah, good catch. That logic is about to all di
|
| [open_as_window_checkbox sizeToFit]; |
| base::scoped_nsobject<NSTextField> app_title([[NSTextField alloc] |
| @@ -557,59 +545,18 @@ void BrowserWindowCocoa::ShowBookmarkAppBubble( |
| } |
| } |
| - ExtensionService* service = |
| - extensions::ExtensionSystem::Get(profile)->extension_service(); |
| if ([alert runModal] == NSAlertFirstButtonReturn) { |
| - // Save launch type preferences for later when creating another hosted app. |
| - extensions::LaunchType launch_type = |
| - [open_as_window_checkbox state] == NSOnState |
| - ? extensions::LAUNCH_TYPE_WINDOW |
| - : extensions::LAUNCH_TYPE_REGULAR; |
| - profile->GetPrefs()->SetInteger( |
| - extensions::pref_names::kBookmarkAppCreationLaunchType, launch_type); |
| - extensions::SetLaunchType(profile, extension_id, launch_type); |
| - |
| - // Update name of app. |
| + WebApplicationInfo updated_info = web_app_info; |
| + updated_info.open_as_window = [open_as_window_checkbox state] == NSOnState; |
| + |
| NSString* new_title = [app_title stringValue]; |
| - if (![original_title isEqualToString:new_title]) { |
| - WebApplicationInfo new_web_app_info(web_app_info); |
| - new_web_app_info.title = base::SysNSStringToUTF16(new_title); |
| - extensions::CreateOrUpdateBookmarkApp(service, &new_web_app_info); |
| - } |
| + updated_info.title = base::SysNSStringToUTF16(new_title); |
| - // If we're not creating app shims, no need to reveal it in Finder. |
| - // Otherwise reveal the app in the app launcher. If not installed, |
| - // then open the chrome://apps page. |
| - if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kEnableHostedAppShimCreation)) { |
| - extensions::ExtensionRegistry* registry = |
| - extensions::ExtensionRegistry::Get(profile); |
| - const extensions::Extension* app = registry->GetExtensionById( |
| - extension_id, extensions::ExtensionRegistry::ENABLED); |
| - |
| - web_app::RevealAppShimInFinderForApp(profile, app); |
| - } else { |
| - if (IsAppLauncherEnabled()) { |
| - AppListService::Get(chrome::GetHostDesktopTypeForNativeWindow( |
| - browser_->window()->GetNativeWindow())) |
| - ->ShowForAppInstall(profile, extension_id, false); |
| - } else { |
| - chrome::NavigateParams params(profile, GURL(chrome::kChromeUIAppsURL), |
| - ui::PAGE_TRANSITION_LINK); |
| - params.disposition = SINGLETON_TAB; |
| - chrome::Navigate(¶ms); |
| - |
| - content::NotificationService::current()->Notify( |
| - chrome::NOTIFICATION_APP_INSTALLED_TO_NTP, |
| - content::Source<content::WebContents>(params.target_contents), |
| - content::Details<const std::string>(&extension_id)); |
| - } |
| - } |
| - } else { |
| - service->UninstallExtension(extension_id, |
| - extensions::UNINSTALL_REASON_INSTALL_CANCELED, |
| - base::Bind(&base::DoNothing), NULL); |
| + callback.Run(true, updated_info); |
| + return; |
| } |
| + |
| + callback.Run(false, web_app_info); |
| } |
| void BrowserWindowCocoa::ShowTranslateBubble( |