зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1059832 - Disallow initiating asynchronous remote JAR channel requests for synchronous operations. r=jduell
This commit is contained in:
Родитель
5407e293c5
Коммит
8a1d19377e
|
@ -319,7 +319,7 @@ nsJARChannel::CreateJarInput(nsIZipReaderCache *jarCache, nsJARInputThunk **resu
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsJARChannel::LookupFile()
|
nsJARChannel::LookupFile(bool aAllowAsync)
|
||||||
{
|
{
|
||||||
LOG(("nsJARChannel::LookupFile [this=%x %s]\n", this, mSpec.get()));
|
LOG(("nsJARChannel::LookupFile [this=%x %s]\n", this, mSpec.get()));
|
||||||
|
|
||||||
|
@ -387,6 +387,11 @@ nsJARChannel::LookupFile()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!aAllowAsync) {
|
||||||
|
mJarFile = nullptr;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
mOpeningRemote = true;
|
mOpeningRemote = true;
|
||||||
|
|
||||||
#if defined(XP_WIN) || defined(MOZ_WIDGET_COCOA)
|
#if defined(XP_WIN) || defined(MOZ_WIDGET_COCOA)
|
||||||
|
@ -798,7 +803,7 @@ nsJARChannel::Open(nsIInputStream **stream)
|
||||||
mJarFile = nullptr;
|
mJarFile = nullptr;
|
||||||
mIsUnsafe = true;
|
mIsUnsafe = true;
|
||||||
|
|
||||||
nsresult rv = LookupFile();
|
nsresult rv = LookupFile(false);
|
||||||
if (NS_FAILED(rv))
|
if (NS_FAILED(rv))
|
||||||
return rv;
|
return rv;
|
||||||
|
|
||||||
|
@ -835,7 +840,7 @@ nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx)
|
||||||
// Initialize mProgressSink
|
// Initialize mProgressSink
|
||||||
NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, mProgressSink);
|
NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, mProgressSink);
|
||||||
|
|
||||||
nsresult rv = LookupFile();
|
nsresult rv = LookupFile(true);
|
||||||
if (NS_FAILED(rv))
|
if (NS_FAILED(rv))
|
||||||
return rv;
|
return rv;
|
||||||
|
|
||||||
|
@ -910,7 +915,7 @@ nsJARChannel::GetJarFile(nsIFile **aFile)
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsJARChannel::GetZipEntry(nsIZipEntry **aZipEntry)
|
nsJARChannel::GetZipEntry(nsIZipEntry **aZipEntry)
|
||||||
{
|
{
|
||||||
nsresult rv = LookupFile();
|
nsresult rv = LookupFile(false);
|
||||||
if (NS_FAILED(rv))
|
if (NS_FAILED(rv))
|
||||||
return rv;
|
return rv;
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ private:
|
||||||
virtual ~nsJARChannel();
|
virtual ~nsJARChannel();
|
||||||
|
|
||||||
nsresult CreateJarInput(nsIZipReaderCache *, nsJARInputThunk **);
|
nsresult CreateJarInput(nsIZipReaderCache *, nsJARInputThunk **);
|
||||||
nsresult LookupFile();
|
nsresult LookupFile(bool aAllowAsync);
|
||||||
nsresult OpenLocalFile();
|
nsresult OpenLocalFile();
|
||||||
void NotifyError(nsresult aError);
|
void NotifyError(nsresult aError);
|
||||||
void FireOnProgress(uint64_t aProgress);
|
void FireOnProgress(uint64_t aProgress);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче