Index: content/browser/download/base_file_win.cc |
diff --git a/content/browser/download/base_file_win.cc b/content/browser/download/base_file_win.cc |
index 53b109d44a2458014520a6c65c13d4055d2f6c10..9358bd06e946f47d8a576840e7d9b35310424b94 100644 |
--- a/content/browser/download/base_file_win.cc |
+++ b/content/browser/download/base_file_win.cc |
@@ -16,6 +16,7 @@ |
#include "base/metrics/histogram_macros.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/threading/thread_restrictions.h" |
+#include "base/win/scoped_com_initializer.h" |
#include "content/browser/download/download_interrupt_reasons_impl.h" |
#include "content/browser/download/download_stats.h" |
#include "content/public/browser/browser_thread.h" |
@@ -296,6 +297,10 @@ DownloadInterruptReason BaseFile::MoveFileAndAdjustPermissions( |
const base::FilePath& new_path) { |
base::ThreadRestrictions::AssertIOAllowed(); |
+ // TODO(siggi): This is pretty awkward, but at least better than forcing |
+ // all downloads to a single-threaded COM sequence runner. |
+ base::win::ScopedCOMInitializer com_initializer; |
+ |
// The parameters to SHFileOperation must be terminated with 2 NULL chars. |
base::FilePath::StringType source = full_path_.value(); |
base::FilePath::StringType target = new_path.value(); |