Commit 09071620 authored by Timothy Loh's avatar Timothy Loh Committed by Commit Bot

Minor clean-ups to Plugin VM installer

- Remove the START_DOWNLOADING state in the UI code.
- Rename START_DOWNLOADING_DLC to STARTING and fix the initial state to
be that. While we logically start installation immediately upon opening
the dialog, we actually wait for AddedToWidget() to be called first, so
retaining this state allows us to avoid confusion of being in an active
state without having started the installation.
- Remove the OnDlcDownloadStarted and OnDownloadStarted callbacks, the
installer UI doesn't need these.
- Add TODO suggesting further improvements regarding cancellation.

Change-Id: I83575155047665139f0c1aa2af6b958b52df0b93
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1994846
Commit-Queue: Timothy Loh <timloh@chromium.org>
Reviewed-by: default avatarJulian Watson <juwa@google.com>
Cr-Commit-Position: refs/heads/master@{#730075}
parent 356e3dc2
...@@ -100,9 +100,6 @@ void PluginVmInstaller::StartDlcDownload() { ...@@ -100,9 +100,6 @@ void PluginVmInstaller::StartDlcDownload() {
weak_ptr_factory_.GetWeakPtr()), weak_ptr_factory_.GetWeakPtr()),
base::BindRepeating(&PluginVmInstaller::OnDlcDownloadProgressUpdated, base::BindRepeating(&PluginVmInstaller::OnDlcDownloadProgressUpdated,
weak_ptr_factory_.GetWeakPtr())); weak_ptr_factory_.GetWeakPtr()));
if (observer_)
observer_->OnDlcDownloadStarted();
} }
void PluginVmInstaller::CancelDlcDownload() { void PluginVmInstaller::CancelDlcDownload() {
...@@ -184,8 +181,6 @@ void PluginVmInstaller::OnDlcDownloadCompleted( ...@@ -184,8 +181,6 @@ void PluginVmInstaller::OnDlcDownloadCompleted(
void PluginVmInstaller::OnDownloadStarted() { void PluginVmInstaller::OnDownloadStarted() {
download_start_tick_ = base::TimeTicks::Now(); download_start_tick_ = base::TimeTicks::Now();
if (observer_)
observer_->OnDownloadStarted();
} }
void PluginVmInstaller::OnDownloadProgressUpdated(uint64_t bytes_downloaded, void PluginVmInstaller::OnDownloadProgressUpdated(uint64_t bytes_downloaded,
......
...@@ -66,12 +66,10 @@ class PluginVmInstaller : public KeyedService, ...@@ -66,12 +66,10 @@ class PluginVmInstaller : public KeyedService,
class Observer { class Observer {
public: public:
virtual ~Observer() = default; virtual ~Observer() = default;
virtual void OnDlcDownloadStarted() = 0;
virtual void OnDlcDownloadProgressUpdated(double progress, virtual void OnDlcDownloadProgressUpdated(double progress,
base::TimeDelta elapsed_time) = 0; base::TimeDelta elapsed_time) = 0;
virtual void OnDlcDownloadCompleted() = 0; virtual void OnDlcDownloadCompleted() = 0;
virtual void OnDlcDownloadCancelled() = 0; virtual void OnDlcDownloadCancelled() = 0;
virtual void OnDownloadStarted() = 0;
virtual void OnDownloadProgressUpdated(uint64_t bytes_downloaded, virtual void OnDownloadProgressUpdated(uint64_t bytes_downloaded,
int64_t content_length, int64_t content_length,
base::TimeDelta elapsed_time) = 0; base::TimeDelta elapsed_time) = 0;
......
...@@ -70,14 +70,12 @@ const int kDownloadedPluginVmImageSizeInMb = 123456789u / (1024 * 1024); ...@@ -70,14 +70,12 @@ const int kDownloadedPluginVmImageSizeInMb = 123456789u / (1024 * 1024);
class MockObserver : public PluginVmInstaller::Observer { class MockObserver : public PluginVmInstaller::Observer {
public: public:
MOCK_METHOD0(OnDlcDownloadStarted, void());
MOCK_METHOD2(OnDlcDownloadProgressUpdated, MOCK_METHOD2(OnDlcDownloadProgressUpdated,
void(double progress, base::TimeDelta elapsed_time)); void(double progress, base::TimeDelta elapsed_time));
MOCK_METHOD0(OnDlcDownloadCompleted, void()); MOCK_METHOD0(OnDlcDownloadCompleted, void());
MOCK_METHOD0(OnDlcDownloadCancelled, void()); MOCK_METHOD0(OnDlcDownloadCancelled, void());
MOCK_METHOD1(OnDlcDownloadFailed, MOCK_METHOD1(OnDlcDownloadFailed,
void(plugin_vm::PluginVmInstaller::FailureReason)); void(plugin_vm::PluginVmInstaller::FailureReason));
MOCK_METHOD0(OnDownloadStarted, void());
MOCK_METHOD3(OnDownloadProgressUpdated, MOCK_METHOD3(OnDownloadProgressUpdated,
void(uint64_t bytes_downloaded, void(uint64_t bytes_downloaded,
int64_t content_length, int64_t content_length,
...@@ -377,7 +375,6 @@ class PluginVmInstallerDriveTest : public PluginVmInstallerTestBase { ...@@ -377,7 +375,6 @@ class PluginVmInstallerDriveTest : public PluginVmInstallerTestBase {
TEST_F(PluginVmInstallerDownloadServiceTest, DownloadPluginVmImageParamsTest) { TEST_F(PluginVmInstallerDownloadServiceTest, DownloadPluginVmImageParamsTest) {
SetupConciergeForSuccessfulDiskImageImport(fake_concierge_client_); SetupConciergeForSuccessfulDiskImageImport(fake_concierge_client_);
EXPECT_CALL(*observer_, OnDlcDownloadStarted());
EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted());
EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)); EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _));
...@@ -400,7 +397,6 @@ TEST_F(PluginVmInstallerDownloadServiceTest, DownloadPluginVmImageParamsTest) { ...@@ -400,7 +397,6 @@ TEST_F(PluginVmInstallerDownloadServiceTest, DownloadPluginVmImageParamsTest) {
TEST_F(PluginVmInstallerDownloadServiceTest, OnlyOneImageIsProcessedTest) { TEST_F(PluginVmInstallerDownloadServiceTest, OnlyOneImageIsProcessedTest) {
SetupConciergeForSuccessfulDiskImageImport(fake_concierge_client_); SetupConciergeForSuccessfulDiskImageImport(fake_concierge_client_);
EXPECT_CALL(*observer_, OnDlcDownloadStarted());
EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted());
EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)); EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _));
...@@ -449,7 +445,6 @@ TEST_F(PluginVmInstallerDownloadServiceTest, ...@@ -449,7 +445,6 @@ TEST_F(PluginVmInstallerDownloadServiceTest,
EXPECT_CALL(*observer_, EXPECT_CALL(*observer_,
OnDownloadFailed( OnDownloadFailed(
PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_ABORTED)); PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_ABORTED));
EXPECT_CALL(*observer_, OnDlcDownloadStarted()).Times(2);
EXPECT_CALL(*observer_, OnDlcDownloadCompleted()).Times(2); EXPECT_CALL(*observer_, OnDlcDownloadCompleted()).Times(2);
EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted());
EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)); EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _));
...@@ -517,7 +512,6 @@ TEST_F(PluginVmInstallerDownloadServiceTest, EmptyPluginVmImageUrlTest) { ...@@ -517,7 +512,6 @@ TEST_F(PluginVmInstallerDownloadServiceTest, EmptyPluginVmImageUrlTest) {
EXPECT_CALL( EXPECT_CALL(
*observer_, *observer_,
OnDownloadFailed(PluginVmInstaller::FailureReason::INVALID_IMAGE_URL)); OnDownloadFailed(PluginVmInstaller::FailureReason::INVALID_IMAGE_URL));
EXPECT_CALL(*observer_, OnDlcDownloadStarted());
EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
StartAndRunToCompletion(); StartAndRunToCompletion();
...@@ -544,7 +538,7 @@ TEST_F(PluginVmInstallerDownloadServiceTest, CannotStartIfPluginVmIsDisabled) { ...@@ -544,7 +538,7 @@ TEST_F(PluginVmInstallerDownloadServiceTest, CannotStartIfPluginVmIsDisabled) {
TEST_F(PluginVmInstallerDriveTest, InvalidDriveUrlTest) { TEST_F(PluginVmInstallerDriveTest, InvalidDriveUrlTest) {
SetPluginVmImagePref(kDriveUrl2, kHash); SetPluginVmImagePref(kDriveUrl2, kHash);
EXPECT_CALL(*observer_, OnDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL( EXPECT_CALL(
*observer_, *observer_,
OnDownloadFailed(PluginVmInstaller::FailureReason::INVALID_IMAGE_URL)); OnDownloadFailed(PluginVmInstaller::FailureReason::INVALID_IMAGE_URL));
...@@ -555,7 +549,7 @@ TEST_F(PluginVmInstallerDriveTest, NoConnectionDriveTest) { ...@@ -555,7 +549,7 @@ TEST_F(PluginVmInstallerDriveTest, NoConnectionDriveTest) {
SetPluginVmImagePref(kDriveUrl, kHash); SetPluginVmImagePref(kDriveUrl, kHash);
fake_drive_service_->set_offline(true); fake_drive_service_->set_offline(true);
EXPECT_CALL(*observer_, OnDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, EXPECT_CALL(*observer_,
OnDownloadFailed( OnDownloadFailed(
PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_NETWORK)); PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_NETWORK));
...@@ -565,7 +559,7 @@ TEST_F(PluginVmInstallerDriveTest, NoConnectionDriveTest) { ...@@ -565,7 +559,7 @@ TEST_F(PluginVmInstallerDriveTest, NoConnectionDriveTest) {
TEST_F(PluginVmInstallerDriveTest, WrongHashDriveTest) { TEST_F(PluginVmInstallerDriveTest, WrongHashDriveTest) {
SetPluginVmImagePref(kDriveUrl, kHash2); SetPluginVmImagePref(kDriveUrl, kHash2);
EXPECT_CALL(*observer_, OnDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, OnDownloadFailed( EXPECT_CALL(*observer_, OnDownloadFailed(
PluginVmInstaller::FailureReason::HASH_MISMATCH)); PluginVmInstaller::FailureReason::HASH_MISMATCH));
...@@ -576,7 +570,7 @@ TEST_F(PluginVmInstallerDriveTest, DriveDownloadFailedAfterStartingTest) { ...@@ -576,7 +570,7 @@ TEST_F(PluginVmInstallerDriveTest, DriveDownloadFailedAfterStartingTest) {
SetPluginVmImagePref(kDriveUrl, kHash); SetPluginVmImagePref(kDriveUrl, kHash);
SimpleFakeDriveService* fake_drive_service = SetUpSimpleFakeDriveService(); SimpleFakeDriveService* fake_drive_service = SetUpSimpleFakeDriveService();
EXPECT_CALL(*observer_, OnDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, OnDownloadProgressUpdated(5, 100, _)); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(5, 100, _));
EXPECT_CALL(*observer_, OnDownloadProgressUpdated(10, 100, _)); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(10, 100, _));
EXPECT_CALL(*observer_, EXPECT_CALL(*observer_,
...@@ -600,7 +594,7 @@ TEST_F(PluginVmInstallerDriveTest, CancelledDriveDownloadTest) { ...@@ -600,7 +594,7 @@ TEST_F(PluginVmInstallerDriveTest, CancelledDriveDownloadTest) {
SetPluginVmImagePref(kDriveUrl, kHash); SetPluginVmImagePref(kDriveUrl, kHash);
SimpleFakeDriveService* fake_drive_service = SetUpSimpleFakeDriveService(); SimpleFakeDriveService* fake_drive_service = SetUpSimpleFakeDriveService();
EXPECT_CALL(*observer_, OnDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, OnDownloadProgressUpdated(5, 100, _)); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(5, 100, _));
EXPECT_CALL(*observer_, OnDownloadCompleted()).Times(0); EXPECT_CALL(*observer_, OnDownloadCompleted()).Times(0);
...@@ -617,7 +611,7 @@ TEST_F(PluginVmInstallerDriveTest, CancelledDriveDownloadTest) { ...@@ -617,7 +611,7 @@ TEST_F(PluginVmInstallerDriveTest, CancelledDriveDownloadTest) {
TEST_F(PluginVmInstallerDriveTest, SuccessfulDriveDownloadTest) { TEST_F(PluginVmInstallerDriveTest, SuccessfulDriveDownloadTest) {
SetPluginVmImagePref(kDriveUrl, kHash); SetPluginVmImagePref(kDriveUrl, kHash);
EXPECT_CALL(*observer_, OnDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted());
EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted());
EXPECT_CALL(*observer_, EXPECT_CALL(*observer_,
OnDownloadProgressUpdated(_, std::strlen(kContent), _)) OnDownloadProgressUpdated(_, std::strlen(kContent), _))
......
...@@ -193,13 +193,12 @@ bool PluginVmInstallerView::Accept() { ...@@ -193,13 +193,12 @@ bool PluginVmInstallerView::Accept() {
bool PluginVmInstallerView::Cancel() { bool PluginVmInstallerView::Cancel() {
switch (state_) { switch (state_) {
case State::STARTING:
case State::DOWNLOADING_DLC: case State::DOWNLOADING_DLC:
case State::START_DLC_DOWNLOADING:
plugin_vm::RecordPluginVmSetupResultHistogram( plugin_vm::RecordPluginVmSetupResultHistogram(
plugin_vm::PluginVmSetupResult::kUserCancelledDownloadingPluginVmDlc); plugin_vm::PluginVmSetupResult::kUserCancelledDownloadingPluginVmDlc);
break; break;
case State::DOWNLOADING: case State::DOWNLOADING:
case State::START_DOWNLOADING:
plugin_vm::RecordPluginVmSetupResultHistogram( plugin_vm::RecordPluginVmSetupResultHistogram(
plugin_vm::PluginVmSetupResult:: plugin_vm::PluginVmSetupResult::
kUserCancelledDownloadingPluginVmImage); kUserCancelledDownloadingPluginVmImage);
...@@ -223,13 +222,6 @@ gfx::Size PluginVmInstallerView::CalculatePreferredSize() const { ...@@ -223,13 +222,6 @@ gfx::Size PluginVmInstallerView::CalculatePreferredSize() const {
return gfx::Size(kWindowWidth, kWindowHeight); return gfx::Size(kWindowWidth, kWindowHeight);
} }
void PluginVmInstallerView::OnDlcDownloadStarted() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
state_ = State::DOWNLOADING_DLC;
OnStateUpdated();
}
void PluginVmInstallerView::OnDlcDownloadProgressUpdated( void PluginVmInstallerView::OnDlcDownloadProgressUpdated(
double progress, double progress,
base::TimeDelta elapsed_time) { base::TimeDelta elapsed_time) {
...@@ -243,22 +235,19 @@ void PluginVmInstallerView::OnDlcDownloadCompleted() { ...@@ -243,22 +235,19 @@ void PluginVmInstallerView::OnDlcDownloadCompleted() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK_EQ(state_, State::DOWNLOADING_DLC); DCHECK_EQ(state_, State::DOWNLOADING_DLC);
state_ = State::START_DOWNLOADING; state_ = State::DOWNLOADING;
OnStateUpdated(); OnStateUpdated();
} }
// TODO(timloh): Cancelling the installation immediately closes the dialog, but
// getting back to a clean state could take several seconds. If a user then
// re-opens the dialog, it could cause it to fail unexpectedly. We should make
// use of these callback to avoid this (and possibly merge them into a single
// callback).
void PluginVmInstallerView::OnDlcDownloadCancelled() { void PluginVmInstallerView::OnDlcDownloadCancelled() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
} }
void PluginVmInstallerView::OnDownloadStarted() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK_EQ(state_, State::START_DOWNLOADING);
state_ = State::DOWNLOADING;
OnStateUpdated();
}
void PluginVmInstallerView::OnDownloadProgressUpdated( void PluginVmInstallerView::OnDownloadProgressUpdated(
uint64_t bytes_downloaded, uint64_t bytes_downloaded,
int64_t content_length, int64_t content_length,
...@@ -337,9 +326,8 @@ void PluginVmInstallerView::OnImported() { ...@@ -337,9 +326,8 @@ void PluginVmInstallerView::OnImported() {
base::string16 PluginVmInstallerView::GetBigMessage() const { base::string16 PluginVmInstallerView::GetBigMessage() const {
switch (state_) { switch (state_) {
case State::START_DLC_DOWNLOADING: case State::STARTING:
case State::DOWNLOADING_DLC: case State::DOWNLOADING_DLC:
case State::START_DOWNLOADING:
case State::DOWNLOADING: case State::DOWNLOADING:
case State::IMPORTING: case State::IMPORTING:
return l10n_util::GetStringUTF16( return l10n_util::GetStringUTF16(
...@@ -360,9 +348,8 @@ base::string16 PluginVmInstallerView::GetBigMessage() const { ...@@ -360,9 +348,8 @@ base::string16 PluginVmInstallerView::GetBigMessage() const {
base::string16 PluginVmInstallerView::GetMessage() const { base::string16 PluginVmInstallerView::GetMessage() const {
switch (state_) { switch (state_) {
case State::START_DLC_DOWNLOADING: case State::STARTING:
case State::DOWNLOADING_DLC: case State::DOWNLOADING_DLC:
case State::START_DOWNLOADING:
return l10n_util::GetStringUTF16( return l10n_util::GetStringUTF16(
IDS_PLUGIN_VM_INSTALLER_START_DOWNLOADING_MESSAGE); IDS_PLUGIN_VM_INSTALLER_START_DOWNLOADING_MESSAGE);
case State::DOWNLOADING: case State::DOWNLOADING:
...@@ -428,9 +415,8 @@ PluginVmInstallerView::~PluginVmInstallerView() { ...@@ -428,9 +415,8 @@ PluginVmInstallerView::~PluginVmInstallerView() {
int PluginVmInstallerView::GetCurrentDialogButtons() const { int PluginVmInstallerView::GetCurrentDialogButtons() const {
switch (state_) { switch (state_) {
case State::START_DLC_DOWNLOADING: case State::STARTING:
case State::DOWNLOADING_DLC: case State::DOWNLOADING_DLC:
case State::START_DOWNLOADING:
case State::DOWNLOADING: case State::DOWNLOADING:
case State::IMPORTING: case State::IMPORTING:
return ui::DIALOG_BUTTON_CANCEL; return ui::DIALOG_BUTTON_CANCEL;
...@@ -450,9 +436,8 @@ int PluginVmInstallerView::GetCurrentDialogButtons() const { ...@@ -450,9 +436,8 @@ int PluginVmInstallerView::GetCurrentDialogButtons() const {
base::string16 PluginVmInstallerView::GetCurrentDialogButtonLabel( base::string16 PluginVmInstallerView::GetCurrentDialogButtonLabel(
ui::DialogButton button) const { ui::DialogButton button) const {
switch (state_) { switch (state_) {
case State::START_DLC_DOWNLOADING: case State::STARTING:
case State::DOWNLOADING_DLC: case State::DOWNLOADING_DLC:
case State::START_DOWNLOADING:
case State::DOWNLOADING: case State::DOWNLOADING:
case State::IMPORTING: { case State::IMPORTING: {
DCHECK_EQ(button, ui::DIALOG_BUTTON_CANCEL); DCHECK_EQ(button, ui::DIALOG_BUTTON_CANCEL);
...@@ -489,7 +474,7 @@ void PluginVmInstallerView::AddedToWidget() { ...@@ -489,7 +474,7 @@ void PluginVmInstallerView::AddedToWidget() {
plugin_vm::PluginVmSetupResult::kPluginVmIsNotAllowed); plugin_vm::PluginVmSetupResult::kPluginVmIsNotAllowed);
} }
if (state_ == State::START_DOWNLOADING) if (state_ == State::STARTING)
StartInstallation(); StartInstallation();
else else
OnStateUpdated(); OnStateUpdated();
...@@ -514,8 +499,7 @@ void PluginVmInstallerView::OnStateUpdated() { ...@@ -514,8 +499,7 @@ void PluginVmInstallerView::OnStateUpdated() {
} }
const bool progress_bar_visible = const bool progress_bar_visible =
state_ == State::START_DLC_DOWNLOADING || state_ == State::STARTING || state_ == State::DOWNLOADING_DLC ||
state_ == State::DOWNLOADING_DLC || state_ == State::START_DOWNLOADING ||
state_ == State::DOWNLOADING || state_ == State::IMPORTING; state_ == State::DOWNLOADING || state_ == State::IMPORTING;
progress_bar_->SetVisible(progress_bar_visible); progress_bar_->SetVisible(progress_bar_visible);
// Values outside the range [0,1] display an infinite loading animation. // Values outside the range [0,1] display an infinite loading animation.
...@@ -624,7 +608,7 @@ void PluginVmInstallerView::StartInstallation() { ...@@ -624,7 +608,7 @@ void PluginVmInstallerView::StartInstallation() {
// retry button is clicked). // retry button is clicked).
setup_start_tick_ = base::TimeTicks::Now(); setup_start_tick_ = base::TimeTicks::Now();
state_ = State::START_DLC_DOWNLOADING; state_ = State::DOWNLOADING_DLC;
OnStateUpdated(); OnStateUpdated();
plugin_vm_installer_->SetObserver(this); plugin_vm_installer_->SetObserver(this);
......
...@@ -33,12 +33,10 @@ class PluginVmInstallerView : public views::BubbleDialogDelegateView, ...@@ -33,12 +33,10 @@ class PluginVmInstallerView : public views::BubbleDialogDelegateView,
gfx::Size CalculatePreferredSize() const override; gfx::Size CalculatePreferredSize() const override;
// plugin_vm::PluginVmImageDownload::Observer implementation. // plugin_vm::PluginVmImageDownload::Observer implementation.
void OnDlcDownloadStarted() override;
void OnDlcDownloadProgressUpdated(double progress, void OnDlcDownloadProgressUpdated(double progress,
base::TimeDelta elapsed_time) override; base::TimeDelta elapsed_time) override;
void OnDlcDownloadCompleted() override; void OnDlcDownloadCompleted() override;
void OnDlcDownloadCancelled() override; void OnDlcDownloadCancelled() override;
void OnDownloadStarted() override;
void OnDownloadProgressUpdated(uint64_t bytes_downloaded, void OnDownloadProgressUpdated(uint64_t bytes_downloaded,
int64_t content_length, int64_t content_length,
base::TimeDelta elapsed_time) override; base::TimeDelta elapsed_time) override;
...@@ -62,15 +60,12 @@ class PluginVmInstallerView : public views::BubbleDialogDelegateView, ...@@ -62,15 +60,12 @@ class PluginVmInstallerView : public views::BubbleDialogDelegateView,
private: private:
enum class State { enum class State {
// TODO(timloh): We should be able to simplify this by removing the STARTING, // View was just created, installation hasn't yet started
// START_DLC_DOWNLOADING and START_DOWNLOADING states. DOWNLOADING_DLC, // PluginVm DLC downloading and installing in progress.
START_DLC_DOWNLOADING, // PluginVm DLC downloading should be started. DOWNLOADING, // PluginVm image downloading is in progress.
DOWNLOADING_DLC, // PluginVm DLC downloading and installing in progress. IMPORTING, // Downloaded PluginVm image importing is in progress.
START_DOWNLOADING, // PluginVm image downloading should be started. FINISHED, // PluginVm environment setting has been finished.
DOWNLOADING, // PluginVm image downloading is in progress. ERROR, // Something unexpected happened.
IMPORTING, // Downloaded PluginVm image importing is in progress.
FINISHED, // PluginVm environment setting has been finished.
ERROR, // Something unexpected happened.
}; };
~PluginVmInstallerView() override; ~PluginVmInstallerView() override;
...@@ -104,7 +99,7 @@ class PluginVmInstallerView : public views::BubbleDialogDelegateView, ...@@ -104,7 +99,7 @@ class PluginVmInstallerView : public views::BubbleDialogDelegateView,
views::ImageView* big_image_ = nullptr; views::ImageView* big_image_ = nullptr;
base::TimeTicks setup_start_tick_; base::TimeTicks setup_start_tick_;
State state_ = State::START_DOWNLOADING; State state_ = State::STARTING;
base::Optional<plugin_vm::PluginVmInstaller::FailureReason> reason_; base::Optional<plugin_vm::PluginVmInstaller::FailureReason> reason_;
base::OnceCallback<void(bool success)> finished_callback_for_testing_; 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