| | 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
 | 
 |