Издеваемся над Opera Presto
Добавлено: 30.11.2015,15:08
Модификации, настройка и т.п.
Собственно, недавно тут мучил Опера 12.17, решил написать статью - не статью... В общем, поехали.
Сначала немного о том, что такое User agent. Это особая строка, которую браузер сообщает веб-серверу в HTTP-запросе. По ней сервер определяет, с каким браузером он имеет дело. Теоретически, если соблюдать все стандарты, тип браузера не должен иметь особого значения, но в реальности это, конечно, не так.
Вот пример строки User agent, которую выдаёт по умолчанию Opera 12.17 (сборка 1863):
Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.17
Кстати, Ваш юзер-агент можно узнать на этой страничке:
http://whatsmyuseragent.com/
Проблема в том, что некоторые сайты в относительно устаревшей Опере 12.17 (на движке Presto) работают как-то странно. Мне даже попадались такие, которые писали - мол, у Вас Опера, поэтому доступ к этому сайту Вам запрещён. Иногда просто наблюдаются тормоза и глюки. Чтобы обойти все эти ограничения, в Опере предусмотрели возможность подмены строки User agent.
Если Вы хотите изменить User agent для всех сайтов, то введите в адресную строку Оперы следующее:
opera:config#UserPrefs|CustomUser-Agent
Туда Вы можете ввести строчку нового агента. Взять её можно из этого списка:
http://www.useragentstring.com/pages/us ... string.php
Было бы неплохо, если бы было расширение, которое позволяло бы нормально выбирать юзер-агенты из списка, но, к сожалению, такого не нашёл. Есть только немного упрощающее доступ к вышеназванной настройке, но тут и так ничего сложного, можно даже закладку сделать...
Кроме того, в Опере предусмотрели и возможность подменить юзер-агента для отдельных сайтов. Чтобы это сделать, щёлкните правой кнопкой по пустому месту на веб-страничке, выберите "Настройки для сайта" -> "Сеть" -> "Идентификация браузера". К сожалению, тут у нас выбор всего из 5 вариантов. Первый - это просто стандартный юзер-агент Оперы. Кроме того, есть два варианта "Представляться как (Маскироваться под) Internet Explorer" и ещё два "... Firefox". Разница между "представляться" и "маскироваться" в том, что в первом случае опера добавляет в конец строки юзер-агента что-то вроде "... Opera 12.17", а во втором - не добавляет. Собственно, при наличии варианта "Маскироваться ..." пункт "Представляться ..." уже не сильно и нужен.
Ещё раз, в качестве примера, зачем это нужно. В последнее время поиск Google в Опере стал выглядеть как-то странно, включился какой-то упрощённый стиль, почти как в мобильных браузерах. Чтобы это исправить, я поставил "Маскироваться под Internet Explorer" в настройках для сайта google.com. В результате у меня всё стало отображаться нормально, как раньше. Особенно разница заметна в режиме поиска картинок, сравните:
Это без замены юзер-агента:
А это с заменой:
Мне второй вариант нравится больше, т.к. тут более рационально используется экранное пространство, да и листать удобнее, когда изображения сами подгружаются - не надо нажимать "Следующая страница" и т.п.
Основной недостаток этой настройки - невозможность ввести свой юзер-агент, а имеющихся мне, например, явно недостаточно.
К сожалению, список юзер-агентов зашит в opera.dll. Но разве нас это остановит? ;-)
Открываем opera.dll в WinHex, ищем строку Presto, находим примерно следующее:
У меня версия DLL-ки 12.17.1863.0, размер 16 211 808 байт. Строки юзер-агентов для различных вариантов из списка "Идентификация браузера" разделяются кодом 00h. К примеру, у меня строка юзер-агента для пункта "Представляться как Firefox" находилась по смещению 0D4B068h:
А теперь всё просто - берём нужную нам строку юзер-агента (например, с сайта выше), запихиваем её вместо существующей. Единственное, скорее всего её придётся укоротить, чтобы не затереть следующую. Что именно можно удалить, решается экспериментальным путём. И, конечно, мы должны вводить новую строку в режиме замены (Write в WinHex), чтобы длина файла opera.dll не поменялась.
Я, например, заменил в пункте "Представляться как Firefox" имеющуюся там строку на юзер-агента Opera mini ("Opera/9.80 (J2ME/MIDP; Opera Mini/9.80) Presto/2.5.25"). Теперь, поставив соответствующий пункт в "Настройках для сайта", я могу просматривать мобильные версии любых сайтов. Через простое добавление "m." в начало адреса это не всегда возможно. Кстати, лучше поменять соответствующие "Настройки для сайта" как для основной версии сайта (к примеру, vk.com), так и для мобильной (m.vk.com). Иначе у меня в том же ВКонтакте наблюдались глюки с переадресацией.
Режим Opera mini я включил для Одноклассников, ВКонтакте и Facebook - в мобильном режиме они работают гораздо быстрее, да и мобильный интерфейс мне нравится больше, он достаточно простой и удобный.
Единственный недостаток - мобильные версии сайтов иногда растягиваются на весь экран - для планшетов и смартфонов это удобно, ну а для моего 22-дюймового монитора - не очень. :-)
Самое простое решение - нажать F4, чтобы показать "Боковые панели", а потом растянуть их так, чтобы ширина окна с сайтом стала приемлемой:
Готовый (модифицированный под Opera Mini) файл opera.dll можете скачать здесь:
http://dgmag.in/other/opera.zip
Повторюсь, что это версия DLL 12.17.1863.0, размер 16 211 808 байт. Версия Оперы - 12.17 (сборка 1863). Для других может и не подойти.
Чтобы вместо "Представляться как Firefox" выводилось "Представляться как Opera Mini", просто найдите и замените соответствующую строку в Opera\locale\ru\ru.lng. Ну или сразу возьмите готовый файл:
http://dgmag.in/other/ru.lng
P.S. Перед экспериментами с opera.dll не забудьте сделать резервную копию!
Собственно, недавно тут мучил Опера 12.17, решил написать статью - не статью... В общем, поехали.
Сначала немного о том, что такое User agent. Это особая строка, которую браузер сообщает веб-серверу в HTTP-запросе. По ней сервер определяет, с каким браузером он имеет дело. Теоретически, если соблюдать все стандарты, тип браузера не должен иметь особого значения, но в реальности это, конечно, не так.
Вот пример строки User agent, которую выдаёт по умолчанию Opera 12.17 (сборка 1863):
Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.17
Кстати, Ваш юзер-агент можно узнать на этой страничке:
http://whatsmyuseragent.com/
Проблема в том, что некоторые сайты в относительно устаревшей Опере 12.17 (на движке Presto) работают как-то странно. Мне даже попадались такие, которые писали - мол, у Вас Опера, поэтому доступ к этому сайту Вам запрещён. Иногда просто наблюдаются тормоза и глюки. Чтобы обойти все эти ограничения, в Опере предусмотрели возможность подмены строки User agent.
Если Вы хотите изменить User agent для всех сайтов, то введите в адресную строку Оперы следующее:
opera:config#UserPrefs|CustomUser-Agent
Туда Вы можете ввести строчку нового агента. Взять её можно из этого списка:
http://www.useragentstring.com/pages/us ... string.php
Было бы неплохо, если бы было расширение, которое позволяло бы нормально выбирать юзер-агенты из списка, но, к сожалению, такого не нашёл. Есть только немного упрощающее доступ к вышеназванной настройке, но тут и так ничего сложного, можно даже закладку сделать...
Кроме того, в Опере предусмотрели и возможность подменить юзер-агента для отдельных сайтов. Чтобы это сделать, щёлкните правой кнопкой по пустому месту на веб-страничке, выберите "Настройки для сайта" -> "Сеть" -> "Идентификация браузера". К сожалению, тут у нас выбор всего из 5 вариантов. Первый - это просто стандартный юзер-агент Оперы. Кроме того, есть два варианта "Представляться как (Маскироваться под) Internet Explorer" и ещё два "... Firefox". Разница между "представляться" и "маскироваться" в том, что в первом случае опера добавляет в конец строки юзер-агента что-то вроде "... Opera 12.17", а во втором - не добавляет. Собственно, при наличии варианта "Маскироваться ..." пункт "Представляться ..." уже не сильно и нужен.
Ещё раз, в качестве примера, зачем это нужно. В последнее время поиск Google в Опере стал выглядеть как-то странно, включился какой-то упрощённый стиль, почти как в мобильных браузерах. Чтобы это исправить, я поставил "Маскироваться под Internet Explorer" в настройках для сайта google.com. В результате у меня всё стало отображаться нормально, как раньше. Особенно разница заметна в режиме поиска картинок, сравните:
Это без замены юзер-агента:
А это с заменой:
Мне второй вариант нравится больше, т.к. тут более рационально используется экранное пространство, да и листать удобнее, когда изображения сами подгружаются - не надо нажимать "Следующая страница" и т.п.
Основной недостаток этой настройки - невозможность ввести свой юзер-агент, а имеющихся мне, например, явно недостаточно.
К сожалению, список юзер-агентов зашит в opera.dll. Но разве нас это остановит? ;-)
Открываем opera.dll в WinHex, ищем строку Presto, находим примерно следующее:
У меня версия DLL-ки 12.17.1863.0, размер 16 211 808 байт. Строки юзер-агентов для различных вариантов из списка "Идентификация браузера" разделяются кодом 00h. К примеру, у меня строка юзер-агента для пункта "Представляться как Firefox" находилась по смещению 0D4B068h:
А теперь всё просто - берём нужную нам строку юзер-агента (например, с сайта выше), запихиваем её вместо существующей. Единственное, скорее всего её придётся укоротить, чтобы не затереть следующую. Что именно можно удалить, решается экспериментальным путём. И, конечно, мы должны вводить новую строку в режиме замены (Write в WinHex), чтобы длина файла opera.dll не поменялась.
Я, например, заменил в пункте "Представляться как Firefox" имеющуюся там строку на юзер-агента Opera mini ("Opera/9.80 (J2ME/MIDP; Opera Mini/9.80) Presto/2.5.25"). Теперь, поставив соответствующий пункт в "Настройках для сайта", я могу просматривать мобильные версии любых сайтов. Через простое добавление "m." в начало адреса это не всегда возможно. Кстати, лучше поменять соответствующие "Настройки для сайта" как для основной версии сайта (к примеру, vk.com), так и для мобильной (m.vk.com). Иначе у меня в том же ВКонтакте наблюдались глюки с переадресацией.
Режим Opera mini я включил для Одноклассников, ВКонтакте и Facebook - в мобильном режиме они работают гораздо быстрее, да и мобильный интерфейс мне нравится больше, он достаточно простой и удобный.
Единственный недостаток - мобильные версии сайтов иногда растягиваются на весь экран - для планшетов и смартфонов это удобно, ну а для моего 22-дюймового монитора - не очень. :-)
Самое простое решение - нажать F4, чтобы показать "Боковые панели", а потом растянуть их так, чтобы ширина окна с сайтом стала приемлемой:
Готовый (модифицированный под Opera Mini) файл opera.dll можете скачать здесь:
http://dgmag.in/other/opera.zip
Повторюсь, что это версия DLL 12.17.1863.0, размер 16 211 808 байт. Версия Оперы - 12.17 (сборка 1863). Для других может и не подойти.
Чтобы вместо "Представляться как Firefox" выводилось "Представляться как Opera Mini", просто найдите и замените соответствующую строку в Opera\locale\ru\ru.lng. Ну или сразу возьмите готовый файл:
http://dgmag.in/other/ru.lng
P.S. Перед экспериментами с opera.dll не забудьте сделать резервную копию!