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

Unified Diff: chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc

Issue 2916753004: Use BookmarkAppConfirmationView on Mac. Delete the NSAlert Mac uses currently. (Closed)
Patch Set: using, OnceCallback Created 3 years, 6 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/views/extensions/bookmark_app_confirmation_view.cc
diff --git a/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc b/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
index 9cba2d5ec0aef4f9b252eadbffe10ffd278b77a8..afec8490bebea504856c40a401d11dcb9b250996 100644
--- a/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
+++ b/chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.cc
@@ -8,7 +8,7 @@
#include "base/strings/string16.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
-#include "chrome/browser/ui/browser_dialogs.h"
+#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/ui/views/harmony/chrome_layout_provider.h"
#include "chrome/grit/generated_resources.h"
#include "components/constrained_window/constrained_window_views.h"
@@ -56,21 +56,11 @@ class WebAppInfoImageSource : public gfx::ImageSkiaSource {
BookmarkAppConfirmationView::~BookmarkAppConfirmationView() {}
-// static
-void BookmarkAppConfirmationView::CreateAndShow(
- gfx::NativeWindow parent,
- const WebApplicationInfo& web_app_info,
- const BrowserWindow::ShowBookmarkAppBubbleCallback& callback) {
- constrained_window::CreateBrowserModalDialogViews(
- new BookmarkAppConfirmationView(web_app_info, callback), parent)
- ->Show();
-}
-
BookmarkAppConfirmationView::BookmarkAppConfirmationView(
const WebApplicationInfo& web_app_info,
- const BrowserWindow::ShowBookmarkAppBubbleCallback& callback)
+ chrome::ShowBookmarkAppDialogCallback callback)
: web_app_info_(web_app_info),
- callback_(callback),
+ callback_(std::move(callback)),
open_as_window_checkbox_(nullptr),
title_tf_(nullptr) {
const ChromeLayoutProvider* layout_provider = ChromeLayoutProvider::Get();
@@ -109,12 +99,16 @@ BookmarkAppConfirmationView::BookmarkAppConfirmationView(
layout->AddPaddingRow(
0, layout_provider->GetDistanceMetric(DISTANCE_CONTROL_LIST_VERTICAL));
- open_as_window_checkbox_ = new views::Checkbox(
- l10n_util::GetStringUTF16(IDS_BOOKMARK_APP_BUBBLE_OPEN_AS_WINDOW));
- open_as_window_checkbox_->SetChecked(web_app_info_.open_as_window);
- layout->StartRow(0, column_set_id);
- layout->SkipColumns(1);
- layout->AddView(open_as_window_checkbox_);
+ // When CanHostedAppsOpenInWindows() returns false, do not show the open as
+ // window checkbox to avoid confusing users.
+ if (extensions::util::CanHostedAppsOpenInWindows()) {
+ open_as_window_checkbox_ = new views::Checkbox(
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_APP_BUBBLE_OPEN_AS_WINDOW));
+ open_as_window_checkbox_->SetChecked(web_app_info_.open_as_window);
+ layout->StartRow(0, column_set_id);
+ layout->SkipColumns(1);
+ layout->AddView(open_as_window_checkbox_);
+ }
title_tf_->SelectAll(true);
chrome::RecordDialogCreation(
@@ -145,12 +139,13 @@ bool BookmarkAppConfirmationView::ShouldShowCloseButton() const {
void BookmarkAppConfirmationView::WindowClosing() {
if (!callback_.is_null())
- callback_.Run(false, web_app_info_);
+ std::move(callback_).Run(false, web_app_info_);
}
bool BookmarkAppConfirmationView::Accept() {
web_app_info_.title = GetTrimmedTitle();
- web_app_info_.open_as_window = open_as_window_checkbox_->checked();
+ web_app_info_.open_as_window =
+ open_as_window_checkbox_ && open_as_window_checkbox_->checked();
base::ResetAndReturn(&callback_).Run(true, web_app_info_);
return true;
}
@@ -184,3 +179,16 @@ base::string16 BookmarkAppConfirmationView::GetTrimmedTitle() const {
base::TrimWhitespace(title, base::TRIM_ALL, &title);
return title;
}
+
+namespace chrome {
+
+void ShowBookmarkAppDialog(gfx::NativeWindow parent,
+ const WebApplicationInfo& web_app_info,
+ ShowBookmarkAppDialogCallback callback) {
+ constrained_window::CreateBrowserModalDialogViews(
+ new BookmarkAppConfirmationView(web_app_info, std::move(callback)),
+ parent)
+ ->Show();
+}
+
+} // namespace chrome
« no previous file with comments | « chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.h ('k') | chrome/browser/ui/views/frame/browser_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698