К обсуждениям

OpaqueRange в Chrome 152: проверка подсветки диапазона внутри textarea

Редакция VOne Технологии

OpaqueRange в Chrome 152: проверка подсветки диапазона внутри textarea. Локальная privacy-safe диагностика: карточка offsets × rects × scroll position × highlight bounds; независимый control, одно обратимое действие, дерево решения и stop-line без утверждений о массовости.

Граница запроса: OpaqueRange в Chrome 152: проверка подсветки диапазона внутри textarea

Проверяемая боль сформулирована узко: подсказка указывает верные offsets, но прямоугольник или подсветка смещены внутри form control. Нормализованный запрос — «как проверить OpaqueRange getClientRects и Custom Highlight в Chrome 152». До запуска фиксируется не желаемый диагноз, а наблюдаемый артефакт: карточка offsets × rects × scroll position × highlight bounds. Его поля: startOffset,endOffset,rectCount,rectX,rectY,scrollTop,highlightName. Успех и отказ читаются по правилу: offsets и rect сдвигаются на scroll delta — pass; offsets верны без rect — geometry-gap; неверен mirror — fixture-invalid. Это отделяет feature support, ошибку стенда, влияние policy и неизвестный исход. Результат нельзя переносить на другой build, иной браузер, произвольный сайт или всех пользователей. Проверка не затрагивает VPN, маршрутизацию, бот, worker, SQLite и рабочие аккаунты VOne.

Что подтверждает первичный корпус Chrome 152 для chrome-152-opaquerange-form-highlight

Chrome Developers опубликовал Chrome 152 и материалы DevTools 25 августа 2026 года. Для этой страницы релевантен конкретный факт: первичное обсуждение добавляет OpaqueRange, value offsets, geometry APIs и границу инкапсуляции. Второй источник — WHATWG DOM pull request 1404; он задаёт инженерную поверхность, а не пользовательскую статистику. Официальные страницы подтверждают наличие механизма или изменения, но не доказывают поисковый спрос, частоту симптома, результат на конкретном сайте либо универсальную совместимость. Google News и публичные Reddit, Stack Overflow, Google Help, Microsoft Learn, Apple Support, Mozilla Support и Habr Q&A рассматривались только как leads.

Локальный стенд и поля артефакта карточка offsets × rects × scroll position × highlight bounds

Используйте изолированный профиль и следующий стенд: textarea с фиксированной строкой из трёх строк, известными offsets и одной synthetic suggestion. До действия запишите версию Chrome, платформу, feature/policy state и точное начальное состояние. Основной результат — карточка offsets × rects × scroll position × highlight bounds; обязательные колонки: startOffset,endOffset,rectCount,rectX,rectY,scrollTop,highlightName. Значение записывают вместе с моментом наблюдения и способом получения, а недоступное поле помечают unknown, не заменяя нулём. Из стенда исключаются cookies, Authorization, IP, реальные домены, device labels, локальные пути, тексты, изображения и media пользователя. Разрешены только synthetic identifiers и test-only endpoints, которые удаляются после опыта.

Отрицательный контроль для боли «подсказка указывает верные offsets, но прямоугольник или подсветка смещены внутри form control»

Независимый control: обычный Range на зеркальном div с тем же текстом и шрифтом. Он выполняется первым и обязан показать, что fixture способен различить ожидаемые ветви. Затем меняется ровно одна переменная: создать OpaqueRange для одного слова, измерить rects до и после локального scroll и удалить highlight. Версия, viewport, locale, network emulation, cache state и прочие параметры, не относящиеся к гипотезе, сохраняются одинаковыми. После воздействия исходное состояние возвращают и повторяют control. Если control падает, итог получает fixture-invalid; если результат не повторяется после rollback, статус — non-repeatable. Нельзя добавлять обходной код в середине опыта, потому что он стирает причинную границу.

Дерево решения по данным startOffset,endOffset,rectCount,rectX,rectY,scrollTop,highlightName

Заполняйте карточка offsets × rects × scroll position × highlight bounds по одной строке на наблюдение и не смешивайте ветви. Решающее правило: offsets и rect сдвигаются на scroll delta — pass; offsets верны без rect — geometry-gap; неверен mirror — fixture-invalid. Сначала сравните control с заранее записанным oracle, затем экспериментальную ветку с тем же oracle, после чего проверьте повторяемость. Отсутствующая поверхность означает unsupported, внешняя policy — policy-blocked, отказ permission — user-decision, а невозможность наблюдать поле — unknown. Только одно устойчивое различие при зелёном control допускает узкий вывод reproduced. Такой вывод не обещает исправление и не приписывает причину всем похожим симптомам; он формирует проверяемый следующий шаг.

Stop-line, cleanup и минимизированный handoff для chrome-152-opaquerange-form-highlight

Безопасная граница задана заранее: не помещать в textarea пользовательский текст и остановиться при несовпадении метрик mirror. После теста закройте test tabs и DevTools, остановите tracks/workers/devices, удалите highlights, registrations, reports и локальные logs, созданные fixture, верните policy/setting в исходное состояние и подтвердите rollback отдельной строкой. Handoff содержит build, fixture version, startOffset,endOffset,rectCount,rectX,rectY,scrollTop,highlightName, expected/observed, результат control и cleanup. В него не входят tokens, cookies, полные URLs, memory dumps, сырые request bodies, media, идентификаторы устройства и конфигурации пользователя. Если минимизация или восстановление невозможны, результат не готов к публикационной рекомендации.

Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, дата и ссылки перепроверены человеком. Реальные пользовательские данные и рабочие конфигурации не использовались.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.