зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1282554 - Provide helper function to check if channel can be openen using open2() and asyncOpen2() r=bholly
This commit is contained in:
Родитель
1956523e8c
Коммит
71fde070bb
|
@ -1471,16 +1471,10 @@ nsresult nsWebBrowserPersist::SaveChannelInternal(
|
|||
nsCOMPtr<nsIFileChannel> fc(do_QueryInterface(aChannel));
|
||||
nsCOMPtr<nsIFileURL> fu(do_QueryInterface(aFile));
|
||||
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
|
||||
if (fc && !fu) {
|
||||
nsCOMPtr<nsIInputStream> fileInputStream, bufferedInputStream;
|
||||
nsresult rv;
|
||||
if (loadInfo && loadInfo->GetSecurityMode()) {
|
||||
rv = aChannel->Open2(getter_AddRefs(fileInputStream));
|
||||
}
|
||||
else {
|
||||
rv = aChannel->Open(getter_AddRefs(fileInputStream));
|
||||
}
|
||||
nsresult rv = NS_MaybeOpenChannelUsingOpen2(aChannel,
|
||||
getter_AddRefs(fileInputStream));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = NS_NewBufferedInputStream(getter_AddRefs(bufferedInputStream),
|
||||
fileInputStream, BUFFERED_OUTPUT_SIZE);
|
||||
|
@ -1491,13 +1485,7 @@ nsresult nsWebBrowserPersist::SaveChannelInternal(
|
|||
}
|
||||
|
||||
// Read from the input channel
|
||||
nsresult rv;
|
||||
if (loadInfo && loadInfo->GetSecurityMode()) {
|
||||
rv = aChannel->AsyncOpen2(this);
|
||||
}
|
||||
else {
|
||||
rv = aChannel->AsyncOpen(this, nullptr);
|
||||
}
|
||||
nsresult rv = NS_MaybeOpenChannelUsingAsyncOpen2(aChannel, this);
|
||||
if (rv == NS_ERROR_NO_CONTENT)
|
||||
{
|
||||
// Assume this is a protocol such as mailto: which does not feed out
|
||||
|
|
|
@ -418,14 +418,9 @@ NS_IMETHODIMP nsZipWriter::AddEntryChannel(const nsACString & aZipEntry,
|
|||
return NS_ERROR_FILE_ALREADY_EXISTS;
|
||||
|
||||
nsCOMPtr<nsIInputStream> inputStream;
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
|
||||
nsresult rv;
|
||||
if (loadInfo && loadInfo->GetSecurityMode()) {
|
||||
rv = aChannel->Open2(getter_AddRefs(inputStream));
|
||||
}
|
||||
else {
|
||||
rv = aChannel->Open(getter_AddRefs(inputStream));
|
||||
}
|
||||
nsresult rv = NS_MaybeOpenChannelUsingOpen2(aChannel,
|
||||
getter_AddRefs(inputStream));
|
||||
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = AddEntryStream(aZipEntry, aModTime, aCompression, inputStream,
|
||||
|
@ -1001,13 +996,7 @@ inline nsresult nsZipWriter::BeginProcessingAddition(nsZipQueueItem* aItem,
|
|||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
else {
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = aItem->mChannel->GetLoadInfo();
|
||||
if (loadInfo && loadInfo->GetSecurityMode()) {
|
||||
rv = aItem->mChannel->AsyncOpen2(stream);
|
||||
}
|
||||
else {
|
||||
rv = aItem->mChannel->AsyncOpen(stream, nullptr);
|
||||
}
|
||||
rv = NS_MaybeOpenChannelUsingAsyncOpen2(aItem->mChannel, stream);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
|
|
|
@ -751,13 +751,7 @@ NS_ImplementChannelOpen(nsIChannel *channel,
|
|||
getter_AddRefs(stream));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = channel->GetLoadInfo();
|
||||
if (loadInfo && loadInfo->GetEnforceSecurity()) {
|
||||
rv = channel->AsyncOpen2(listener);
|
||||
}
|
||||
else {
|
||||
rv = channel->AsyncOpen(listener, nullptr);
|
||||
}
|
||||
rv = NS_MaybeOpenChannelUsingAsyncOpen2(channel, listener);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
uint64_t n;
|
||||
|
@ -2003,6 +1997,26 @@ nsresult NS_MakeRandomInvalidURLString(nsCString &result)
|
|||
#undef NS_FAKE_SCHEME
|
||||
#undef NS_FAKE_TLD
|
||||
|
||||
nsresult NS_MaybeOpenChannelUsingOpen2(nsIChannel* aChannel,
|
||||
nsIInputStream **aStream)
|
||||
{
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
|
||||
if (loadInfo && loadInfo->GetSecurityMode() != 0) {
|
||||
return aChannel->Open2(aStream);
|
||||
}
|
||||
return aChannel->Open(aStream);
|
||||
}
|
||||
|
||||
nsresult NS_MaybeOpenChannelUsingAsyncOpen2(nsIChannel* aChannel,
|
||||
nsIStreamListener *aListener)
|
||||
{
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
|
||||
if (loadInfo && loadInfo->GetSecurityMode() != 0) {
|
||||
return aChannel->AsyncOpen2(aListener);
|
||||
}
|
||||
return aChannel->AsyncOpen(aListener, nullptr);
|
||||
}
|
||||
|
||||
nsresult
|
||||
NS_CheckIsJavaCompatibleURLString(nsCString &urlString, bool *result)
|
||||
{
|
||||
|
|
|
@ -909,6 +909,22 @@ nsresult NS_LinkRedirectChannels(uint32_t channelId,
|
|||
*/
|
||||
nsresult NS_MakeRandomInvalidURLString(nsCString &result);
|
||||
|
||||
/**
|
||||
* Helper function which checks whether the channel can be
|
||||
* openend using Open2() or has to fall back to opening
|
||||
* the channel using Open().
|
||||
*/
|
||||
nsresult NS_MaybeOpenChannelUsingOpen2(nsIChannel* aChannel,
|
||||
nsIInputStream **aStream);
|
||||
|
||||
/**
|
||||
* Helper function which checks whether the channel can be
|
||||
* openend using AsyncOpen2() or has to fall back to opening
|
||||
* the channel using AsyncOpen().
|
||||
*/
|
||||
nsresult NS_MaybeOpenChannelUsingAsyncOpen2(nsIChannel* aChannel,
|
||||
nsIStreamListener *aListener);
|
||||
|
||||
/**
|
||||
* Helper function to determine whether urlString is Java-compatible --
|
||||
* whether it can be passed to the Java URL(String) constructor without the
|
||||
|
|
|
@ -1160,12 +1160,7 @@ PackagedAppService::GetResource(nsIChannel *aChannel,
|
|||
if (loadContext) {
|
||||
channel->SetNotificationCallbacks(loadContext);
|
||||
}
|
||||
|
||||
if (loadInfo && loadInfo->GetEnforceSecurity()) {
|
||||
return channel->AsyncOpen2(listener);
|
||||
}
|
||||
|
||||
return channel->AsyncOpen(listener, nullptr);
|
||||
return NS_MaybeOpenChannelUsingAsyncOpen2(channel, listener);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
|
|
@ -251,14 +251,7 @@ nsViewSourceChannel::Open(nsIInputStream **_retval)
|
|||
{
|
||||
NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = mChannel->GetLoadInfo();
|
||||
if (loadInfo && loadInfo->GetEnforceSecurity()) {
|
||||
mChannel->Open2(_retval);
|
||||
}
|
||||
else {
|
||||
mChannel->Open(_retval);
|
||||
}
|
||||
nsresult rv = NS_MaybeOpenChannelUsingOpen2(mChannel, _retval);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
mOpened = true;
|
||||
}
|
||||
|
|
|
@ -1402,13 +1402,7 @@ WebSocketChannel::BeginOpenInternal()
|
|||
}
|
||||
#endif
|
||||
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = localChannel->GetLoadInfo();
|
||||
if (loadInfo && loadInfo->GetSecurityMode()) {
|
||||
rv = localChannel->AsyncOpen2(this);
|
||||
}
|
||||
else {
|
||||
rv = localChannel->AsyncOpen(this, nullptr);
|
||||
}
|
||||
rv = NS_MaybeOpenChannelUsingAsyncOpen2(localChannel, this);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
LOG(("WebSocketChannel::BeginOpenInternal: cannot async open\n"));
|
||||
|
|
Загрузка…
Ссылка в новой задаче