diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
commit | da4c7e7ed675c3bf405668739c3012d140856109 (patch) | |
tree | cdd868dba063fecba609a1d819de271f0d51b23e /widget/nsBaseClipboard.cpp | |
parent | Adding upstream version 125.0.3. (diff) | |
download | firefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip |
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'widget/nsBaseClipboard.cpp')
-rw-r--r-- | widget/nsBaseClipboard.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/widget/nsBaseClipboard.cpp b/widget/nsBaseClipboard.cpp index 333d154e70..9ffc53b4c2 100644 --- a/widget/nsBaseClipboard.cpp +++ b/widget/nsBaseClipboard.cpp @@ -340,7 +340,7 @@ class SafeContentAnalysisResultCallback final NS_IMETHODIMP Error(nsresult aError) override { using namespace mozilla::contentanalysis; Callback(ContentAnalysisResult::FromNoResult( - NoContentAnalysisResult::ERROR_OTHER)); + NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR)); return NS_OK; } @@ -379,13 +379,18 @@ CheckClipboardContentAnalysisAsText( } nsString text; if (NS_FAILED(textData->GetData(text))) { - return mozilla::Err(NoContentAnalysisResult::ERROR_OTHER); + return mozilla::Err(NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR); + } + if (text.IsEmpty()) { + // Content Analysis doesn't expect to analyze an empty string. + // Just approve it. + return true; } RefPtr<mozilla::dom::WindowGlobalParent> window = mozilla::dom::WindowGlobalParent::GetByInnerWindowId(aInnerWindowId); if (!window) { // The window has gone away in the meantime - return mozilla::Err(NoContentAnalysisResult::ERROR_OTHER); + return mozilla::Err(NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR); } nsCOMPtr<nsIContentAnalysisRequest> contentAnalysisRequest = new ContentAnalysisRequest( @@ -395,7 +400,7 @@ CheckClipboardContentAnalysisAsText( nsresult rv = aContentAnalysis->AnalyzeContentRequestCallback( contentAnalysisRequest, /* aAutoAcknowledge */ true, aResolver); if (NS_FAILED(rv)) { - return mozilla::Err(NoContentAnalysisResult::ERROR_OTHER); + return mozilla::Err(NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR); } return true; } @@ -420,7 +425,7 @@ CheckClipboardContentAnalysisAsFile( rv = file->GetPath(filePath); } else { MOZ_ASSERT_UNREACHABLE("clipboard data had kFileMime but no nsIFile!"); - return mozilla::Err(NoContentAnalysisResult::ERROR_OTHER); + return mozilla::Err(NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR); } } if (NS_FAILED(rv) || filePath.IsEmpty()) { @@ -430,7 +435,7 @@ CheckClipboardContentAnalysisAsFile( mozilla::dom::WindowGlobalParent::GetByInnerWindowId(aInnerWindowId); if (!window) { // The window has gone away in the meantime - return mozilla::Err(NoContentAnalysisResult::ERROR_OTHER); + return mozilla::Err(NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR); } // Let the content analysis code calculate the digest nsCOMPtr<nsIContentAnalysisRequest> contentAnalysisRequest = @@ -443,7 +448,7 @@ CheckClipboardContentAnalysisAsFile( contentAnalysisRequest, /* aAutoAcknowledge */ true, aResolver); if (NS_FAILED(rv)) { - return mozilla::Err(NoContentAnalysisResult::ERROR_OTHER); + return mozilla::Err(NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR); } return true; } @@ -463,14 +468,15 @@ static void CheckClipboardContentAnalysis( if (!aWindow || aWindow->GetBrowsingContext()->IsChrome() || aWindow->IsInProcess()) { aResolver->Callback(ContentAnalysisResult::FromNoResult( - NoContentAnalysisResult::CONTEXT_EXEMPT_FROM_CONTENT_ANALYSIS)); + NoContentAnalysisResult:: + ALLOW_DUE_TO_CONTEXT_EXEMPT_FROM_CONTENT_ANALYSIS)); return; } nsCOMPtr<nsIContentAnalysis> contentAnalysis = mozilla::components::nsIContentAnalysis::Service(); if (!contentAnalysis) { aResolver->Callback(ContentAnalysisResult::FromNoResult( - NoContentAnalysisResult::ERROR_OTHER)); + NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR)); return; } @@ -478,7 +484,7 @@ static void CheckClipboardContentAnalysis( nsresult rv = contentAnalysis->GetIsActive(&contentAnalysisIsActive); if (MOZ_LIKELY(NS_FAILED(rv) || !contentAnalysisIsActive)) { aResolver->Callback(ContentAnalysisResult::FromNoResult( - NoContentAnalysisResult::CONTENT_ANALYSIS_NOT_ACTIVE)); + NoContentAnalysisResult::ALLOW_DUE_TO_CONTENT_ANALYSIS_NOT_ACTIVE)); return; } @@ -488,7 +494,7 @@ static void CheckClipboardContentAnalysis( rv = aTransferable->FlavorsTransferableCanExport(flavors); if (NS_WARN_IF(NS_FAILED(rv))) { aResolver->Callback(ContentAnalysisResult::FromNoResult( - NoContentAnalysisResult::ERROR_OTHER)); + NoContentAnalysisResult::DENY_DUE_TO_OTHER_ERROR)); return; } bool keepChecking = true; @@ -515,7 +521,7 @@ static void CheckClipboardContentAnalysis( if (!textResult.unwrap()) { // Couldn't get file or text data from this aResolver->Callback(ContentAnalysisResult::FromNoResult( - NoContentAnalysisResult::ERROR_COULD_NOT_GET_DATA)); + NoContentAnalysisResult::ALLOW_DUE_TO_COULD_NOT_GET_DATA)); return; } } |