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

Unified Diff: chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc

Issue 9225053: Add a blocking version of the sync promo dialog (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 8 years, 11 months 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/ui/webui/html_dialog_tab_contents_delegate.cc
diff --git a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
index 65a39b04aadae84bd4d730ddcefa5b8af6de7746..c1e430ae393111d33175aac0dee995903e78b4d7 100644
--- a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
+++ b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
@@ -33,48 +33,76 @@ void HtmlDialogTabContentsDelegate::Detach() {
WebContents* HtmlDialogTabContentsDelegate::OpenURLFromTab(
WebContents* source, const OpenURLParams& params) {
- if (profile_) {
- // Specify a NULL browser for navigation. This will cause Navigate()
- // to find a browser matching params.profile or create a new one.
- Browser* browser = NULL;
- browser::NavigateParams nav_params(browser, params.url, params.transition);
- nav_params.profile = profile_;
- nav_params.referrer = params.referrer;
- if (source && source->IsCrashed() &&
- params.disposition == CURRENT_TAB &&
- params.transition == content::PAGE_TRANSITION_LINK)
- nav_params.disposition = NEW_FOREGROUND_TAB;
- else
- nav_params.disposition = params.disposition;
- nav_params.window_action = browser::NavigateParams::SHOW_WINDOW;
- nav_params.user_gesture = true;
- browser::Navigate(&nav_params);
- return nav_params.target_contents ?
- nav_params.target_contents->web_contents() : NULL;
+ WebContents* new_contents = NULL;
+ StaticOpenURLFromTab(profile_, source, params, &new_contents);
+ return new_contents;
+}
+
+// static
+Browser* HtmlDialogTabContentsDelegate::StaticOpenURLFromTab(
+ Profile* profile,
James Hawkins 2012/01/31 00:23:22 Optional: Save space and put more than one paramet
sail 2012/01/31 01:03:46 Done.
+ WebContents* source,
+ const OpenURLParams& params,
+ WebContents** out_new_contents) {
+ if (!profile)
James Hawkins 2012/01/31 00:23:22 Under what circumstances is profile NULL?
sail 2012/01/31 01:03:46 I'm not sure. This is just existing code that I mo
+ return NULL;
+
+ // Specify a NULL browser for navigation. This will cause Navigate()
+ // to find a browser matching params.profile or create a new one.
+ Browser* browser = NULL;
+ browser::NavigateParams nav_params(browser, params.url, params.transition);
+ nav_params.profile = profile;
+ nav_params.referrer = params.referrer;
+ if (source && source->IsCrashed() &&
+ params.disposition == CURRENT_TAB &&
+ params.transition == content::PAGE_TRANSITION_LINK) {
+ nav_params.disposition = NEW_FOREGROUND_TAB;
+ } else {
+ nav_params.disposition = params.disposition;
}
- return NULL;
+ nav_params.window_action = browser::NavigateParams::SHOW_WINDOW;
+ nav_params.user_gesture = true;
+ browser::Navigate(&nav_params);
+ *out_new_contents = nav_params.target_contents ?
+ nav_params.target_contents->web_contents() : NULL;
+ return nav_params.browser;
}
void HtmlDialogTabContentsDelegate::AddNewContents(
WebContents* source, WebContents* new_contents,
WindowOpenDisposition disposition, const gfx::Rect& initial_pos,
bool user_gesture) {
- if (profile_) {
- // Specify a NULL browser for navigation. This will cause Navigate()
- // to find a browser matching params.profile or create a new one.
- Browser* browser = NULL;
-
- TabContentsWrapper* wrapper = new TabContentsWrapper(new_contents);
- browser::NavigateParams params(browser, wrapper);
- params.profile = profile_;
- // TODO(pinkerton): no way to get a wrapper for this.
- // params.source_contents = source;
- params.disposition = disposition;
- params.window_bounds = initial_pos;
- params.window_action = browser::NavigateParams::SHOW_WINDOW;
- params.user_gesture = true;
- browser::Navigate(&params);
- }
+ StaticAddNewContents(profile_, source, new_contents, disposition,
+ initial_pos, user_gesture);
+}
+
+// static
+Browser* HtmlDialogTabContentsDelegate::StaticAddNewContents(
+ Profile* profile,
+ WebContents* source,
+ WebContents* new_contents,
+ WindowOpenDisposition disposition,
+ const gfx::Rect& initial_pos,
+ bool user_gesture) {
+ if (!profile)
+ return NULL;
+
+ // Specify a NULL browser for navigation. This will cause Navigate()
+ // to find a browser matching params.profile or create a new one.
+ Browser* browser = NULL;
+
+ TabContentsWrapper* wrapper = new TabContentsWrapper(new_contents);
+ browser::NavigateParams params(browser, wrapper);
+ params.profile = profile;
+ // TODO(pinkerton): no way to get a wrapper for this.
+ // params.source_contents = source;
+ params.disposition = disposition;
+ params.window_bounds = initial_pos;
+ params.window_action = browser::NavigateParams::SHOW_WINDOW;
+ params.user_gesture = true;
+ browser::Navigate(&params);
+
+ return params.browser;
}
bool HtmlDialogTabContentsDelegate::IsPopupOrPanel(

Powered by Google App Engine
This is Rietveld 408576698