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

Unified Diff: chrome/browser/extensions/extensions_service.cc

Issue 1383001: Hook up extension apps notification permission, take two (Closed)
Patch Set: pre commit Created 10 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/net/chrome_url_request_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extensions_service.cc
diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
index 50d48d220f2d5a6b73ae9dc2e0b39229a4223900..b56d5b6b16c828b510b67f6c22c0cb3cdff7f694 100644
--- a/chrome/browser/extensions/extensions_service.cc
+++ b/chrome/browser/extensions/extensions_service.cc
@@ -578,29 +578,14 @@ void ExtensionsService::LoadInstalledExtension(const ExtensionInfo& info,
}
void ExtensionsService::NotifyExtensionLoaded(Extension* extension) {
- LOG(INFO) << "Sending EXTENSION_LOADED";
-
- // The ChromeURLRequestContext needs to be first to know that the extension
+ // The ChromeURLRequestContexts need to be first to know that the extension
// was loaded, otherwise a race can arise where a renderer that is created
// for the extension may try to load an extension URL with an extension id
- // that the request context doesn't yet know about.
- if (profile_ && !profile_->IsOffTheRecord()) {
- ChromeURLRequestContextGetter* context_getter =
- static_cast<ChromeURLRequestContextGetter*>(
- profile_->GetRequestContext());
- if (context_getter) {
- ChromeThread::PostTask(
- ChromeThread::IO, FROM_HERE,
- NewRunnableMethod(
- context_getter,
- &ChromeURLRequestContextGetter::OnNewExtensions,
- extension->id(),
- new ChromeURLRequestContext::ExtensionInfo(
- extension->path(),
- extension->default_locale(),
- std::vector<URLPattern>(),
- extension->api_permissions())));
- }
+ // that the request context doesn't yet know about. The profile is responsible
+ // for ensuring its URLRequestContexts appropriately discover the loaded
+ // extension.
+ if (profile_) {
+ profile_->RegisterExtensionWithRequestContexts(extension);
// Check if this permission requires unlimited storage quota
if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission)) {
@@ -616,6 +601,8 @@ void ExtensionsService::NotifyExtensionLoaded(Extension* extension) {
}
}
+ LOG(INFO) << "Sending EXTENSION_LOADED";
+
NotificationService::current()->Notify(
NotificationType::EXTENSION_LOADED,
Source<Profile>(profile_),
@@ -630,17 +617,20 @@ void ExtensionsService::NotifyExtensionUnloaded(Extension* extension) {
Source<Profile>(profile_),
Details<Extension>(extension));
- if (profile_ && !profile_->IsOffTheRecord()) {
- ChromeURLRequestContextGetter* context_getter =
- static_cast<ChromeURLRequestContextGetter*>(
- profile_->GetRequestContext());
- if (context_getter) {
+ if (profile_) {
+ profile_->UnregisterExtensionWithRequestContexts(extension);
+
+ // Check if this permission required unlimited storage quota, reset its
+ // in-memory quota.
+ if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission)) {
+ string16 origin_identifier =
+ webkit_database::DatabaseUtil::GetOriginIdentifier(extension->url());
ChromeThread::PostTask(
- ChromeThread::IO, FROM_HERE,
+ ChromeThread::FILE, FROM_HERE,
NewRunnableMethod(
- context_getter,
- &ChromeURLRequestContextGetter::OnUnloadedExtension,
- extension->id()));
+ profile_->GetDatabaseTracker(),
+ &webkit_database::DatabaseTracker::ResetOriginQuotaInMemory,
+ origin_identifier));
}
}
}
« no previous file with comments | « no previous file | chrome/browser/net/chrome_url_request_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698