Автор Тема: FOCUS_FIX и его возможности для КМ  (Прочитано 468 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
FOCUS_FIX и его возможности для КМ
« : 12 Января 2018, 22:01:36 »
Вопрос нашему разработчику hermes:

В Вашей сборке есть обозначенный в названии бинарный модуль, и как я понял, он умеет в частности не давать монитору гаснуть, пока юзер работает в КМ.

Нельзя ли обозначить в этой теме все области применения данного модуля и дать инструкцию (или выложить пакет) для интеграции его в другие сборки КМ?
Спасибо!

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #1 : 13 Января 2018, 12:17:56 »
Если все что требуется: не дать погаснуть экрану, то... данный модуль явное излишество.
Если требуется такой вариант, могу подготовить отдельно и он будет намного более
компактен. Размером с модуль TASK_LOGiC. Можно даже в виде DLL. Просто, исполняемый
файл более независим, поэтому предпочитаю обходится без DLL.
...
Основная идея FOCUS_FIX, как понятно из названия, исправлять сбившейся фокус ввода.
Достаточно часто, особенно при отключенном JS и классическом скине, курсор "застревает"
в строке адреса или не переходит на таковую автоматически даже на about:blank.
Приходится явно "тыкать" на страницу или поле ввода (быстро надоедает). Иногда страница
"не хочет" прокручиваться колесом мыши без явного клика по ней. Обычно незаметно для тех
кто не "вбивает" адреса, а пользуется поиском или подборкой закладок / избранным.
Плюс, всякие внедренные объекты (например, flash-плееры) проглатывают первый жест мыши,
даже если он сделан не по ним непосредственно (при жестах внутри объектов не являющихся
напрямую частью страницы, например flash объекты, перехват жеста объектом закономерен).
Эта проблема особенно актуальна при активном использовании жестов мыши. Есть также и
такое недоразумение с полосами прокрутки, иногда манипуляции с ними отключают следующий
за этим жест мыши, правда только один, но все же открывая контекстное меню, которое совсем
не требовалось. Еще были ситуации когда одиночный клик левой кнопкой на странице открывал
контекстное меню... и т.д.

Поняв что это "особенность" браузера и эти противоречия глубоко сидят, было принято
решение манипулировать сообщениями окон для исправления ситуации.
Что модуль и делает, причем весьма мягко и ненавязчиво, потребляя по данным ProcessExplorer'a
только 604 KB памяти, не регистрируя совсем нагрузку на процессор. Побочным эффектом
является возможность предотвращать "черный экран" при просмотре. Но это не было самоцелью.
И поскольку он резидентный (и все равно работает), позже ему был добавлен функционал
оптимизатора памяти, с возможностью жесткого ограничения. Дополнительно, он прячет
диалог поиска по странице после загрузки, обновления, закрытия вкладки или окна, а также
при открытии новых. Т.к. однажды надоело что этот диалог висит даже когда не нужен,
будучи вызванным хоть один раз. Еще модуль занимается позиционированием диалога сохранения
файлов / страниц по левому верхнему углу, на манер диалога OPEN_as_OPERA.

В свете появления Goanna'ы, в модуль все равно нужно внести определенные правки, т.к. часть
классов претерпевала изменения, а кое что в Goanna'не (в отличие от Gecko) исправлять не нужно.

« Последнее редактирование: 13 Января 2018, 12:26:43 от hermes »

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
NO_SLEEP_KM
« Ответ #2 : 26 Января 2018, 02:30:04 »
По просьбе rodocop'a и людей которые писали на форуме (в частности Liritsa и проч.), сделал отдельный
оптимизированный антисонный модуль NO_SLEEP_KM. Модуль примечателен способностью прозрачно
воздействовать на систему не давая машине запустить хранитель экрана или самопроизвольно потушить
экран.

При этом не важно: какие настройки стоят в управлении электропитанием. Работает очень мягко и изящно.
Не имеет значения уровень прав пользователя в системе. Методика воздействия существенно доработана
относительно использованной в модуле FOCUS_FiX.

Идея работы следующая: модуль запускается вместе с браузером и прозрачно для пользователя
контролирует вышеуказанные параметры системы. Никаких специальных действий для настройки или
управления предпринимать не нужно. Настройки системы не затрагиваются и не изменяются.

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

Потребление ресурсов минимально: ~620-640 КБ ОЗУ (по данным ProcessExplorer'a), нагрузку на процессор
не удалось зарегистрировать даже на 368 МГц Celeron'e. Работает на всех 32-х и 64 битных Windows'ах
(от NT3.51 до Server 2016). Поддерживаются все известные версии K-MELEON (включая параллельный запуск
нескольких разных версий одновременно). Если используется несколько разных K-MELEON'ов одновременно,
модуль специально будет ждать конца работы последнего из них (контролируя не только окна,
но и существование и атрибуты процесса в системе).

Единственная базовая (необязательная) рекомендация тем кто любит использовать модуль loader для
кеширования в памяти ядра браузера (для ускорения его запуска) это не переименовывать сам исполняемый
файл браузера. Само переименование испольняемого файла браузера не нарушит работы модуля, но
станут недоступны некоторые дополнительные проверки. Процесс специально прописан как K-MELEON.eXe
для исключения непрофильного использования. Сам модуль не будет работать без K-MELEON'a.

По предложению rodocop'a, пока открытый beta-тест. С моей точки зрения все хорошо, однако если будут
обнаружены теоретические ошибки их можно будет легко исправить.

Модуль ставится простым копированием содержимого архива в папку браузера. Для его удаления, достаточно
удалить всего два файла (сам исполнительный файл модуля и макрос для его загрузки).

(прямая ссылка) _https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/mppOSTiY3RnsBg (~11.3 KB)

Для удобства тестирования, можно специально выставить задержку на появление хранителя экрана и
выключение экрана (при простое) через 1 мин. И сравнить поведение машины до и после добавления модуля.

Может выделить на него отдельную тему?

« Последнее редактирование: 08 Февраля 2018, 11:11:14 от hermes »

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
NO SLEEP
« Ответ #3 : 30 Января 2018, 03:14:13 »
Чуть-чуть попробовал - и сразу первый баг: под Семеркой запуск модуля привел к обездвиживанию мыши в окнах K-Meleon (проверено на разных экземплярах и версиях браузера). Мышь стандарт USB.

Win 7 x32

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #4 : 30 Января 2018, 18:47:42 »
 :o Занятно... Прогнал на указанной системе с разными мышами (PS/2 и USB), учитывая что в модуле
увеличения размера, который SsSS - Super (special) Screen Size, была зависимость от aero и не aero,
прогнал с разными (классической, aero и упрощенный 7 style) темами оформления. Пробовал ставить
совершенно странные сочетания в настройках электропитания, включая блокирование или установки
мыши как устройства пробуждения ПК. Эффект - ничего. Проверялось на ПК (не одном) и ноутбуках.
Использовалась последняя Goanna 28.01.2018 (при отладке проверял на широком спектре версий,
включая ранние).
...
Т.е. не удалось добиться описываемого Вами дефекта. Честно говоря, в данном случае, он даже чисто
архитектурно невозможен. Дополнительно, погонял по ~5 мин. в 10-ке, XP, 7. Все на реальных машинах.
7-ка проверялась особенно придирчиво в 32 / 64 исполнениях.

Вы могли бы проверить еще раз? Это машина - ноутбук? Т.е. разницы быть не должно... но все же.
Есть возможность проверить на другой машине? Другой ОС? А в безопасном режиме (например,
с поддержкой сетевых драйверов)? А если выключить фоновые программы? Конфликтный софт?
Чистая система не вызывает такого эффекта. Повисших (якобы закрытых) KM не было? Проверялось на
чистом KM? А если в это время убрать все прочие KM? Каких либо оптимизаторов фоново не запущено?
А если без них? Возникает масса вопросов... вариант с виртуальной машиной предлагать / не предлагать?

« Последнее редактирование: 31 Января 2018, 00:18:52 от hermes »

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #5 : 30 Января 2018, 23:15:40 »
Да, ноутбук. Acer Extensa 5630 ничем не примечательный.

Буду пробовать еще

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #6 : 31 Января 2018, 00:36:40 »
Есть мысль: причиной такого поведения явился не модуль, а настройка электропитания для отключения
манипуляторов при простое. Попробуйте провести тест при пресете "высокая производительность".
При нем устройства (класса мышь) в сон не уходят. Останется только выставить (вручную) нужные
задержки для хранителя экрана и выключения экрана (например, на ~1 минуту).

Попробуйте убрать "Разрешить отключение этого устройства для экономии электроэнергии" в закладке
"Управление электропитанием" свойств мыши и убрать "Разрешить отключение этого устройства для
экономии электроэнергии" для корневых USB концентраторов. В настройке плана электропитания
запретите временное отключение USB портов (в закладке "Дополнительные параметры"). Можно
попробовать другую мышь, или подключить ее в другой порт (просто, как идея).




« Последнее редактирование: 31 Января 2018, 00:56:20 от hermes »

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #7 : 31 Января 2018, 01:51:55 »
там фишка в том, что мышь мертвела только в окне КМ. В других работала нормально при этом

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #8 : 31 Января 2018, 03:14:49 »
Правильно понимаю, что повторные тесты с учетом этих соображений http://forum.geckoworld.ru/index.php/topic,241555.msg247392.html#msg247392 дают тот же результат? И в безопасном режиме (даже без сети)
тоже? На другой машине попробовать нет возможности?
...
Нестыковка в том, что я предварительно проверил на значительном числе машин. И после Вашего сообщения
проверил повторно. На чистом KM'е как? Прочего стороннего ничего не запущено? Пробовали закрыть все
прочие KM?

Тест на 6 разных машинах был полностью успешным.

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #9 : 04 Февраля 2018, 18:34:39 »
Что-нибудь удалось проверить? Если странный эффект у Вас продолжит появляться,
могли бы Вы записать видео? Могу скинуть нужную программу (всего ~1.5 MB).
Просто, описания достаточно расплывчато, а тут важны детали. И как на чистом KM?
...
Просто, сижу в недоумении (который день). Вроде, все сделал. Сделал нормально.
А тут... И с тестами глухо. Никто не тестирует :  (. В свою очередь запускал и прогонял
где только возможно.

Но как можно "исправить" то,  что работает на всех доступных мне конфигурациях,
без очевидного тестирования на проблемной архитектуре?!

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #10 : 05 Февраля 2018, 01:31:00 »
Докладываю.

Галка в свойствах курсора мыши стояла (Скрывать при вводе текста), но ее снятие ничего не изменило.

Курсор продолжает вымирать (иногда просто стоит, не шевелится, а иногда еще и пропадает с экрана вообще) в окнах КМ. При переключении окна (активация любого окна, кроме любого КМ) размораживается примерно через 1-2 сек.

И да, вне зависимости от этого глюка, еще один репорт - для этого модуля и родственных ему: они не выгружаются при закрытии КМ, с которым запущены. А хотелось бы.

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #11 : 05 Февраля 2018, 01:32:20 »
И да, от софтинки для записи видео не откажусь. То, что у меня есть - не слишком устраивает.

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #12 : 05 Февраля 2018, 02:43:46 »
И да, от софтинки для записи видео не откажусь. То, что у меня есть - не слишком устраивает.
См. ЛС.

Цитировать
Курсор продолжает вымирать (иногда просто стоит, не шевелится, а иногда еще и пропадает с экрана вообще) в окнах КМ. При переключении окна (активация любого окна, кроме любого КМ) размораживается примерно через 1-2 сек.

И да, вне зависимости от этого глюка, еще один репорт - для этого модуля и родственных ему: они не выгружаются при закрытии КМ, с которым запущены. А хотелось бы.

Активация другого окна клавиатурой? Или этой замершей мышью?
Сколько KM'ов запущено одновременно? В описании было указано:
Цитировать
Если используется несколько разных K-MELEON'ов одновременно,
модуль специально будет ждать конца работы последнего из них (контролируя не только окна,
но и существование и атрибуты процесса в системе).

Вспоминая прошлые опыты, как Вы помните, у Вас часто открыто более одного KM. И т.к. задача модуля
не дать погаснуть экрану при работе user'a с KM, пока любой KM существует (хотя бы как процесс), модуль
будет ждать его завершения. В прошлый раз, это кончилось персонифицированием модуля FOCUS_FiX
и он начал отличать один KM от другого. Можно добавить подобное и здесь, но тогда появятся настройки.
Вопрос, насколько это резонно для рядового пользователя. Модуль выгружается через секунду если
KM'ов больше не существует.
...
У Вас есть возможность попробовать на любой другой системе кроме Вашей текущей? Лучше с чистым KM.
Помнится, у Вас стояла второй системой XP, нет? Попробуйте запустить не более одной копии KM.

Но видео запишите, если не будет сложно. Мне просто хочется посмотреть... как оно может так клинить.
Если возможно и снимок, список (или еще как) процессов в системе. Вы не сказали, что насчет безопасного
режима? Даже без сети. Как это влияет на единственную запущенную копию чистого KM'a?

P.S.
Хотелось бы обратиться к читающим, если Вам интересна тематика, протестируйте (при возможности)
модуль у себя (хоть в виртуальной машине). Эффект описываемый rodocop'ом мне не удалось получить
не на одной испытуемой системе. Я с удовольствием внесу правки, если будет понятно что нужно
исправлять. Проблема в том, что на чистых системах все работает без каких-либо сбоев. Сам я использую
более сложный вариант этого модуля уже более двух лет (для себя он изначально и писался).

« Последнее редактирование: 05 Февраля 2018, 02:55:53 от hermes »

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #13 : 06 Февраля 2018, 16:25:36 »
Нашел причину.

Модуль конфликтует с программой Touchpad Blocker. Если выгрузить последнего - то все нормально работает. Но было бы идеально как-то обработать этот конфликт - мало ли кто еще использует эту софтинку.

Оффлайн hermes

  • Разработчик
  • *
  • Сообщений: 185
    • Просмотр профиля
Re: FOCUS_FIX и его возможности для КМ
« Ответ #14 : 06 Февраля 2018, 17:03:19 »
Ну вот :  ) А то ломаю голову: почему ВЕЗДЕ( ! ) работает, причем идеально, а тут такой "сюрприз".
«Ну, я же говорил», что софт в порядке :). Попробую покопаться в этой чудо-программке.
...
Кстати, что проще, (если хотите) могу написать ее аналог без даже теоретических конфликтов.
Но покопаться все же будет интересно, в любом случае.

« Последнее редактирование: 06 Февраля 2018, 19:09:22 от hermes »