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,
const std::string& app_name,
apps::mojom::IconKeyPtr icon_key,
apps::IconLoader* icon_loader,
gfx::NativeWindow parent_window,
UninstallCallback uninstall_callback)
: profile_(profile),
app_type_(app_type),
app_id_(app_id),
app_name_(app_name),
parent_window_(parent_window),
uninstall_callback_(std::move(uninstall_callback)) {
int32_t size_hint_in_dip;
switch (app_type) {
case apps::mojom::AppType::kCrostini:
// Crostini uninstall dialog doesn't show the icon.
UiBase::Create(profile_, app_type_, app_id_, app_name, gfx::ImageSkia(),
this);
parent_window, this);
return;
case apps::mojom::AppType::kArc:
// Currently ARC apps only support 48*48 native icon.
......@@ -72,7 +74,7 @@ void UninstallDialog::OnLoadIcon(apps::mojom::IconValuePtr icon_value) {
}
UiBase::Create(profile_, app_type_, app_id_, app_name_,
icon_value->uncompressed, this);
icon_value->uncompressed, parent_window_, this);
}
} // namespace apps
......@@ -9,6 +9,7 @@
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "chrome/services/app_service/public/mojom/types.mojom.h"
#include "ui/gfx/native_widget_types.h"
class Profile;
......@@ -57,6 +58,7 @@ class UninstallDialog {
const std::string& app_id,
const std::string& app_name,
gfx::ImageSkia image,
gfx::NativeWindow parent_window,
UninstallDialog* uninstall_dialog);
gfx::ImageSkia image() const { return image_; }
......@@ -86,6 +88,7 @@ class UninstallDialog {
const std::string& app_name,
apps::mojom::IconKeyPtr icon_key,
IconLoader* icon_loader,
gfx::NativeWindow parent_window,
UninstallCallback uninstall_callback);
~UninstallDialog();
......@@ -101,6 +104,7 @@ class UninstallDialog {
apps::mojom::AppType app_type_;
const std::string app_id_;
const std::string app_name_;
gfx::NativeWindow parent_window_;
UninstallCallback uninstall_callback_;
base::WeakPtrFactory<UninstallDialog> weak_ptr_factory_{this};
......
......@@ -36,9 +36,13 @@ void apps::UninstallDialog::UiBase::Create(
const std::string& app_id,
const std::string& app_name,
gfx::ImageSkia image,
gfx::NativeWindow parent_window,
apps::UninstallDialog* uninstall_dialog) {
new AppUninstallDialogView(profile, app_type, app_id, app_name, image,
uninstall_dialog);
constrained_window::CreateBrowserModalDialogViews(
(new AppUninstallDialogView(profile, app_type, app_id, app_name, image,
uninstall_dialog)),
parent_window)
->Show();
}
AppUninstallDialogView::AppUninstallDialogView(
......@@ -53,7 +57,6 @@ AppUninstallDialogView::AppUninstallDialogView(
app_type_(app_type),
app_name_(app_name) {
InitializeView(profile, app_id);
constrained_window::CreateBrowserModalDialogViews(this, nullptr)->Show();
chrome::RecordDialogCreation(chrome::DialogIdentifier::APP_UNINSTALL);
}
......
......@@ -42,7 +42,7 @@ class ImageSkia;
// 1. Add an interface to the uninstall, like what is done by
// extension_uninstall_dialog_->ConfirmUninstallByExtension.
class AppUninstallDialogView : public apps::UninstallDialog::UiBase,
views::BubbleDialogDelegateView {
public views::BubbleDialogDelegateView {
public:
AppUninstallDialogView(Profile* profile,
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