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