Bug 1770944 - Remove isInIsolatedMozBrowserElement. r=smaug,necko-reviewers,kershaw,valentin
Depends on D183229 Differential Revision: https://phabricator.services.mozilla.com/D183230
This commit is contained in:
@@ -1190,13 +1190,6 @@ BasePrincipal::GetPrivateBrowsingId(uint32_t* aPrivateBrowsingId) {
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
BasePrincipal::GetIsInIsolatedMozBrowserElement(
|
|
||||||
bool* aIsInIsolatedMozBrowserElement) {
|
|
||||||
*aIsInIsolatedMozBrowserElement = IsInIsolatedMozBrowserElement();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult BasePrincipal::GetAddonPolicy(
|
nsresult BasePrincipal::GetAddonPolicy(
|
||||||
extensions::WebExtensionPolicy** aResult) {
|
extensions::WebExtensionPolicy** aResult) {
|
||||||
AssertIsOnMainThread();
|
AssertIsOnMainThread();
|
||||||
|
|||||||
@@ -163,8 +163,6 @@ class BasePrincipal : public nsJSPrincipals {
|
|||||||
NS_IMETHOD GetIsIpAddress(bool* aIsIpAddress) override;
|
NS_IMETHOD GetIsIpAddress(bool* aIsIpAddress) override;
|
||||||
NS_IMETHOD GetIsLocalIpAddress(bool* aIsIpAddress) override;
|
NS_IMETHOD GetIsLocalIpAddress(bool* aIsIpAddress) override;
|
||||||
NS_IMETHOD GetIsOnion(bool* aIsOnion) override;
|
NS_IMETHOD GetIsOnion(bool* aIsOnion) override;
|
||||||
NS_IMETHOD GetIsInIsolatedMozBrowserElement(
|
|
||||||
bool* aIsInIsolatedMozBrowserElement) final;
|
|
||||||
NS_IMETHOD GetUserContextId(uint32_t* aUserContextId) final;
|
NS_IMETHOD GetUserContextId(uint32_t* aUserContextId) final;
|
||||||
NS_IMETHOD GetPrivateBrowsingId(uint32_t* aPrivateBrowsingId) final;
|
NS_IMETHOD GetPrivateBrowsingId(uint32_t* aPrivateBrowsingId) final;
|
||||||
NS_IMETHOD GetSiteOrigin(nsACString& aSiteOrigin) final;
|
NS_IMETHOD GetSiteOrigin(nsACString& aSiteOrigin) final;
|
||||||
@@ -250,9 +248,6 @@ class BasePrincipal : public nsJSPrincipals {
|
|||||||
uint32_t PrivateBrowsingId() const {
|
uint32_t PrivateBrowsingId() const {
|
||||||
return mOriginAttributes.mPrivateBrowsingId;
|
return mOriginAttributes.mPrivateBrowsingId;
|
||||||
}
|
}
|
||||||
bool IsInIsolatedMozBrowserElement() const {
|
|
||||||
return mOriginAttributes.mInIsolatedMozBrowser;
|
|
||||||
}
|
|
||||||
|
|
||||||
PrincipalKind Kind() const { return mKind; }
|
PrincipalKind Kind() const { return mKind; }
|
||||||
|
|
||||||
|
|||||||
@@ -586,17 +586,6 @@ interface nsIPrincipal : nsISupports
|
|||||||
*/
|
*/
|
||||||
[infallible] readonly attribute unsigned long privateBrowsingId;
|
[infallible] readonly attribute unsigned long privateBrowsingId;
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true iff the principal is inside an isolated mozbrowser element.
|
|
||||||
* <xul:browser> is not considered to be a mozbrowser element.
|
|
||||||
* <iframe mozbrowser noisolation> does not count as isolated since
|
|
||||||
* isolation is disabled. Isolation can only be disabled if the
|
|
||||||
* containing document is chrome.
|
|
||||||
*
|
|
||||||
* May be called from any thread.
|
|
||||||
*/
|
|
||||||
[infallible] readonly attribute boolean isInIsolatedMozBrowserElement;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true iff this is a null principal (corresponding to an
|
* Returns true iff this is a null principal (corresponding to an
|
||||||
* unknown, hence assumed minimally privileged, security context).
|
* unknown, hence assumed minimally privileged, security context).
|
||||||
|
|||||||
@@ -308,17 +308,6 @@ nsresult GetPrincipalFromOrigin(const nsACString& aOrigin, bool aForceStripOA,
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult GetPrincipal(nsIURI* aURI, bool aIsInIsolatedMozBrowserElement,
|
|
||||||
nsIPrincipal** aPrincipal) {
|
|
||||||
OriginAttributes attrs(aIsInIsolatedMozBrowserElement);
|
|
||||||
nsCOMPtr<nsIPrincipal> principal =
|
|
||||||
BasePrincipal::CreateContentPrincipal(aURI, attrs);
|
|
||||||
NS_ENSURE_TRUE(principal, NS_ERROR_FAILURE);
|
|
||||||
|
|
||||||
principal.forget(aPrincipal);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult GetPrincipal(nsIURI* aURI, nsIPrincipal** aPrincipal) {
|
nsresult GetPrincipal(nsIURI* aURI, nsIPrincipal** aPrincipal) {
|
||||||
OriginAttributes attrs;
|
OriginAttributes attrs;
|
||||||
nsCOMPtr<nsIPrincipal> principal =
|
nsCOMPtr<nsIPrincipal> principal =
|
||||||
@@ -369,7 +358,6 @@ already_AddRefed<nsIURI> GetNextSubDomainURI(nsIURI* aURI) {
|
|||||||
nsresult UpgradeHostToOriginAndInsert(
|
nsresult UpgradeHostToOriginAndInsert(
|
||||||
const nsACString& aHost, const nsCString& aType, uint32_t aPermission,
|
const nsACString& aHost, const nsCString& aType, uint32_t aPermission,
|
||||||
uint32_t aExpireType, int64_t aExpireTime, int64_t aModificationTime,
|
uint32_t aExpireType, int64_t aExpireTime, int64_t aModificationTime,
|
||||||
bool aIsInIsolatedMozBrowserElement,
|
|
||||||
std::function<nsresult(const nsACString& aOrigin, const nsCString& aType,
|
std::function<nsresult(const nsACString& aOrigin, const nsCString& aType,
|
||||||
uint32_t aPermission, uint32_t aExpireType,
|
uint32_t aPermission, uint32_t aExpireType,
|
||||||
int64_t aExpireTime, int64_t aModificationTime)>&&
|
int64_t aExpireTime, int64_t aModificationTime)>&&
|
||||||
@@ -396,8 +384,7 @@ nsresult UpgradeHostToOriginAndInsert(
|
|||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIPrincipal> principal;
|
nsCOMPtr<nsIPrincipal> principal;
|
||||||
rv = GetPrincipal(uri, aIsInIsolatedMozBrowserElement,
|
rv = GetPrincipal(uri, getter_AddRefs(principal));
|
||||||
getter_AddRefs(principal));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
nsAutoCString origin;
|
nsAutoCString origin;
|
||||||
@@ -512,8 +499,7 @@ nsresult UpgradeHostToOriginAndInsert(
|
|||||||
|
|
||||||
// We now have a URI which we can make a nsIPrincipal out of
|
// We now have a URI which we can make a nsIPrincipal out of
|
||||||
nsCOMPtr<nsIPrincipal> principal;
|
nsCOMPtr<nsIPrincipal> principal;
|
||||||
rv = GetPrincipal(uri, aIsInIsolatedMozBrowserElement,
|
rv = GetPrincipal(uri, getter_AddRefs(principal));
|
||||||
getter_AddRefs(principal));
|
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) continue;
|
if (NS_WARN_IF(NS_FAILED(rv))) continue;
|
||||||
|
|
||||||
nsAutoCString origin;
|
nsAutoCString origin;
|
||||||
@@ -560,8 +546,7 @@ nsresult UpgradeHostToOriginAndInsert(
|
|||||||
rv = NS_NewURI(getter_AddRefs(uri), "http://"_ns + hostSegment);
|
rv = NS_NewURI(getter_AddRefs(uri), "http://"_ns + hostSegment);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
rv = GetPrincipal(uri, aIsInIsolatedMozBrowserElement,
|
rv = GetPrincipal(uri, getter_AddRefs(principal));
|
||||||
getter_AddRefs(principal));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
rv = GetOriginFromPrincipal(principal, IsOAForceStripPermission(aType),
|
rv = GetOriginFromPrincipal(principal, IsOAForceStripPermission(aType),
|
||||||
@@ -575,8 +560,7 @@ nsresult UpgradeHostToOriginAndInsert(
|
|||||||
rv = NS_NewURI(getter_AddRefs(uri), "https://"_ns + hostSegment);
|
rv = NS_NewURI(getter_AddRefs(uri), "https://"_ns + hostSegment);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
rv = GetPrincipal(uri, aIsInIsolatedMozBrowserElement,
|
rv = GetPrincipal(uri, getter_AddRefs(principal));
|
||||||
getter_AddRefs(principal));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
rv = GetOriginFromPrincipal(principal, IsOAForceStripPermission(aType),
|
rv = GetOriginFromPrincipal(principal, IsOAForceStripPermission(aType),
|
||||||
@@ -3068,7 +3052,7 @@ void PermissionManager::CompleteMigrations() {
|
|||||||
for (const MigrationEntry& entry : entries) {
|
for (const MigrationEntry& entry : entries) {
|
||||||
rv = UpgradeHostToOriginAndInsert(
|
rv = UpgradeHostToOriginAndInsert(
|
||||||
entry.mHost, entry.mType, entry.mPermission, entry.mExpireType,
|
entry.mHost, entry.mType, entry.mPermission, entry.mExpireType,
|
||||||
entry.mExpireTime, entry.mModificationTime, entry.mIsInBrowserElement,
|
entry.mExpireTime, entry.mModificationTime,
|
||||||
[&](const nsACString& aOrigin, const nsCString& aType,
|
[&](const nsACString& aOrigin, const nsCString& aType,
|
||||||
uint32_t aPermission, uint32_t aExpireType, int64_t aExpireTime,
|
uint32_t aPermission, uint32_t aExpireType, int64_t aExpireTime,
|
||||||
int64_t aModificationTime) {
|
int64_t aModificationTime) {
|
||||||
@@ -3689,7 +3673,7 @@ nsresult PermissionManager::ImportLatestDefaults() {
|
|||||||
|
|
||||||
rv = UpgradeHostToOriginAndInsert(
|
rv = UpgradeHostToOriginAndInsert(
|
||||||
entry.mHostOrOrigin, entry.mType, entry.mPermission,
|
entry.mHostOrOrigin, entry.mType, entry.mPermission,
|
||||||
nsIPermissionManager::EXPIRE_NEVER, 0, modificationTime, false,
|
nsIPermissionManager::EXPIRE_NEVER, 0, modificationTime,
|
||||||
[&](const nsACString& aOrigin, const nsCString& aType,
|
[&](const nsACString& aOrigin, const nsCString& aType,
|
||||||
uint32_t aPermission, uint32_t aExpireType, int64_t aExpireTime,
|
uint32_t aPermission, uint32_t aExpireType, int64_t aExpireTime,
|
||||||
int64_t aModificationTime) {
|
int64_t aModificationTime) {
|
||||||
|
|||||||
@@ -20,27 +20,24 @@ function cached_handler(metadata, response) {
|
|||||||
handlers_called++;
|
handlers_called++;
|
||||||
}
|
}
|
||||||
|
|
||||||
function makeChan(url, inIsolatedMozBrowser, userContextId) {
|
function makeChan(url, userContextId) {
|
||||||
var chan = NetUtil.newChannel({
|
var chan = NetUtil.newChannel({
|
||||||
uri: url,
|
uri: url,
|
||||||
loadUsingSystemPrincipal: true,
|
loadUsingSystemPrincipal: true,
|
||||||
}).QueryInterface(Ci.nsIHttpChannel);
|
}).QueryInterface(Ci.nsIHttpChannel);
|
||||||
chan.loadInfo.originAttributes = { inIsolatedMozBrowser, userContextId };
|
chan.loadInfo.originAttributes = { userContextId };
|
||||||
return chan;
|
return chan;
|
||||||
}
|
}
|
||||||
|
|
||||||
// [inIsolatedMozBrowser, userContextId, expected_handlers_called]
|
// [userContextId, expected_handlers_called]
|
||||||
var firstTests = [
|
var firstTests = [
|
||||||
[false, 0, 1],
|
[0, 1],
|
||||||
[true, 0, 1],
|
[1, 1],
|
||||||
[false, 1, 1],
|
|
||||||
[true, 1, 1],
|
|
||||||
];
|
];
|
||||||
var secondTests = [
|
var secondTests = [
|
||||||
[false, 0, 0],
|
[0, 0],
|
||||||
[true, 0, 0],
|
[1, 1],
|
||||||
[false, 1, 1],
|
[1, 0],
|
||||||
[true, 1, 0],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
async function run_all_tests() {
|
async function run_all_tests() {
|
||||||
@@ -81,9 +78,9 @@ function run_test() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_channel(inIsolatedMozBrowser, userContextId, expected) {
|
function test_channel(userContextId, expected) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
var chan = makeChan(URL, inIsolatedMozBrowser, userContextId);
|
var chan = makeChan(URL, userContextId);
|
||||||
chan.asyncOpen(
|
chan.asyncOpen(
|
||||||
new ChannelListener(doneFirstLoad.bind(null, resolve), expected)
|
new ChannelListener(doneFirstLoad.bind(null, resolve), expected)
|
||||||
);
|
);
|
||||||
@@ -93,7 +90,7 @@ function test_channel(inIsolatedMozBrowser, userContextId, expected) {
|
|||||||
function doneFirstLoad(resolve, req, buffer, expected) {
|
function doneFirstLoad(resolve, req, buffer, expected) {
|
||||||
// Load it again, make sure it hits the cache
|
// Load it again, make sure it hits the cache
|
||||||
var oa = req.loadInfo.originAttributes;
|
var oa = req.loadInfo.originAttributes;
|
||||||
var chan = makeChan(URL, oa.isInIsolatedMozBrowserElement, oa.userContextId);
|
var chan = makeChan(URL, oa.userContextId);
|
||||||
chan.asyncOpen(
|
chan.asyncOpen(
|
||||||
new ChannelListener(doneSecondLoad.bind(null, resolve), expected)
|
new ChannelListener(doneSecondLoad.bind(null, resolve), expected)
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user