Index: content/browser/tab_contents/tab_contents_observer.cc |
=================================================================== |
--- content/browser/tab_contents/tab_contents_observer.cc (revision 80315) |
+++ content/browser/tab_contents/tab_contents_observer.cc (working copy) |
@@ -7,6 +7,23 @@ |
#include "content/browser/renderer_host/render_view_host.h" |
#include "content/browser/tab_contents/tab_contents.h" |
+TabContentsObserver::Registrar::Registrar(TabContentsObserver* observer) |
+ : observer_(observer), tab_(NULL) { |
+} |
+ |
+TabContentsObserver::Registrar::~Registrar() { |
+ if (tab_) |
+ tab_->RemoveObserver(observer_); |
+} |
+ |
+void TabContentsObserver::Registrar::Observe(TabContents* tab) { |
+ if (tab_) |
+ tab_->RemoveObserver(observer_); |
+ tab_ = tab; |
+ if (tab_) |
+ tab_->AddObserver(observer_); |
+} |
+ |
void TabContentsObserver::NavigateToPendingEntry() { |
} |
@@ -41,6 +58,10 @@ |
tab_contents_->AddObserver(this); |
} |
+TabContentsObserver::TabContentsObserver() |
+ : tab_contents_(NULL), routing_id_(MSG_ROUTING_NONE) { |
+} |
+ |
TabContentsObserver::~TabContentsObserver() { |
if (tab_contents_) |
tab_contents_->RemoveObserver(this); |