--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -3166,19 +3166,19 @@ var BrowserOnClick = {
break;
}
},
ignoreWarningLink(reason, blockedInfo) {
// Allow users to override and continue through to the site,
// but add a notify bar as a reminder, so that they don't lose
// track after, e.g., tab switching.
- gBrowser.loadURIWithFlags(gBrowser.currentURI.spec,
- Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CLASSIFIER,
- null, null, null);
+ gBrowser.loadURIWithFlags(gBrowser.currentURI.spec, {
+ flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CLASSIFIER,
+ });
Services.perms.add(gBrowser.currentURI, "safe-browsing",
Ci.nsIPermissionManager.ALLOW_ACTION,
Ci.nsIPermissionManager.EXPIRE_SESSION);
let buttons = [{
label: gNavigatorBundle.getString("safebrowsing.getMeOutOfHereButton.label"),
accessKey: gNavigatorBundle.getString("safebrowsing.getMeOutOfHereButton.accessKey"),
@@ -3291,17 +3291,17 @@ function getWebNavigation() {
}
function BrowserReloadWithFlags(reloadFlags) {
let url = gBrowser.currentURI.spec;
if (gBrowser.updateBrowserRemotenessByURL(gBrowser.selectedBrowser, url)) {
// If the remoteness has changed, the new browser doesn't have any
// information of what was loaded before, so we need to load the previous
// URL again.
- gBrowser.loadURIWithFlags(url, reloadFlags);
+ gBrowser.loadURIWithFlags(url, { flags: reloadFlags });
return;
}
// Do this after the above case where we might flip remoteness.
// Unfortunately, we'll count the remoteness flip case as a
// "newURL" load, since we're using loadURIWithFlags, but hopefully
// that's rare enough to not matter.
maybeRecordAbandonmentTelemetry(gBrowser.selectedTab, "reload");
@@ -5336,17 +5336,17 @@ nsBrowserAccess.prototype = {
break;
default : // OPEN_CURRENTWINDOW or an illegal value
newWindow = window.content;
if (aURI) {
let loadflags = isExternal ?
Ci.nsIWebNavigation.LOAD_FLAGS_FROM_EXTERNAL :
Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
gBrowser.loadURIWithFlags(aURI.spec, {
- aTriggeringPrincipal,
+ triggeringPrincipal: aTriggeringPrincipal,
flags: loadflags,
referrerURI: referrer,
referrerPolicy,
});
}
if (!Services.prefs.getBoolPref("browser.tabs.loadDivertedInBackground"))
window.focus();
}
--- a/browser/base/content/tabbrowser.js
+++ b/browser/base/content/tabbrowser.js
@@ -348,23 +348,18 @@ window._gBrowser = {
*/
loadURI(aURI, aReferrerURI, aCharset) {
return this.selectedBrowser.loadURI(aURI, aReferrerURI, aCharset);
},
/**
* throws exception for unknown schemes
*/
- loadURIWithFlags(aURI, aFlags, aReferrerURI, aCharset, aPostData) {
- // Note - the callee understands both:
- // (a) loadURIWithFlags(aURI, aFlags, ...)
- // (b) loadURIWithFlags(aURI, { flags: aFlags, ... })
- // Forwarding it as (a) here actually supports both (a) and (b),
- // so you can call us either way too.
- return this.selectedBrowser.loadURIWithFlags(aURI, aFlags, aReferrerURI, aCharset, aPostData);
+ loadURIWithFlags(aURI, aParams) {
+ return this.mCurrentBrowser.loadURIWithFlags(aURI, aParams);
},
gotoIndex(aIndex) {
return this.selectedBrowser.gotoIndex(aIndex);
},
get currentURI() {
return this.selectedBrowser.currentURI;
@@ -4711,9 +4706,8 @@ var StatusPanel = {
}
if (!this.panel.hasAttribute("sizelimit")) {
this.panel.setAttribute("sizelimit", "true");
this._mouseTargetRect = null;
}
}
};
-
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -2308,61 +2308,37 @@
<binding id="tabbrowser-browser"
extends="chrome://global/content/bindings/browser.xml#browser">
<implementation>
<field name="tabModalPromptBox">null</field>
<!-- throws exception for unknown schemes -->
<method name="loadURIWithFlags">
<parameter name="aURI"/>
- <parameter name="aFlags"/>
- <parameter name="aReferrerURI"/>
- <parameter name="aCharset"/>
- <parameter name="aPostData"/>
+ <parameter name="aParams"/>
<body>
<![CDATA[
- var params = arguments[1];
- if (typeof(params) == "number") {
- params = {
- flags: aFlags,
- referrerURI: aReferrerURI,
- charset: aCharset,
- postData: aPostData,
- };
- }
- _loadURIWithFlags(this, aURI, params);
+ _loadURIWithFlags(this, aURI, aParams);
]]>
</body>
</method>
</implementation>
</binding>
<binding id="tabbrowser-remote-browser"
extends="chrome://global/content/bindings/remote-browser.xml#remote-browser">
<implementation>
<field name="tabModalPromptBox">null</field>
<!-- throws exception for unknown schemes -->
<method name="loadURIWithFlags">
<parameter name="aURI"/>
- <parameter name="aFlags"/>
- <parameter name="aReferrerURI"/>
- <parameter name="aCharset"/>
- <parameter name="aPostData"/>
+ <parameter name="aParams"/>
<body>
<![CDATA[
- var params = arguments[1];
- if (typeof(params) == "number") {
- params = {
- flags: aFlags,
- referrerURI: aReferrerURI,
- charset: aCharset,
- postData: aPostData,
- };
- }
- _loadURIWithFlags(this, aURI, params);
+ _loadURIWithFlags(this, aURI, aParams);
]]>
</body>
</method>
</implementation>
</binding>
</bindings>
--- a/browser/base/content/test/general/browser_e10s_switchbrowser.js
+++ b/browser/base/content/test/general/browser_e10s_switchbrowser.js
@@ -72,17 +72,17 @@ var waitForLoad = async function(uri) {
uri: gBrowser.currentURI.spec,
title: gBrowser.contentTitle
});
};
// Waits for a load and updates the known history
var waitForLoadWithFlags = async function(uri, flags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE) {
info("Loading " + uri + " flags = " + flags);
- gBrowser.selectedBrowser.loadURIWithFlags(uri, flags, null, null, null);
+ gBrowser.selectedBrowser.loadURIWithFlags(uri, { flags });
await BrowserTestUtils.browserStopped(gBrowser);
if (!(flags & Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY)) {
if (flags & Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY) {
gExpectedHistory.entries.pop();
} else {
gExpectedHistory.index++;
--- a/browser/components/extensions/ext-url-overrides.js
+++ b/browser/components/extensions/ext-url-overrides.js
@@ -53,18 +53,19 @@ function replaceUrlInTab(gBrowser, tab,
&& browser.ownerGlobal.gBrowser.getTabForBrowser(browser) == tab
&& locationURI.spec == url) {
windowTracker.removeListener(this);
resolve();
}
},
});
});
- gBrowser.loadURIWithFlags(
- url, {flags: Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY});
+ gBrowser.loadURIWithFlags(url, {
+ flags: Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY,
+ });
return loaded;
}
async function handleNewTabOpened() {
// We don't need to open the doorhanger again until the controlling add-on changes.
// eslint-disable-next-line no-use-before-define
removeNewTabObserver();
--- a/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_tabs.js
+++ b/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_tabs.js
@@ -7,17 +7,17 @@
const MAX_TABS_UNDO_PREF = "browser.sessionstore.max_tabs_undo";
const TOPIC = "sessionstore-closed-objects-changed";
let notificationsCount = 0;
async function openWindow(url) {
let win = await promiseNewWindowLoaded();
let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
- win.gBrowser.selectedBrowser.loadURIWithFlags(url, flags);
+ win.gBrowser.selectedBrowser.loadURIWithFlags(url, { flags });
await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, url);
return win;
}
async function closeWindow(win) {
await awaitNotification(() => BrowserTestUtils.closeWindow(win));
}
--- a/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_windows.js
+++ b/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_windows.js
@@ -9,17 +9,17 @@ requestLongerTimeout(2);
const MAX_WINDOWS_UNDO_PREF = "browser.sessionstore.max_windows_undo";
const TOPIC = "sessionstore-closed-objects-changed";
let notificationsCount = 0;
async function openWindow(url) {
let win = await promiseNewWindowLoaded();
let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
- win.gBrowser.selectedBrowser.loadURIWithFlags(url, flags);
+ win.gBrowser.selectedBrowser.loadURIWithFlags(url, { flags });
await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, url);
return win;
}
async function closeWindow(win) {
await awaitNotification(() => BrowserTestUtils.closeWindow(win));
}
--- a/browser/components/sessionstore/test/browser_dying_cache.js
+++ b/browser/components/sessionstore/test/browser_dying_cache.js
@@ -7,17 +7,17 @@
*/
add_task(async function test() {
// Open a new window.
let win = await promiseNewWindowLoaded();
// Load some URL in the current tab.
let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
- win.gBrowser.selectedBrowser.loadURIWithFlags("about:robots", flags);
+ win.gBrowser.selectedBrowser.loadURIWithFlags("about:robots", { flags });
await promiseBrowserLoaded(win.gBrowser.selectedBrowser);
// Open a second tab and close the first one.
let tab = win.gBrowser.addTab("about:mozilla");
await promiseBrowserLoaded(tab.linkedBrowser);
await TabStateFlusher.flush(tab.linkedBrowser);
await promiseRemoveTabAndSessionState(win.gBrowser.tabs[0]);
--- a/browser/components/sessionstore/test/browser_undoCloseById.js
+++ b/browser/components/sessionstore/test/browser_undoCloseById.js
@@ -12,17 +12,17 @@ async function openAndCloseTab(window, u
await promiseBrowserLoaded(tab.linkedBrowser, true, url);
await TabStateFlusher.flush(tab.linkedBrowser);
await promiseRemoveTabAndSessionState(tab);
}
async function openWindow(url) {
let win = await promiseNewWindowLoaded();
let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
- win.gBrowser.selectedBrowser.loadURIWithFlags(url, flags);
+ win.gBrowser.selectedBrowser.loadURIWithFlags(url, { flags });
await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, url);
return win;
}
async function closeWindow(win) {
await BrowserTestUtils.closeWindow(win);
// Wait 20 ms to allow SessionStorage a chance to register the closed window.
await new Promise(resolve => setTimeout(resolve, 20));
--- a/browser/modules/ContentSearch.jsm
+++ b/browser/modules/ContentSearch.jsm
@@ -234,19 +234,20 @@ var ContentSearch = {
// has switched away from the tab that triggered the search. If, based on the
// event, we need to load the search in the same tab that triggered it (i.e.
// where === "current"), openUILinkIn will not work because that tab is no
// longer the current one. For this case we manually load the URI.
if (where === "current") {
// Since we're going to load the search in the same browser, blur the search
// UI to prevent further interaction before we start loading.
this._reply(msg, "Blur");
- browser.loadURIWithFlags(submission.uri.spec,
- Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null,
- submission.postData);
+ browser.loadURIWithFlags(submission.uri.spec, {
+ flags: Ci.nsIWebNavigation.LOAD_FLAGS_NONE,
+ postData: submission.postData
+ });
} else {
let params = {
postData: submission.postData,
inBackground: Services.prefs.getBoolPref("browser.tabs.loadInBackground"),
};
win.openUILinkIn(submission.uri.spec, where, params);
}
win.BrowserSearch.recordSearchInTelemetry(engine, data.healthReportKey,
--- a/docshell/test/browser/browser_dataURI_unique_opaque_origin.js
+++ b/docshell/test/browser/browser_dataURI_unique_opaque_origin.js
@@ -9,17 +9,17 @@ add_task(async function setup() {
add_task(async function test_dataURI_unique_opaque_origin() {
let tab = BrowserTestUtils.addTab(gBrowser, "http://example.com");
let browser = tab.linkedBrowser;
await BrowserTestUtils.browserLoaded(browser);
let pagePrincipal = browser.contentPrincipal;
info("pagePrincial " + pagePrincipal.origin);
- browser.loadURIWithFlags("data:text/html,hi", 0, null, null, null);
+ browser.loadURI("data:text/html,hi");
await BrowserTestUtils.browserLoaded(browser);
await ContentTask.spawn(browser, { principal: pagePrincipal }, async function(args) {
info("data URI principal: " + content.document.nodePrincipal.origin);
Assert.ok(content.document.nodePrincipal.isNullPrincipal,
"data: URI should have NullPrincipal.");
Assert.ok(!content.document.nodePrincipal.equals(args.principal),
"data: URI should have unique opaque origin.");
--- a/docshell/test/browser/browser_loadDisallowInherit.js
+++ b/docshell/test/browser/browser_loadDisallowInherit.js
@@ -17,17 +17,17 @@ function startTest() {
let tab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
let browser = gBrowser.getBrowserForTab(tab);
function loadURL(url, flags, func) {
BrowserTestUtils.browserLoaded(browser, false, url).then(() => {
func();
});
- browser.loadURIWithFlags(url, flags, null, null, null);
+ browser.loadURIWithFlags(url, { flags });
}
// Load a normal http URL
function testURL(url, func) {
loadURL("http://example.com/", 0, function () {
let pagePrincipal = browser.contentPrincipal;
ok(pagePrincipal, "got principal for http:// page");
@@ -63,9 +63,8 @@ function startTest() {
} else {
gBrowser.removeTab(tab);
finish();
}
}
nextTest();
}
-
--- a/docshell/test/browser/browser_loadURI.js
+++ b/docshell/test/browser/browser_loadURI.js
@@ -15,16 +15,19 @@ function test() {
createInstance(Ci.nsIStringInputStream);
dataStream.data = gPostData;
var postStream = Cc["@mozilla.org/network/mime-input-stream;1"].
createInstance(Ci.nsIMIMEInputStream);
postStream.addHeader("Content-Type", "application/x-www-form-urlencoded");
postStream.setData(dataStream);
- tab.linkedBrowser.loadURIWithFlags("http://mochi.test:8888/browser/docshell/test/browser/print_postdata.sjs", 0, null, null, postStream);
+ tab.linkedBrowser.loadURIWithFlags("http://mochi.test:8888/browser/docshell/test/browser/print_postdata.sjs", {
+ flags: 0,
+ postData: postStream,
+ });
BrowserTestUtils.browserLoaded(tab.linkedBrowser).then(() => {
ContentTask.spawn(tab.linkedBrowser, gPostData, function(postData) {
var bodyText = content.document.body.textContent;
is(bodyText, postData, "post data was submitted correctly");
}).then(() => { finish(); });
});
}
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -1167,17 +1167,22 @@ var BrowserApp = {
let tab = this.getTabForBrowser(aBrowser);
if (tab) {
if ("userRequested" in aParams) tab.userRequested = aParams.userRequested;
tab.isSearch = ("isSearch" in aParams) ? aParams.isSearch : false;
}
try {
- aBrowser.loadURIWithFlags(aURI, flags, referrerURI, charset, postData);
+ aBrowser.loadURIWithFlags(aURI, {
+ flags,
+ referrerURI,
+ charset,
+ postData,
+ });
} catch(e) {
if (tab) {
let message = {
type: "Content:LoadError",
tabID: tab.id
};
GlobalEventDispatcher.sendRequest(message);
dump("Handled load error: " + e)
@@ -3770,17 +3775,22 @@ Tab.prototype = {
let referrerURI = "referrerURI" in aParams ? aParams.referrerURI : null;
let charset = "charset" in aParams ? aParams.charset : null;
// The search term the user entered to load the current URL
this.userRequested = "userRequested" in aParams ? aParams.userRequested : "";
this.isSearch = "isSearch" in aParams ? aParams.isSearch : false;
try {
- this.browser.loadURIWithFlags(aURL, flags, referrerURI, charset, postData);
+ this.browser.loadURIWithFlags(aURL, {
+ flags,
+ referrerURI,
+ charset,
+ postData,
+ });
} catch(e) {
let message = {
type: "Content:LoadError",
tabID: this.id
};
GlobalEventDispatcher.sendRequest(message);
dump("Handled load error: " + e);
}
--- a/mobile/android/modules/geckoview/GeckoViewNavigation.jsm
+++ b/mobile/android/modules/geckoview/GeckoViewNavigation.jsm
@@ -49,17 +49,17 @@ class GeckoViewNavigation extends GeckoV
switch (aEvent) {
case "GeckoView:GoBack":
this.browser.goBack();
break;
case "GeckoView:GoForward":
this.browser.goForward();
break;
case "GeckoView:LoadUri":
- const { uri, referrer, baseUri, flags } = aData;
+ const { uri, referrer, flags } = aData;
let navFlags = 0;
// These need to match the values in GeckoSession.LOAD_TYPE_*
if (flags & (1 << 0)) {
navFlags |= Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE;
}
@@ -70,19 +70,20 @@ class GeckoViewNavigation extends GeckoV
if (flags & (1 << 2)) {
navFlags |= Ci.nsIWebNavigation.LOAD_FLAGS_EXTERNAL;
}
if (flags & (1 << 3)) {
navFlags |= Ci.nsIWebNavigation.LOAD_FLAGS_ALLOW_POPUPS;
}
- this.browser.loadURIWithFlags(uri, navFlags, referrer || null,
- baseUri ? Services.io.newURI(baseUri) : null,
- /* nsIPrincipal */ null);
+ this.browser.loadURIWithFlags(uri, {
+ flags: navFlags,
+ referrerURI: referrer,
+ });
break;
case "GeckoView:Reload":
this.browser.reload();
break;
case "GeckoView:Stop":
this.browser.stop();
break;
}
--- a/testing/talos/talos/pageloader/chrome/pageloader.js
+++ b/testing/talos/talos/pageloader/chrome/pageloader.js
@@ -316,17 +316,19 @@ function startAndLoadURI(pageName) {
// Resume the profiler because we're really measuring page load time.
// If the test is doing its own timing, it'll also need to do its own
// profiler pausing / resuming.
TalosParentProfiler.resume("Starting to load URI " + pageName);
}
start_time = Date.now();
if (loadNoCache) {
- content.loadURIWithFlags(pageName, Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE);
+ content.loadURIWithFlags(pageName, {
+ flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE
+ });
} else {
content.loadURI(pageName);
}
}
function getTestName() { // returns tp5n
var pageName = pages[pageIndex].url.spec;
let parts = pageName.split("/");
--- a/toolkit/content/widgets/browser.xml
+++ b/toolkit/content/widgets/browser.xml
@@ -102,58 +102,49 @@
<!-- throws exception for unknown schemes -->
<method name="loadURI">
<parameter name="aURI"/>
<parameter name="aReferrerURI"/>
<parameter name="aCharset"/>
<body>
<![CDATA[
- const nsIWebNavigation = Ci.nsIWebNavigation;
- const flags = nsIWebNavigation.LOAD_FLAGS_NONE;
this._wrapURIChangeCall(() =>
- this.loadURIWithFlags(aURI, flags, aReferrerURI, aCharset));
+ this.loadURIWithFlags(aURI, {
+ flags: Ci.nsIWebNavigation.LOAD_FLAGS_NONE,
+ referrerURI: aReferrerURI,
+ charset: aCharset,
+ })
+ );
]]>
</body>
</method>
<!-- throws exception for unknown schemes -->
<method name="loadURIWithFlags">
<parameter name="aURI"/>
- <parameter name="aFlags"/>
- <parameter name="aReferrerURI"/>
- <parameter name="aCharset"/>
- <parameter name="aPostData"/>
+ <parameter name="aParams"/>
<body>
<![CDATA[
- if (!aURI)
+ if (!aURI) {
aURI = "about:blank";
-
- var aReferrerPolicy = Ci.nsIHttpChannel.REFERRER_POLICY_UNSET;
- var aTriggeringPrincipal;
+ }
- // Check for loadURIWithFlags(uri, { ... });
- var params = arguments[1];
- if (params && typeof(params) == "object") {
- aFlags = params.flags;
- aReferrerURI = params.referrerURI;
- if ("referrerPolicy" in params) {
- aReferrerPolicy = params.referrerPolicy;
- }
- if ("triggeringPrincipal" in params) {
- aTriggeringPrincipal = params.triggeringPrincipal;
- }
- aCharset = params.charset;
- aPostData = params.postData;
- }
+ let {
+ flags,
+ referrerURI,
+ referrerPolicy = Ci.nsIHttpChannel.REFERRER_POLICY_UNSET,
+ triggeringPrincipal,
+ postData,
+ } = aParams;
this._wrapURIChangeCall(() =>
this.webNavigation.loadURIWithOptions(
- aURI, aFlags, aReferrerURI, aReferrerPolicy,
- aPostData, null, null, aTriggeringPrincipal));
+ aURI, flags, referrerURI, referrerPolicy,
+ postData, null, null, triggeringPrincipal));
]]>
</body>
</method>
<method name="gotoIndex">
<parameter name="aIndex"/>
<body>
<![CDATA[
--- a/toolkit/mozapps/extensions/content/extensions.js
+++ b/toolkit/mozapps/extensions/content/extensions.js
@@ -2215,17 +2215,17 @@ var gDiscoverView = {
if (aCallback)
this._loadListeners.push(aCallback);
var flags = 0;
if (!aKeepHistory)
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
- this._browser.loadURIWithFlags(aURL, flags);
+ this._browser.loadURIWithFlags(aURL, { flags });
},
onLocationChange(aWebProgress, aRequest, aLocation, aFlags) {
// Ignore the about:blank load
if (aLocation.spec == "about:blank")
return;
// When using the real session history the inner-frame will update the