#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/platform/text/hyphenation/hyphenation_minikin.h"
#include <algorithm>
#include <utility>
#include "base/files/file.h"
#include "base/files/memory_mapped_file.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/timer/elapsed_timer.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
#include "third_party/blink/public/mojom/hyphenation/hyphenation.mojom-blink.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/platform/text/character.h"
#include "third_party/blink/renderer/platform/text/hyphenation/hyphenator_aosp.h"
#include "third_party/blink/renderer/platform/text/layout_locale.h"
#include "third_party/blink/renderer/platform/wtf/text/case_folding_hash.h"
namespace blink {
namespace {
inline bool ShouldSkipLeadingChar(UChar32 c) { … }
inline bool ShouldSkipTrailingChar(UChar32 c) { … }
}
Hyphenator;
static mojo::Remote<mojom::blink::Hyphenation> ConnectToRemoteService() { … }
static mojom::blink::Hyphenation* GetService() { … }
bool HyphenationMinikin::OpenDictionary(const AtomicString& locale) { … }
bool HyphenationMinikin::OpenDictionary(base::File file) { … }
StringView HyphenationMinikin::WordToHyphenate(
const StringView& text,
unsigned* num_leading_chars_out) { … }
Vector<uint8_t> HyphenationMinikin::Hyphenate(const StringView& text) const { … }
wtf_size_t HyphenationMinikin::LastHyphenLocation(
const StringView& text,
wtf_size_t before_index) const { … }
Vector<wtf_size_t, 8> HyphenationMinikin::HyphenLocations(
const StringView& text) const { … }
struct HyphenatorLocaleData { … };
LocaleMap;
static LocaleMap CreateLocaleFallbackMap() { … }
AtomicString HyphenationMinikin::MapLocale(const AtomicString& locale) { … }
scoped_refptr<Hyphenation> Hyphenation::PlatformGetHyphenation(
const AtomicString& locale) { … }
scoped_refptr<HyphenationMinikin> HyphenationMinikin::FromFileForTesting(
const AtomicString& locale,
base::File file) { … }
}