Commit 999b2f18 authored by nancy's avatar nancy Committed by Commit Bot

Add parent window for uninstall dialog.

BUG=1009248

Change-Id: Idfd3f413054297f40814eabbc650bb70eb3049d1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1868210
Commit-Queue: Nancy Wang <nancylingwang@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Reviewed-by: default avatarBret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#707791}
parent fdece9dd
...@@ -22,18 +22,20 @@ UninstallDialog::UninstallDialog(Profile* profile, ...@@ -22,18 +22,20 @@ UninstallDialog::UninstallDialog(Profile* profile,
const std::string& app_name, const std::string& app_name,
apps::mojom::IconKeyPtr icon_key, apps::mojom::IconKeyPtr icon_key,
apps::IconLoader* icon_loader, apps::IconLoader* icon_loader,
gfx::NativeWindow parent_window,
UninstallCallback uninstall_callback) UninstallCallback uninstall_callback)
: profile_(profile), : profile_(profile),
app_type_(app_type), app_type_(app_type),
app_id_(app_id), app_id_(app_id),
app_name_(app_name), app_name_(app_name),
parent_window_(parent_window),
uninstall_callback_(std::move(uninstall_callback)) { uninstall_callback_(std::move(uninstall_callback)) {
int32_t size_hint_in_dip; int32_t size_hint_in_dip;
switch (app_type) { switch (app_type) {
case apps::mojom::AppType::kCrostini: case apps::mojom::AppType::kCrostini:
// Crostini uninstall dialog doesn't show the icon. // Crostini uninstall dialog doesn't show the icon.
UiBase::Create(profile_, app_type_, app_id_, app_name, gfx::ImageSkia(), UiBase::Create(profile_, app_type_, app_id_, app_name, gfx::ImageSkia(),
this); parent_window, this);
return; return;
case apps::mojom::AppType::kArc: case apps::mojom::AppType::kArc:
// Currently ARC apps only support 48*48 native icon. // Currently ARC apps only support 48*48 native icon.
...@@ -72,7 +74,7 @@ void UninstallDialog::OnLoadIcon(apps::mojom::IconValuePtr icon_value) { ...@@ -72,7 +74,7 @@ void UninstallDialog::OnLoadIcon(apps::mojom::IconValuePtr icon_value) {
} }
UiBase::Create(profile_, app_type_, app_id_, app_name_, UiBase::Create(profile_, app_type_, app_id_, app_name_,
icon_value->uncompressed, this); icon_value->uncompressed, parent_window_, this);
} }
} // namespace apps } // namespace apps
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/observer_list.h" #include "base/observer_list.h"
#include "chrome/services/app_service/public/mojom/types.mojom.h" #include "chrome/services/app_service/public/mojom/types.mojom.h"
#include "ui/gfx/native_widget_types.h"
class Profile; class Profile;
...@@ -57,6 +58,7 @@ class UninstallDialog { ...@@ -57,6 +58,7 @@ class UninstallDialog {
const std::string& app_id, const std::string& app_id,
const std::string& app_name, const std::string& app_name,
gfx::ImageSkia image, gfx::ImageSkia image,
gfx::NativeWindow parent_window,
UninstallDialog* uninstall_dialog); UninstallDialog* uninstall_dialog);
gfx::ImageSkia image() const { return image_; } gfx::ImageSkia image() const { return image_; }
...@@ -86,6 +88,7 @@ class UninstallDialog { ...@@ -86,6 +88,7 @@ class UninstallDialog {
const std::string& app_name, const std::string& app_name,
apps::mojom::IconKeyPtr icon_key, apps::mojom::IconKeyPtr icon_key,
IconLoader* icon_loader, IconLoader* icon_loader,
gfx::NativeWindow parent_window,
UninstallCallback uninstall_callback); UninstallCallback uninstall_callback);
~UninstallDialog(); ~UninstallDialog();
...@@ -101,6 +104,7 @@ class UninstallDialog { ...@@ -101,6 +104,7 @@ class UninstallDialog {
apps::mojom::AppType app_type_; apps::mojom::AppType app_type_;
const std::string app_id_; const std::string app_id_;
const std::string app_name_; const std::string app_name_;
gfx::NativeWindow parent_window_;
UninstallCallback uninstall_callback_; UninstallCallback uninstall_callback_;
base::WeakPtrFactory<UninstallDialog> weak_ptr_factory_{this}; base::WeakPtrFactory<UninstallDialog> weak_ptr_factory_{this};
......
...@@ -36,9 +36,13 @@ void apps::UninstallDialog::UiBase::Create( ...@@ -36,9 +36,13 @@ void apps::UninstallDialog::UiBase::Create(
const std::string& app_id, const std::string& app_id,
const std::string& app_name, const std::string& app_name,
gfx::ImageSkia image, gfx::ImageSkia image,
gfx::NativeWindow parent_window,
apps::UninstallDialog* uninstall_dialog) { apps::UninstallDialog* uninstall_dialog) {
new AppUninstallDialogView(profile, app_type, app_id, app_name, image, constrained_window::CreateBrowserModalDialogViews(
uninstall_dialog); (new AppUninstallDialogView(profile, app_type, app_id, app_name, image,
uninstall_dialog)),
parent_window)
->Show();
} }
AppUninstallDialogView::AppUninstallDialogView( AppUninstallDialogView::AppUninstallDialogView(
...@@ -53,7 +57,6 @@ AppUninstallDialogView::AppUninstallDialogView( ...@@ -53,7 +57,6 @@ AppUninstallDialogView::AppUninstallDialogView(
app_type_(app_type), app_type_(app_type),
app_name_(app_name) { app_name_(app_name) {
InitializeView(profile, app_id); InitializeView(profile, app_id);
constrained_window::CreateBrowserModalDialogViews(this, nullptr)->Show();
chrome::RecordDialogCreation(chrome::DialogIdentifier::APP_UNINSTALL); chrome::RecordDialogCreation(chrome::DialogIdentifier::APP_UNINSTALL);
} }
......
...@@ -42,7 +42,7 @@ class ImageSkia; ...@@ -42,7 +42,7 @@ class ImageSkia;
// 1. Add an interface to the uninstall, like what is done by // 1. Add an interface to the uninstall, like what is done by
// extension_uninstall_dialog_->ConfirmUninstallByExtension. // extension_uninstall_dialog_->ConfirmUninstallByExtension.
class AppUninstallDialogView : public apps::UninstallDialog::UiBase, class AppUninstallDialogView : public apps::UninstallDialog::UiBase,
views::BubbleDialogDelegateView { public views::BubbleDialogDelegateView {
public: public:
AppUninstallDialogView(Profile* profile, AppUninstallDialogView(Profile* profile,
apps::mojom::AppType app_type, apps::mojom::AppType app_type,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment