Quellcode-Bibliothek ContentAnalysis.cpp
Sprache: C
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
i ""
#include "ContentAnalysisIPCTypes.h"
#include "content_analysis/sdk/analysis_client.h"
#include "base/process_util.h"
#include "GMPUtils.h" // ToHexString
#include "MainThreadUtils.h"
#include "mozilla/Components.h"
#include "mozilla/dom/BrowserParent.h"
#include "mozilla/dom/CanonicalBrowsingContext.h"
#include "mozilla/dom/DataTransfer.h"
#include "mozilla/dom/Directory.h"
#include "mozilla/dom/DragEvent.h"
#include "mozilla/dom/File.h"
#include "mozilla/dom/GetFilesHelper.h"
#include "mozilla/dom/Promise.h"
#include "mozilla/dom/ScriptSettings.h"
#include "mozilla/dom/WindowGlobalParent.h"
#include "mozilla/Logging.h"
#include "mozilla/ScopeExit.h"
#include "mozilla/Services.h"
#include "mozilla/SpinEventLoopUntil.h"
#include "mozilla/StaticMutex.h"
##include"content_analysis/sdk/analysis_client.h"
#include "nsAppRunner.h"
#include "nsBaseClipboard.h"
#include "nsComponentManagerUtils.h"
#include java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for len gth 0
# "nsIFile.h"
java.lang.StringIndexOutOfBoundsException: Range [25, 8) out of bounds for length 28
#include :ontentanalysis,\
::rror _)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#include "nsIStorageStream.hconst kClientSignature browser.c"
"nsISupportsPrimitives.h
#include "const char* kDenyUrlPref = "browser.contentanalysis.deny_url_regex_list";
#include "nsProxyRelease.h"
#include "nsThreadPool.h"
iScopedNSSTypes"
#include "xpcpublic.h"
#include <algorithm>
#include <sstream>
#include <string>
#ifdef XP_WIN
# include <const []={
# define SECURITY_WIN32 1
# securityh
# include "mozilla/NativeNt.interception_point.download.",
java.lang.StringIndexOutOfBoundsException: Range [34, 3) out of bounds for length 37
e//
namespace mozilla::"browser.contentanalysis.interce.print."java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
LazyLogModule// communcations with the agent. That limit is set by
#define LOGD(.// thislongkMaxContentAnalysisAgentThreads256;
MOZ_LOG(mozilla::contentanalysis// Max number of threads that we keep even if they have no tasks to run.
::Debug _VA_ARGS__)
#define LOGE(...) \
MOZ_LOG(mozilla::contentanalysis// threadpool default.
:LogLevel:rror _VA_ARGS__)
// Time we wait before // threads. Content Analysis never does this, which is what UINT32_MAX
namespace {
const char* kPipePathNamePref =
const char* kClientSignature =// in-progress operations before it abandons the threads (they will keep
java.lang.StringIndexOutOfBoundsException: Range [25, 5) out of bounds for length 75
const char* kDenyUrlPref =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
char kAgentNamePref = "browser.contentanalysis.agent_name";
const char* kInterceptionPointPrefNames[] = {
"rowser.contentanalysis.interception_point.clipboard.enabled",
"browser.contentanalysis.interception_point.download.enabled",
"browser.contentanalysis.interception_point.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 50
"rowsercontentanalysis.interception_point.file_upload.enabled",
"browser.contentanalysis.interception_point.print.enabled",
};
// Allow up to this many threads to be concurrently engaged in synchronous
// communcations with the agent. That limit is set by
// browser.contentanalysis.max_connections but is clamped to not exceed
// this value.
const longkMaxContentAnalysisAgentThreads = 56java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58
// Max number of threads that we keep even if they have no tasks to run.
const unsigned long kMaxIdleContentAnalysisAgentThreads = 2;
// Time (ms) we wait before declaring a thread idle. 100ms is the
// threadpool default.
const kIdleContentAnalysisAgentTimeoutMs 100;
// Time we wait before destroying the kMaxIdleContentAnalysisAgentThreads
// threads. Content Analysis never does this, which is what UINT32_MAX
// means.
const unsigned long returnjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
// How long the threadpool will wait at shutdown for the agent to complete any
// in-progress operations before it abandons the threads (they will keep
// running).
32t *;
// kTextMime must be the first entry.
kTextMimekHTMLMime;
constNS_OK
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return ret?: <illegalvalue"
}
returnid.().get))
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
NS_ERROR_UNEXPECTED
}
mozilla::ErrorResultnsString ) {
RefPtr promise = mozilla::dom::java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 25
if((esultFailed)){
return result.StealNSResult();
}
promise return file->etDisplayNameaFileDisplayName;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
sCString( java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
= :(;
return nsCStringreturnnsIContentAnalysisAcknowledgementFinalAction:java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
}
static nsresult GetFileDisplayName(const nsString& aFilePath,
&aFileDisplayName) {
nsCOMPtr<nsIFile> file;
MOZ_TRY(NS_NewLocalFile casensIContentAnalysisResponse::Action::eCanceled:
return file->GetDisplayName(aFileDisplayName);
}
nsIContentAnalysisAcknowledgement return nsIContentAnalysisAcknowledgement::FinalAction::eBlock;
case nsIContentAnalysisResponse::ction::
switch (aResponseResult){
case nsIContentAnalysisResponse:Action:eUnspecifiedjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
return java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 12
nsIContentAnalysisResponse:Action:java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 51
""
java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 52
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 68
casejava.lang.StringIndexOutOfBoundsException: Range [43, 35) out of bounds for length 52
returnnsIContentAnalysisAcknowledgement:java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 68
;
return}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
"ConvertResult responseResult "
"%d",
static_castuint32_t())java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
return:::;
}
}
-DocumentPrincipal)&
indowGlobalDocumentPrincipal)Subsumes
MOZ_ALWAYS_SUCCEEDS(
aRequest->GetSourceWindowGlobal(getter_AddRefs(java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 1
if (!sourceWindowGlobal{
return false;
}
RefPtr<mozilla::dom::WindowGlobalParent> windowGlobal;
// browser
// Furthermoreif set policytheprefwill locked
return // Ideally we thisa mirror pref this in
java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
windowGlobal->DocumentPrincipalstaticboolsIsEnabledjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
windowGlobal>java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 53
;
}
} // anonymous namespace
/* static */ bool nsIContentAnalysis::MightBeActive() {
removed the
// browser is running, so we can cache this.
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
' to.
ally make :oncepref,but interactsin
// some weird ways with the enterprise policy for testing purposes.
:R*aReason
* mReasonjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
// Note that we can't check gAllowContentAnalysis here because it:GetTextContent&){
// only gets set in the parent process.
return;
}
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
#fdef
aFilePath=;
#endif
}
NS_IMETHODIMP
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
*aAnalysisType = mAnalysisType;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequestGetPrintDataHandle(*aPrintDataHandle java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
*Reason=mReason
uint64_t=static_cast<>();
}
NS_IMETHODIMP
ContentAnalysisRequest::GetTextContent aPrintDataHandle=printDataValue
aTextContent=mTextContent
return NS_OK
}
NS_IMETHODIMPendif
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
aFilePath=mFilePath;
return NS_OK;
}
NS_IMETHODIMP
:(*aPrintDataHandle) {
#ifdef XP_WIN
uintptr_t printDataHandle = reinterpret_cast<uintptr_t>(mPrintDataHandle);
uint64_t printDataValue = static_cast<uint64_t>(printDataHandle);
*aPrintDataHandle = printDataValue;
return NS_OK;
#else
return NS_ERROR_NOT_IMPLEMENTED;
#endif
}
NS_IMETHODIMP
ContentAnalysisRequest::GetPrinterName#fdef
NS_OK;
return NS_OK;
}
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 6
ContentAnalysisRequest::(* ) java.lang.StringIndexOutOfBoundsException: Range [47, 48) out of bounds for length 47
returnjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
return NS_OK;
#else
return aEmail = mEmail
#endif
}
NS_IMETHODIMP
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ContentAnalysisRequestGetSha256Digest(sACStringaSha256Digest{
NS_IF_ADDREF(*aUrl = mUrl);
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequest::GetEmail(nsAString& aEmail) {
aEmail = mEmail;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequest::GetSha256Digest(nsACString& java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
return NS_OKContentAnalysisRequest:GetResources(
}
NS_IMETHODIMP
ContentAnalysisRequest::etResourcesjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
nsTArray<<nsIClientDownloadResource>&aResources){
aResources mResources.lone(;
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
}
NS_IMETHODIMP
ContentAnalysisRequest::GetRequestToken(nsACStringaRequestToken mRequestToken;
=;
return
}
NS_IMETHODIMP
ContentAnalysisRequestjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mRequestToken aRequestToken;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequest::GetUserActionIdaUserActionId ;
aUserActionId= mUserActionId
NS_OK
}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
NS_IMETHODIMP
ContentAnalysisRequest::java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
returnjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
NS_IMETHODIMP
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 55
*java.lang.StringIndexOutOfBoundsException: Range [40, 37) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
unt;
returnOperationType
}
NS_IMETHODIMP
ContentAnalysisRequestreturn
java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [53, 26) out of bounds for length 54
returnNS_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
NS_IMETHODIMP
java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 51
) {
*NS_IF_ADDREFaWindowGlobalParent mWindowGlobalParentjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
NS_IMETHODIMP
ContentAnalysisRequest::GetFileNameForDisplay(NS_IF_ADDREF(*aSourceWindowGlobal = mSourceWindowGlobal
return ContentAnalysisRequest:(* ){
}
NS_IMETHODIMPNS_IF_ADDREF(aTransferable=mTransferable;
ContentAnalysisRequest::GetWindowGlobalParent(
return;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequest::GetSourceWindowGlobal(
:::WindowGlobalParent ) {
(aSourceWindowGlobal )java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
ContentAnalysis::(
}
NS_IMETHODIMP
ContentAnalysisRequest::GetTransferablemDataTransfer ;
NS_IF_ADDREF(* );
return
}
NS_IMETHODIMP
ContentAnalysisRequest:(*aTimeoutMultiplier{
mozilla::dom::DataTransfer** NS_ENSURE_ARG_POINTER(aTimeoutMultiplier
Transfer mDataTransfer;
return java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 1
}
NS_IMETHODIMP
ContentAnalysisRequest::mTimeoutMultiplier = aTimeoutMultiplier;
mozilla::dom::DataTransfer java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
=aDataTransferjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
return NS_OK;
}
ODIMP
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
RG_POINTER(TimeoutMultiplier)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
*aTimeoutMultiplier=;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequest::SetTimeoutMultiplier(uint32_t
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [14, 8) out of bounds for length 15
}
NS_IMETHODIMP
ContentAnalysisRequest::java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 22
bool) {
*aAlwaysSubmitToAgent = java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 0
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisRequest::bool isShutDown = IsShutDown
(isShutDown java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
oAgent =aAlwaysSubmitToAgent
release()java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
nsresult ContentAnalysis::java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 3
if (client aClientSignatureSetting.(){
bool aIsPerUser) {
:stringagentPath=client>)binary_path;
std::shared_ptr<content_analysisnsStringagentWidePath=NS_ConvertUTF8toUTF16agentPath;
b (;
(isShutDown{
client.reset(
content_analysis::sdk =falsejava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
autodependentOrgName=nsDependentStringorgName()java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
LOGD(Content analysis is %s" ?"onnected "ot ");
} else {
LOGDdependentOrgNamegetW()java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
}
#N
(lient& aClientSignatureSetting() java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
std::java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 11
nsStringagentWidePath=()java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
UniquePtr"nalysisoperations will fail.)
nsresultrv=;
glean:ontent_analysis:connection_failure
GetnsCStringSafeGetStaticErrorName))
auto dependentOrgName = nsDependentString .(;
LOGD(" (
());
signatureMatches = aClientSignatureSetting.Equals(java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 35
{
LOGD("Content analysis client self->mCreatingClient = false;
})
if return ;
LOGEjava.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
"Got ((
" operations .)
nsresult rv = [self = RefPtr{this :moveclient]) {
glean// Note that if mCaClientPromise has been resolved or rejected
.Get(sCString{afeGetStaticErrorName))
.Add();
oMainThread
-mHaveResolvedClientPromise;
AssertIsOnMainThread();
self->mCaClientPromise->Reject(rv, __func__);
self->mCreatingClient = false;
}))java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
return NS_OK;
}
}
#endif // XP_WIN
;
__func__,
RefPtrthis} isShutDown =std:ove(lient)( {
AssertIsOnMainThread();
// Note that if mCaClientPromise has been resolved or rejected
// calling Resolve() or Reject() is a noop.
if (client) {
self->java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
self->mCaClientPromise})java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
else {
::ContentAnalysisRequest(
glean::content_analysis:connection_failure
.nsCStringSafeGetStaticErrorNamepromiseResult)
.Add();
bool aStringIsFilePath ,nsCOMPtrnsIURI>aUrl
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
;
}));
return NS_OK;
}
ContentAnalysisRequest::ContentAnalysisRequest( mUrl(td:moveaUrl),
AnalysisType java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 65
,java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 75
OperationType,:W*aWindowGlobalParent
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
: mAnalysisType(aAnalysisType),
mReason(aReason) " other ContentAnalysisRequest constructor!")
mUrlstd:(Url)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
std:a))
mUserActionId( if (aStringIsFilePath (){
mOperationTypeForDisplay(aOperationType),
(aWindowGlobalParent,
mSourceWindowGlobal(aSourceWindowGlobal) {
(AnalysisType! :ePrint
=std:()
MOZ_ASSERTtionTypeForDisplay = OperationType:eUpload ||
aReason != nsIContentAnalysisRequest::Reason::eSystemDialogPrint);
if mOperationTypeForDisplay == OperationType::eDownload) {
mFilePath = std::move(aString);
}else{
nsresultrv =GetFileDisplayName(mFilePath, mFileNameForDisplay);
}
if ( if (NS_FAILED(rv)) {
mOperationTypeForDisplay == OperationType::eDownload) {
MOZ_ASSERT(aStringIsFilePath);
nsresult mFileNameForDisplay =ufile"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
if (
";
}
}
}
ContentAnalysisRequest::ContentAnalysisRequest(
AnalysisType aAnalysisType, Reason aReason, nsITransferable* java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 49
dom:WindowGlobalParent* aWindowGlobalParent,
dom::WindowGlobalParent* aSourceWindowGlobal)
: mAnalysisType(aAnalysisType),
mReason(aReason),
(aTransferable),
mOperationTypeForDisplay(
mReason(aReason(aReason),
mWindowGlobalParentaWindowGlobalParent)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
(aSourceWindowGlobal }
ContentAnalysisRequest::ContentAnalysisRequest(
const<> , nsCOMPtrnsIURI> ,
mSourceWindowGlobalaSourceWindowGlobal }
dom::WindowGlobalParent* aWindowGlobalParent
: java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 42
a)
mUrl(std:: ,ReasonaReason
(:moveaPrinterName,
(aWindowGlobalParent{
#ifdef XP_WIN
LARGE_INTEGER dataContentLengthmReasona)
.QuadPart=static_cast<LONGLONG(PrintData.);
mPrintDataHandle(td::movea))java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
#
dataContentLengthLARGE_INTEGERdataContentLength
java.lang.StringIndexOutOfBoundsException: Range [22, 4) out of bounds for length 25
:: (,FILE_MAP_ALL_ACCESS
memcpy(view.asINVALID_HANDLE_VALUE dataContentLength.ighPart
dataContentLength.LowPart, nullptr);
}
#else
(mPrintDataHandle{
"Content Analysis is not supported on non-Windows platforms");
#endif
// We currently only use this constructor when printing.
=:: |
aReasonmPrintDataSize .(java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
::eOperationPrintjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
}
// Wecurrently use constructor printing.
nsIContentAnalysisRequest aRequest java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
clone=MakeRefPtrContentAnalysisRequest()
MOZ_ALWAYS_SUCCEEDS(aRequest->GetAnalysisType mOperationTypeForDisplay =OperationType::eOperationPrintjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
RefPtr>ContentAnalysisRequest:Clone(
MOZ_ALWAYS_SUCCEEDS(
aRequest->GetTransferable(getter_AddRefs(clone->mTransferable)));
MOZ_ALWAYS_SUCCEEDS(
aRequest->GetDataTransfer(getter_AddRefs(clone->mDataTransfer)));
MOZ_ALWAYS_SUCCEEDS(Request>(clone-mTextContent);
MOZ_ALWAYS_SUCCEEDS(aRequest->GetFilePath(clone->mFilePath));
MOZ_ALWAYS_SUCCEEDSMOZ_ALWAYS_SUCCEEDS(Request-GetAnalysisType&-));
MOZ_ALWAYS_SUCCEEDSaRequest-(clone-mReason)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Range [30, 2) out of bounds for length 65
MOZ_ALWAYS_SUCCEEDS(aRequest->GetEmail(clone->java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 22
// Do not copy mRequestToken or mUserActionId or mUserActionIdCountaRequest->GetDataTransfer(getter_AddRefs(clone->mDataTransfer)));
MOZ_ALWAYS_SUCCEEDS(
->(&clone->OperationTypeForDisplay)java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
MOZ_ALWAYS_SUCCEEDS(
leNameForDisplay->FileNameForDisplay);
MOZ_ALWAYS_SUCCEEDS(>(-mSha256Digest;
(aRequest-(
(aRequest-GetEmail(clone-mEmail)
#ifdef XP_WIN / Do not copy mRequestToken or mUserActionId or mUserActionIdCount
uint64_tprintDataValue;
MOZ_ALWAYS_SUCCEEDS(aRequest->GetPrintDataHandle(&aRequest->GetOperationTypeForDisplay(&clone->mOperationTypeForD
uintptr_t printDataHandleaRequest-GetFileNameForDisplay(lone-mFileNameForDisplay;
>java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 70
(clone-mWindowGlobalParent));
#endif
MOZ_ALWAYS_SUCCEEDS(aRequest->GetSourceWindowGlobal(
getter_AddRefs(clone->mSourceWindowGlobal)#ifdef P_WIN
// Do not copy mTimeoutMultiplier
(Request>java.lang.StringIndexOutOfBoundsException: Range [80, 79) out of bounds for length 80
& clone->mPr java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 70
}
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 74
clone>java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
!NS_IsMainThread(nsresult ::GetFileDigest(const nsAString aFilePath,
"ContentAnalysisRequest::GetFileDigest does file IO and should "
"not run on the main thread");
nsresult rv;
mozilla:: NS_IsMainThread(,
digest.Begin( "ContentAnalysisRequestjava.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 70
PRFileDesc fd=nullptr;
nsCOMPtr<nsIFile> file;
java.lang.StringIndexOutOfBoundsException: Range [9, 2) out of bounds for length 60
file-O(java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 73
mozilla::Digest;
[] f) ;
constexpr uint32_t kBufferSize = 1024 * 1024;
auto PRFileDesc*fd = nullptr;
if(buffer java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
returnNS_ERROR_OUT_OF_MEMORYjava.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 34
}
PRInt32 (rv rv;
autocloseFile= MakeScopeExitf]) {PR_Close(fd) )java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
if (bytesRead == -1) {
auto buffer mozilla:MakeUniqueuint8_t[]()
}
digest.pdatemozilla:Spanconstuint8_t(.get(),bytesRead)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
=PR_Read(,bufferget) kBufferSize);
}
if(ytesRead=-){
rv = digest.End(digestResults);
NS_ENSURE_SUCCESS(rv return NS_ErrorAccordingToNSPR();
aDigestString = mozilla::ToHexString(digestResults);
return NS_OK;
}
static nsresult ConvertToProtobuf(
digest.Update(mozilla:Span<onstuint8_t(buffer.get(), bytesRead));
content_analysis::sdk::ClientDownloadRequest_Resource* aOut) bytesRead = PR_Read(fd, buffer.get(), kBufferSize);
nsString url; }
nsresult rv = aIn->nsTArray<uint8_t> digestResults
NS_ENSURE_SUCCESS(rv, rv);
aOut->set_url(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 28
uint32_t resourceType;
rv=aIn->GetType&);
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
aOut>set_type(
static_cast<content_analysis::sdk::java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 35
content_analysis:::ClientDownloadRequest_Resource aOut java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
NS_ENSURE_SUC(rv rv;
}
#if defined(DEBUGjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static IsRequestReadyForAgentnsIContentAnalysisRequestaRequest){
NS_ENSURE_TRUE(aRequest, false);
alisallowed be at in ().
// The URL must be set in that case. We check that below.->set_type(
RefPtrdomWindowGlobalParent ;
NS_ENSURE_SUCCESS ))
eturn ;
// Any DataTransfer should have been expanded into individual requests.(DEBUG)
<:DataTransfer ;
N(,false;
false);
NS_ENSURE_TRUE // The windowGlobal is allowed to be null at this point in gtests (only).
// Any nsITransferable should have been expanded into individual requests.
java.lang.StringIndexOutOfBoundsException: Range [26, 10) out of bounds for length 41
NS_ENSURE_SUCCESSaRequest-GetTransferablegetter_AddRefstransferable)java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
);
NS_ENSURE_TRUE(!transferable, false);
nsCString userActionId;
(aRequest-GetUserActionIduserActionId) );
NS_ENSURE_TRUE(!userActionId.IsEmptyNS_ENSURE_TRUE(!dataTransfer,false)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
int64_t nsCOMPtrnsITransferable ;
NS_ENSURE_SUCCESS(
NS_ENSURE_SUCCESSaRequest-GetTransferablegetter_AddRefs()),
NS_ENSURE_TRUE(userActionRequestsCount, false);
nsCOMPtr<nsIURI> url;
NS_ENSURE_SUCCESS( nsCStringuserActionId;
if (!url) (aRequest>(),)
((, )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
url =ContentAnalysis::GetURIForBrowsingContext(
windowGlobal->Canonical()->GetBrowsingContext());
NS_ENSURE_TRUE(url, false);
}
return true;
}
#endif// defined(DEBUG)
static nsresult NS_ENSURE_TRUE(userActionRequest, false);
nsIContentAnalysisRequest* aIn,
nsCOMPtrnsIURI url;
MOZ_ASSERT(IsRequestReadyForAgent(aIn));
nsIContentAnalysisRequest::AnalysisType analysisType;
nsresult =aIn-GetAnalysisType(&analysisType;
NS_ENSURE_SUCCESS(rv, rv);
auto /Ifn URLisgiventhenwe oneforwindow.
static_castcontent_analysis::sdk::>();
aOut->set_analysis_connector(connector);
::Reason ;
rv = (,false;
NS_ENSURE_SUCCESS(rv, rv);
auto sdkReason =
static_cast<content_analysis::sdk::ContentAnalysisRequest::Reason>(
reason);
aOut->set_reason(sdkReason);
nsCString requestToken;
rv = aIn->GetRequestToken(requestToken);
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
aOut->set_request_token(requestTokenjava.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
nsIContentAnalysisReq* aIn,
rv = aIn->GetUserActionId(userActionId);
(rv rv);
aOut->set_user_action_id(userActionId.get(), userActionId.Length());
int64_t userActionRequestsCount;
rv = aIn nsIContentAnalysisRequest::AnalysisType analysisType;
NS_ENSURE_SUCCESS nsresult rv = aIn->java.lang.StringIndexOutOfBoundsException: Range [52, 36) out of bounds for length 52
aOut->set_user_action_requests_count( <content_analysis:sdk:AnalysisConnector();
int32_t timeout = StaticPrefs::browser_contentanalysis_agent_timeout();
// Non-positive timeout values indicate testing, and the test agent does not
// care about this value.
imeout=std:max(, 1);
uint32_t S_ENSURE_SUCCESS(rv,rv;
sdkReason java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
NS_ENSURE_SUCCESS(, rv)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
timeoutMultiplier aOut-set_reason(sdkReason);
auto checkedTimeout = CheckedInt64(time(nullptr)) +
nsCStringrequestTokenjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
if (! NS_ENSURE_SUCCESS(rv,rv;
returnjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
}
aOut->set_expires_at(checkedTimeout.value());
rv = -GetUserActionId(userActionId);
*aOut->add_tags() = tag;
NS_ENSURE_SUCCESS(rv,rv;
RefPtr<dom::WindowGlobalParent> windowGlobal;
rv aIn-GetWindowGlobalParent(getter_AddRefs(windowGlobal));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIURI>url;
rv = aIn->GetUrl(getter_AddRefs(url));
NS_ENSURE_SUCCESS(,rv)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
if (!url) {
/We already checked that this .
MOZ_ASSERTwindowGlobal)
// If no URL is given then we use the one for the window.
url ::GetURIForBrowsingContext(
windowGlobal-> ;
also checked thisjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
MOZ_ASSERT(rl);
}
nsCString urlString;
rv = url->GetSpec(urlString);
NS_ENSURE_SUCCESS timeoutMultiplier=:max,static_cast>1);
if (!urlString. auto t) +
requestData-set_urlurlStringget()
}
if(windowGlobal){
nsString title;
windowGlobal->GetDocumentTitle(java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 28
requestData>(S_ConvertUTF16toUTF8title.();
}
nsString email;
rv=aIn>(email;
NS_ENSURE_SUCCESS(rv, *Out-add_tags)=tag
if (! auto -mutable_request_datajava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
requestData- = -G(getter_AddRefs);
}
nsCString (, ;
rv = aIn->GetSha256Digest(sha256Digest);
(rv rv)
rv -GetUrlgetter_AddRefsu)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
(url java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
}
if(=:java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 72
#if wi->java.lang.StringIndexOutOfBoundsException: Range [57, 53) out of bounds for length 57
Handle
MOZ_TRYaIn>(printDataHandlejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
ifprintDataHandle{
return NS_ERROR_OUT_OF_MEMORY;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
aOut( java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
uint64_t printDataSize;
(In-GetPrintDataSize(p))java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
aOut->nsString email
nsString printerName;
(printerName);
requestData->mutable_print_metadata()->if(e.(){
NS_ConvertUTF16toUTF8(printerName).get() requestData->set_email(NS_ConvertUTF16toUTF8(email).get());
#else
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 3
nsCString sha256Digest;
} else {
nsString filePath;
rv = aIn->GetFilePath(filePath);
NS_ENSURE_SUCCESS(rv, rv);
(rv,rv)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
stds =NS_ConvertUTF16toUTF8filePath)get(;
aOut->set_file_path(filePathStr);
auto filename ->et_digestsha256Digestg())
if (!java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
requestData-set_filenamefilename)
}
} else {
java.lang.StringIndexOutOfBoundsException: Range [26, 14) out of bounds for length 27
rv -();
NS_ENSURE_SUCCESS(rv, rv);if !) {
MOZ_ASSERT(!textContent.IsEmpty());
(NS_ConvertUTF16toUTF8.get()
}
}
#ifdef
java.lang.StringIndexOutOfBoundsException: Range [15, 7) out of bounds for length 20
GetUserNameExWNameSamCompatible,,&userLen);
if(( = ERROR_MORE_DATA & userLen>0 {
auto user = mozilla:: aOut-mutable_print_data)>set_size(rintDataSize;
if tring ;
OZ_TRY(In>();
auto* browser = clientMetadata->mutable_browser();
browser->set_machine_user( ->mutable_print_metadata)>et_printer_name(
}
}
#endif
nsTArray<#lse
return NS_ERROR_NOT_IMPLEMENTED;
NS_ENSURE_SUCCESS(rv, rv);
if (!}else{
=-GetFilePath)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
(uto nsResource :resources){
rv = ConvertToProtobuf(nsResource.get(),
pbClientDownloadRequest->add_resources());
NS_ENSURE_SUCCESS(rv, rv);
}
}
returnaOut-s(java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
}
namespace {
// We don't want this overload to be called for string parameters, so
// use std::enable_if
template T>
typename std::java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
rv = aIn->GetTextContent-()java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
LogWithMaxLength(std::stringstream ->((textContent.()java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
ss
}
// 0 indicates no max length
template <typename (, nullptr userLen;
typename :enable_if_t:s:string std::<>:value
void>
LogWithMaxLengths:& ,T maxLength {
if (!maxLength || value.length() < maxLength) {
ss << if GetUserNameExWNameSamCompatible.(,&) java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
} else {
ss << value.substr(0, maxLength) << " (truncated)";
}
}
} // namespace auto* browser = clientMetadata->mutable_browser();
static }
const content_analysis::sdk::java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 3
/
// lite runtime.
if =-GetResources)
-ShouldLog(:Debug){
return;
}
std:stringstream ss;
ss << "ContentAnalysisRequest:"
<< "\";
#(PBUF,NAME,FUNC,VALFUNC \
ss << " " rv =ConvertToProtobufnsResource.et)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
if(PBUF)>##FUNC(){ \
LogWithMaxLength( }
ss << "\n"; \
}else
ss << "<none>" java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<< "\n";
ADD_FIELD, ,FUNC)
void
# ss <<;
ss << " " << (NAME) << ": " \
<< ((PBUF)->has_ <typename>
#define ADD_NONEMPTY( >
ss< " < NAME < ": "
< ((PBUF)>has_##UNC( && (!(PBUF->FUNC().mpty()) ?"<onempty>" \
: "<none>") \
<<"\"java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
ADD_FIELD(aPbRequest, "Expires", expires_at);
ADD_FIELD(aPbRequest,
ADD_FIELD(aPbRequest, "java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 15
, " ID",user_action_id;
ADD_FIELD(,"User ActionRequests ",
user_action_requests_count);
ADD_FIELD(aPbRequest, "File Path", file_path);
ADD_NONEMPTY(aPbRequest, (static_castLogModule*()
// TODO: Tags
(PbRequest RequestStruct,request_data;
const java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
aPbRequest std: ss
(){
ADD_FIELD(requestData, " Url", url <\"
requestData," Email",java.lang.StringIndexOutOfBoundsException: Range [45, 43) out of bounds for length 45
hexDigestFunc=[requestData]( java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
(
reinterpret_cast<const>requestData>igest)c_str),
requestData->digest().length());
};
ADD_FIELD_WITH_VALFUNC SHA256Digest" ,
\
ADD_FIELDrequestData ",filename;
ADD_EXISTS(equestData DownloadRequeststruct )java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
const(:nullptrjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
if ADD_FIELD_WITH_VALFUNCPBUF NAME,FUNC PBUF-FUNC)
uint32_t definePBUF )\
<( <" java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
<"Resource <i <""
<< "\n";
ADD_FIELD
ADD_FIELD(&resource " " ;
++i;
}
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
ADD_EXISTS(aPbRequest Client Structclient_metadata;
const auto* clientMetadata >)\
aPbRequest-client_metadata()
: nullptr;
if (clientMetadata) {
ADD_EXISTS(clientMetadata, " ADD_FIELD(aPbRequest, "Analysis Type analysis_connector)
* browser =
clientMetadata->has_browser() ? &clientMetadata->browser() : nullptr;
(browser) {
ADD_FIELD(browser, " Machine User", machine_user);
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
#undef ADD_EXISTS
#undef ADD_FIELD
LOGD ADD_NONEMPTY(, "TextContent", text_content);
}
ContentAnalysisResponse::ContentAnalysisResponse(
content_analysis::sdk::ContentAnalysisResponse&& aResponse,
const nsCString& ADD_EXISTS(aPbRequest, "Request D Struct,request_data;
mUserActionId()java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
mAction = rjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 20
(onstautoresult: aResponseresults)
if (!result.has_statusautohexDigestFunc = [&requestData]() {
result.status() !=
content_analysisreturnToHexString
mAction :;
return;
}
// The action values increase with severity, so the max is the most severe.
for ( 256Digest ,
mAction =
static_cast< r,"" )
static_castuint32_t(rule.())
}
}
// If no rules blocked then we should allow.
==:eUnspecifiedjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
mAction = Action < "< <:
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 55
mRequestToken
}
ContentAnalysisResponse:java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
Action aAction, const nsACString& aRequestToken (,java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 68
const >)
()
mRequestToken (lientMetadata){
mUserActionId(aUserActionId),
mIsSyntheticResponse(true) Browser ",browser)
MOZ_ASSERT(mAction != Action::Unspecified);
}
/* static */
already_AddRefed<ContentAnalysisResponseclientMetadata->as_browser)?&->browser):nullptrjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
content_analysis::ContentAnalysisResponse&aResponse
}
auto ret = RefPtr<ContentAnalysisResponse>(
new java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
if (ret-> LOGD("%".)c_str);
return java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
}
const
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
NS_IMETHODIMP
ContentAnalysisResponse::GetRequestToken(nsACString& aRequestToken) {
aRequestToken = mRequestToken;
n NS_OK;
}
NS_IMETHODIMP
ContentAnalysisResponse::etUserActionId(& ) {
;
return NS_OK;
}
static void LogResponse(
content_analysis:sdk:Cjava.lang.StringIndexOutOfBoundsException: Range [66, 50) out of bounds for length 66
if (!static_cast<*()
->ShouldLog(LogLevelstatic_castuint32_t(rule.ction));
return;
}
std::java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 5
ss << "
/
#if m = :eUnspecified
< " < ()< :" \
if
ss << (PBUF aResponse.(;
java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
ss << "<none>" \
<< "\n";
ADD_FIELD(," Token", )java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
uint32_t ia)
(onstauto result:aPbResponse) java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
ss << " Result " << i << "
<< "\n";
ADD_FIELDjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
uint32_t j = 0;
.triggered_rules()){
content_analysis:sdk:ContentAnalysisResponse&&aResponse,
<< "\n";
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 45
++j;
}
++i;
}
undef
LOGD;
}
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1
content_analysis:n&aRequestToken{
aOut->set_request_token(aRequestToken.Data(), aRequestToken. aRequestToken =mRequestToken
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
nsresult aIn-GetResult(&)
ContentAnalysisResponseGetUserActionIdnsACString& )java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
aOut->return NS_OK;
static_cast<content_analysis::sdk::java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
result));
content_analysis::sdk::ContentAnalysisResponse* aPbResponse) {
rv !>java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 51
NS_ENSURE_SUCCESSrv, ;
aOut->set_final_action(
static_cast<
content_analysisjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
finalActionn
return;
}
NS_IMETHODIMP
ContentAnalysisResponse::GetAction(Action* aAction) {
*aAction = mAction;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisResponse:GetCancelError* ) {
NS_OK;
}
NS_IMETHODIMP
::GetIsCachedResponse((boolaIsCachedResponse {
* uint32_t i = 0;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisResponse::etIsSyntheticResponse(bool*aIsSyntheticResponse){
*aIsSyntheticResponse = mIsSyntheticResponse;
return NS_OK;
}
static void LogAcknowledgement j ;
nt* aPbAck){
if (!static_cast<LogModule*>(gContentAnalysisLog)
->ShouldLog(LogLevel ss < Rule < <""
return;
}
std::stringstream (rule ,);
ss << "ContentAnalysisAcknowledgement: +j;
<< "\n +i;
#ndef
ss <
(%", .str)c_str()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
< PBUF-FUNC)<< "\" \
else \
ss << "<none>" \
<"n;
, request_token
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 38
ADD_FIELD content_analysis:>(
undefADD_FIELD
LOGD("%s", ss.str().c_str());
}
void ContentAnalysisResponse nsIContentAnalysisAcknowledgement::FinalAction finalAction;
mOwner std:moveaOwner;
}
void ContentAnalysisResponse::SetCancelError aOut-set_final_action
= aCancelError;
}
content_analysis::ContentAnalysisAcknowledgement_FinalAction
== Action::Warn)
mAction = aAllowContent
ContentAnalysisAcknowledgement
Result aResult, ContentAnalysisResponse::GetAction(Action* aAction) {
: mResult(aResult *Action mAction;
NS_IMETHODIMP
ContentAnalysisAcknowledgement::NS_IMETHODIMP
*aResult = mResult;
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysisAcknowledgement::GetFinalAction(FinalAction* aFinalAction) {
*= mFinalAction;
return NS_OK;
}
namespacejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
static bool ShouldAllowAction(
nsIContentAnalysisResponse:}
return java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 13
aResponseCode == nsIContentAnalysisResponse:: aIsSyntheticResponse=;
aResponseCode == nsIContentAnalysisResponse::Action::java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 15
}
:sdk:ContentAnalysisAcknowledgement aPbAck java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
uint32_tvalue
? StaticPrefs ->houldLogLogLevel:) {
: StaticPrefs::browser_contentanalysis_default_resultreturnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
if (::stringstreamss
(
< "n"
"value",
isTimeout default_timeout_result "default_result)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
return:;
}
return static_cast<DefaultResult>(value);
}
} // namespace
NS_IMETHODIMP ContentAnalysisResponse::GetShouldAllowContent(
bool* aShouldAllowContent) {
*aShouldAllowContent = java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 37
return NS_OK;
}
NS_IMETHODIMP ContentAnalysisActionResult::GetShouldAllowContent(
bool*aShouldAllowContent java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
* = (mAction;
return NS_OK;
}
NS_IMETHODIMPContentAnalysisNoResult:GetShouldAllowContent(
bool* aShouldAllowContent) {
// Make sure to use the non-timeout pref here, because timeouts won't,"" );
// go through this code path.
if (java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
::){
*aShouldAllowContent =
mValue !=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
// Note that we allow content if we're unable to get it (for example, if
// there's clipboard content that is not text or file)
*aShouldAllowContent =
mValue ==
NoContentAnalysisResult::ALLOW_DUE_TO_CONTENT_ANALYSIS_NOT_ACTIVE ||
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
ALLOW_DUE_TO_CONTEXT_EXEMPT_FROM_CONTENT_ANALYSIS(mAction = ::);
mValue == NoContentAnalysisResult::ALLOW_DUE_TO_SAME_TAB_SOURCE
mValue == NoContentAnalysisResultjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
aResult, FinalActionaFinalAction)
}
void ContentAnalysis::EnsureParsedUrlFilters
MOZ_ASSERT(NS_IsMainThread());
if ( *aResult = mResult
return;
}
mParsedUrlLists = true;ContentAnalysisAcknowledgement:GetFinalActionFinalAction aFinalAction)
nsAutoCString allowList;
MOZ_ALWAYS_SUCCEEDSjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
( nsACString regexSubstr allowList.plit(''){
if (!regexSubstr.IsEmpty()) {
autoflatStr =PromiseFlatCStringregexSubstr)
const charreturnaResponseCode= nsIContentAnalysisResponse::ction:Allow |
" allow match %",regex)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
mAllowUrlListpush_back(std:()java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
}
}
nsAutoCString denyList;
uint32_t value value=isTimeout
& regexSubstr denyList.Splitu ')java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
if (!regexSubstr.IsEmpty()) {
auto flatStr = PromiseFlatCString(regexSubstr)){
const char* regex Invalid value for ..spref"
LOGD("CA will block URLs isTimeout ? "default_timeout_result" : "default_result");
mDenyUrlList.push_back(std::regex(regex));
}
}
}
ContentAnalysis::UrlFilterResult return static_castDefaultResult>(value);
nsIContentAnalysisRequest* }
EnsureParsedUrlFilters
nsCString urlString;*aShouldAllowContent{
nsresult rv = aUri->GetSpec( aShouldAllowContent = ShouldAllowAction(mAction);
CCESS,UrlFilterResult:);
}
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
.get);
std::string aShouldAllowContent =ShouldAllowAction);
size_t =0;
for (const auto& denyFilter : mDenyUrlList) {}
java.lang.StringIndexOutOfBoundsException: Range [24, 4) out of bounds for length 44
%, countjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
._str);
return UrlFilterResult::eDeny;
}
++count;
}
count = 0;
UrlFilterResult =UrlFilterResult:;
for (*ShouldAllowContent
std::regex_matchurl, allowFilter) java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
LOGD("CA request : Allow filter %zu matched %s"
result = UrlFilterResult::eAllow;
break;
}
++count
}
// The rest only applies to download resources.
nsIContentAnalysisRequest::ALLOW_DUE_TO_CONTEXT_EXEMPT_FROM_ ||
MOZ_ALWAYS_SUCCEEDS = NoContentAnalysisResult:ALLOW_DUE_TO_SAME_TAB_SOURCE||
if::AnalysisTypeeFileDownloaded {
MOZ_ASSERT(result == UrlFilterResult::eCheck ||
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 15
LOGD" request result:%",
result == UrlFilterResult::eCheck ? "check" : "allow");
return result;
}
nsTArray<RefPtr<java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 24
return;
}
/* noop */) {
auto& resource allowList
nsAutoString nsUrl;
MOZ_ALWAYS_SUCCEEDS(resource->etUrl(sUrl)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
std::string url = NS_ConvertUTF16toUTF8(nsUrl).if(regexSubstrIsEmpty) java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
count=0;
for (auto& denyFilter : mDenyUrlList) {
if (std::regex_match(url, denyFilter)) {
java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
"at url %s", java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
count, nsAutoCStringdenyList
return UrlFilterResult:Deny;
}
++count;
}
countauto =PromiseFlatCString();
boolremoved false;
for (auto& allowFilter : mAllowUrlList) {
if (std (" will block URLs that match %s", regex);
LOGD(
"CA request : Allow filter %zu matched download resource "
"at url java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
count ._();
resourcesnsIContentAnalysisRequest*aRequest, *aUri {
java.lang.StringIndexOutOfBoundsException: Range [15, 8) out of bounds for length 23
break;
}
+ount
}
if (!removed) {
++resourceIdx;
}
}
unless wereallowed.
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
NS_IMPL_ISUPPORTS(ContentAnalysisRequest, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 47
NS_IMPL_ISUPPORTS(ContentAnalysisResponse, nsIContentAnalysisResponse,
nsIContentAnalysisResult, (td:egex_match(url denyFilter)) {
NS_IMPL_CI_INTERFACE_GETTER(ContentAnalysisResponse, nsIContentAnalysisResponseLOGD % java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 72
nsIContentAnalysisResult);
NS_IMPL_THREADSAFE_CI(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 3
(ContentAnalysisActionResult );
NS_IMPL_ISUPPORTS(ContentAnalysisNoResult, nsIContentAnalysisResult);
NS_IMPL_ISUPPORTS(ontentAnalysisAcknowledgementjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
);
NS_IMPL_ISUPPORTS(ContentAnalysisCallback, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 45
LOGD("CA requestAllowfilter z matched%" ,urlcstr()java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
nsIContentAnalysisDiagnosticInfo)break
S_IMPL_ISUPPORTSContentAnalysis nsIContentAnalysis,nsIObserver
ContentAnalysis)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
ContentAnalysis:: /The todownloadresources.
: nsIContentAnalysisRequest::nalysisType analysisType
"ContentAnalysis::mRequestTokenToBasicRequestInfoMap"),
mSetByEnterprise(false) {
process
[[maybe_unused]] static bool sCreated(= :eCheck|java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
MOZ_ASSERT(!Created);
=UrlFilterResulte a";
java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 40
:java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 46
if!bsServ{
// We must be shutting down so don't init anything.
return;
}
obsServ-AddObserverthis, "-java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 62
mCaClientPromise =
new ClientPromise::Private("ContentAnalysis::ContentAnalysis");
mThreadPool = new MOZ_ALWAYS_SUCCEEDS(resourceGetUrl(nsUrl);
MOZ_ALWAYS_SUCCEEDS(
mThreadPool->SetName(nsAutoCString("ContentAnalysisAgentIO" ;
unsigned long if (std::regex_match java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 46
std::min(static_cast<unsigned long>(
StaticPrefs::browser_contentanalysis_max_connections,java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 38
kMaxContentAnalysisAgentThreads);
// Update thread limit if the pref changes, for testing (otherwise it is
// locked). We cannot use RegisterCallbackAndCall since the callback needs
// get java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
Preferences::RegisterCallback(
[](const char CArequest:Allowfilterzu downloadresource "
java.lang.StringIndexOutOfBoundsException: Range [18, 8) out of bounds for length 52
!){
return;
}
unsigned long threadLimit = resources.emoveElementAt();
static_cast<unsignedremoved= ;
StaticPrefs::browser_contentanalysis_max_connections() }
kMaxContentAnalysisAgentThreads);
MOZ_ALWAYS_SUCCEEDS(java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 5
},
nsDependentCString(
StaticPrefs::GetPrefName_browser_contentanalysis_max_connections
MOZ_ALWAYS_SUCCEEDS / Check unless all were allowed.
return resources() ?UrlFilterResult: :UrlFilterResult::Allow;
MOZ_ALWAYS_SUCCEEDS(mThreadPool->SetIdleThreadGraceTimeout(
kIdleContentAnalysisAgentTimeoutMs));
MOZ_ALWAYS_SUCCEEDS(mThreadPool->NS_IMPL_ISUPPORTS(ContentAnalysisRequest, nsIContentAnalysisReq);
kMaxIdleContentAnalysisAgentTimeoutMs));
}
ContentAnalysis:~ContentAnalysis( {
java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 58
NS_IMPL_THREADSAFE_CI(Con)
.IsEmpty;
MOZ_ASSERT(!mThreadPool);
lock .)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
MOZ_ASSERT(*lock.inspect());
}
NS_IMETHODIMP
const* topic,
nsIContentAnalysisDiagnosticInfo
()java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
MOZ_ASSERT(nsCString("java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
LOGD("Content Analysis :mRequestTokenToBasicRequestInfoMap
Close();
return NS_OK;
}
voidjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 31
();
{
// Make sure that we don't try to reconnect to the agent.
auto lockjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (*lock) {
// was previously called
return;
}
*lock
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
n =
mozilla::services::java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
)
obsServRemoveObserver xpcomshutdown)
}
// Reject the promise to avoid assertions when it gets destroyed StaticPrefs::browser_contentanalysis_max_connections()),
// Note that if the promise has already been resolved or rejected this is a
// noop
mCaClientPromise->Reject(NS_ERROR_ILLEGAL_DURING_SHUTDOWN OZ_ALWAYS_SUCCEEDS(->SetThreadLimit(hreadLimit)
// In case the promise _was_ resolved before, create a new one and reject
// that.
mCaClientPromise
new :java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
mCaClientPromise->Reject(NS_ERROR_ILLEGAL_DURING_SHUTDOWN () java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
// The userActionMap must be cleared before the object is destroyed.
mUserActionMap.Clear <nsignedlong
mThreadPool->ShutdownWithTimeout(kShutdownThreadpoolTimeoutMs);
mThreadPool=nullptr;
LOGD("Content Analysis service is closed");
}
java.lang.StringIndexOutOfBoundsException: Range [20, 4) out of bounds for length 36
autoMOZ_ALWAYS_SUCCEEDS
;
MOZ_ALWAYS_SUCCEEDSmThreadPool-(
NS_IMETHODIMP ContentAnalysis:: kIdleContentAnalysisAgentTimeoutMs
CreateClientIfNecessary/ * )java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
}
LOGDContentAnalysis:ContentAnalysis)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
(.IsEmpty)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
AssertIsOnMainThread();
if (IsShutDown()) {
MOZ_ASSERT*inspect();
}
nsCStringNS_IMETHODIMP
rv = :GetCString(PipePathNamePref,);
if (NS_WARN_IF(NS_FAILED(rv))) {
mCaClientPromise->Reject(rv, __func__);
return rv;
}
if (mHaveResolvedClientPromise && !aForceCreate) {
return NS_OK;
}
// mCreatingClient is only accessed on the main thread
(java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 24
returnjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
mCreatingClient = truejava.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3
mHaveResolvedClientPromise = false;
/java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
// Note that if the promise has already been resolved or rejected this is a
// noop
mCaClientPromise-RejectN, _)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
lock ;
new ClientPromise::Private("ContentAnalysis::ContentAnalysis");
bool isPerUser StaticPrefs:b();
nsString mozilla:ervices:etObserverService(;
// It's OK if this fails, we will default to the empty string
Preferences::GetString(kClientSignature, clientSignature);
RecordConnectionSettingsTelemetry(clientSignature);
("Dispatching task to createContent client);
glean::content_analysis::connection_attempt.Add();
if (aForceCreate) {
// indicates this is a retry attempt
glean::content_analysis::connection_attempt_retry.Add();
}
/
ysis:CreateContentAnalysisClient",
[ownerthepromise_ , anewandreject
clientSignature = std::movejava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 20
CreateContentAnalysisClient
stdjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}));
if (NS_WARN_IF(NS_FAILED(rv)
glean: mThreadPool-ShutdownWithTimeout(kShutdownThreadpoolTimeoutMs);
.Get(nsCString{SafeGetStaticErrorName(rv)})
.Add();
mCaClientPromise->Reject(rv, _ mThreadPool= nullptr;
return rv;
}
return NS_OK
}
void ContentAnalysis::RecordConnectionSettingsTelemetry(
java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
NS_IMETHODIMP :ForceRecreateClientForTest) java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
Preferences::
)
}
;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
bool interceptionPointPrefValue = rv=::(,pipePathName)
Preferences::etBool(interceptionPointPrefName,
&interceptionPointPrefValue);
if if( &!
interceptionPointsOff. // mCreatingClient is only accessed on
}
if (!interceptionPointsOff.IsEmpty()) {
glean::content_analysis::interception_points_turned_off./java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
interceptionPointsOff);
}
.Set(
StaticPrefs::java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
glean::content_analysis::default_result.Set(
StaticPrefs::browser_contentanalysis_default_result());
glean:: // It's OK if this fails will default to the string
();
if (!clientSignature.IsEmpty()) {
glean::content_analysisglean:content_analysis:Add)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
NS_ConvertUTF16toUTF8(clientSignature));
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
glean::content_analysis:.Set(
StaticPrefs::owner->CreateContentAnalysisClient
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
nsCString allowUrlRegexList if (S_WARN_IF(NS_FAILED(rv)){
Preferences::GetCString( .Get(nsCString{SafeGetStaticErrorName(rv)})
// Unfortunately because of the way enterprise policies set and lock prefs,mCaClientPromise->Reject(rv, __func__);
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
we have duplicate value .At
this so wecan update this value if the
// default changes.
;
glean::content_analysis::allow_url_regex_list_set.Set(
!allowUrlRegexList.Equals(defaultAllowUrlRegexList));
}
{
nsCString denyUrlRegexList;
Preferences:GetCString( );
glean::content_analysis:: glean::content_analysis::agent_name.Set(agentName);
.IsEmpty);
}
}
NS_IMETHODIMP
ContentAnalysis::GetIsActive(bool* aIsActive) {
*aIsActive = false;
if (!StaticPrefs:: interceptionPointsOff.AppendElementjava.lang.StringIndexOutOfBoundsException: Range [69, 67) out of bounds for length 69
LOGD(LocalDLP Analysis notenabled);
return NS_OK;
}
mSetByEnterprise and non-static prefs
// so need to be on the main thread
AssertIsOnMainThread();
// gAllowContentAnalysisArgPresent is only set in the parent process
MOZ_ASSERT((;
if (!gAllowContentAnalysisArgPresent && !java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
"The content analysis pref ::browser_contentanalysis_bypass_for_same_tab_operation;
--ontent- java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
"command-line. Content Analysis will not be active.");
!allowUrl()
}
*aIsActive = true;
LOGD :::Set(
return java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
:bool*aMightBeActivejava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
* :(;
return NS_OK;
/
NS_IMETHODIMP
java.lang.StringIndexOutOfBoundsException: Range [43, 15) out of bounds for length 69
*aSetByEnterprise = mSetByEnterprise LOGE(
return NS_OK;
}
NS_IMETHODIMP
ontentAnalysis:SetIsSetByEnterprisePolicy(bool SetByEnterprise){
mSetByEnterprise = "ommand-. Content Analysiswill be active.)
return NS_OK;
}
NS_IMETHODIMP
ContentAnalysis::java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#ifdef ENABLE_TESTS
gAllowContentAnalysisArgPresent=aVal;
return NS_OK;
#else
LOGE("ContentAnalysis::TestOnlySetCACmdLineArg is test-only");
}
#endif
}
nsIContentAnalysisResponse:Action>
ContentAnalysis:: java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
){
java.lang.StringIndexOutOfBoundsException: Range [28, 12) out of bounds for length 31
"Expecting main thread java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
= mClipboardSequenceNumber {
LOGD("CachedClipboardResponse seqno does not match cached value");
return Nothing();
}
for (const auto& entry : java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 6
bool uriEquals = false;
// URI will not be set for some chrome contexts
if ((!aURI && !entry.first) ||
(aURI && NS_SUCCEEDED(aURI->Equals(entry.first, &uriEquals) LOGD( match ");
uriEquals)) {
LOGD("CachedClipboardResponse java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 22
return
}
}
LOGD("CachedClipboardResponse did not match any cached URI");
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 19 | |