diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc b/chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc index 53ebd8e29fa..52c5839738f 100644 --- a/chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc +++ b/chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc @@ -31,6 +31,7 @@ #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/blink/renderer/platform/wtf/wtf.h" +#include "third_party/ced/src/compact_enc_det/compact_enc_det.h" namespace blink { namespace { @@ -421,6 +422,12 @@ void NavigationBodyLoader::StartLoadingBodyInBackground( if (!response_body_) return; + // Initializing the map used when detecting encodings is not thread safe. + // Initialize on the main thread here to avoid races. + // TODO(crbug.com/1384221): Consider making the map thread safe in + // third_party/ced/src/util/encodings/encodings.cc. + EncodingNameAliasToEncoding(""); + off_thread_body_reader_.reset(new OffThreadBodyReader( std::move(response_body_), std::move(decoder), weak_factory_.GetWeakPtr(), task_runner_, worker_pool::CreateSequencedTaskRunner({}), |