За что Microsoft Edge ненавидит закладки?

Недавно я написал ряд заметок, так или иначе касавшихся работе с букмарклетами в браузерах, и почти в каждой упомянул о какой-то проблеме с IE, высказывая надежду, что придёт MS Edge и всё исправит.

Поэтому не смог пропустить появление виртуальных машин с Windows 10 и решил проверить, как теперь обстоят дела с коллекцией досадного опыта.

На машине оказалась версия MS Edge 11.00.10240.16397 от 7.22.2015 (по версии файла), она же 20.10240.16384.0 (по информации в настройках браузера)…

Началось всё неплохо. Наконец-то реализована поддержка XPath (document.evaluate). Добавлена команда insertText в Document.execCommand() — хорошее подспорье для автоматизации работы с Rich Editor-ами. Чуть полегчало с XMLHttpRequest: по умолчанию в Edge разрешены сторонние куки, и теперь можно не биться мучительно над причиной того, почему XMLHttpRequest.withCredentials не работает. Пропала странная ошибка Источник null не найден в заголовке Access-Control-Allow-Origin при переадресациях в CORS, описанная здесь, теперь второй запрос Edge отсылает формально c таким же Origin, какой раньше держал в уме, — null.

Дальше пришлось немножко расстроиться: всё ещё не реализованы использованные мною свойства navigator.languages и XMLHttpRequest.responseURL. Ещё печальнее стало, когда обнаружилось, что localStorage всё ещё недоступен для локальных страниц.

Покряхтев, привыкая к новым инструментам разработчика (их теперь открепили, но при этом они всё равно относятся к странице, для которой их первоначально вызвали, так что иногда приходится путаться в нескольких отдельных консолях или деревьях DOM для разных страниц, при том что и само по себе это не очень удобно для наблюдения, когда одно окно закрывает другое), я приступил к главному: к тому, как реализована работа с букмарклетами в MS Edge.

И тут началось невообразимое. Я будто стал получать удар за ударом по морде, только и успевая восклицать «за что?!». Судите сами.

1. В IE 11 можно было было добавить текущую страницу в закладки или нажав на кнопку, или перетащив адрес за иконку в начала адресной строки — туда, куда удобно. В Edge осталась только кнопка.

2. В IE 11 можно было сразу добавить в закладки любую ссылку — или перетаскивая её в Избранное, или вызывая команду в контекстном меню. В Edge ссылку вообще никак нельзя добавить в закладки — её нужно сначала открыть, а потом нажать на кнопку.

3. В IE 11 можно было переименовать закладку прямо из контекстного меню панели. В Edge это можно сделать только в специальном окошке, на вкладке избранного (о редактировании же самого URL помышлять мы и раньше не смели).

4. Из IE 11 можно было перетаскивать ссылки на рабочий стол или в любую папку файлового менеджера, даже передавать их по внутренней сети. В Edge ссылки вообще никуда не перетаскиваются.

5. Наконец, в IE 11 можно было перетаскивать на панель избранного букмарклеты. В IE теперь вообще не осталось простого средства создать букмарклет: ведь, в отличие от обычного адреса, его нельзя открыть как страницу, вместо этого запускается поиск строки с его кодом.

6. Остаются лишь операции с файловой системой. Но и тут вместо облегчения нас ждут суровые испытания. В этой статье я описывал формат и особенности создания/хранения букмарклетов в IE 11. В Edge формат остался точно таким же, но добавились дополнительные трудности, чтобы жизнь малиной не казалась.

а. В IE11 можно было создавать сколько угодно файлов-закладок или букмарклетов в папке, скажем, c:\Users\[имя пользователя]\Favorites\Links\ — IE их всех подхватывал при перезагрузке и «удочерял», если мы не накосячили с форматом. Теперь Edge не признаёт своими никакие файлы в папке C:\Users\[имя пользователя]\AppData\Local\Packages\Microsoft.MicrosoftEdge_[абракадабра]\AC\MicrosoftEdge\User\Default\Favorites\Links (о, прекрасный новый адрес!), если он не создавал их там сам. Теперь метод создания букмарклета выглядит так: вы открываете в браузере любую страницу, жмёте кнопку создания временной закладки, закрываете браузер, переходите в папку C:\Users\[имя пользователя]\AppData\Local\Packages\Microsoft.MicrosoftEdge_[абракадабра]\AC\MicrosoftEdge\User\Default\Favorites\Links, а дальше на выбор: или вызываете свойства файла и подменяете адрес нужным вам кодом, или открываете файл .url в блокноте и вручную правите/полностью заменяете его.

б. Если вы допустите косяк в одном файле закладки, вероятнее всего не будет загружено всё Избранное.

в. В Edge сократился лимит на размер URL и тем самым на размер кода букмарклета — более чем в два раза по сравнению с IE11: с 5119 до 2083 символов. Так что теперь описанные в упомянутой заметке ключи URL и ExtendedURL должны быть одинаковы по размеру и содержимому, как это ни по-дурацки звучит и выглядит. Зато пропал баг с завершающим пробелом в ключе URL, но это уже ничуть не утешает.

Честно говоря, даже багрепорты строчить в Microsoft уже нет никакого желания. То, что в Firefox или Chrome уже несколько лет реализовано легко, просто, свободно и без всяких ограничений, в IE становиться всё неудобнее и ограниченнее. При том, что это сфера или базовых действий при сёрфинге, или ключевых инструментов для облегчения жизни продвинутых пользователей.

Возможно, для программистов количество наконец-то реализованных стандартов перевесит всё остальное, но программисты ведь всё равно пишут для конечного пользователя…

Каким-то не таким получается начало новой жизни у нашего гадкого утёнка. Вместо лебедя он начинает превращаться в маленького сварливого дракона.

© Habrahabr.ru