Chromium Code Reviews| Index: chrome/browser/ui/blocked_content/blocked_content_container.cc |
| diff --git a/chrome/browser/blocked_content_container.cc b/chrome/browser/ui/blocked_content/blocked_content_container.cc |
| similarity index 64% |
| rename from chrome/browser/blocked_content_container.cc |
| rename to chrome/browser/ui/blocked_content/blocked_content_container.cc |
| index 5b5ba086bd3e039300f0cb83ed0e497aeef082b1..f702aed8dd33da5ed8483b47aad409b51ecf648c 100644 |
| --- a/chrome/browser/blocked_content_container.cc |
| +++ b/chrome/browser/ui/blocked_content/blocked_content_container.cc |
| @@ -2,8 +2,10 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "chrome/browser/blocked_content_container.h" |
| +#include "chrome/browser/ui/blocked_content/blocked_content_container.h" |
| +#include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" |
| +#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| #include "content/browser/tab_contents/tab_contents.h" |
| #include "ui/gfx/rect.h" |
| @@ -11,7 +13,7 @@ |
| const size_t BlockedContentContainer::kImpossibleNumberOfPopups = 30; |
| struct BlockedContentContainer::BlockedContent { |
| - BlockedContent(TabContents* tab_contents, |
| + BlockedContent(TabContentsWrapper* tab_contents, |
| WindowOpenDisposition disposition, |
| const gfx::Rect& bounds, |
| bool user_gesture) |
| @@ -21,19 +23,21 @@ struct BlockedContentContainer::BlockedContent { |
| user_gesture(user_gesture) { |
| } |
| - TabContents* tab_contents; |
| + TabContentsWrapper* tab_contents; |
| WindowOpenDisposition disposition; |
| gfx::Rect bounds; |
| bool user_gesture; |
| }; |
| -BlockedContentContainer::BlockedContentContainer(TabContents* owner) |
| +BlockedContentContainer::BlockedContentContainer(TabContentsWrapper* owner) |
| : owner_(owner) { |
| } |
| -BlockedContentContainer::~BlockedContentContainer() {} |
| +BlockedContentContainer::~BlockedContentContainer() { |
| + Clear(); |
| +} |
| -void BlockedContentContainer::AddTabContents(TabContents* tab_contents, |
| +void BlockedContentContainer::AddTabContents(TabContentsWrapper* tab_contents, |
|
stevenjb
2011/04/21 19:03:00
nit: tab_contents_wrapper, or maybe just wrapper?
|
| WindowOpenDisposition disposition, |
| const gfx::Rect& bounds, |
| bool user_gesture) { |
| @@ -46,15 +50,17 @@ void BlockedContentContainer::AddTabContents(TabContents* tab_contents, |
| blocked_contents_.push_back( |
| BlockedContent(tab_contents, disposition, bounds, user_gesture)); |
| - tab_contents->set_delegate(this); |
| - // Since the new tab_contents will not be showed, call WasHidden to change |
| + // TODO(avi): remove once TabContentsDelegate::GetConstrainingContents goes |
| + // away. |
| + tab_contents->tab_contents()->set_delegate(this); |
| + tab_contents->blocked_content_tab_helper()->set_delegate(this); |
| + // Since the new tab_contents will not be shown, call WasHidden to change |
| // its status on both RenderViewHost and RenderView. |
| - tab_contents->WasHidden(); |
| - if (blocked_contents_.size() == 1) |
| - owner_->PopupNotificationVisibilityChanged(true); |
| + tab_contents->tab_contents()->WasHidden(); |
| } |
| -void BlockedContentContainer::LaunchForContents(TabContents* tab_contents) { |
| +void BlockedContentContainer::LaunchForContents( |
| + TabContentsWrapper* tab_contents) { |
|
stevenjb
2011/04/21 19:03:00
nit: wrapper?
|
| // Open the popup. |
| for (BlockedContents::iterator i(blocked_contents_.begin()); |
| i != blocked_contents_.end(); ++i) { |
| @@ -64,19 +70,20 @@ void BlockedContentContainer::LaunchForContents(TabContents* tab_contents) { |
| BlockedContent content(*i); |
| blocked_contents_.erase(i); |
| i = blocked_contents_.end(); |
| - tab_contents->set_delegate(NULL); |
| + // TODO(avi): remove once TabContentsDelegate::GetConstrainingContents |
| + // goes away. |
| + tab_contents->tab_contents()->set_delegate(NULL); |
| + tab_contents->blocked_content_tab_helper()->set_delegate(NULL); |
| // We needn't call WasRestored to change its status because the |
| // TabContents::AddNewContents will do it. |
| - owner_->AddOrBlockNewContents(tab_contents, |
| - content.disposition, |
| - content.bounds, |
| - content.user_gesture); |
| + owner_->tab_contents()->AddNewContents( |
| + tab_contents->tab_contents(), |
| + content.disposition, |
| + content.bounds, |
| + content.user_gesture); |
| break; |
| } |
| } |
| - |
| - if (blocked_contents_.empty()) |
| - Destroy(); |
| } |
| size_t BlockedContentContainer::GetBlockedContentsCount() const { |
| @@ -84,23 +91,24 @@ size_t BlockedContentContainer::GetBlockedContentsCount() const { |
| } |
| void BlockedContentContainer::GetBlockedContents( |
| - std::vector<TabContents*>* blocked_contents) const { |
| + std::vector<TabContentsWrapper*>* blocked_contents) const { |
| DCHECK(blocked_contents); |
| for (BlockedContents::const_iterator i(blocked_contents_.begin()); |
| i != blocked_contents_.end(); ++i) |
| blocked_contents->push_back(i->tab_contents); |
| } |
| -void BlockedContentContainer::Destroy() { |
| +void BlockedContentContainer::Clear() { |
| for (BlockedContents::iterator i(blocked_contents_.begin()); |
| i != blocked_contents_.end(); ++i) { |
| - TabContents* tab_contents = i->tab_contents; |
| - tab_contents->set_delegate(NULL); |
| + TabContentsWrapper* tab_contents = i->tab_contents; |
| + // TODO(avi): remove once TabContentsDelegate::GetConstrainingContents goes |
| + // away. |
| + tab_contents->tab_contents()->set_delegate(NULL); |
| + tab_contents->blocked_content_tab_helper()->set_delegate(NULL); |
| delete tab_contents; |
| } |
| blocked_contents_.clear(); |
| - owner_->WillCloseBlockedContentContainer(this); |
| - delete this; |
| } |
| // Overridden from TabContentsDelegate: |
| @@ -109,7 +117,7 @@ void BlockedContentContainer::OpenURLFromTab(TabContents* source, |
| const GURL& referrer, |
| WindowOpenDisposition disposition, |
| PageTransition::Type transition) { |
| - owner_->OpenURL(url, referrer, disposition, transition); |
| + owner_->tab_contents()->OpenURL(url, referrer, disposition, transition); |
| } |
| void BlockedContentContainer::AddNewContents(TabContents* source, |
| @@ -117,16 +125,19 @@ void BlockedContentContainer::AddNewContents(TabContents* source, |
| WindowOpenDisposition disposition, |
| const gfx::Rect& initial_position, |
| bool user_gesture) { |
| - owner_->AddOrBlockNewContents( |
| + owner_->tab_contents()->AddNewContents( |
| new_contents, disposition, initial_position, user_gesture); |
| } |
| void BlockedContentContainer::CloseContents(TabContents* source) { |
| for (BlockedContents::iterator i(blocked_contents_.begin()); |
| i != blocked_contents_.end(); ++i) { |
| - TabContents* tab_contents = i->tab_contents; |
| - if (tab_contents == source) { |
| - tab_contents->set_delegate(NULL); |
| + TabContentsWrapper* tab_contents = i->tab_contents; |
|
stevenjb
2011/04/21 19:03:00
nit: tab_contents_wrapper
|
| + if (tab_contents->tab_contents() == source) { |
| + // TODO(avi): remove once TabContentsDelegate::GetConstrainingContents |
| + // goes away. |
| + tab_contents->tab_contents()->set_delegate(NULL); |
| + tab_contents->blocked_content_tab_helper()->set_delegate(NULL); |
| blocked_contents_.erase(i); |
| delete tab_contents; |
| break; |
| @@ -138,7 +149,7 @@ void BlockedContentContainer::MoveContents(TabContents* source, |
| const gfx::Rect& new_bounds) { |
| for (BlockedContents::iterator i(blocked_contents_.begin()); |
| i != blocked_contents_.end(); ++i) { |
| - if (i->tab_contents == source) { |
| + if (i->tab_contents->tab_contents() == source) { |
| i->bounds = new_bounds; |
| break; |
| } |
| @@ -154,5 +165,10 @@ bool BlockedContentContainer::IsPopup(const TabContents* source) const { |
| TabContents* BlockedContentContainer::GetConstrainingContents( |
| TabContents* source) { |
| + return owner_->tab_contents(); |
| +} |
| + |
| +TabContentsWrapper* BlockedContentContainer::GetConstrainingContents( |
| + TabContentsWrapper* source) { |
| return owner_; |
| } |