From 54949e252fcca82fa1faa38967415f8ac00f3cb8 Mon Sep 17 00:00:00 2001 From: Johann Hofmann Date: Fri, 10 Jan 2020 12:45:38 +0000 Subject: [PATCH] Bug 353933 - Make OnOverlink use CreateExposableURI. r=bzbarsky Differential Revision: https://phabricator.services.mozilla.com/D59428 --HG-- extra : moz-landing-system : lando --- docshell/base/nsDocShell.cpp | 6 ++++- docshell/test/browser/browser.ini | 3 +++ docshell/test/browser/browser_overlink.js | 27 +++++++++++++++++++++++ docshell/test/browser/overlink_test.html | 7 ++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 docshell/test/browser/browser_overlink.js create mode 100644 docshell/test/browser/overlink_test.html diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index 564571fe7bbe..d22b344a10f1 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -12445,8 +12445,12 @@ nsresult nsDocShell::OnOverLink(nsIContent* aContent, nsIURI* aURI, return rv; } + nsCOMPtr exposableURI; + rv = sURIFixup->CreateExposableURI(aURI, getter_AddRefs(exposableURI)); + NS_ENSURE_SUCCESS(rv, rv); + nsAutoCString spec; - rv = aURI->GetDisplaySpec(spec); + rv = exposableURI->GetDisplaySpec(spec); NS_ENSURE_SUCCESS(rv, rv); NS_ConvertUTF8toUTF16 uStr(spec); diff --git a/docshell/test/browser/browser.ini b/docshell/test/browser/browser.ini index 6e77efce3cdf..0c7196ab9450 100644 --- a/docshell/test/browser/browser.ini +++ b/docshell/test/browser/browser.ini @@ -123,6 +123,9 @@ support-files = [browser_multiple_pushState.js] [browser_onbeforeunload_navigation.js] skip-if = (os == 'win' && !debug) # bug 1300351 +[browser_overlink.js] +support-files = + overlink_test.html [browser_search_notification.js] [browser_tab_touch_events.js] [browser_timelineMarkers-01.js] diff --git a/docshell/test/browser/browser_overlink.js b/docshell/test/browser/browser_overlink.js new file mode 100644 index 000000000000..64973985ad5e --- /dev/null +++ b/docshell/test/browser/browser_overlink.js @@ -0,0 +1,27 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const TEST_PATH = getRootDirectory(gTestPath).replace( + "chrome://mochitests/content", + "https://example.com" +); + +add_task(async function test_stripAuthCredentials() { + await BrowserTestUtils.withNewTab( + TEST_PATH + "overlink_test.html", + async function(browser) { + await SpecialPowers.spawn(browser, [], function() { + content.document.getElementById("link").focus(); + }); + + await TestUtils.waitForCondition( + () => XULBrowserWindow.overLink == "https://example.com", + "Overlink should be missing auth credentials" + ); + + ok(true, "Test successful"); + } + ); +}); diff --git a/docshell/test/browser/overlink_test.html b/docshell/test/browser/overlink_test.html new file mode 100644 index 000000000000..5efd6893115b --- /dev/null +++ b/docshell/test/browser/overlink_test.html @@ -0,0 +1,7 @@ + + + + + Link + +