| Index: chrome/browser/ui/views/importer/import_lock_dialog_view.cc
|
| diff --git a/chrome/browser/ui/views/importer/import_lock_dialog_view.cc b/chrome/browser/ui/views/importer/import_lock_dialog_view.cc
|
| index 71392b5908635fdeeced6d4f8fab2bd1cf316843..ccaf1032d6af26ecad53dbe0337c6de17b0fa039 100644
|
| --- a/chrome/browser/ui/views/importer/import_lock_dialog_view.cc
|
| +++ b/chrome/browser/ui/views/importer/import_lock_dialog_view.cc
|
| @@ -22,6 +22,14 @@
|
|
|
| using base::UserMetricsAction;
|
|
|
| +namespace {
|
| +
|
| +// A reference to the currently active widget backing the
|
| +// import lock dialog, or null if the dialog is not open.
|
| +static views::Widget* g_widget = nullptr;
|
| +
|
| +}
|
| +
|
| namespace importer {
|
|
|
| void ShowImportLockDialog(gfx::NativeWindow parent,
|
| @@ -30,13 +38,25 @@ void ShowImportLockDialog(gfx::NativeWindow parent,
|
| base::RecordAction(UserMetricsAction("ImportLockDialogView_Shown"));
|
| }
|
|
|
| +void HideImportLockDialog() {
|
| + ImportLockDialogView::Hide();
|
| +}
|
| +
|
| } // namespace importer
|
|
|
| // static
|
| void ImportLockDialogView::Show(gfx::NativeWindow parent,
|
| const base::Callback<void(bool)>& callback) {
|
| - views::DialogDelegate::CreateDialogWidget(
|
| - new ImportLockDialogView(callback), NULL, NULL)->Show();
|
| + ImportLockDialogView* dialog_view = new ImportLockDialogView(callback);
|
| + g_widget = views::DialogDelegate::CreateDialogWidget(dialog_view, NULL, NULL);
|
| + g_widget->AddObserver(dialog_view);
|
| + g_widget->Show();
|
| +}
|
| +
|
| +// static
|
| +void ImportLockDialogView::Hide() {
|
| + if (g_widget)
|
| + g_widget->Close();
|
| }
|
|
|
| ImportLockDialogView::ImportLockDialogView(
|
| @@ -53,6 +73,12 @@ ImportLockDialogView::ImportLockDialogView(
|
| ImportLockDialogView::~ImportLockDialogView() {
|
| }
|
|
|
| +void ImportLockDialogView::OnWidgetDestroying(views::Widget* widget) {
|
| + DCHECK_EQ(widget, g_widget);
|
| + g_widget = nullptr;
|
| + widget->RemoveObserver(this);
|
| +}
|
| +
|
| gfx::Size ImportLockDialogView::GetPreferredSize() const {
|
| return gfx::Size(views::Widget::GetLocalizedContentsSize(
|
| IDS_IMPORTLOCK_DIALOG_WIDTH_CHARS,
|
|
|