Loading docshell/base/nsDocShell.cpp +4 −15 Original line number Diff line number Diff line Loading @@ -6254,7 +6254,7 @@ already_AddRefed<nsIURI> nsDocShell::AttemptURIFixup( nsresult nsDocShell::FilterStatusForErrorPage( nsresult aStatus, nsIChannel* aChannel, uint32_t aLoadType, bool aIsTopFrame, bool aUseErrorPages, bool aIsInitialDocument, bool aIsTopFrame, bool aUseErrorPages, bool* aSkippedUnknownProtocolNavigation) { // Errors to be shown only on top-level frames if ((aStatus == NS_ERROR_UNKNOWN_HOST || Loading Loading @@ -6298,18 +6298,10 @@ nsresult nsDocShell::FilterStatusForErrorPage( if (aStatus == NS_ERROR_UNKNOWN_PROTOCOL) { // For unknown protocols we only display an error if the load is triggered // by the browser itself, or we're replacing the initial document (and // nothing else). Showing the error for page-triggered navigations causes // annoying behavior for users, see bug 1528305. // // We could, maybe, try to detect if this is in response to some user // interaction (like clicking a link, or something else) and maybe show // the error page in that case. But this allows for ctrl+clicking and such // to see the error page. // by the browser itself. Showing the error for page-triggered navigations // causes annoying behavior for users, see bug 1528305. nsCOMPtr<nsILoadInfo> info = aChannel->LoadInfo(); if (!info->TriggeringPrincipal()->IsSystemPrincipal() && StaticPrefs::dom_no_unknown_protocol_error_enabled() && !aIsInitialDocument) { if (!info->TriggeringPrincipal()->IsSystemPrincipal()) { if (aSkippedUnknownProtocolNavigation) { *aSkippedUnknownProtocolNavigation = true; } Loading Loading @@ -6459,12 +6451,9 @@ nsresult nsDocShell::EndPageLoad(nsIWebProgress* aProgress, aStatus == NS_ERROR_CONTENT_BLOCKED); UnblockEmbedderLoadEventForFailure(fireFrameErrorEvent); bool isInitialDocument = !GetExtantDocument() || GetExtantDocument()->IsInitialDocument(); bool skippedUnknownProtocolNavigation = false; aStatus = FilterStatusForErrorPage(aStatus, aChannel, mLoadType, isTopFrame, mBrowsingContext->GetUseErrorPages(), isInitialDocument, &skippedUnknownProtocolNavigation); hadErrorStatus = true; if (NS_FAILED(aStatus)) { Loading docshell/base/nsDocShell.h +1 −1 Original line number Diff line number Diff line Loading @@ -464,7 +464,7 @@ class nsDocShell final : public nsDocLoader, // navigation. static nsresult FilterStatusForErrorPage( nsresult aStatus, nsIChannel* aChannel, uint32_t aLoadType, bool aIsTopFrame, bool aUseErrorPages, bool aIsInitialDocument, bool aIsTopFrame, bool aUseErrorPages, bool* aSkippedUnknownProtocolNavigation = nullptr); // Notify consumers of a search being loaded through the observer service: Loading netwerk/ipc/DocumentLoadListener.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -2325,15 +2325,9 @@ bool DocumentLoadListener::DocShellWillDisplayContent(nsresult aStatus) { auto* loadingContext = GetLoadingBrowsingContext(); bool isInitialDocument = true; if (WindowGlobalParent* currentWindow = loadingContext->GetCurrentWindowGlobal()) { isInitialDocument = currentWindow->IsInitialDocument(); } nsresult rv = nsDocShell::FilterStatusForErrorPage( aStatus, mChannel, mLoadStateLoadType, loadingContext->IsTop(), loadingContext->GetUseErrorPages(), isInitialDocument, nullptr); loadingContext->GetUseErrorPages(), nullptr); if (NS_SUCCEEDED(rv)) { MOZ_LOG(gProcessIsolationLog, LogLevel::Verbose, Loading Loading
docshell/base/nsDocShell.cpp +4 −15 Original line number Diff line number Diff line Loading @@ -6254,7 +6254,7 @@ already_AddRefed<nsIURI> nsDocShell::AttemptURIFixup( nsresult nsDocShell::FilterStatusForErrorPage( nsresult aStatus, nsIChannel* aChannel, uint32_t aLoadType, bool aIsTopFrame, bool aUseErrorPages, bool aIsInitialDocument, bool aIsTopFrame, bool aUseErrorPages, bool* aSkippedUnknownProtocolNavigation) { // Errors to be shown only on top-level frames if ((aStatus == NS_ERROR_UNKNOWN_HOST || Loading Loading @@ -6298,18 +6298,10 @@ nsresult nsDocShell::FilterStatusForErrorPage( if (aStatus == NS_ERROR_UNKNOWN_PROTOCOL) { // For unknown protocols we only display an error if the load is triggered // by the browser itself, or we're replacing the initial document (and // nothing else). Showing the error for page-triggered navigations causes // annoying behavior for users, see bug 1528305. // // We could, maybe, try to detect if this is in response to some user // interaction (like clicking a link, or something else) and maybe show // the error page in that case. But this allows for ctrl+clicking and such // to see the error page. // by the browser itself. Showing the error for page-triggered navigations // causes annoying behavior for users, see bug 1528305. nsCOMPtr<nsILoadInfo> info = aChannel->LoadInfo(); if (!info->TriggeringPrincipal()->IsSystemPrincipal() && StaticPrefs::dom_no_unknown_protocol_error_enabled() && !aIsInitialDocument) { if (!info->TriggeringPrincipal()->IsSystemPrincipal()) { if (aSkippedUnknownProtocolNavigation) { *aSkippedUnknownProtocolNavigation = true; } Loading Loading @@ -6459,12 +6451,9 @@ nsresult nsDocShell::EndPageLoad(nsIWebProgress* aProgress, aStatus == NS_ERROR_CONTENT_BLOCKED); UnblockEmbedderLoadEventForFailure(fireFrameErrorEvent); bool isInitialDocument = !GetExtantDocument() || GetExtantDocument()->IsInitialDocument(); bool skippedUnknownProtocolNavigation = false; aStatus = FilterStatusForErrorPage(aStatus, aChannel, mLoadType, isTopFrame, mBrowsingContext->GetUseErrorPages(), isInitialDocument, &skippedUnknownProtocolNavigation); hadErrorStatus = true; if (NS_FAILED(aStatus)) { Loading
docshell/base/nsDocShell.h +1 −1 Original line number Diff line number Diff line Loading @@ -464,7 +464,7 @@ class nsDocShell final : public nsDocLoader, // navigation. static nsresult FilterStatusForErrorPage( nsresult aStatus, nsIChannel* aChannel, uint32_t aLoadType, bool aIsTopFrame, bool aUseErrorPages, bool aIsInitialDocument, bool aIsTopFrame, bool aUseErrorPages, bool* aSkippedUnknownProtocolNavigation = nullptr); // Notify consumers of a search being loaded through the observer service: Loading
netwerk/ipc/DocumentLoadListener.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -2325,15 +2325,9 @@ bool DocumentLoadListener::DocShellWillDisplayContent(nsresult aStatus) { auto* loadingContext = GetLoadingBrowsingContext(); bool isInitialDocument = true; if (WindowGlobalParent* currentWindow = loadingContext->GetCurrentWindowGlobal()) { isInitialDocument = currentWindow->IsInitialDocument(); } nsresult rv = nsDocShell::FilterStatusForErrorPage( aStatus, mChannel, mLoadStateLoadType, loadingContext->IsTop(), loadingContext->GetUseErrorPages(), isInitialDocument, nullptr); loadingContext->GetUseErrorPages(), nullptr); if (NS_SUCCEEDED(rv)) { MOZ_LOG(gProcessIsolationLog, LogLevel::Verbose, Loading