| 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
|
|
|