Index: chrome/browser/extensions/declarative_user_script_master.cc |
diff --git a/chrome/browser/extensions/declarative_user_script_master.cc b/chrome/browser/extensions/declarative_user_script_master.cc |
index 40fc511dd964ec23196d31fd6677979381963d22..fccd01150491ef3d4b31d2305112e28652aa7c52 100644 |
--- a/chrome/browser/extensions/declarative_user_script_master.cc |
+++ b/chrome/browser/extensions/declarative_user_script_master.cc |
@@ -7,20 +7,32 @@ |
#include <set> |
#include "chrome/browser/profiles/profile.h" |
+#include "extensions/browser/extension_registry.h" |
namespace extensions { |
-DeclarativeUserScriptMaster::DeclarativeUserScriptMaster(Profile* profile, |
- const HostID& host_id) |
- : host_id_(host_id), |
+DeclarativeUserScriptMaster::DeclarativeUserScriptMaster( |
+ Profile* profile, |
+ const ExtensionId& extension_id) |
+ : extension_id_(extension_id), |
loader_(profile, |
- host_id, |
- false /* listen_for_extension_system_loaded */) { |
+ extension_id, |
+ false /* listen_for_extension_system_loaded */), |
+ extension_registry_observer_(this) { |
+ extension_registry_observer_.Add(ExtensionRegistry::Get(profile)); |
} |
DeclarativeUserScriptMaster::~DeclarativeUserScriptMaster() { |
} |
+void DeclarativeUserScriptMaster::OnExtensionUnloaded( |
+ content::BrowserContext* browser_context, |
+ const Extension* extension, |
+ UnloadedExtensionInfo::Reason reason) { |
+ if (extension_id_ == extension->id()) |
+ ClearScripts(); |
+} |
+ |
void DeclarativeUserScriptMaster::AddScript(const UserScript& script) { |
std::set<UserScript> set; |
set.insert(script); |