summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc
diff options
context:
space:
mode:
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.cc7
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({}),