Customize: Fix HTTPS navigation of site in preview on IE11.

Accounts for HTTPS links (port 443) where [40318] only accounted for HTTP links (port 80). Addresses issue in IE11 where the default port number is unexpectedly included on `link.host` for links dynamically created by scripts.

Props mattwiebe.
Amends [40318], [38890].
See #38409.
Fixes #40198.

Merges [40381] to the 4.7 branch.


git-svn-id: https://develop.svn.wordpress.org/branches/4.7@40386 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Pascal Birchler 2017-04-06 17:32:17 +00:00
parent d6bf6a5261
commit c7c37590f9
2 changed files with 3 additions and 3 deletions

View File

@ -655,7 +655,7 @@ window.wp = window.wp || {};
var urlParser = document.createElement( 'a' );
urlParser.href = to;
// Port stripping needed by IE since it adds to host but not to event.origin.
return urlParser.protocol + '//' + urlParser.host.replace( /:80$/, '' );
return urlParser.protocol + '//' + urlParser.host.replace( /:(80|443)$/, '' );
});
// first add with no value

View File

@ -286,11 +286,11 @@
return false;
}
elementHost = element.host.replace( /:80$/, '' );
elementHost = element.host.replace( /:(80|443)$/, '' );
parsedAllowedUrl = document.createElement( 'a' );
matchesAllowedUrl = ! _.isUndefined( _.find( api.settings.url.allowed, function( allowedUrl ) {
parsedAllowedUrl.href = allowedUrl;
return parsedAllowedUrl.protocol === element.protocol && parsedAllowedUrl.host.replace( /:80$/, '' ) === elementHost && 0 === element.pathname.indexOf( parsedAllowedUrl.pathname.replace( /\/$/, '' ) );
return parsedAllowedUrl.protocol === element.protocol && parsedAllowedUrl.host.replace( /:(80|443)$/, '' ) === elementHost && 0 === element.pathname.indexOf( parsedAllowedUrl.pathname.replace( /\/$/, '' ) );
} ) );
if ( ! matchesAllowedUrl ) {
return false;