OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/extensions/extension_service.h" | 5 #include "chrome/browser/extensions/extension_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <iterator> | 8 #include <iterator> |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1089 // BrowserContextKeyedService and use ExtensionRegistryObserver. | 1089 // BrowserContextKeyedService and use ExtensionRegistryObserver. |
1090 profile_->GetExtensionSpecialStoragePolicy()-> | 1090 profile_->GetExtensionSpecialStoragePolicy()-> |
1091 RevokeRightsForExtension(extension); | 1091 RevokeRightsForExtension(extension); |
1092 | 1092 |
1093 #if defined(OS_CHROMEOS) | 1093 #if defined(OS_CHROMEOS) |
1094 // Revoke external file access for the extension from its file system context. | 1094 // Revoke external file access for the extension from its file system context. |
1095 // It is safe to access the extension's storage partition at this point. The | 1095 // It is safe to access the extension's storage partition at this point. The |
1096 // storage partition may get destroyed only after the extension gets unloaded. | 1096 // storage partition may get destroyed only after the extension gets unloaded. |
1097 GURL site = | 1097 GURL site = |
1098 extensions::util::GetSiteForExtensionId(extension->id(), profile_); | 1098 extensions::util::GetSiteForExtensionId(extension->id(), profile_); |
1099 fileapi::FileSystemContext* filesystem_context = | 1099 storage::FileSystemContext* filesystem_context = |
1100 BrowserContext::GetStoragePartitionForSite(profile_, site)-> | 1100 BrowserContext::GetStoragePartitionForSite(profile_, site) |
1101 GetFileSystemContext(); | 1101 ->GetFileSystemContext(); |
1102 if (filesystem_context && filesystem_context->external_backend()) { | 1102 if (filesystem_context && filesystem_context->external_backend()) { |
1103 filesystem_context->external_backend()-> | 1103 filesystem_context->external_backend()-> |
1104 RevokeAccessForExtension(extension->id()); | 1104 RevokeAccessForExtension(extension->id()); |
1105 } | 1105 } |
1106 #endif | 1106 #endif |
1107 | 1107 |
1108 // TODO(kalman): This is broken. The crash reporter is process-wide so doesn't | 1108 // TODO(kalman): This is broken. The crash reporter is process-wide so doesn't |
1109 // work properly multi-profile. Besides which, it should be using | 1109 // work properly multi-profile. Besides which, it should be using |
1110 // ExtensionRegistryObserver::OnExtensionLoaded. See http://crbug.com/355029. | 1110 // ExtensionRegistryObserver::OnExtensionLoaded. See http://crbug.com/355029. |
1111 UpdateActiveExtensionsInCrashReporter(); | 1111 UpdateActiveExtensionsInCrashReporter(); |
(...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2359 } | 2359 } |
2360 | 2360 |
2361 void ExtensionService::OnProfileDestructionStarted() { | 2361 void ExtensionService::OnProfileDestructionStarted() { |
2362 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); | 2362 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); |
2363 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); | 2363 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); |
2364 it != ids_to_unload.end(); | 2364 it != ids_to_unload.end(); |
2365 ++it) { | 2365 ++it) { |
2366 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); | 2366 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); |
2367 } | 2367 } |
2368 } | 2368 } |
OLD | NEW |