As commented in https://bugs.webkit.org/show_bug.cgi?id=97993#c13 the patch from r130231 removes - hb_glyph_info_t* infos = hb_buffer_get_glyph_infos(harfBuzzBuffer, 0); - for (unsigned i = 0; i < m_numGlyphs; ++i) - m_glyphToCharacterIndexes[i] = infos[i].cluster; in HarfBuzzShaper::HarfBuzzRun::applyShapeResult. And I can't see any replacement for that in r130231. AFAICS, with that, m_glyphToCharacterIndexes becomes uninitialized. Unfortunately, I don't have a test to prove it yet. But I am suspecting it breaks selection in certain cases.
Created attachment 196364 [details] Patch
Never mind, it is initialized in @@ -361,6 +346,7 @@ void HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun(HarfBuzzRun* currentRun, hb hb_glyph_position_t* glyphPositions = hb_buffer_get_glyph_positions(harfbuzzBuffer, 0); unsigned numGlyphs = currentRun->numGlyphs(); + uint16_t* glyphToCharacterIndexes = currentRun->glyphToCharacterIndexes();
Comment on attachment 196364 [details] Patch Clearing review patch since this was resolved.