Index: chrome/browser/extensions/crx_installer.cc |
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc |
index 8b523d51bb611d0ddb097344c78aecc7b53ad716..4246ffa1a6bc56b80c143b044a25eb1246382fd1 100644 |
--- a/chrome/browser/extensions/crx_installer.cc |
+++ b/chrome/browser/extensions/crx_installer.cc |
@@ -12,6 +12,7 @@ |
#include "base/singleton.h" |
#include "base/stringprintf.h" |
#include "base/task.h" |
+#include "base/thread_restrictions.h" |
#include "base/utf_string_conversions.h" |
#include "base/version.h" |
#include "chrome/browser/browser_process.h" |
@@ -112,7 +113,12 @@ void CrxInstaller::InstallCrx(const FilePath& source_file) { |
source_file_ = source_file; |
FilePath user_data_temp_dir; |
- CHECK(PathService::Get(chrome::DIR_USER_DATA_TEMP, &user_data_temp_dir)); |
+ { |
+ // We shouldn't be doing disk IO on the UI thread. |
+ // http://code.google.com/p/chromium/issues/detail?id=60634 |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ CHECK(PathService::Get(chrome::DIR_USER_DATA_TEMP, &user_data_temp_dir)); |
+ } |
scoped_refptr<SandboxedExtensionUnpacker> unpacker( |
new SandboxedExtensionUnpacker( |