Bug 1444760 - Support only one form of loadURIWithFlags calls. r=dao

MozReview-Commit-ID: A5rMjQ6xnRw

--HG--
extra : rebase_source : 31166bca511e5bc16ffff2acab2e3295d9f6079c
This commit is contained in:
Tim Nguyen 2018-03-25 14:35:17 +02:00
parent 27703664b0
commit 5e399b2f06
18 changed files with 68 additions and 90 deletions

View File

@ -3171,9 +3171,9 @@ var BrowserOnClick = {
// 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,
@ -3296,7 +3296,7 @@ function BrowserReloadWithFlags(reloadFlags) {
// 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;
}
@ -5341,7 +5341,7 @@ nsBrowserAccess.prototype = {
Ci.nsIWebNavigation.LOAD_FLAGS_FROM_EXTERNAL :
Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
gBrowser.loadURIWithFlags(aURI.spec, {
aTriggeringPrincipal,
triggeringPrincipal: aTriggeringPrincipal,
flags: loadflags,
referrerURI: referrer,
referrerPolicy,

View File

@ -353,13 +353,8 @@ window._gBrowser = {
/**
* 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) {
@ -4716,4 +4711,3 @@ var StatusPanel = {
}
}
};

View File

@ -2313,22 +2313,10 @@
<!-- 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>
@ -2343,22 +2331,10 @@
<!-- 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>

View File

@ -77,7 +77,7 @@ var waitForLoad = async function(uri) {
// 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)) {

View File

@ -58,8 +58,9 @@ function replaceUrlInTab(gBrowser, tab, url) {
},
});
});
gBrowser.loadURIWithFlags(
url, {flags: Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY});
gBrowser.loadURIWithFlags(url, {
flags: Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY,
});
return loaded;
}

View File

@ -12,7 +12,7 @@ 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;
}

View File

@ -14,7 +14,7 @@ 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;
}

View File

@ -12,7 +12,7 @@ add_task(async function test() {
// 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.

View File

@ -17,7 +17,7 @@ async function openAndCloseTab(window, url) {
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;
}

View File

@ -239,9 +239,10 @@ var ContentSearch = {
// 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,

View File

@ -14,7 +14,7 @@ add_task(async function test_dataURI_unique_opaque_origin() {
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) {

View File

@ -22,7 +22,7 @@ function startTest() {
BrowserTestUtils.browserLoaded(browser, false, url).then(() => {
func();
});
browser.loadURIWithFlags(url, flags, null, null, null);
browser.loadURIWithFlags(url, { flags });
}
// Load a normal http URL
@ -68,4 +68,3 @@ function startTest() {
nextTest();
}

View File

@ -20,7 +20,10 @@ function test() {
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;

View File

@ -1172,7 +1172,12 @@ var BrowserApp = {
}
try {
aBrowser.loadURIWithFlags(aURI, flags, referrerURI, charset, postData);
aBrowser.loadURIWithFlags(aURI, {
flags,
referrerURI,
charset,
postData,
});
} catch(e) {
if (tab) {
let message = {
@ -3775,7 +3780,12 @@ Tab.prototype = {
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",

View File

@ -54,7 +54,7 @@ class GeckoViewNavigation extends GeckoViewModule {
this.browser.goForward();
break;
case "GeckoView:LoadUri":
const { uri, referrer, baseUri, flags } = aData;
const { uri, referrer, flags } = aData;
let navFlags = 0;
@ -75,9 +75,10 @@ class GeckoViewNavigation extends GeckoViewModule {
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();

View File

@ -321,7 +321,9 @@ function startAndLoadURI(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);
}

View File

@ -107,10 +107,13 @@
<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>
@ -118,37 +121,25 @@
<!-- 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>

View File

@ -2220,7 +2220,7 @@ var gDiscoverView = {
if (!aKeepHistory)
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
this._browser.loadURIWithFlags(aURL, flags);
this._browser.loadURIWithFlags(aURL, { flags });
},
onLocationChange(aWebProgress, aRequest, aLocation, aFlags) {