| Index: chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.cc
|
| diff --git a/chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.cc b/chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.cc
|
| index 34631a1282eccff99ab0e531fd8ddd06dda56a77..78ff1c6326c2e1fee3d36b379463a326b1c5edd4 100644
|
| --- a/chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.cc
|
| +++ b/chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.cc
|
| @@ -7,6 +7,9 @@
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/metrics/user_metrics.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/browser_navigator.h"
|
| +#include "chrome/browser/ui/browser_navigator_params.h"
|
| +#include "content/public/browser/page_navigator.h"
|
| #include "content/public/browser/render_view_host.h"
|
| #include "content/public/browser/render_widget_host.h"
|
| #include "content/public/browser/web_contents.h"
|
| @@ -59,7 +62,8 @@ AnswerCardWebContents::AnswerCardWebContents(Profile* profile)
|
| profile,
|
| content::SiteInstance::Create(profile)))),
|
| mouse_event_callback_(base::Bind(&AnswerCardWebContents::HandleMouseEvent,
|
| - base::Unretained(this))) {
|
| + base::Unretained(this))),
|
| + profile_(profile) {
|
| content::RendererPreferences* renderer_prefs =
|
| web_contents_->GetMutableRendererPrefs();
|
| renderer_prefs->can_accept_load_drops = false;
|
| @@ -117,7 +121,26 @@ content::WebContents* AnswerCardWebContents::OpenURLFromTab(
|
| if (!params.user_gesture)
|
| return WebContentsDelegate::OpenURLFromTab(source, params);
|
|
|
| - return delegate()->OpenURLFromTab(params);
|
| + // Open the user-clicked link in the browser taking into account the requested
|
| + // disposition.
|
| + chrome::NavigateParams new_tab_params(profile_, params.url,
|
| + params.transition);
|
| +
|
| + new_tab_params.disposition = params.disposition;
|
| +
|
| + if (params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB) {
|
| + // When the user asks to open a link as a background tab, we show an
|
| + // activated window with the new activated tab after the user closes the
|
| + // launcher. So it's "background" relative to the launcher itself.
|
| + new_tab_params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
|
| + new_tab_params.window_action = chrome::NavigateParams::SHOW_WINDOW_INACTIVE;
|
| + }
|
| +
|
| + chrome::Navigate(&new_tab_params);
|
| +
|
| + base::RecordAction(base::UserMetricsAction("SearchAnswer_OpenedUrl"));
|
| +
|
| + return new_tab_params.target_contents;
|
| }
|
|
|
| bool AnswerCardWebContents::HandleContextMenu(
|
|
|