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

Unified Diff: chrome/browser/dom_ui/html_dialog_tab_contents_delegate.h

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
Index: chrome/browser/dom_ui/html_dialog_tab_contents_delegate.h
diff --git a/chrome/browser/dom_ui/html_dialog_tab_contents_delegate.h b/chrome/browser/dom_ui/html_dialog_tab_contents_delegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..d8274242b5450c51148775d6eacecd9a6dec8aa9
--- /dev/null
+++ b/chrome/browser/dom_ui/html_dialog_tab_contents_delegate.h
@@ -0,0 +1,66 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_DOM_UI_HTML_DIALOG_TAB_CONTENTS_DELEGATE_H_
+#define CHROME_BROWSER_DOM_UI_HTML_DIALOG_TAB_CONTENTS_DELEGATE_H_
+
+#include "chrome/browser/tab_contents/tab_contents_delegate.h"
+
+class Browser;
+class Profile;
+
+// This class implements (and mostly ignores) most of TabContentsDelegate for
+// use in an HTML dialog. Subclasses need only override a few methods instead
+// of the everything from TabContentsDelegate; this way, implementations on
+// all platforms behave consistently.
+
+class HtmlDialogTabContentsDelegate : public TabContentsDelegate {
+ public:
+ // Profile must be non-NULL.
+ explicit HtmlDialogTabContentsDelegate(Profile* profile);
+
+ virtual ~HtmlDialogTabContentsDelegate();
+
+ // The returned profile is guaranteed to be original if non-NULL.
+ Profile* profile() const;
+
+ // Calling this causes all following events sent from the
+ // TabContents object to be ignored. It also makes all following
+ // calls to profile() return NULL.
+ void Detach();
+
+ // TabContentsDelegate declarations. Subclasses of this still need to
+ // override:
+ // virtual void MoveContents(TabContents* source, const gfx::Rect& pos);
+ // virtual void ToolbarSizeChanged(TabContents* source, bool is_animating);
+
+ virtual void OpenURLFromTab(TabContents* source,
+ const GURL& url, const GURL& referrer,
+ WindowOpenDisposition disposition,
+ PageTransition::Type transition);
+ virtual void NavigationStateChanged(const TabContents* source,
+ unsigned changed_flags);
+ virtual void AddNewContents(TabContents* source,
+ TabContents* new_contents,
+ WindowOpenDisposition disposition,
+ const gfx::Rect& initial_pos,
+ bool user_gesture);
+ virtual void ActivateContents(TabContents* contents);
+ virtual void LoadingStateChanged(TabContents* source);
+ virtual void CloseContents(TabContents* source);
+ virtual bool IsPopup(TabContents* source);
+ virtual void URLStarredChanged(TabContents* source, bool starred);
+ virtual void UpdateTargetURL(TabContents* source, const GURL& url);
+ virtual bool ShouldAddNavigationToHistory() const;
+
+ protected:
+ // Overridden only for testing.
+ virtual Browser* CreateBrowser();
+
+ private:
+ Profile* profile_; // Weak pointer. Always an original profile.
+};
+
+#endif // CHROME_BROWSER_DOM_UI_HTML_DIALOG_TAB_CONTENTS_DELEGATE_H_
+
« no previous file with comments | « chrome/browser/cocoa/html_dialog_window_controller.mm ('k') | chrome/browser/dom_ui/html_dialog_tab_contents_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698