Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3163)

Unified Diff: chrome/browser/ui/cocoa/browser_window_cocoa.mm

Issue 899443002: Create bookmark apps at the end of the process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Feedback Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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];
[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(&params);
-
- 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(
« no previous file with comments | « chrome/browser/ui/cocoa/browser_window_cocoa.h ('k') | chrome/browser/ui/views/extensions/bookmark_app_bubble_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698