Add preference to allow the loading of FTP subresources.

This commit is contained in:
Fedor 2019-08-01 03:18:30 +03:00
parent 351ddcc8da
commit b30beb5771
4 changed files with 19 additions and 0 deletions

View File

@ -98,6 +98,9 @@ nsContentSecurityManager::CheckFTPSubresourceLoad(nsIChannel* aChannel)
// We dissallow using FTP resources as a subresource everywhere.
// The only valid way to use FTP resources is loading it as
// a top level document.
if (!mozilla::net::nsIOService::BlockFTPSubresources()) {
return NS_OK;
}
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
if (!loadInfo) {

View File

@ -5435,6 +5435,9 @@ pref("layout.css.servo.enabled", true);
// URL-Bar will not be blocked when flipping this pref.
pref("security.data_uri.block_toplevel_data_uri_navigations", true);
// If true, all FTP subresource loads will be blocked.
pref("security.block_ftp_subresources", true);
// Disable Storage api in release builds.
#ifdef NIGHTLY_BUILD
pref("dom.storageManager.enabled", true);

View File

@ -164,6 +164,7 @@ uint32_t nsIOService::gDefaultSegmentSize = 4096;
uint32_t nsIOService::gDefaultSegmentCount = 24;
bool nsIOService::sBlockToplevelDataUriNavigations = false;
bool nsIOService::sBlockFTPSubresources = false;
////////////////////////////////////////////////////////////////////////////////
@ -238,6 +239,8 @@ nsIOService::Init()
Preferences::AddBoolVarCache(&sBlockToplevelDataUriNavigations,
"security.data_uri.block_toplevel_data_uri_navigations", false);
Preferences::AddBoolVarCache(&sBlockFTPSubresources,
"security.block_ftp_subresources", true);
Preferences::AddBoolVarCache(&mOfflineMirrorsConnectivity, OFFLINE_MIRRORS_CONNECTIVITY, true);
gIOService = this;
@ -1767,5 +1770,11 @@ nsIOService::BlockToplevelDataUriNavigations()
return sBlockToplevelDataUriNavigations;
}
/*static*/ bool
nsIOService::BlockFTPSubresources()
{
return sBlockFTPSubresources;
}
} // namespace net
} // namespace mozilla

View File

@ -93,6 +93,8 @@ public:
static bool BlockToplevelDataUriNavigations();
static bool BlockFTPSubresources();
private:
// These shouldn't be called directly:
// - construct using GetInstance
@ -168,6 +170,8 @@ private:
static bool sBlockToplevelDataUriNavigations;
static bool sBlockFTPSubresources;
// Time a network tearing down started.
mozilla::Atomic<PRIntervalTime> mNetTearingDownStarted;
public: