author | Francois Marier <francois@mozilla.com> |
Mon, 18 Jan 2016 13:39:00 -0800 | |
changeset 280450 | a2cba247fc257678934db1bc0ccb93db9ccc566c |
parent 280449 | 03dee128e7897375174e03149f1e01e528329c34 |
child 280451 | 3714de35de4b0d643d6efb7d96a1e2a01da52152 |
push id | 29915 |
push user | cbook@mozilla.com |
push date | Tue, 19 Jan 2016 11:01:05 +0000 |
treeherder | mozilla-central@b67316254602 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | gcp |
bugs | 1237370 |
milestone | 46.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
toolkit/components/downloads/ApplicationReputation.cpp | file | annotate | diff | comparison | revisions |
--- a/toolkit/components/downloads/ApplicationReputation.cpp +++ b/toolkit/components/downloads/ApplicationReputation.cpp @@ -23,21 +23,22 @@ #include "nsIURI.h" #include "nsIURL.h" #include "nsIUrlClassifierDBService.h" #include "nsIX509Cert.h" #include "nsIX509CertDB.h" #include "nsIX509CertList.h" #include "mozilla/BasePrincipal.h" +#include "mozilla/ErrorNames.h" +#include "mozilla/LoadContext.h" #include "mozilla/Preferences.h" #include "mozilla/Services.h" #include "mozilla/Telemetry.h" #include "mozilla/TimeStamp.h" -#include "mozilla/LoadContext.h" #include "nsAutoPtr.h" #include "nsCOMPtr.h" #include "nsDebug.h" #include "nsError.h" #include "nsNetCID.h" #include "nsReadableUtils.h" #include "nsServiceManagerUtils.h" @@ -749,16 +750,23 @@ PendingLookup::DoLookupInternal() // Start the call chain. return LookupNext(); } nsresult PendingLookup::OnComplete(bool shouldBlock, nsresult rv) { + if (NS_FAILED(rv)) { + nsAutoCString errorName; + mozilla::GetErrorName(rv, errorName); + LOG(("Failed sending remote query for application reputation " + "[rv = %s, this = %p]", errorName.get(), this)); + } + if (mTimeoutTimer) { mTimeoutTimer->Cancel(); mTimeoutTimer = nullptr; } Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SHOULD_BLOCK, shouldBlock); double t = (TimeStamp::Now() - mStartTime).ToMilliseconds(); @@ -835,18 +843,16 @@ PendingLookup::ParseCertificates(nsIArra return NS_OK; } nsresult PendingLookup::SendRemoteQuery() { nsresult rv = SendRemoteQueryInternal(); if (NS_FAILED(rv)) { - LOG(("Failed sending remote query for application reputation " - "[this = %p]", this)); return OnComplete(false, rv); } // SendRemoteQueryInternal has fired off the query and we call OnComplete in // the nsIStreamListener.onStopRequest. return rv; } nsresult @@ -856,37 +862,44 @@ PendingLookup::SendRemoteQueryInternal() if (!Preferences::GetBool(PREF_SB_DOWNLOADS_REMOTE_ENABLED, false)) { LOG(("Remote lookups are disabled [this = %p]", this)); return NS_ERROR_NOT_AVAILABLE; } // If the remote lookup URL is empty or absent, bail. nsCString serviceUrl; NS_ENSURE_SUCCESS(Preferences::GetCString(PREF_SB_APP_REP_URL, &serviceUrl), NS_ERROR_NOT_AVAILABLE); - if (serviceUrl.EqualsLiteral("")) { + if (serviceUrl.IsEmpty()) { LOG(("Remote lookup URL is empty [this = %p]", this)); return NS_ERROR_NOT_AVAILABLE; } // If the blocklist or allowlist is empty (so we couldn't do local lookups), // bail - nsCString table; - NS_ENSURE_SUCCESS(Preferences::GetCString(PREF_DOWNLOAD_BLOCK_TABLE, &table), - NS_ERROR_NOT_AVAILABLE); - if (table.EqualsLiteral("")) { - LOG(("Blocklist is empty [this = %p]", this)); - return NS_ERROR_NOT_AVAILABLE; + { + nsAutoCString table; + NS_ENSURE_SUCCESS(Preferences::GetCString(PREF_DOWNLOAD_BLOCK_TABLE, + &table), + NS_ERROR_NOT_AVAILABLE); + if (table.IsEmpty()) { + LOG(("Blocklist is empty [this = %p]", this)); + return NS_ERROR_NOT_AVAILABLE; + } } #ifdef XP_WIN // The allowlist is only needed to do signature verification on Windows - NS_ENSURE_SUCCESS(Preferences::GetCString(PREF_DOWNLOAD_ALLOW_TABLE, &table), - NS_ERROR_NOT_AVAILABLE); - if (table.EqualsLiteral("")) { - LOG(("Allowlist is empty [this = %p]", this)); - return NS_ERROR_NOT_AVAILABLE; + { + nsAutoCString table; + NS_ENSURE_SUCCESS(Preferences::GetCString(PREF_DOWNLOAD_ALLOW_TABLE, + &table), + NS_ERROR_NOT_AVAILABLE); + if (table.IsEmpty()) { + LOG(("Allowlist is empty [this = %p]", this)); + return NS_ERROR_NOT_AVAILABLE; + } } #endif LOG(("Sending remote query for application reputation [this = %p]", this)); // We did not find a local result, so fire off the query to the // application reputation service. nsCOMPtr<nsIURI> uri;