#include "third_party/blink/renderer/platform/text/layout_locale.h"
#include <hb.h>
#include <unicode/locid.h>
#include <unicode/ulocdata.h>
#include <array>
#include "base/compiler_specific.h"
#include "base/memory/raw_ptr.h"
#include "base/notreached.h"
#include "third_party/blink/renderer/platform/language.h"
#include "third_party/blink/renderer/platform/text/hyphenation.h"
#include "third_party/blink/renderer/platform/text/icu_error.h"
#include "third_party/blink/renderer/platform/text/locale_to_script_mapping.h"
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
#include "third_party/blink/renderer/platform/wtf/text/case_folding_hash.h"
#include "third_party/blink/renderer/platform/wtf/thread_specific.h"
namespace blink {
namespace {
struct PerThreadData { … };
PerThreadData& GetPerThreadData() { … }
struct DelimiterConfig { … };
scoped_refptr<QuotesData> GetQuotesDataForLanguage(const char* locale) { … }
inline const char* LbValueFromStrictness(LineBreakStrictness strictness) { … }
}
static hb_language_t ToHarfbuzLanguage(const AtomicString& locale) { … }
static const char* ToSkFontMgrLocale(UScriptCode script) { … }
const char* LayoutLocale::LocaleForSkFontMgr() const { … }
void LayoutLocale::ComputeScriptForHan() const { … }
UScriptCode LayoutLocale::GetScriptForHan() const { … }
bool LayoutLocale::HasScriptForHan() const { … }
const LayoutLocale* LayoutLocale::LocaleForHan(
const LayoutLocale* content_locale) { … }
const char* LayoutLocale::LocaleForHanForSkFontMgr() const { … }
void LayoutLocale::ComputeCaseMapLocale() const { … }
LayoutLocale::LayoutLocale(const AtomicString& locale)
: … { … }
const LayoutLocale* LayoutLocale::Get(const AtomicString& locale) { … }
const LayoutLocale& LayoutLocale::GetDefault() { … }
const LayoutLocale& LayoutLocale::GetSystem() { … }
scoped_refptr<LayoutLocale> LayoutLocale::CreateForTesting(
const AtomicString& locale) { … }
Hyphenation* LayoutLocale::GetHyphenation() const { … }
void LayoutLocale::SetHyphenationForTesting(
const AtomicString& locale_string,
scoped_refptr<Hyphenation> hyphenation) { … }
scoped_refptr<QuotesData> LayoutLocale::GetQuotesData() const { … }
AtomicString LayoutLocale::LocaleWithBreakKeyword(
LineBreakStrictness strictness,
bool use_phrase) const { … }
void LayoutLocale::AcceptLanguagesChanged(const String& accept_languages) { … }
void LayoutLocale::ClearForTesting() { … }
}