Commit 275ec5bb authored by Julian Watson's avatar Julian Watson Committed by Commit Bot

plugin_vm: remove not allowed state from launcher view

Bug: 1017511
Change-Id: Ibe74895517bc1d14792b18d2e12b62958fde541d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1905029
Commit-Queue: Julian Watson <juwa@google.com>
Auto-Submit: Julian Watson <juwa@google.com>
Reviewed-by: default avatarTimothy Loh <timloh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#714809}
parent 94280b87
......@@ -184,9 +184,13 @@ int PluginVmLauncherView::GetDialogButtons() const {
case State::FINISHED:
return ui::DIALOG_BUTTON_OK;
case State::ERROR:
return ui::DIALOG_BUTTON_CANCEL | ui::DIALOG_BUTTON_OK;
case State::NOT_ALLOWED:
return ui::DIALOG_BUTTON_CANCEL;
DCHECK(reason_);
switch (*reason_) {
case plugin_vm::PluginVmImageManager::FailureReason::NOT_ALLOWED:
return ui::DIALOG_BUTTON_CANCEL;
default:
return ui::DIALOG_BUTTON_CANCEL | ui::DIALOG_BUTTON_OK;
}
}
}
......@@ -204,13 +208,17 @@ base::string16 PluginVmLauncherView::GetDialogButtonLabel(
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_LAUNCH_BUTTON);
}
case State::ERROR: {
return l10n_util::GetStringUTF16(button == ui::DIALOG_BUTTON_OK
? IDS_PLUGIN_VM_LAUNCHER_RETRY_BUTTON
: IDS_APP_CANCEL);
}
case State::NOT_ALLOWED: {
DCHECK_EQ(button, ui::DIALOG_BUTTON_CANCEL);
return l10n_util::GetStringUTF16(IDS_APP_CANCEL);
DCHECK(reason_);
switch (*reason_) {
case plugin_vm::PluginVmImageManager::FailureReason::NOT_ALLOWED:
DCHECK_EQ(button, ui::DIALOG_BUTTON_CANCEL);
return l10n_util::GetStringUTF16(IDS_APP_CANCEL);
default:
return l10n_util::GetStringUTF16(
button == ui::DIALOG_BUTTON_OK
? IDS_PLUGIN_VM_LAUNCHER_RETRY_BUTTON
: IDS_APP_CANCEL);
}
}
}
}
......@@ -290,6 +298,7 @@ void PluginVmLauncherView::OnDownloadFailed(
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
state_ = State::ERROR;
reason_ = reason;
OnStateUpdated();
plugin_vm::RecordPluginVmSetupResultHistogram(
......@@ -314,6 +323,7 @@ void PluginVmLauncherView::OnImportFailed(
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
state_ = State::ERROR;
reason_ = reason;
OnStateUpdated();
plugin_vm::RecordPluginVmSetupResultHistogram(
......@@ -343,10 +353,14 @@ base::string16 PluginVmLauncherView::GetBigMessage() const {
case State::FINISHED:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_FINISHED_TITLE);
case State::ERROR:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_TITLE);
case State::NOT_ALLOWED:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_NOT_ALLOWED_TITLE);
DCHECK(reason_);
switch (*reason_) {
case plugin_vm::PluginVmImageManager::FailureReason::NOT_ALLOWED:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_NOT_ALLOWED_TITLE);
default:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_TITLE);
}
}
}
......@@ -364,10 +378,15 @@ base::string16 PluginVmLauncherView::GetMessage() const {
case State::FINISHED:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_FINISHED_MESSAGE);
case State::ERROR:
return l10n_util::GetStringUTF16(IDS_PLUGIN_VM_LAUNCHER_ERROR_MESSAGE);
case State::NOT_ALLOWED:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_NOT_ALLOWED_MESSAGE);
DCHECK(reason_);
switch (*reason_) {
case plugin_vm::PluginVmImageManager::FailureReason::NOT_ALLOWED:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_NOT_ALLOWED_MESSAGE);
default:
return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_LAUNCHER_ERROR_MESSAGE);
}
}
}
......@@ -386,7 +405,8 @@ void PluginVmLauncherView::AddedToWidget() {
// dialogue is reached somehow although PluginVm has been disabled.
if (!plugin_vm::IsPluginVmAllowedForProfile(profile_)) {
LOG(ERROR) << "PluginVm is disallowed by policy. Showing error screen.";
state_ = State::NOT_ALLOWED;
state_ = State::ERROR;
reason_ = plugin_vm::PluginVmImageManager::FailureReason::NOT_ALLOWED;
plugin_vm::RecordPluginVmSetupResultHistogram(
plugin_vm::PluginVmSetupResult::kPluginVmIsNotAllowed);
}
......@@ -421,8 +441,7 @@ void PluginVmLauncherView::OnStateUpdated() {
DialogModelChanged();
GetWidget()->GetRootView()->Layout();
if (state_ == State::FINISHED || state_ == State::ERROR ||
state_ == State::NOT_ALLOWED) {
if (state_ == State::FINISHED || state_ == State::ERROR) {
if (finished_callback_for_testing_)
std::move(finished_callback_for_testing_).Run(state_ == State::FINISHED);
}
......@@ -491,7 +510,7 @@ void PluginVmLauncherView::SetMessageLabel() {
}
void PluginVmLauncherView::SetBigImage() {
if (state_ == State::ERROR || state_ == State::NOT_ALLOWED) {
if (state_ == State::ERROR) {
big_image_->SetImage(
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_PLUGIN_VM_LAUNCHER_ERROR));
......
......@@ -67,7 +67,6 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView,
IMPORTING, // Downloaded PluginVm image importing is in progress.
FINISHED, // PluginVm environment setting has been finished.
ERROR, // Something unexpected happened.
NOT_ALLOWED, // PluginVm is disallowed on the device.
};
~PluginVmLauncherView() override;
......@@ -99,6 +98,7 @@ class PluginVmLauncherView : public views::BubbleDialogDelegateView,
base::TimeTicks setup_start_tick_;
State state_ = State::START_DOWNLOADING;
base::Optional<plugin_vm::PluginVmImageManager::FailureReason> reason_;
base::OnceCallback<void(bool success)> finished_callback_for_testing_;
......
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