| Index: chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc b/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc
|
| index cac3d5ab83343c537809c2da42f7f43055657683..0955b8a7b01e9a725d4cf668ad57c98c30bfac85 100644
|
| --- a/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc
|
| @@ -9,11 +9,13 @@
|
| #include "base/bind.h"
|
| #include "base/environment.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/shell_integration.h"
|
| #include "chrome/browser/ui/gtk/gtk_util.h"
|
| #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
|
| #include "chrome/browser/ui/web_applications/web_app_ui.h"
|
| #include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
|
| +#include "chrome/browser/web_applications/web_app.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_resource.h"
|
| #include "content/public/browser/browser_thread.h"
|
| @@ -47,8 +49,9 @@ void CreateWebApplicationShortcutsDialogGtk::Show(
|
| }
|
|
|
| void CreateChromeApplicationShortcutsDialogGtk::Show(GtkWindow* parent,
|
| + Profile* profile,
|
| const Extension* app) {
|
| - new CreateChromeApplicationShortcutsDialogGtk(parent, app);
|
| + new CreateChromeApplicationShortcutsDialogGtk(parent, profile, app);
|
| }
|
|
|
|
|
| @@ -301,13 +304,17 @@ void CreateWebApplicationShortcutsDialogGtk::OnCreatedShortcut() {
|
| CreateChromeApplicationShortcutsDialogGtk::
|
| CreateChromeApplicationShortcutsDialogGtk(
|
| GtkWindow* parent,
|
| + Profile* profile,
|
| const Extension* app)
|
| : CreateApplicationShortcutsDialogGtk(parent),
|
| app_(app),
|
| + profile_path_(profile->GetPath()),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) {
|
|
|
| // Get shortcut information now, it's needed for our UI.
|
| shortcut_info_.extension_id = app_->id();
|
| + shortcut_info_.extension_path = app_->path();
|
| + shortcut_info_.is_platform_app = app_->is_platform_app();
|
| shortcut_info_.url = GURL(app_->launch_web_url());
|
| shortcut_info_.title = UTF8ToUTF16(app_->name());
|
| shortcut_info_.description = UTF8ToUTF16(app_->description());
|
| @@ -347,3 +354,16 @@ void CreateChromeApplicationShortcutsDialogGtk::OnImageLoaded(
|
| CreateIconPixBuf(shortcut_info_.favicon);
|
| CreateDialogBox(parent_);
|
| }
|
| +
|
| +void CreateChromeApplicationShortcutsDialogGtk::CreateDesktopShortcut(
|
| + const ShellIntegration::ShortcutInfo& shortcut_info) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| +
|
| + if (web_app::CreateShortcutOnFileThread(profile_path_, shortcut_info)) {
|
| + Release();
|
| + } else {
|
| + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&CreateChromeApplicationShortcutsDialogGtk::ShowErrorDialog,
|
| + this));
|
| + }
|
| +}
|
|
|