Index: chrome/browser/ui/ash/launcher/browser_status_monitor.h |
diff --git a/chrome/browser/ui/ash/launcher/browser_status_monitor.h b/chrome/browser/ui/ash/launcher/browser_status_monitor.h |
index 64098c3e331da93ed16f306fe29d74bba77dae0b..b3ec3e36995dffbd6d06675f3439bbcfbe8eaec0 100644 |
--- a/chrome/browser/ui/ash/launcher/browser_status_monitor.h |
+++ b/chrome/browser/ui/ash/launcher/browser_status_monitor.h |
@@ -14,6 +14,7 @@ |
#include "base/scoped_observer.h" |
#include "chrome/browser/ui/browser_list_observer.h" |
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" |
+#include "content/public/browser/web_contents_observer.h" |
#include "ui/aura/client/activation_change_observer.h" |
#include "ui/aura/window_observer.h" |
#include "ui/gfx/display_observer.h" |
@@ -62,26 +63,46 @@ class BrowserStatusMonitor : public aura::client::ActivationChangeObserver, |
content::WebContents* new_contents, |
int index, |
int reason) OVERRIDE; |
+ |
virtual void TabInsertedAt(content::WebContents* contents, |
int index, |
bool foreground) OVERRIDE; |
- virtual void TabDetachedAt(content::WebContents* contents, |
- int index) OVERRIDE; |
- virtual void TabChangedAt( |
- content::WebContents* contents, |
- int index, |
- TabStripModelObserver::TabChangeType change_type) OVERRIDE; |
- virtual void TabReplacedAt(TabStripModel* tab_strip_model, |
- content::WebContents* old_contents, |
- content::WebContents* new_contents, |
- int index) OVERRIDE; |
- private: |
- typedef std::map<Browser*, std::string> BrowserToAppIDMap; |
+ virtual void TabClosingAt(TabStripModel* tab_strip_mode, |
+ content::WebContents* contents, |
+ int index) OVERRIDE; |
// Update app state for |contents| and browser state. |
void UpdateAppAndBrowserState(content::WebContents* contents); |
+ private: |
+ // ActiveWebContentsObserver monitors active tab's WebContents to notify |
+ // a navigation changing to BrowserStatusMonitor. |
Mr4D (OOO till 08-26)
2013/09/13 14:35:18
This class monitors the WebContent of the active t
simonhong_
2013/09/15 17:27:08
Done.
|
+ class ActiveWebContentsObserver : public content::WebContentsObserver { |
+ public: |
+ ActiveWebContentsObserver(content::WebContents* contents, |
+ BrowserStatusMonitor* monitor); |
+ virtual ~ActiveWebContentsObserver(); |
+ |
+ // content::WebContentsObserver overrides: |
+ virtual void NavigateToPendingEntry( |
+ const GURL& url, |
+ content::NavigationController::ReloadType reload_type) OVERRIDE; |
+ |
+ virtual void DidNavigateMainFrame( |
+ const content::LoadCommittedDetails& details, |
+ const content::FrameNavigateParams& params) OVERRIDE; |
+ |
+ private: |
+ BrowserStatusMonitor* monitor_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ActiveWebContentsObserver); |
+ }; |
+ |
+ typedef std::map<Browser*, std::string> BrowserToAppIDMap; |
+ typedef std::map<content::WebContents*, ActiveWebContentsObserver*> |
+ WebContentsToObserverMap; |
+ |
// A shortcut to call the BrowserShortcutLauncherItemController's |
// UpdateBrowserItemState(). |
void UpdateBrowserItemState(); |
@@ -97,6 +118,8 @@ class BrowserStatusMonitor : public aura::client::ActivationChangeObserver, |
BrowserToAppIDMap browser_to_app_id_map_; |
+ WebContentsToObserverMap webcontents_to_observer_map_; |
+ |
DISALLOW_COPY_AND_ASSIGN(BrowserStatusMonitor); |
}; |