mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1637039 - Notify style preload when the loading channel synchronously fails to open, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D76365
This commit is contained in:
parent
07f63ad409
commit
6b93122fab
@ -1427,7 +1427,7 @@ nsresult Loader::LoadSheet(SheetLoadData& aLoadData, SheetState aSheetState) {
|
||||
}
|
||||
if (NS_FAILED(rv)) {
|
||||
LOG_ERROR((" Failed to create channel"));
|
||||
streamLoader->ChannelOpenFailed();
|
||||
streamLoader->ChannelOpenFailed(rv);
|
||||
SheetComplete(aLoadData, rv);
|
||||
return rv;
|
||||
}
|
||||
@ -1450,7 +1450,7 @@ nsresult Loader::LoadSheet(SheetLoadData& aLoadData, SheetState aSheetState) {
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
LOG_ERROR((" Failed to open URI synchronously"));
|
||||
streamLoader->ChannelOpenFailed();
|
||||
streamLoader->ChannelOpenFailed(rv);
|
||||
SheetComplete(aLoadData, rv);
|
||||
return rv;
|
||||
}
|
||||
@ -1659,10 +1659,16 @@ nsresult Loader::LoadSheet(SheetLoadData& aLoadData, SheetState aSheetState) {
|
||||
nsINetworkPredictor::LEARN_LOAD_SUBRESOURCE, mDocument);
|
||||
}
|
||||
|
||||
auto preloadKey = PreloadHashKey::CreateAsStyle(aLoadData);
|
||||
streamLoader->NotifyOpen(&preloadKey, channel, mDocument,
|
||||
aLoadData.mIsPreload == IsPreload::FromLink);
|
||||
|
||||
rv = channel->AsyncOpen(streamLoader);
|
||||
if (NS_FAILED(rv)) {
|
||||
LOG_ERROR((" Failed to create stream loader"));
|
||||
streamLoader->ChannelOpenFailed();
|
||||
// ChannelOpenFailed makes sure that <link preload> nodes will get the
|
||||
// proper notification about not being able to load this resource.
|
||||
streamLoader->ChannelOpenFailed(rv);
|
||||
SheetComplete(aLoadData, rv);
|
||||
return rv;
|
||||
}
|
||||
@ -1676,10 +1682,6 @@ nsresult Loader::LoadSheet(SheetLoadData& aLoadData, SheetState aSheetState) {
|
||||
mSheets->mLoadingDatas.Put(&key, &aLoadData);
|
||||
aLoadData.mIsLoading = true;
|
||||
|
||||
auto preloadKey = PreloadHashKey::CreateAsStyle(aLoadData);
|
||||
streamLoader->NotifyOpen(&preloadKey, channel, mDocument,
|
||||
aLoadData.mIsPreload == IsPreload::FromLink);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -30,10 +30,12 @@ class StreamLoader : public PreloaderBase, public nsIStreamListener {
|
||||
|
||||
explicit StreamLoader(SheetLoadData&);
|
||||
|
||||
void ChannelOpenFailed() {
|
||||
void ChannelOpenFailed(nsresult rv) {
|
||||
#ifdef NIGHTLY_BUILD
|
||||
mChannelOpenFailed = true;
|
||||
#endif
|
||||
NotifyStart(Channel());
|
||||
NotifyStop(Channel(), rv);
|
||||
}
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user