| Index: crypto/nss_util.cc | 
| diff --git a/crypto/nss_util.cc b/crypto/nss_util.cc | 
| index 5ee7c320f5c04cc84472d3b43a5cb07ab9346576..cd7bd448d934483a3ec2febdb9a1c4e2f2351c53 100644 | 
| --- a/crypto/nss_util.cc | 
| +++ b/crypto/nss_util.cc | 
| @@ -43,14 +43,13 @@ | 
| #include "base/threading/worker_pool.h" | 
| #include "build/build_config.h" | 
|  | 
| -// USE_NSS means we use NSS for everything crypto-related.  If USE_NSS is not | 
| -// defined, such as on Mac and Windows, we use NSS for SSL only -- we don't | 
| -// use NSS for crypto or certificate verification, and we don't use the NSS | 
| -// certificate and key databases. | 
| -#if defined(USE_NSS) | 
| +// USE_NSS_CERTS means NSS is used for certificates and platform integration. | 
| +// This requires additional support to manage the platform certificate and key | 
| +// stores. | 
| +#if defined(USE_NSS_CERTS) | 
| #include "base/synchronization/lock.h" | 
| #include "crypto/nss_crypto_module_delegate.h" | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
|  | 
| namespace crypto { | 
|  | 
| @@ -80,7 +79,7 @@ std::string GetNSSErrorMessage() { | 
| return result; | 
| } | 
|  | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| #if !defined(OS_CHROMEOS) | 
| base::FilePath GetDefaultConfigDirectory() { | 
| base::FilePath dir; | 
| @@ -142,8 +141,8 @@ char* PKCS11PasswordFunc(PK11SlotInfo* slot, PRBool retry, void* arg) { | 
| // the NSS environment variable NSS_SDB_USE_CACHE to "yes" to override NSS's | 
| // detection when database_dir is on NFS.  See http://crbug.com/48585. | 
| // | 
| -// TODO(wtc): port this function to other USE_NSS platforms.  It is defined | 
| -// only for OS_LINUX and OS_OPENBSD simply because the statfs structure | 
| +// TODO(wtc): port this function to other USE_NSS_CERTS platforms.  It is | 
| +// defined only for OS_LINUX and OS_OPENBSD simply because the statfs structure | 
| // is OS-specific. | 
| // | 
| // Because this function sets an environment variable it must be run before we | 
| @@ -170,7 +169,7 @@ void UseLocalCacheOfNSSDatabaseIfNFS(const base::FilePath& database_dir) { | 
| } | 
| } | 
|  | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
|  | 
| // A singleton to initialize/deinitialize NSPR. | 
| // Separate from the NSS singleton because we initialize NSPR on the UI thread. | 
| @@ -628,11 +627,11 @@ class NSSInitSingleton { | 
| } | 
| #endif | 
|  | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| base::Lock* write_lock() { | 
| return &write_lock_; | 
| } | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
|  | 
| // This method is used to force NSS to be initialized without a DB. | 
| // Call this method before NSSInitSingleton() is constructed. | 
| @@ -676,7 +675,7 @@ class NSSInitSingleton { | 
| SECStatus status = SECFailure; | 
| bool nodb_init = force_nodb_init_; | 
|  | 
| -#if !defined(USE_NSS) | 
| +#if !defined(USE_NSS_CERTS) | 
| // Use the system certificate store, so initialize NSS without database. | 
| nodb_init = true; | 
| #endif | 
| @@ -691,7 +690,7 @@ class NSSInitSingleton { | 
| root_ = InitDefaultRootCerts(); | 
| #endif  // defined(OS_IOS) | 
| } else { | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| base::FilePath database_dir = GetInitialConfigDirectory(); | 
| if (!database_dir.empty()) { | 
| // This duplicates the work which should have been done in | 
| @@ -738,7 +737,7 @@ class NSSInitSingleton { | 
| } | 
|  | 
| root_ = InitDefaultRootCerts(); | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
| } | 
|  | 
| // Disable MD5 certificate signatures. (They are disabled by default in | 
| @@ -783,7 +782,7 @@ class NSSInitSingleton { | 
| } | 
| } | 
|  | 
| -#if defined(USE_NSS) || defined(OS_IOS) | 
| +#if defined(USE_NSS_CERTS) || defined(OS_IOS) | 
| // Load nss's built-in root certs. | 
| SECMODModule* InitDefaultRootCerts() { | 
| SECMODModule* root = LoadModule("Root Certs", "libnssckbi.so", NULL); | 
| @@ -856,11 +855,11 @@ class NSSInitSingleton { | 
| ChromeOSUserMap chromeos_user_map_; | 
| ScopedPK11Slot test_system_slot_; | 
| #endif | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| // TODO(davidben): When https://bugzilla.mozilla.org/show_bug.cgi?id=564011 | 
| // is fixed, we will no longer need the lock. | 
| base::Lock write_lock_; | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
|  | 
| base::ThreadChecker thread_checker_; | 
| }; | 
| @@ -872,7 +871,7 @@ base::LazyInstance<NSSInitSingleton>::Leaky | 
| g_nss_singleton = LAZY_INSTANCE_INITIALIZER; | 
| }  // namespace | 
|  | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| ScopedPK11Slot OpenSoftwareNSSDB(const base::FilePath& path, | 
| const std::string& description) { | 
| const std::string modspec = | 
| @@ -931,7 +930,7 @@ void DisableNSSForkCheck() { | 
|  | 
| void LoadNSSLibraries() { | 
| // Some NSS libraries are linked dynamically so load them here. | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| // Try to search for multiple directories to load the libraries. | 
| std::vector<base::FilePath> paths; | 
|  | 
| @@ -980,14 +979,14 @@ void LoadNSSLibraries() { | 
| } else { | 
| LOG(ERROR) << "Failed to load NSS libraries."; | 
| } | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
| } | 
|  | 
| bool CheckNSSVersion(const char* version) { | 
| return !!NSS_VersionCheck(version); | 
| } | 
|  | 
| -#if defined(USE_NSS) | 
| +#if defined(USE_NSS_CERTS) | 
| base::Lock* GetNSSWriteLock() { | 
| return g_nss_singleton.Get().write_lock(); | 
| } | 
| @@ -1013,7 +1012,7 @@ AutoSECMODListReadLock::AutoSECMODListReadLock() | 
| AutoSECMODListReadLock::~AutoSECMODListReadLock() { | 
| SECMOD_ReleaseReadLock(lock_); | 
| } | 
| -#endif  // defined(USE_NSS) | 
| +#endif  // defined(USE_NSS_CERTS) | 
|  | 
| #if defined(OS_CHROMEOS) | 
| ScopedPK11Slot GetSystemNSSKeySlot( | 
|  |