15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/local_data_container.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/bind.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/linked_ptr.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/browsing_data/browsing_data_channel_id_helper.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/browsing_data_flash_lso_helper.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/cookies_tree_model.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/cookie_settings.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/cookies/canonical_cookie.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)///////////////////////////////////////////////////////////////////////////////
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// LocalDataContainer, public:
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LocalDataContainer::LocalDataContainer(
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataCookieHelper* cookie_helper,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataDatabaseHelper* database_helper,
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataLocalStorageHelper* local_storage_helper,
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataLocalStorageHelper* session_storage_helper,
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataAppCacheHelper* appcache_helper,
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataIndexedDBHelper* indexed_db_helper,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataFileSystemHelper* file_system_helper,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataQuotaHelper* quota_helper,
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    BrowsingDataChannelIDHelper* channel_id_helper,
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    BrowsingDataServiceWorkerHelper* service_worker_helper,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowsingDataFlashLSOHelper* flash_lso_helper)
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    : appcache_helper_(appcache_helper),
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      cookie_helper_(cookie_helper),
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      database_helper_(database_helper),
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      local_storage_helper_(local_storage_helper),
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      session_storage_helper_(session_storage_helper),
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      indexed_db_helper_(indexed_db_helper),
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      file_system_helper_(file_system_helper),
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      quota_helper_(quota_helper),
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      channel_id_helper_(channel_id_helper),
396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      service_worker_helper_(service_worker_helper),
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      flash_lso_helper_(flash_lso_helper),
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      model_(NULL),
426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      weak_ptr_factory_(this) {
436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LocalDataContainer::~LocalDataContainer() {}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::Init(CookiesTreeModel* model) {
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!model_);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_ = model;
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  DCHECK(cookie_helper_.get());
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cookie_helper_->StartFetching(
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base::Bind(&LocalDataContainer::OnCookiesModelInfoLoaded,
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 weak_ptr_factory_.GetWeakPtr()));
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (database_helper_.get()) {
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    database_helper_->StartFetching(
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnDatabaseModelInfoLoaded,
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (local_storage_helper_.get()) {
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    local_storage_helper_->StartFetching(
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnLocalStorageModelInfoLoaded,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (session_storage_helper_.get()) {
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    session_storage_helper_->StartFetching(
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnSessionStorageModelInfoLoaded,
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // TODO(michaeln): When all of the UI implementations have been updated, make
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // this a required parameter.
76868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (appcache_helper_.get()) {
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    appcache_helper_->StartFetching(
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnAppCacheModelInfoLoaded,
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (indexed_db_helper_.get()) {
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    indexed_db_helper_->StartFetching(
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnIndexedDBModelInfoLoaded,
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
88868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (file_system_helper_.get()) {
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    file_system_helper_->StartFetching(
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnFileSystemModelInfoLoaded,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
94868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (quota_helper_.get()) {
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    quota_helper_->StartFetching(
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnQuotaModelInfoLoaded,
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  if (channel_id_helper_.get()) {
1015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    channel_id_helper_->StartFetching(
1025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        base::Bind(&LocalDataContainer::OnChannelIDModelInfoLoaded,
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1066e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  if (service_worker_helper_.get()) {
1076e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    service_worker_helper_->StartFetching(
1086e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnServiceWorkerModelInfoLoaded,
1096e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
1106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
1116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
112868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (flash_lso_helper_.get()) {
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    flash_lso_helper_->StartFetching(
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        base::Bind(&LocalDataContainer::OnFlashLSOInfoLoaded,
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   weak_ptr_factory_.GetWeakPtr()));
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnAppCacheModelInfoLoaded() {
120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  using content::AppCacheInfo;
121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  using content::AppCacheInfoCollection;
122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  using content::AppCacheInfoVector;
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  typedef std::map<GURL, AppCacheInfoVector> InfoByOrigin;
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_refptr<AppCacheInfoCollection> appcache_info =
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      appcache_helper_->info_collection();
127868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  if (!appcache_info.get() || appcache_info->infos_by_origin.empty())
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return;
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (InfoByOrigin::const_iterator origin =
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)           appcache_info->infos_by_origin.begin();
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       origin != appcache_info->infos_by_origin.end(); ++origin) {
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    std::list<AppCacheInfo>& info_list = appcache_info_[origin->first];
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    info_list.insert(
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        info_list.begin(), origin->second.begin(), origin->second.end());
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateAppCacheInfo(this);
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnCookiesModelInfoLoaded(
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const net::CookieList& cookie_list) {
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cookie_list_.insert(cookie_list_.begin(),
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      cookie_list.begin(),
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      cookie_list.end());
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateCookieInfo(this);
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnDatabaseModelInfoLoaded(
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const DatabaseInfoList& database_info) {
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  database_info_list_ = database_info;
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateDatabaseInfo(this);
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnLocalStorageModelInfoLoaded(
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const LocalStorageInfoList& local_storage_info) {
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  local_storage_info_list_ = local_storage_info;
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateLocalStorageInfo(this);
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnSessionStorageModelInfoLoaded(
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const LocalStorageInfoList& session_storage_info) {
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  session_storage_info_list_ = session_storage_info;
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateSessionStorageInfo(this);
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnIndexedDBModelInfoLoaded(
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const IndexedDBInfoList& indexed_db_info) {
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  indexed_db_info_list_ = indexed_db_info;
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateIndexedDBInfo(this);
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnFileSystemModelInfoLoaded(
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const FileSystemInfoList& file_system_info) {
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  file_system_info_list_ = file_system_info;
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateFileSystemInfo(this);
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnQuotaModelInfoLoaded(
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const QuotaInfoList& quota_info) {
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  quota_info_list_ = quota_info;
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateQuotaInfo(this);
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void LocalDataContainer::OnChannelIDModelInfoLoaded(
1935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    const ChannelIDList& channel_id_list) {
1945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  channel_id_list_ = channel_id_list;
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
1965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  model_->PopulateChannelIDInfo(this);
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1996e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void LocalDataContainer::OnServiceWorkerModelInfoLoaded(
2006e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    const ServiceWorkerUsageInfoList& service_worker_info) {
2016e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  service_worker_info_list_ = service_worker_info;
2026e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  DCHECK(model_);
2036e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  model_->PopulateServiceWorkerUsageInfo(this);
2046e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
2056e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalDataContainer::OnFlashLSOInfoLoaded(
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const FlashLSODomainList& domains) {
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  flash_lso_domain_list_ = domains;
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(model_);
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model_->PopulateFlashLSOInfo(this);
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
212