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

Side by Side Diff: chrome/browser/extensions/extension_garbage_collector.cc

Issue 337323003: Remove the ability to retain local data of evicted ephemeral apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove an unused declaration Created 6 years, 6 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/extensions/extension_garbage_collector.h" 5 #include "chrome/browser/extensions/extension_garbage_collector.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/logging.h" 10 #include "base/logging.h"
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 iter != extensions->end(); 220 iter != extensions->end();
221 ++iter) { 221 ++iter) {
222 if (AppIsolationInfo::HasIsolatedStorage(iter->get())) { 222 if (AppIsolationInfo::HasIsolatedStorage(iter->get())) {
223 active_paths->insert( 223 active_paths->insert(
224 content::BrowserContext::GetStoragePartitionForSite( 224 content::BrowserContext::GetStoragePartitionForSite(
225 context_, util::GetSiteForExtensionId((*iter)->id(), context_)) 225 context_, util::GetSiteForExtensionId((*iter)->id(), context_))
226 ->GetPath()); 226 ->GetPath());
227 } 227 }
228 } 228 }
229 229
230 // The data of ephemeral apps can outlive their cache lifetime. Ensure
231 // they are not garbage collected.
232 scoped_ptr<ExtensionPrefs::ExtensionsInfo> evicted_apps_info(
233 extension_prefs->GetEvictedEphemeralAppsInfo());
234 for (size_t i = 0; i < evicted_apps_info->size(); ++i) {
235 ExtensionInfo* info = evicted_apps_info->at(i).get();
236 if (util::HasIsolatedStorage(*info)) {
237 active_paths->insert(content::BrowserContext::GetStoragePartitionForSite(
238 context_,
239 util::GetSiteForExtensionId(
240 info->extension_id, context_))->GetPath());
241 }
242 }
243
244 ExtensionService* service = 230 ExtensionService* service =
245 ExtensionSystem::Get(context_)->extension_service(); 231 ExtensionSystem::Get(context_)->extension_service();
246 service->OnGarbageCollectIsolatedStorageStart(); 232 service->OnGarbageCollectIsolatedStorageStart();
247 content::BrowserContext::GarbageCollectStoragePartitions( 233 content::BrowserContext::GarbageCollectStoragePartitions(
248 context_, 234 context_,
249 active_paths.Pass(), 235 active_paths.Pass(),
250 base::Bind(&ExtensionService::OnGarbageCollectIsolatedStorageFinished, 236 base::Bind(&ExtensionService::OnGarbageCollectIsolatedStorageFinished,
251 service->AsWeakPtr())); 237 service->AsWeakPtr()));
252 } 238 }
253 239
(...skipping 11 matching lines...) Expand all
265 // accounting. 251 // accounting.
266 NOTREACHED(); 252 NOTREACHED();
267 253
268 // Don't let the count go negative to avoid garbage collecting when 254 // Don't let the count go negative to avoid garbage collecting when
269 // an install is actually in progress. 255 // an install is actually in progress.
270 crx_installs_in_progress_ = 0; 256 crx_installs_in_progress_ = 0;
271 } 257 }
272 } 258 }
273 259
274 } // namespace extensions 260 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698