mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-08 04:09:03 +02:00
MozReview-Commit-ID: 67eb9v4blas --HG-- rename : browser/base/content/test/general/authenticate.sjs => browser/base/content/test/urlbar/authenticate.sjs rename : browser/base/content/test/general/browser_URLBarSetURI.js => browser/base/content/test/urlbar/browser_URLBarSetURI.js rename : browser/base/content/test/general/browser_action_keyword.js => browser/base/content/test/urlbar/browser_action_keyword.js rename : browser/base/content/test/general/browser_action_keyword_override.js => browser/base/content/test/urlbar/browser_action_keyword_override.js rename : browser/base/content/test/general/browser_action_searchengine.js => browser/base/content/test/urlbar/browser_action_searchengine.js rename : browser/base/content/test/general/browser_action_searchengine_alias.js => browser/base/content/test/urlbar/browser_action_searchengine_alias.js rename : browser/base/content/test/general/browser_autocomplete_a11y_label.js => browser/base/content/test/urlbar/browser_autocomplete_a11y_label.js rename : browser/base/content/test/general/browser_autocomplete_autoselect.js => browser/base/content/test/urlbar/browser_autocomplete_autoselect.js rename : browser/base/content/test/general/browser_autocomplete_cursor.js => browser/base/content/test/urlbar/browser_autocomplete_cursor.js rename : browser/base/content/test/general/browser_autocomplete_edit_completed.js => browser/base/content/test/urlbar/browser_autocomplete_edit_completed.js rename : browser/base/content/test/general/browser_autocomplete_enter_race.js => browser/base/content/test/urlbar/browser_autocomplete_enter_race.js rename : browser/base/content/test/general/browser_autocomplete_no_title.js => browser/base/content/test/urlbar/browser_autocomplete_no_title.js rename : browser/base/content/test/general/browser_autocomplete_oldschool_wrap.js => browser/base/content/test/urlbar/browser_autocomplete_oldschool_wrap.js rename : browser/base/content/test/general/browser_autocomplete_tag_star_visibility.js => browser/base/content/test/urlbar/browser_autocomplete_tag_star_visibility.js rename : browser/base/content/test/general/browser_bug1003461-switchtab-override.js => browser/base/content/test/urlbar/browser_bug1003461-switchtab-override.js rename : browser/base/content/test/general/browser_bug1024133-switchtab-override-keynav.js => browser/base/content/test/urlbar/browser_bug1024133-switchtab-override-keynav.js rename : browser/base/content/test/general/browser_bug1025195_switchToTabHavingURI_aOpenParams.js => browser/base/content/test/urlbar/browser_bug1025195_switchToTabHavingURI_aOpenParams.js rename : browser/base/content/test/general/browser_bug1070778.js => browser/base/content/test/urlbar/browser_bug1070778.js rename : browser/base/content/test/general/browser_bug1104165-switchtab-decodeuri.js => browser/base/content/test/urlbar/browser_bug1104165-switchtab-decodeuri.js rename : browser/base/content/test/general/browser_bug1225194-remotetab.js => browser/base/content/test/urlbar/browser_bug1225194-remotetab.js rename : browser/base/content/test/general/browser_bug304198.js => browser/base/content/test/urlbar/browser_bug304198.js rename : browser/base/content/test/general/browser_bug556061.js => browser/base/content/test/urlbar/browser_bug556061.js rename : browser/base/content/test/general/browser_bug562649.js => browser/base/content/test/urlbar/browser_bug562649.js rename : browser/base/content/test/general/browser_bug623155.js => browser/base/content/test/urlbar/browser_bug623155.js rename : browser/base/content/test/general/browser_bug783614.js => browser/base/content/test/urlbar/browser_bug783614.js rename : browser/base/content/test/general/browser_canonizeURL.js => browser/base/content/test/urlbar/browser_canonizeURL.js rename : browser/base/content/test/general/browser_locationBarCommand.js => browser/base/content/test/urlbar/browser_locationBarCommand.js rename : browser/base/content/test/general/browser_locationBarExternalLoad.js => browser/base/content/test/urlbar/browser_locationBarExternalLoad.js rename : browser/base/content/test/general/browser_removeUnsafeProtocolsFromURLBarPaste.js => browser/base/content/test/urlbar/browser_removeUnsafeProtocolsFromURLBarPaste.js rename : browser/base/content/test/general/browser_search_favicon.js => browser/base/content/test/urlbar/browser_search_favicon.js rename : browser/base/content/test/general/browser_tabMatchesInAwesomebar.js => browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js rename : browser/base/content/test/general/browser_tabMatchesInAwesomebar_perwindowpb.js => browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar_perwindowpb.js rename : browser/base/content/test/general/browser_urlHighlight.js => browser/base/content/test/urlbar/browser_urlHighlight.js rename : browser/base/content/test/general/browser_urlbarAutoFillTrimURLs.js => browser/base/content/test/urlbar/browser_urlbarAutoFillTrimURLs.js rename : browser/base/content/test/general/browser_urlbarCopying.js => browser/base/content/test/urlbar/browser_urlbarCopying.js rename : browser/base/content/test/general/browser_urlbarDecode.js => browser/base/content/test/urlbar/browser_urlbarDecode.js rename : browser/base/content/test/general/browser_urlbarDelete.js => browser/base/content/test/urlbar/browser_urlbarDelete.js rename : browser/base/content/test/general/browser_urlbarEnter.js => browser/base/content/test/urlbar/browser_urlbarEnter.js rename : browser/base/content/test/general/browser_urlbarEnterAfterMouseOver.js => browser/base/content/test/urlbar/browser_urlbarEnterAfterMouseOver.js rename : browser/base/content/test/general/browser_urlbarRevert.js => browser/base/content/test/urlbar/browser_urlbarRevert.js rename : browser/base/content/test/general/browser_urlbarSearchSingleWordNotification.js => browser/base/content/test/urlbar/browser_urlbarSearchSingleWordNotification.js rename : browser/base/content/test/general/browser_urlbarSearchSuggestions.js => browser/base/content/test/urlbar/browser_urlbarSearchSuggestions.js rename : browser/base/content/test/general/browser_urlbarSearchSuggestionsNotification.js => browser/base/content/test/urlbar/browser_urlbarSearchSuggestionsNotification.js rename : browser/base/content/test/general/browser_urlbarSearchTelemetry.js => browser/base/content/test/urlbar/browser_urlbarSearchTelemetry.js rename : browser/base/content/test/general/browser_urlbarStop.js => browser/base/content/test/urlbar/browser_urlbarStop.js rename : browser/base/content/test/general/browser_urlbarTrimURLs.js => browser/base/content/test/urlbar/browser_urlbarTrimURLs.js rename : browser/base/content/test/general/browser_urlbar_autoFill_backspaced.js => browser/base/content/test/urlbar/browser_urlbar_autoFill_backspaced.js rename : browser/base/content/test/general/browser_urlbar_searchsettings.js => browser/base/content/test/urlbar/browser_urlbar_searchsettings.js rename : browser/base/content/test/general/browser_wyciwyg_urlbarCopying.js => browser/base/content/test/urlbar/browser_wyciwyg_urlbarCopying.js rename : browser/base/content/test/general/dummy_page.html => browser/base/content/test/urlbar/dummy_page.html rename : browser/base/content/test/general/head.js => browser/base/content/test/urlbar/head.js rename : browser/base/content/test/general/moz.png => browser/base/content/test/urlbar/moz.png rename : browser/base/content/test/general/redirect_bug623155.sjs => browser/base/content/test/urlbar/redirect_bug623155.sjs rename : browser/base/content/test/general/searchSuggestionEngine.sjs => browser/base/content/test/urlbar/searchSuggestionEngine.sjs rename : browser/base/content/test/general/searchSuggestionEngine.xml => browser/base/content/test/urlbar/searchSuggestionEngine.xml rename : browser/base/content/test/general/test_wyciwyg_copying.html => browser/base/content/test/urlbar/test_wyciwyg_copying.html rename : browser/base/content/test/general/authenticate.sjs => toolkit/components/thumbnails/test/authenticate.sjs extra : rebase_source : 3c83a311373930cb962816cf61d84a8ee7c44c07 extra : amend_source : 9ed9e18817c591afb9b4d10fda724bb71dd80b26
136 lines
3.9 KiB
JavaScript
136 lines
3.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const REDIRECT_FROM = "https://example.com/browser/browser/base/content/test/urlbar/" +
|
|
"redirect_bug623155.sjs";
|
|
|
|
const REDIRECT_TO = "https://www.bank1.com/"; // Bad-cert host.
|
|
|
|
function isRedirectedURISpec(aURISpec) {
|
|
return isRedirectedURI(Services.io.newURI(aURISpec, null, null));
|
|
}
|
|
|
|
function isRedirectedURI(aURI) {
|
|
// Compare only their before-hash portion.
|
|
return Services.io.newURI(REDIRECT_TO, null, null)
|
|
.equalsExceptRef(aURI);
|
|
}
|
|
|
|
/*
|
|
Test.
|
|
|
|
1. Load
|
|
https://example.com/browser/browser/base/content/test/urlbar/redirect_bug623155.sjs#BG
|
|
in a background tab.
|
|
|
|
2. The redirected URI is <https://www.bank1.com/#BG>, which displayes a cert
|
|
error page.
|
|
|
|
3. Switch the tab to foreground.
|
|
|
|
4. Check the URLbar's value, expecting <https://www.bank1.com/#BG>
|
|
|
|
5. Load
|
|
https://example.com/browser/browser/base/content/test/urlbar/redirect_bug623155.sjs#FG
|
|
in the foreground tab.
|
|
|
|
6. The redirected URI is <https://www.bank1.com/#FG>. And this is also
|
|
a cert-error page.
|
|
|
|
7. Check the URLbar's value, expecting <https://www.bank1.com/#FG>
|
|
|
|
8. End.
|
|
|
|
*/
|
|
|
|
var gNewTab;
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
// Load a URI in the background.
|
|
gNewTab = gBrowser.addTab(REDIRECT_FROM + "#BG");
|
|
gBrowser.getBrowserForTab(gNewTab)
|
|
.webProgress
|
|
.addProgressListener(gWebProgressListener,
|
|
Components.interfaces.nsIWebProgress
|
|
.NOTIFY_LOCATION);
|
|
}
|
|
|
|
var gWebProgressListener = {
|
|
QueryInterface: function(aIID) {
|
|
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
|
|
aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
|
|
aIID.equals(Components.interfaces.nsISupports))
|
|
return this;
|
|
throw Components.results.NS_NOINTERFACE;
|
|
},
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// NOTIFY_LOCATION mode should work fine without these methods.
|
|
//
|
|
//onStateChange: function() {},
|
|
//onStatusChange: function() {},
|
|
//onProgressChange: function() {},
|
|
//onSecurityChange: function() {},
|
|
//----------------------------------------------------------------------------
|
|
|
|
onLocationChange: function(aWebProgress, aRequest, aLocation, aFlags) {
|
|
if (!aRequest) {
|
|
// This is bug 673752, or maybe initial "about:blank".
|
|
return;
|
|
}
|
|
|
|
ok(gNewTab, "There is a new tab.");
|
|
ok(isRedirectedURI(aLocation),
|
|
"onLocationChange catches only redirected URI.");
|
|
|
|
if (aLocation.ref == "BG") {
|
|
// This is background tab's request.
|
|
isnot(gNewTab, gBrowser.selectedTab, "This is a background tab.");
|
|
} else if (aLocation.ref == "FG") {
|
|
// This is foreground tab's request.
|
|
is(gNewTab, gBrowser.selectedTab, "This is a foreground tab.");
|
|
}
|
|
else {
|
|
// We shonuld not reach here.
|
|
ok(false, "This URI hash is not expected:" + aLocation.ref);
|
|
}
|
|
|
|
let isSelectedTab = gNewTab.selected;
|
|
setTimeout(delayed, 0, isSelectedTab);
|
|
}
|
|
};
|
|
|
|
function delayed(aIsSelectedTab) {
|
|
// Switch tab and confirm URL bar.
|
|
if (!aIsSelectedTab) {
|
|
gBrowser.selectedTab = gNewTab;
|
|
}
|
|
|
|
ok(isRedirectedURISpec(content.location.href),
|
|
"The content area is redirected. aIsSelectedTab:" + aIsSelectedTab);
|
|
is(gURLBar.value, content.location.href,
|
|
"The URL bar shows the content URI. aIsSelectedTab:" + aIsSelectedTab);
|
|
|
|
if (!aIsSelectedTab) {
|
|
// If this was a background request, go on a foreground request.
|
|
gBrowser.selectedBrowser.loadURI(REDIRECT_FROM + "#FG");
|
|
}
|
|
else {
|
|
// Othrewise, nothing to do remains.
|
|
finish();
|
|
}
|
|
}
|
|
|
|
/* Cleanup */
|
|
registerCleanupFunction(function() {
|
|
if (gNewTab) {
|
|
gBrowser.getBrowserForTab(gNewTab)
|
|
.webProgress
|
|
.removeProgressListener(gWebProgressListener);
|
|
|
|
gBrowser.removeTab(gNewTab);
|
|
}
|
|
gNewTab = null;
|
|
});
|