Commit fdadc5fd authored by gogerald's avatar gogerald Committed by Commit Bot

[Payments] Open new foreground tab triggered by user in payment handler window in browser

Bug: 856743
Change-Id: Icee41ddd6bd4d593ae19b12ac601644d0a004be1
Reviewed-on: https://chromium-review.googlesource.com/1115803
Commit-Queue: Ganggui Tang <gogerald@chromium.org>
Reviewed-by: default avatarMathieu Perreault <mathp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570796}
parent 83430576
......@@ -11,6 +11,8 @@
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/payments/ssl_validity_checker.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/views/payments/payment_request_dialog_view.h"
#include "chrome/browser/ui/views/payments/payment_request_views_util.h"
#include "chrome/grit/generated_resources.h"
......@@ -256,6 +258,23 @@ void PaymentHandlerWebFlowViewController::DidStartNavigation(
UpdateHeaderView();
}
void PaymentHandlerWebFlowViewController::AddNewContents(
content::WebContents* source,
std::unique_ptr<content::WebContents> new_contents,
WindowOpenDisposition disposition,
const gfx::Rect& initial_rect,
bool user_gesture,
bool* was_blocked) {
// Open new foreground tab triggered by user activation in payment handler
// window in browser.
Browser* browser = chrome::FindLastActiveWithProfile(profile_);
if (browser && user_gesture &&
disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB) {
chrome::AddWebContents(browser, source, std::move(new_contents),
disposition, initial_rect);
}
}
void PaymentHandlerWebFlowViewController::DidFinishNavigation(
content::NavigationHandle* navigation_handle) {
if (navigation_handle->IsSameDocument())
......
......@@ -9,6 +9,8 @@
#include "components/payments/content/payment_request_display_manager.h"
#include "content/public/browser/web_contents_delegate.h"
#include "content/public/browser/web_contents_observer.h"
#include "ui/base/window_open_disposition.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/views/controls/progress_bar.h"
#include "ui/views/controls/separator.h"
#include "url/gurl.h"
......@@ -57,6 +59,12 @@ class PaymentHandlerWebFlowViewController
void LoadProgressChanged(content::WebContents* source,
double progress) override;
void VisibleSecurityStateChanged(content::WebContents* source) override;
void AddNewContents(content::WebContents* source,
std::unique_ptr<content::WebContents> new_contents,
WindowOpenDisposition disposition,
const gfx::Rect& initial_rect,
bool user_gesture,
bool* was_blocked) override;
// content::WebContentsObserver:
void DidStartNavigation(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment