summaryrefslogtreecommitdiffstats
path: root/webkit/blob
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/blob')
-rw-r--r--webkit/blob/blob_url_request_job.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/webkit/blob/blob_url_request_job.cc b/webkit/blob/blob_url_request_job.cc
index 9f78e66..58e96c6 100644
--- a/webkit/blob/blob_url_request_job.cc
+++ b/webkit/blob/blob_url_request_job.cc
@@ -11,6 +11,7 @@
#include "base/message_loop.h"
#include "base/message_loop_proxy.h"
#include "base/string_number_conversions.h"
+#include "base/threading/thread_restrictions.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/http/http_request_headers.h"
@@ -313,6 +314,9 @@ bool BlobURLRequestJob::ReadFile(const BlobData::Item& item,
// Open the file if not yet.
if (!stream_.IsOpen()) {
+ // stream_.Open() and stream_.Seek() block the IO thread.
+ // See http://crbug.com/75548.
+ base::ThreadRestrictions::ScopedAllowIO allow_io;
int rv = stream_.Open(item.file_path(), base::PLATFORM_FILE_OPEN |
base::PLATFORM_FILE_READ | base::PLATFORM_FILE_ASYNC);
if (rv != net::OK) {