Index: chrome/browser/extensions/tab_helper.h |
diff --git a/chrome/browser/extensions/tab_helper.h b/chrome/browser/extensions/tab_helper.h |
index 17846b5c0c4cf9b84d62d1e0d7ac65468301e179..c3d368ec5f8c004cb028ad4aed5fa194cc899df4 100644 |
--- a/chrome/browser/extensions/tab_helper.h |
+++ b/chrome/browser/extensions/tab_helper.h |
@@ -13,6 +13,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
+#include "base/scoped_observer.h" |
#include "chrome/browser/extensions/active_tab_permission_granter.h" |
#include "chrome/browser/extensions/extension_reenabler.h" |
#include "chrome/common/extensions/webstore_install_result.h" |
@@ -22,6 +23,7 @@ |
#include "content/public/browser/web_contents_observer.h" |
#include "content/public/browser/web_contents_user_data.h" |
#include "extensions/browser/extension_function_dispatcher.h" |
+#include "extensions/browser/extension_registry_observer.h" |
#include "extensions/browser/script_execution_observer.h" |
#include "extensions/browser/script_executor.h" |
#include "extensions/common/stack_frame.h" |
@@ -47,7 +49,8 @@ class WebstoreInlineInstallerFactory; |
// Per-tab extension helper. Also handles non-extension apps. |
class TabHelper : public content::WebContentsObserver, |
- public extensions::ExtensionFunctionDispatcher::Delegate, |
+ public ExtensionFunctionDispatcher::Delegate, |
+ public ExtensionRegistryObserver, |
public base::SupportsWeakPtr<TabHelper>, |
public content::NotificationObserver, |
public content::WebContentsUserData<TabHelper> { |
@@ -160,6 +163,11 @@ class TabHelper : public content::WebContentsObserver, |
extensions::WindowController* GetExtensionWindowController() const override; |
content::WebContents* GetAssociatedWebContents() const override; |
+ // ExtensionRegistryObserver: |
+ void OnExtensionUnloaded(content::BrowserContext* browser_context, |
+ const Extension* extension, |
+ UnloadedExtensionInfo::Reason reason) override; |
+ |
// Message handlers. |
void OnDidGetWebApplicationInfo(const WebApplicationInfo& info); |
void OnInlineWebstoreInstall(content::RenderFrameHost* host, |
@@ -259,6 +267,9 @@ class TabHelper : public content::WebContentsObserver, |
// The reenable prompt for disabled extensions, if any. |
std::unique_ptr<ExtensionReenabler> extension_reenabler_; |
+ ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> |
+ registry_observer_; |
+ |
// Vend weak pointers that can be invalidated to stop in-progress loads. |
base::WeakPtrFactory<TabHelper> image_loader_ptr_factory_; |