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

Side by Side Diff: chrome/browser/chromeos/app_mode/kiosk_external_updater.cc

Issue 540673003: Add more browser tests for Kiosk update from usb stick. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove TestObsesrver. Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/app_mode/kiosk_external_updater.h" 5 #include "chrome/browser/chromeos/app_mode/kiosk_external_updater.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/files/file_enumerator.h" 9 #include "base/files/file_enumerator.h"
10 #include "base/json/json_file_value_serializer.h" 10 #include "base/json/json_file_value_serializer.h"
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 void KioskExternalUpdater::ProcessParsedManifest( 235 void KioskExternalUpdater::ProcessParsedManifest(
236 ExternalUpdateErrorCode* parsing_error, 236 ExternalUpdateErrorCode* parsing_error,
237 const base::FilePath& external_update_dir, 237 const base::FilePath& external_update_dir,
238 base::DictionaryValue* parsed_manifest) { 238 base::DictionaryValue* parsed_manifest) {
239 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 239 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
240 240
241 if (*parsing_error == ERROR_NO_MANIFEST) { 241 if (*parsing_error == ERROR_NO_MANIFEST) {
242 NotifyKioskUpdateProgress( 242 NotifyKioskUpdateProgress(
243 ui::ResourceBundle::GetSharedInstance().GetLocalizedString( 243 ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
244 IDS_KIOSK_EXTERNAL_UPDATE_NO_MANIFEST)); 244 IDS_KIOSK_EXTERNAL_UPDATE_NO_MANIFEST));
245 KioskAppManager::Get()->OnKioskAppExternalUpdateComplete(false);
245 return; 246 return;
246 } else if (*parsing_error == ERROR_INVALID_MANIFEST) { 247 } else if (*parsing_error == ERROR_INVALID_MANIFEST) {
247 NotifyKioskUpdateProgress( 248 NotifyKioskUpdateProgress(
248 ui::ResourceBundle::GetSharedInstance().GetLocalizedString( 249 ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
249 IDS_KIOSK_EXTERNAL_UPDATE_INVALID_MANIFEST)); 250 IDS_KIOSK_EXTERNAL_UPDATE_INVALID_MANIFEST));
251 KioskAppManager::Get()->OnKioskAppExternalUpdateComplete(false);
250 return; 252 return;
251 } 253 }
252 254
253 external_update_path_ = external_update_dir; 255 external_update_path_ = external_update_dir;
254 for (base::DictionaryValue::Iterator it(*parsed_manifest); !it.IsAtEnd(); 256 for (base::DictionaryValue::Iterator it(*parsed_manifest); !it.IsAtEnd();
255 it.Advance()) { 257 it.Advance()) {
256 std::string app_id = it.key(); 258 std::string app_id = it.key();
257 std::string cached_version_str; 259 std::string cached_version_str;
258 base::FilePath cached_crx; 260 base::FilePath cached_crx;
259 if (!KioskAppManager::Get()->GetCachedCrx( 261 if (!KioskAppManager::Get()->GetCachedCrx(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 } 296 }
295 update.external_crx = external_update_path_.AppendASCII(external_crx_str); 297 update.external_crx = external_update_path_.AppendASCII(external_crx_str);
296 update.update_status = PENDING; 298 update.update_status = PENDING;
297 external_updates_[app_id] = update; 299 external_updates_[app_id] = update;
298 } 300 }
299 301
300 if (external_updates_.empty()) { 302 if (external_updates_.empty()) {
301 NotifyKioskUpdateProgress( 303 NotifyKioskUpdateProgress(
302 ui::ResourceBundle::GetSharedInstance().GetLocalizedString( 304 ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
303 IDS_KIOSK_EXTERNAL_UPDATE_NO_UPDATES)); 305 IDS_KIOSK_EXTERNAL_UPDATE_NO_UPDATES));
306 KioskAppManager::Get()->OnKioskAppExternalUpdateComplete(false);
304 return; 307 return;
305 } 308 }
306 309
307 ValidateExternalUpdates(); 310 ValidateExternalUpdates();
308 } 311 }
309 312
310 bool KioskExternalUpdater::CheckExternalUpdateInterrupted() { 313 bool KioskExternalUpdater::CheckExternalUpdateInterrupted() {
311 if (external_updates_.empty()) { 314 if (external_updates_.empty()) {
312 // This could happen if user pulls out the usb stick before the updating 315 // This could happen if user pulls out the usb stick before the updating
313 // operation is completed. 316 // operation is completed.
(...skipping 26 matching lines...) Expand all
340 for (ExternalUpdateMap::iterator it = external_updates_.begin(); 343 for (ExternalUpdateMap::iterator it = external_updates_.begin();
341 it != external_updates_.end(); 344 it != external_updates_.end();
342 ++it) { 345 ++it) {
343 if (it->second.update_status == PENDING) { 346 if (it->second.update_status == PENDING) {
344 return true; 347 return true;
345 } 348 }
346 } 349 }
347 return false; 350 return false;
348 } 351 }
349 352
353 bool KioskExternalUpdater::IsAllExternalUpdatesSucceeded() {
354 for (ExternalUpdateMap::iterator it = external_updates_.begin();
355 it != external_updates_.end();
356 ++it) {
357 if (it->second.update_status != SUCCESS) {
358 return false;
359 }
360 }
361 return true;
362 }
363
350 bool KioskExternalUpdater::ShouldDoExternalUpdate( 364 bool KioskExternalUpdater::ShouldDoExternalUpdate(
351 const std::string& app_id, 365 const std::string& app_id,
352 const std::string& version, 366 const std::string& version,
353 const std::string& min_browser_version) { 367 const std::string& min_browser_version) {
354 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 368 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
355 369
356 std::string existing_version_str; 370 std::string existing_version_str;
357 base::FilePath existing_path; 371 base::FilePath existing_path;
358 bool cached = KioskAppManager::Get()->GetCachedCrx( 372 bool cached = KioskAppManager::Get()->GetCachedCrx(
359 app_id, &existing_path, &existing_version_str); 373 app_id, &existing_path, &existing_version_str);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 else 447 else
434 MayBeNotifyKioskAppUpdate(); 448 MayBeNotifyKioskAppUpdate();
435 } 449 }
436 450
437 void KioskExternalUpdater::MayBeNotifyKioskAppUpdate() { 451 void KioskExternalUpdater::MayBeNotifyKioskAppUpdate() {
438 if (IsExternalUpdatePending()) 452 if (IsExternalUpdatePending())
439 return; 453 return;
440 454
441 NotifyKioskUpdateProgress(GetUpdateReportMessage()); 455 NotifyKioskUpdateProgress(GetUpdateReportMessage());
442 NotifyKioskAppUpdateAvailable(); 456 NotifyKioskAppUpdateAvailable();
457 KioskAppManager::Get()->OnKioskAppExternalUpdateComplete(
458 IsAllExternalUpdatesSucceeded());
443 } 459 }
444 460
445 void KioskExternalUpdater::NotifyKioskAppUpdateAvailable() { 461 void KioskExternalUpdater::NotifyKioskAppUpdateAvailable() {
446 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 462 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
447 for (ExternalUpdateMap::iterator it = external_updates_.begin(); 463 for (ExternalUpdateMap::iterator it = external_updates_.begin();
448 it != external_updates_.end(); 464 it != external_updates_.end();
449 ++it) { 465 ++it) {
450 if (it->second.update_status == SUCCESS) { 466 if (it->second.update_status == SUCCESS) {
451 KioskAppManager::Get()->OnKioskAppCacheUpdated(it->first); 467 KioskAppManager::Get()->OnKioskAppCacheUpdated(it->first);
452 } 468 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 if (failed) { 524 if (failed) {
509 failed_app_msg = ui::ResourceBundle::GetSharedInstance().GetLocalizedString( 525 failed_app_msg = ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
510 IDS_KIOSK_EXTERNAL_UPDATE_FAILED_UPDATED_APPS) + 526 IDS_KIOSK_EXTERNAL_UPDATE_FAILED_UPDATED_APPS) +
511 base::ASCIIToUTF16("\n") + failed_apps; 527 base::ASCIIToUTF16("\n") + failed_apps;
512 message = message + base::ASCIIToUTF16("\n") + failed_app_msg; 528 message = message + base::ASCIIToUTF16("\n") + failed_app_msg;
513 } 529 }
514 return message; 530 return message;
515 } 531 }
516 532
517 } // namespace chromeos 533 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/app_mode/kiosk_external_updater.h ('k') | chrome/browser/chromeos/login/kiosk_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698