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

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..706f9467ad157218712282eb8ceb0eadd84c8ce1 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,74 @@ 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, WebContents* source, const OpenURLParams& params,
+ WebContents** out_new_contents) {
+ 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;
+ 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(
« no previous file with comments | « chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h ('k') | chrome/browser/ui/webui/html_dialog_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698