OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_app_data.h" | 5 #include "chrome/browser/chromeos/app_mode/kiosk_app_data.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 }; | 252 }; |
253 | 253 |
254 //////////////////////////////////////////////////////////////////////////////// | 254 //////////////////////////////////////////////////////////////////////////////// |
255 // KioskAppData | 255 // KioskAppData |
256 | 256 |
257 KioskAppData::KioskAppData(KioskAppDataDelegate* delegate, | 257 KioskAppData::KioskAppData(KioskAppDataDelegate* delegate, |
258 const std::string& app_id, | 258 const std::string& app_id, |
259 const std::string& user_id) | 259 const std::string& user_id) |
260 : delegate_(delegate), | 260 : delegate_(delegate), |
261 status_(STATUS_INIT), | 261 status_(STATUS_INIT), |
| 262 crx_cache_status_(STATUS_INIT), |
262 app_id_(app_id), | 263 app_id_(app_id), |
263 user_id_(user_id) { | 264 user_id_(user_id) { |
264 } | 265 } |
265 | 266 |
266 KioskAppData::~KioskAppData() {} | 267 KioskAppData::~KioskAppData() {} |
267 | 268 |
268 void KioskAppData::Load() { | 269 void KioskAppData::Load() { |
269 SetStatus(STATUS_LOADING); | 270 SetStatus(STATUS_LOADING); |
270 | 271 |
271 if (LoadFromCache()) | 272 if (LoadFromCache()) |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 app, kIconSize, ExtensionIconSet::MATCH_BIGGER); | 310 app, kIconSize, ExtensionIconSet::MATCH_BIGGER); |
310 extensions::ImageLoader::Get(profile)->LoadImageAsync( | 311 extensions::ImageLoader::Get(profile)->LoadImageAsync( |
311 app, image, gfx::Size(kIconSize, kIconSize), | 312 app, image, gfx::Size(kIconSize, kIconSize), |
312 base::Bind(&KioskAppData::OnExtensionIconLoaded, AsWeakPtr())); | 313 base::Bind(&KioskAppData::OnExtensionIconLoaded, AsWeakPtr())); |
313 } | 314 } |
314 | 315 |
315 bool KioskAppData::IsLoading() const { | 316 bool KioskAppData::IsLoading() const { |
316 return status_ == STATUS_LOADING; | 317 return status_ == STATUS_LOADING; |
317 } | 318 } |
318 | 319 |
| 320 bool KioskAppData::IsCrxCacheLoading() const { |
| 321 return crx_cache_status_ == STATUS_LOADING; |
| 322 } |
| 323 |
319 void KioskAppData::SetStatus(Status status) { | 324 void KioskAppData::SetStatus(Status status) { |
320 if (status_ == status) | 325 if (status_ == status) |
321 return; | 326 return; |
322 | 327 |
323 status_ = status; | 328 status_ = status; |
324 | 329 |
325 if (!delegate_) | 330 if (!delegate_) |
326 return; | 331 return; |
327 | 332 |
328 switch (status_) { | 333 switch (status_) { |
329 case STATUS_INIT: | 334 case STATUS_INIT: |
330 break; | 335 break; |
331 case STATUS_LOADING: | 336 case STATUS_LOADING: |
332 case STATUS_LOADED: | 337 case STATUS_LOADED: |
333 delegate_->OnKioskAppDataChanged(app_id_); | 338 delegate_->OnKioskAppDataChanged(app_id_); |
334 break; | 339 break; |
335 case STATUS_ERROR: | 340 case STATUS_ERROR: |
336 delegate_->OnKioskAppDataLoadFailure(app_id_); | 341 delegate_->OnKioskAppDataLoadFailure(app_id_); |
337 break; | 342 break; |
338 }; | 343 }; |
339 } | 344 } |
340 | 345 |
| 346 void KioskAppData::SetCrxCacheStatus(Status crx_cache_status) { |
| 347 if (crx_cache_status_ == crx_cache_status) |
| 348 return; |
| 349 |
| 350 Status old_cache_status = crx_cache_status_; |
| 351 crx_cache_status_ = crx_cache_status; |
| 352 |
| 353 if (!delegate_) |
| 354 return; |
| 355 |
| 356 switch (crx_cache_status_) { |
| 357 case STATUS_INIT: |
| 358 break; |
| 359 case STATUS_LOADING: |
| 360 delegate_->OnKioskAppDataChanged(app_id_); |
| 361 break; |
| 362 case STATUS_LOADED: |
| 363 if (old_cache_status == STATUS_LOADING) |
| 364 delegate_->OnKioskAppDataChanged(app_id_); |
| 365 break; |
| 366 case STATUS_ERROR: |
| 367 if (old_cache_status == STATUS_LOADING) |
| 368 delegate_->OnKioskAppDataLoadFailure(app_id_); |
| 369 break; |
| 370 } |
| 371 } |
| 372 |
341 net::URLRequestContextGetter* KioskAppData::GetRequestContextGetter() { | 373 net::URLRequestContextGetter* KioskAppData::GetRequestContextGetter() { |
342 return g_browser_process->system_request_context(); | 374 return g_browser_process->system_request_context(); |
343 } | 375 } |
344 | 376 |
345 bool KioskAppData::LoadFromCache() { | 377 bool KioskAppData::LoadFromCache() { |
346 std::string app_key = std::string(KioskAppManager::kKeyApps) + '.' + app_id_; | 378 std::string app_key = std::string(KioskAppManager::kKeyApps) + '.' + app_id_; |
347 std::string name_key = app_key + '.' + kKeyName; | 379 std::string name_key = app_key + '.' + kKeyName; |
348 std::string icon_path_key = app_key + '.' + kKeyIcon; | 380 std::string icon_path_key = app_key + '.' + kKeyIcon; |
349 | 381 |
350 PrefService* local_state = g_browser_process->local_state(); | 382 PrefService* local_state = g_browser_process->local_state(); |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 if (!response->GetString(key, value)) { | 526 if (!response->GetString(key, value)) { |
495 LOG(ERROR) << "Webstore response error (" << key | 527 LOG(ERROR) << "Webstore response error (" << key |
496 << "): " << ValueToString(response); | 528 << "): " << ValueToString(response); |
497 OnWebstoreResponseParseFailure(kInvalidWebstoreResponseError); | 529 OnWebstoreResponseParseFailure(kInvalidWebstoreResponseError); |
498 return false; | 530 return false; |
499 } | 531 } |
500 return true; | 532 return true; |
501 } | 533 } |
502 | 534 |
503 } // namespace chromeos | 535 } // namespace chromeos |
OLD | NEW |