portalHelper: Fix portals which require a new window to be loaded

https://bugzilla.gnome.org/show_bug.cgi?id=759044
This commit is contained in:
Catalin Iacob 2017-03-24 18:57:29 +01:00 committed by Bastien Nocera
parent a0c31478c0
commit 8369dc6b64

View File

@ -215,6 +215,18 @@ const PortalWindow = new Lang.Class({
_onDecidePolicy: function(view, decision, type) {
if (type == WebKit.PolicyDecisionType.NEW_WINDOW_ACTION) {
let navigationAction = decision.get_navigation_action();
if (navigationAction.is_user_gesture()) {
// Even though the portal asks for a new window,
// perform the navigation in the current one. Some
// portals open a window as their last login step and
// ignoring that window causes them to not let the
// user go through. We don't risk popups taking over
// the page because we check that the navigation is
// user initiated.
this._webView.load_request(navigationAction.get_request());
}
decision.ignore();
return true;
}