Lameruga777
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Меня замучил этот плагин сохраненния сессий уже. Накатил обновления - в итоге вылетать стал пореже, но все ровно вылетает. Долго бодался с этим и, похоже, нашел таки один вариант. Очень костыльно, но работает, третий день - полет нормальный, ни единого разрыва вылета, до этого по несколько раз на дню крэшился. Причем, если упадет, то и перезапуск не помогает - нужно стирать сессию. Однако, если стереть сессию, запустить браузер, а потом вернуть сохраненный файл сессии sessions.json на место, то все стартует нормально, что меня и заставило задуматься над тем, что это все можно исправить даже без копания в исходниках. Выяснил, что все, что меняется - лишь переменная kmeleon.plugins.sessions.cleanShutdown. Ладно, ловлю вылет, меняю переменную в prefs.js и браузер запускается с той же сессией, но не валится сразу после запуска, как было до этого. Не совсем понятно, почему именно из-за этой переменной происходит вылет, ведь она всего лишь отвечает за то, был ли корректно выгружен браузер в прошлый раз. Логики тут особо не видел, но все же. Чем черт не шутит, запускаю браузер, лезу в about:config, выставляю все ту же переменную в значение true - все работает прекрасно. До следующего перезапуска. Это (каждый раз лезти в about:config и вручную выставлять эту переменную) меня не совсем устраивало, и возникло желание как-то автоматизировать этот процесс. А для этого в K-Meleon как раз и предусмотрена система макросов. Внимание! Решение, по своей сути, очень костыльное и может привести, по идее, к каким-нибудь неприятным последствиям, вроде разнообразных глюков плагина сохранения сессий или еще чего-либо. Применяйте на свой страх и риск. В общем, перейдем к делу. Собственно, что нужно сделать: 1. Создаем файл macros\session_fix.kmm и заносим туда код: Код: # K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # -------------------------- Session Fix 1.0 by AckerMAN -------------------------- # Just another dirty hack for session fixer to prevent emergency shut down. # Tested on K-Meleon v75 RC2. # Просто костыль для предотвращения вылета браузера из-за плагина сессий, ибо нефиг. # Проверен на K-Meleon v75 RC2. session_fix{ setpref(BOOL,"kmeleon.plugins.sessions.cleanShutdown",1); } | 2. Правим находящийся в той же папке main.kmm. Находим строчки Код: # ----- Event Handling # Append any macro to be executed On<event> to the appropriate string (semicolon-separated lists): $OnInit=""; $OnSetup=""; $OnStartup=""; $OnOpenWindow="session_fix"; $OnOpenTab=""; $OnLoad=""; $OnActivateWindow=""; $OnCloseWindow=""; $OnCloseTab=""; $OnCloseGroup=""; $OnWMAppExit=""; $OnQuit=""; | Как нетрудно догадаться, здесь записываются макросы, отрабатываемые при определенных событиях. Так что, завязываем обработку макроса на нужные нам. Мне достаточно было прицепить его к открытию окна: Код: $OnOpenWindow="session_fix"; | И, собственно, все. (Пере)запускаем браузер и проверяем. Я вообще не понимаю, каким чудом это сработало, но, сработало. Хотя, на работе с Windows XP вылетов почти не было, а вот дома и на ноуте с Windows 7 x64 пользоваться невозможно было. | Всего записей: 57 | Зарегистр. 14-04-2008 | Отправлено: 10:57 02-05-2015 | Исправлено: Lameruga777, 11:01 02-05-2015 |
|