Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3355)

Unified Diff: chrome/browser/views/html_dialog_view.cc

Issue 441011: Created HtmlDialogTabContentsDelegate, which encapsulates the (Closed)
Patch Set: Synced to head. Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/views/html_dialog_view.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/views/html_dialog_view.cc
diff --git a/chrome/browser/views/html_dialog_view.cc b/chrome/browser/views/html_dialog_view.cc
index cda534019b84b6f585aacc6a461459652fd8f067..e20e401dc3a42016a0019bed63e4f42e11de54b5 100644
--- a/chrome/browser/views/html_dialog_view.cc
+++ b/chrome/browser/views/html_dialog_view.cc
@@ -16,7 +16,8 @@ namespace browser {
// Declared in browser_dialogs.h so that others don't need to depend on our .h.
void ShowHtmlDialogView(gfx::NativeWindow parent, Browser* browser,
HtmlDialogUIDelegate* delegate) {
- HtmlDialogView* html_view = new HtmlDialogView(browser, delegate);
+ HtmlDialogView* html_view =
+ new HtmlDialogView(browser->profile(), delegate);
views::Window::CreateChromeWindow(parent, gfx::Rect(), html_view);
html_view->InitDialog();
html_view->window()->Show();
@@ -27,13 +28,11 @@ void ShowHtmlDialogView(gfx::NativeWindow parent, Browser* browser,
////////////////////////////////////////////////////////////////////////////////
// HtmlDialogView, public:
-HtmlDialogView::HtmlDialogView(Browser* parent_browser,
+HtmlDialogView::HtmlDialogView(Profile* profile,
HtmlDialogUIDelegate* delegate)
: DOMView(),
- parent_browser_(parent_browser),
- profile_(parent_browser->profile()),
+ HtmlDialogTabContentsDelegate(profile),
delegate_(delegate) {
- DCHECK(profile_);
}
HtmlDialogView::~HtmlDialogView() {
@@ -132,6 +131,7 @@ std::string HtmlDialogView::GetDialogArgs() const {
void HtmlDialogView::OnDialogClosed(const std::string& json_retval) {
HtmlDialogUIDelegate* dialog_delegate = delegate_;
delegate_ = NULL; // We will not communicate further with the delegate.
+ HtmlDialogTabContentsDelegate::Detach();
dialog_delegate->OnDialogClosed(json_retval);
window()->Close();
}
@@ -139,83 +139,23 @@ void HtmlDialogView::OnDialogClosed(const std::string& json_retval) {
////////////////////////////////////////////////////////////////////////////////
// TabContentsDelegate implementation:
-void HtmlDialogView::OpenURLFromTab(TabContents* source,
- const GURL& url,
- const GURL& referrer,
- WindowOpenDisposition disposition,
- PageTransition::Type transition) {
- // Force all links to open in a new window, ignoring the incoming
- // disposition. This is a tabless, modal dialog so we can't just
- // open it in the current frame.
- static_cast<TabContentsDelegate*>(parent_browser_)->OpenURLFromTab(
- source, url, referrer, NEW_WINDOW, transition);
-}
-
-void HtmlDialogView::NavigationStateChanged(const TabContents* source,
- unsigned changed_flags) {
- // We shouldn't receive any NavigationStateChanged except the first
- // one, which we ignore because we're a dialog box.
-}
-
-void HtmlDialogView::ReplaceContents(TabContents* source,
- TabContents* new_contents) {
-}
-
-void HtmlDialogView::AddNewContents(TabContents* source,
- TabContents* new_contents,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture) {
- static_cast<TabContentsDelegate*>(parent_browser_)->AddNewContents(
- source, new_contents, NEW_WINDOW, initial_pos, user_gesture);
-}
-
-void HtmlDialogView::ActivateContents(TabContents* contents) {
- // We don't do anything here because there's only one TabContents in
- // this frame and we don't have a TabStripModel.
-}
-
-void HtmlDialogView::LoadingStateChanged(TabContents* source) {
- // We don't care about this notification.
-}
-
-void HtmlDialogView::CloseContents(TabContents* source) {
- // We receive this message but don't handle it because we really do the
- // cleanup in OnDialogClosed().
-}
-
void HtmlDialogView::MoveContents(TabContents* source, const gfx::Rect& pos) {
// The contained web page wishes to resize itself. We let it do this because
// if it's a dialog we know about, we trust it not to be mean to the user.
GetWidget()->SetBounds(pos);
}
-bool HtmlDialogView::IsPopup(TabContents* source) {
- // This needs to return true so that we are allowed to be resized by our
- // contents.
- return true;
-}
-
void HtmlDialogView::ToolbarSizeChanged(TabContents* source,
bool is_animating) {
Layout();
}
-void HtmlDialogView::URLStarredChanged(TabContents* source, bool starred) {
- // We don't have a visible star to click in the window.
- NOTREACHED();
-}
-
-void HtmlDialogView::UpdateTargetURL(TabContents* source, const GURL& url) {
- // Ignored.
-}
-
////////////////////////////////////////////////////////////////////////////////
// HtmlDialogView:
void HtmlDialogView::InitDialog() {
// Now Init the DOMView. This view runs in its own process to render the html.
- DOMView::Init(profile_, NULL);
+ DOMView::Init(profile(), NULL);
tab_contents_->set_delegate(this);
« no previous file with comments | « chrome/browser/views/html_dialog_view.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698