Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_info_map.h" | 5 #include "chrome/browser/extensions/extension_info_map.h" |
| 6 | 6 |
| 7 #include "chrome/common/extensions/extension.h" | 7 #include "chrome/common/extensions/extension.h" |
| 8 #include "chrome/common/extensions/extension_set.h" | 8 #include "chrome/common/extensions/extension_set.h" |
| 9 #include "chrome/common/url_constants.h" | 9 #include "chrome/common/url_constants.h" |
| 10 #include "content/public/browser/browser_thread.h" | 10 #include "content/public/browser/browser_thread.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 58 extra_data_[extension->id()].install_time = install_time; | 58 extra_data_[extension->id()].install_time = install_time; |
| 59 extra_data_[extension->id()].incognito_enabled = incognito_enabled; | 59 extra_data_[extension->id()].incognito_enabled = incognito_enabled; |
| 60 } | 60 } |
| 61 | 61 |
| 62 void ExtensionInfoMap::RemoveExtension(const std::string& extension_id, | 62 void ExtensionInfoMap::RemoveExtension(const std::string& extension_id, |
| 63 const extension_misc::UnloadedExtensionReason reason) { | 63 const extension_misc::UnloadedExtensionReason reason) { |
| 64 CheckOnValidThread(); | 64 CheckOnValidThread(); |
| 65 const Extension* extension = extensions_.GetByID(extension_id); | 65 const Extension* extension = extensions_.GetByID(extension_id); |
| 66 extra_data_.erase(extension_id); // we don't care about disabled extra data | 66 extra_data_.erase(extension_id); // we don't care about disabled extra data |
| 67 if (extension) { | 67 if (extension) { |
| 68 if (reason == extension_misc::UNLOAD_REASON_DISABLE) | 68 if (reason == extension_misc::UNLOAD_REASON_DISABLE || |
| 69 reason == extension_misc::UNLOAD_REASON_TERMINATE) | |
|
Matt Perry
2011/11/10 22:07:59
nit: pull this condition out into a shared bool li
Yoyo Zhou
2011/11/10 23:26:30
Done.
| |
| 69 disabled_extensions_.Insert(extension); | 70 disabled_extensions_.Insert(extension); |
| 70 extensions_.Remove(extension_id); | 71 extensions_.Remove(extension_id); |
| 71 } else if (reason != extension_misc::UNLOAD_REASON_DISABLE) { | 72 } else if (reason != extension_misc::UNLOAD_REASON_DISABLE && |
| 73 reason != extension_misc::UNLOAD_REASON_TERMINATE) { | |
| 72 // If the extension was uninstalled, make sure it's removed from the map of | 74 // If the extension was uninstalled, make sure it's removed from the map of |
| 73 // disabled extensions. | 75 // disabled extensions. |
| 74 disabled_extensions_.Remove(extension_id); | 76 disabled_extensions_.Remove(extension_id); |
| 75 } else { | 77 } else { |
| 76 // NOTE: This can currently happen if we receive multiple unload | 78 // NOTE: This can currently happen if we receive multiple unload |
| 77 // notifications, e.g. setting incognito-enabled state for a | 79 // notifications, e.g. setting incognito-enabled state for a |
| 78 // disabled extension (e.g., via sync). See | 80 // disabled extension (e.g., via sync). See |
| 79 // http://code.google.com/p/chromium/issues/detail?id=50582 . | 81 // http://code.google.com/p/chromium/issues/detail?id=50582 . |
| 80 NOTREACHED() << extension_id; | 82 NOTREACHED() << extension_id; |
| 81 } | 83 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 137 ExtensionSet::ExtensionMap::const_iterator i = extensions_.begin(); | 139 ExtensionSet::ExtensionMap::const_iterator i = extensions_.begin(); |
| 138 for (; i != extensions_.end(); ++i) { | 140 for (; i != extensions_.end(); ++i) { |
| 139 if (i->second->web_extent().MatchesSecurityOrigin(origin) && | 141 if (i->second->web_extent().MatchesSecurityOrigin(origin) && |
| 140 process_map_.Contains(i->first, process_id) && | 142 process_map_.Contains(i->first, process_id) && |
| 141 i->second->HasAPIPermission(permission)) { | 143 i->second->HasAPIPermission(permission)) { |
| 142 return true; | 144 return true; |
| 143 } | 145 } |
| 144 } | 146 } |
| 145 return false; | 147 return false; |
| 146 } | 148 } |
| OLD | NEW |