Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: base/nss_util.cc

Issue 4146004: ThreadRestrictions: disallow blocking IO on the UI thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/browser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/nss_util.h" 5 #include "base/nss_util.h"
6 #include "base/nss_util_internal.h" 6 #include "base/nss_util_internal.h"
7 7
8 #include <nss.h> 8 #include <nss.h>
9 #include <plarena.h> 9 #include <plarena.h>
10 #include <prerror.h> 10 #include <prerror.h>
11 #include <prinit.h> 11 #include <prinit.h>
12 #include <prtime.h> 12 #include <prtime.h>
13 #include <pk11pub.h> 13 #include <pk11pub.h>
14 #include <secmod.h> 14 #include <secmod.h>
15 15
16 #if defined(OS_LINUX) 16 #if defined(OS_LINUX)
17 #include <linux/magic.h> 17 #include <linux/magic.h>
18 #include <sys/vfs.h> 18 #include <sys/vfs.h>
19 #endif 19 #endif
20 20
21 #include "base/file_util.h" 21 #include "base/file_util.h"
22 #include "base/logging.h" 22 #include "base/logging.h"
23 #include "base/singleton.h" 23 #include "base/singleton.h"
24 #include "base/stringprintf.h" 24 #include "base/stringprintf.h"
25 #include "base/thread_restrictions.h"
25 26
26 // USE_NSS means we use NSS for everything crypto-related. If USE_NSS is not 27 // USE_NSS means we use NSS for everything crypto-related. If USE_NSS is not
27 // defined, such as on Mac and Windows, we use NSS for SSL only -- we don't 28 // defined, such as on Mac and Windows, we use NSS for SSL only -- we don't
28 // use NSS for crypto or certificate verification, and we don't use the NSS 29 // use NSS for crypto or certificate verification, and we don't use the NSS
29 // certificate and key databases. 30 // certificate and key databases.
30 #if defined(USE_NSS) 31 #if defined(USE_NSS)
31 #include "base/environment.h" 32 #include "base/environment.h"
32 #include "base/lock.h" 33 #include "base/lock.h"
33 #include "base/scoped_ptr.h" 34 #include "base/scoped_ptr.h"
34 #endif // defined(USE_NSS) 35 #endif // defined(USE_NSS)
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 #endif // defined(USE_NSS) 304 #endif // defined(USE_NSS)
304 }; 305 };
305 306
306 } // namespace 307 } // namespace
307 308
308 void EnsureNSPRInit() { 309 void EnsureNSPRInit() {
309 Singleton<NSPRInitSingleton>::get(); 310 Singleton<NSPRInitSingleton>::get();
310 } 311 }
311 312
312 void EnsureNSSInit() { 313 void EnsureNSSInit() {
314 // Initializing SSL causes us to do blocking IO.
315 // Temporarily allow it until we fix
316 // http://code.google.com/p/chromium/issues/detail?id=59847
willchan no longer on Chromium 2010/10/27 00:06:18 The referenced bug is for this happening on the IO
317 base::ThreadRestrictions::ScopedAllowIO allow_io;
313 Singleton<NSSInitSingleton>::get(); 318 Singleton<NSSInitSingleton>::get();
314 } 319 }
315 320
316 #if defined(USE_NSS) 321 #if defined(USE_NSS)
317 bool OpenTestNSSDB(const FilePath& path, const char* description) { 322 bool OpenTestNSSDB(const FilePath& path, const char* description) {
318 return Singleton<NSSInitSingleton>::get()->OpenTestNSSDB(path, description); 323 return Singleton<NSSInitSingleton>::get()->OpenTestNSSDB(path, description);
319 } 324 }
320 325
321 void CloseTestNSSDB() { 326 void CloseTestNSSDB() {
322 Singleton<NSSInitSingleton>::get()->CloseTestNSSDB(); 327 Singleton<NSSInitSingleton>::get()->CloseTestNSSDB();
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 exploded.millisecond = prxtime.tm_usec / 1000; 368 exploded.millisecond = prxtime.tm_usec / 1000;
364 369
365 return Time::FromUTCExploded(exploded); 370 return Time::FromUTCExploded(exploded);
366 } 371 }
367 372
368 PK11SlotInfo* GetDefaultNSSKeySlot() { 373 PK11SlotInfo* GetDefaultNSSKeySlot() {
369 return Singleton<NSSInitSingleton>::get()->GetDefaultKeySlot(); 374 return Singleton<NSSInitSingleton>::get()->GetDefaultKeySlot();
370 } 375 }
371 376
372 } // namespace base 377 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/browser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698