В Chrome внесено изменение, допускающее запись в буфер обмена без действий пользователя

4a95483f67ddc5cf764661b2531359f5.jpg

В недавних выпусках движка Chromium изменено поведение, связанное с записью в буфер обмена. Если в Firefox, Safari и старых выпусках Chrome запись в буфер обмена допускалась только после явных действий пользователя, то в новых выпусках для записи достаточно просто открыть сайт. Изменение поведения в Chrome объясняется необходимостью чтения данных из буфера обмена при выполнении теста, проверяющего работу заставки Google Doodle на странице открытия новой вкладки. Вместо специфичной обработки данной ситуации, в Chromium просто разрешили всем сайтам обращаться к буферу обмена (читать и записывать) без необходимости предварительных действий со стороны пользователя.

Возможность записи работает при вызове методов navigator.clipboard.write (пример) и navigator.clipboard.writeText (пример), которые теперь не учитывают активность пользователя на странице. Например, для записи в буфер обмена сразу после открытия сайта достаточно выполнить следующий JavaScript-код:

navigator.clipboard.writeText ('Hello from the web page.');

let type = 'text/plain';

let blob = new Blob (['Hello from web page'], { type });

let item = new ClipboardItem ({ [type]: blob });

navigator.clipboard.write ([item]);

© Habrahabr.ru