Есть отличное и полезное дополнение для коррекции раскладки и регистра неверно набранного текста - SwitchKeyboardLayout

Об этом дополнении:
Позволяет исправлять раскладку и регистр неверно набранного текста одновременно с переключением раскладки клавиатуры и состоянием клавиши CapsLock. Конвертация работает для большинства европейских языков (проверялось для русского, английского, румынского, немецкого, и французского языка).
Возможность автокоррекции набора текста в адресной строке; возможность запоминания раскладки для каждой открытой вкладки и каждого открытого окна; поддержка работы с количеством раскладок, большим 2.

И вот сегодня оно обновилось до версии 1.12 и теперь не работает. При попытке зайти в настройки выдает ошибку:
fcc2c23cbd92t.jpg
Вот что имею в консоли ошибок:

скрытый текст
dd9eb6af6e60.jpg

Система: Windows XP Pro SP3 (вроде бы на Windows 7 такой проблемы нет)

Есть подозрения, что автор этого дополнения обитает на форуме, поэтому пишу сюда ;)
Заодно, будет полезно услышать мнения и пожелания других пользователей этого дополнения.

P.S. Просьба к модераторам перенести тему в раздел Обсуждение расширений и дополнений

Inko7
У вас расширение не видит библиотеку skl.dll. Эта библиотека должна находиться в папке путь_к_профилю\extensions\skl@cycledlm.googlecode.com\platform\WINNT_x86-msvc\ - проверьте, есть ли там эта библиотека. Если есть, то а) отключите антивирус; б) попробуйте установить расширение на чистый профиль.

hydrolizer пишет

Если есть, то а) отключите антивирус; б) попробуйте установить расширение на чистый профиль.

В папке присутствуют файлы: skl.dll, sklobserver.6.dll, sklobserver.7.dll, sklobserver.8.dll
Отключение антивируса и повторная переустановка расширения ничего не дало

На чистом профиле то же самое:
ec8779354077.jpg
c354e75cb0de.jpg

Вот такие пироги :(

Inko7
Тогда под спойлер предоставьте информацию из about:support об установленных на рабочем профиле расширениях, и информацию об ОС (т.к. расширение платформенно-зависимое).

hydrolizer
пока вернулся на предыдущую версию...

about:support
Сведения о приложении

        Имя
        Firefox

        Версия
        7.0.1

        User Agent
        Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

        Папка профиля

          Открыть его папку

        Включённые плагины

          about:plugins

        Конфигурация сборки

          about:buildconfig

  Расширения

        Имя

        Версия

        Включено

        ID

        Adblock Plus
        1.3.10
        true
        {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

        Add Bookmark Here ²
        4.0.20110615
        true
        abhere2@moztw.org

        Add to Search Bar
        2.0
        true
        add-to-searchbox@maltekraus.de

        BugMeNot
        2.2
        true
        {987311C6-B504-4aa2-90BF-60CC49808D42}

        Custom Buttons
        0.0.5.6pre2
        true
        custombuttons@xsms.org

        CuteButtons - Crystal SVG
        0.3.1
        true
        CuteButtonsCrystalSVG@ChoGGi

        Download Manager Tweak
        0.9.5
        true
        {F8A55C97-3DB6-4961-A81D-0DE0080E53CB}

        Easy DragToGo+
        1.1.5.1
        true
        pig1717@gmail.com

        Element Hiding Helper для Adblock Plus
        1.1.2
        true
        elemhidehelper@adblockplus.org

        Element Properties
        6
        true
        properties@darktrojan.net

        Extension Options Menu
        1.23
        true
        {1feca320-6b4d-11df-a08a-0800200c9a66}

        File Title
        1.4
        true
        {861c8868-e3dc-4dcb-ba2e-866901fc2be8}

        FindBar Tweak
        0.5.5
        true
        fbt@quicksaver

        Flagfox
        4.1.8
        true
        {1018e4d6-728f-4b20-ad56-37578a4de76b}

        FlashGot
        1.3.3
        true
        {19503e42-ca3c-4c27-b1e2-9cdb2170ee34}

        Greasemonkey
        0.9.12
        true
        {e4a8a97b-f2ed-450b-b12d-ee082ba24781}

        Hide Menubar
        6.0.20110915
        true
        hidemenubar@moztw.org

        Hide My Ass Proxy Extension
        1.2.5
        true
        extension@hidemyass.com

        keyconfig
        20110522
        true
        keyconfig@dorando

        Organize Search Engines
        1.7
        true
        organize-search-engines@maltekraus.de

        Organize Status Bar
        0.6.5
        true
        {35106bca-6c78-48c7-ac28-56df30b51d2c}

        Pearl Crescent Page Saver Basic
        2.7
        true
        {c151d79e-e61b-4a90-a887-5a46d38fba99}

        Preferences Cleaner
        0.3.1
        true
        pcln@cycledlm.gmail.com

        Replace Bookmark
        1.3.8
        true
        bmreplace@dgutov.github.com

        SaveFrom.net помощник
        1.39
        true
        helper@savefrom.net

        Searchbar Autosizer
        1.5.2
        true
        {655397ca-4766-496b-b7a8-3a5b176ee4c2}

        smart text
        4.7
        true
        smart@text-a.am

        SortPlaces
        1.9.1
        true
        sortplaces@andyhalford.com

        Status-4-Evar
        2011.07.20.21
        true
        status4evar@caligonstudios.com

        Stay-Open Menu
        1.5.10
        true
        {3541c267-2580-4144-854e-2e05c8670121}

        Stylish
        1.2.3
        true
        {46551EC9-40F0-4e47-8E18-8E5CF550CFB8}

        SwitchKeyboardLayout
        1.11
        true
        skl@cycledlm.googlecode.com

        Tab Utilities
        1.1.2
        true
        tabutils@ithinc.cn

        TrayHotKey
        0.3.4.9
        true
        TrayHotKey@zbinlin.org

        UnMHT
        5.7.2
        true
        {f759ca51-3a91-4dd1-ae78-9db5eee9ebf0}

        URL Tooltip
        1.2.1
        true
        url-tooltip@timothytate.net

        WebMail Notifier
        2.8
        true
        {37fa1426-b82d-11db-8314-0800200c9a66}

        Zen.Weather
        0.3.2
        true
        zenWeather@dimkalinux

        Менеджер сессий
        0.7.7
        true
        {1280606b-2510-4fe0-97ef-9b5a22eafe30}





        Adblock Plus Pop-up Addon
        0.2.9
        false
        adblockpopups@jessehakanen.net

        Charset Switcher
        4.0.20101120
        false
        charsetswitcher@moztw.org

        CheckPlaces
        2.6.1
        false
        checkplaces@andyhalford.com

        Context Search
        0.4.6
        false
        {902D2C4A-457A-4EF9-AD43-7014562929FF}

        Menu Editor
        1.2.7
        false
        {EDA7B1D7-F793-4e03-B074-E6F303317FB0}

        NoScript
        2.1.7
        false
        {73a6fe31-595d-460b-a920-fcc0f8843232}

        Personas
        1.6.2
        false
        personas@christopher.beard

        ProfilePassword-Firefox
        0.3.18
        false
        {b9615918-d3de-44a4-ab65-76df7ea1f1c1}

        ProfileSwitcher
        1.3
        false
        {fa8476cf-a98c-4e08-99b4-65a69cb4b7d4}

        Ru-Board Navigation
        2011.07.03
        false
        ru-board.navigation@mozilla-russia.org

        SkipScreen
        0.6.2a
        false
        SkipScreen@SkipScreen

        Tab Group Switcher
        0.1
        false
        tabgroupswitcher@addonlab.com

        TabGroups Menu
        0.8.3.0
        false
        tabgroupsmenu@char.cc

  Изменённые настройки

      Имя

      Значение

        accessibility.typeaheadfind
        true

        accessibility.typeaheadfind.flashBar
        0

        browser.link.open_newwindow.restriction
        0

        browser.places.importBookmarksHTML
        false

        browser.places.smartBookmarksVersion
        2

        browser.startup.homepage
        about:blank

        browser.startup.homepage_override.buildID
        20110928134238

        browser.startup.homepage_override.mstone
        rv:7.0.1

        browser.tabs.animate
        false

        browser.tabs.closeWindowWithLastTab
        false

        browser.tabs.insertRelatedAfterCurrent
        false

        browser.tabs.loadFolderAndReplace
        false

        browser.tabs.loadInBackground
        false

        browser.tabs.selectOwnerOnClose
        false

        browser.tabs.tabMaxWidth
        140

        browser.tabs.tabMinWidth
        40

        browser.tabs.warnOnClose
        false

        browser.tabs.warnOnOpen
        false

        dom.disable_window_move_resize
        true

        dom.disable_window_status_change
        false

        dom.ipc.plugins.enabled
        false

        extensions.lastAppVersion
        7.0.1

        gfx.font_rendering.cleartype_params.rendering_mode
        2

        keyword.URL
        http://yandex.ua/yandsearch?text=

        layers.acceleration.disabled
        true

        network.cookie.lifetimePolicy
        2

        network.cookie.prefsMigrated
        true

        places.database.lastMaintenance
        1319547101

        places.history.expiration.transient_current_max_pages
        64408

        privacy.clearOnShutdown.cookies
        false

        privacy.cpd.cookies
        false

        privacy.cpd.extensions-sessionmanager
        false

        privacy.donottrackheader.enabled
        true

        privacy.sanitize.migrateFx3Prefs
        true

        privacy.sanitize.sanitizeOnShutdown
        true

        privacy.sanitize.timeSpan
        0

        security.dialog_enable_delay
        0

        security.warn_viewing_mixed
        false

  Графика

        Описание видеокарты
        ATI Radeon HD 2600 PRO

        Код производителя
        1002

        Код устройства
        9589

        Объём видеопамяти
        Unknown

        Драйвера видеокарты
        ati2dvag

        Версия драйвера
        8.582.0.0

        Дата разработки драйвера
        2-3-2009

        Визуализатор WebGL
        Заблокирован для вашей версии драйвера видеокарты. Попробуйте обновить ваш драйвер видеокарты до версии 10.6 или более новой.

        Аппаратно ускоренные окна
        0/1. Заблокирован для вашей версии драйвера видеокарты. Попробуйте обновить ваш драйвер видеокарты до версии 10.6 или более новой.

ОС
Поле    Значение
Свойства операционной системы   
Название ОС    Microsoft Windows XP Professional
Кодовое название ОС    Whistler
Язык ОС    Русский
Тип ядра ОС    Multiprocessor Free (32-bit)
Версия ОС    5.1.2600 (WinXP RTM)
Пакет обновления ОС    Service Pack 3
Дата инсталляции ОС    03.12.2009
Корневая папка ОС    C:\Windows
   
Лицензионная информация   
Зарегистрированный пользователь    Admin
Зарегистрированная организация    Microsoft
Лицензированные процессоры    2
Активация продукта (WPA)    Не требуется
   
Текущая сессия   
Имя компьютера    SBORKA
Имя пользователя    Admin
Вход в домен    SBORKA
Время работы    23227 с (0 дн., 6 ч, 27 мин, 7 с)
   
Версии компонентов   
Common Controls    6.00
Internet Explorer    8.0.6001.18702 (IE 8.0)
Outlook Express    6.00.2900.5512 (xpsp.080413-2105)
Windows Media Player    11.0.5721.5145 (WMP_11.061018-2006)
Windows Messenger    -
MSN Messenger    -
Internet Information Services (IIS)    -
.NET Framework    4.0.30319.1 built by: RTMRel
Novell Client    -
DirectX    4.09.00.0904 (DirectX 9.0c)
OpenGL    5.1.2600.5512 (xpsp.080413-0845)
ASPI    -
   
Функции операционной системы   
Отладочная версия    Нет
Версия DBCS    Нет
Контроллер домена    Нет
Наличие безопасности    Нет
Наличие сети    Да
Удалённая сессия    Нет
Безопасный режим    Нет
Медленный процессор    Нет
Терминальные службы    Нет

Повторюсь, на чистом профиле те же грабли.

Inko7 пишет

Повторюсь, на чистом профиле те же грабли.

Хорошо. Сделайте так: в about:config установите значение настройки extensions.skl.debug=1, и перезапустите FF. После рестарта сразу открывайте консоль, и содержимое строк с заголовком типа

2011-10-28 15:41:03    skl.mainlog          DEBUG

давайте сюда.
Если поставить расширение Console², то можно будет фильтровать строки консоли по содержимому, и копировать сразу содержимое нескольких выделенных строк.

Все делаю на чистом профиле:
Console установил, about:config изменил, FF перегрузил

hydrolizer пишет

2011-10-28 15:41:03    skl.mainlog          DEBUG

в консоли ошибок таких строк не появилось:

скрытый текст
26a6e0b01ca8.jpg

Inko7
Понятно. Теперь можно сделать следующее: в файле extensions\skl@cycledlm.googlecode.com\modules\sklapi.jsm найдите фот эти строки кода:

Выделить код

Код:

let xr = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
file.append(xr.OS + "_" + xr.XPCOMABI);
file.append(ctypes.libraryName("skl"));
libpath=file.path;

Последняя приведенная строка - №39. После нее вставьте код

Выделить код

Код:

skllib.log.log("path: "+libpath);

снова перезапустите FF, и посмотрите в консоль.

hydrolizer пишет

skllib.log.log("path: "+libpath);

добавил, но в консоли ничего нового не появилось :|

ЗЫ. Чтобы исключить и сам FF, а не только профиль, еще раз все перепроверил на portable версии - все то же самое...

В консоли должны быть нажаты следующие кнопки - проверьте, так ли это:

скрытый текст
err-console2.png

И еще раз проверьте значение настройки extensions.skl.debug - оно равно 1?
да, еще можно попробовать skl.dll от 11-й версии подложить вместо той, которая в 12-й - по идее, она должна подойти, т.к. в 12-й версии skl.dll содержит только код для ctypes-вызовов, а реализация XPCOM-компонента вынесена в библиотеки sklobserver.x.dll, где x - номер версии FF, для которой скомпилирована библиотека. Сделано это для того, чтобы расширение могло быть совместимым с несколькими разными версиями FF - до 12-й версии совместимость была строго только с одной версией, и тут бы не помогли никакие режимы принудительной совместимости и правки install.rdf.

hydrolizer пишет

В консоли должны быть нажаты следующие кнопки - проверьте, так ли это

да, на приведенном ранее скрине это видно

hydrolizer пишет

И еще раз проверьте значение настройки extensions.skl.debug - оно равно 1?

100%
В консоли так ничего и не появилось...

hydrolizer пишет

еще можно попробовать skl.dll от 11-й версии подложить

ничего нового: та же ошибка и консоль без DEBUG

Inko7
Попробуйте выставить настройку extensions.skl.debug в 2 - при этом значении логирование ведется в файл с названием skl@cycledlm.googlecode.com.txt. Файл, если логирование будет иметь место, будет находиться в корне профиля.

hydrolizer
Увы, не создается :(

Inko7
Совсем чудеса какие-то... завтра попробую что-нибудь придумать, сегодня у меня уже на это не остается времени.
P.S. Попробуйте аналогичным образом (extensions.skl.debug=1) включить логирование для 11-й версии - там оно у вас работать будет? (у вас - потому, что у меня это работает и на 12-й. Вообще вроде как на форуме были сообщения (как пример) о том, что расширение 12-й версии работает не только у меня).

hydrolizer пишет

Вообще вроде как на форуме были сообщения (как пример) о том, что расширение 12-й версии работает не только у меня

Inko7 пишет

вроде бы на Windows 7 такой проблемы нет

Вот и я про то же! У меня на домашнем компе с Windows 7 вообще никаких проблем с 12-й версией нет! А вот на работе установлена XP и с ней такая бодяга...

hydrolizer пишет

Попробуйте аналогичным образом (extensions.skl.debug=1) включить логирование для 11-й версии - там оно у вас работать будет?

Раньше понедельника проверить уже не смогу. Сейчас проверил дома на 7-ке версию 1.12 - логирование ведется и в консоль и в файл!
P.S. Папку профиля FF с работы (ХР) специально принес домой для пробы на 7-ке. Раз проблем нет, значит дело только в операционке...

Inko7 пишет

значит дело только в операционке

У меня тоже дома win7, а на работе XP - работает и там, и там. И поскольку расширение было отправлено на проверку 14 сенятбря, то оно у меня успело поработать и на FF 7.0.
Хорошо, тогда отложим пока дальнейшее разбирательство до понедельника.

У меня на 3-х разных компах с Windows 7 (пробовал: FF 7, Nightly и Nightly-UX через Add-on Compatibility Reporter) версия 1.12 тоже не пашет - ошибка API (что-то типа такого сообщения). Пришлось возвращаться на версию 1.11. Прога конечно незаменимая.

тональ пишет

тоже не пашет

Не тоже. У автора темы на win7 вполне работает.

тональ пишет

что-то типа такого сообщения

С "что-то" помочь ничем не могу. Нужно точно приведенное сообщение, желательно - содержимое консоли.
И для начала сделайте всё то, о чем было написано выше - проверьте наличие библиотеки, попробуйте с отключенным антивирусом/на чистом профиле, включите отладочное логирование, и посмотрите, что будет в консоли.

Вот на FF7.0 (windows 7) 1319956899_.png
Вот на Nightly (англ. версия с русификацией) (windows 7) 1319957954_.png
При переходе назад, на версию 1.11 (с автоматической зачисткой Вашим (отличным) расширением Preferences Cleaner) - всё O'K.
В данный момент жизни у меня нет желания и времени разбираться (я некомпетентен и лень) с всякими там консолями и прочим, так что извините.
Но могу точно сказать, что дело не в "грязном профиле", т.к. пробовал ставить на свежеустановленную Windows 7. И при разных антивирях: CIS 5.8 beta, KIS 2011, KIS 2012 (но их не отключал, но они и не сообщали о блокировании или подобном).

:::: Mozilla/5.0 (Windows NT 6.1; rv:9.0a2) Gecko/20111029 Firefox/9.0a2 [aurora] [windows]7 - FAIL :(

У меня получилось воспроизвести ошибку. Разбираюсь, в чем дело.

В общем, ситуация такова: до версии 1.12 бинарные компоненты для расширения компилировались с помощью MS Visual Studio 2008, 1.12 - c помощью MS Visual Studio 2010. То ли программы, скомпилированные под MSVS2008 в природе встречаются намного чаще, то ли я так и не разобрался до конца в нюансах настройки линковки под MSVS2010 - но для версии 1.12 нужны рантаймы, т.к. бинарники слинкованы динамически. Взять рантаймы можно здесь: http://www.microsoft.com/download/en/de … px?id=5555 (это совсем не дотнет, и весит инсталлятор всего лишь 11 Мб). Вариант статической линковки мне крайне не понравился - размер библиотек при этом увеличивается в 5 раз, и 4 библиотеки в составе расширения вместе уже тянут на 300 килобайт - это многовато для небольшого, в общем-то, расширения.
И еще. Я решил удалить данное расширение с АМО - за его обновлениями можно будет следить по этой теме. Сама эта тема причиной такого решения совсем не является, т.к. у меня и раньше были мысли о том, что не нужно держать на такой широкой площадке такое капризное, и не особенно популярное расширение. К тому же, насколько я понимаю, достаточно большое количество пользователей расширения обитает на этом форуме - отследить обновления здесь им будет достаточно просто.

Тема перенесена из форума «Поддержка пользователей» в форум «Обсуждение расширений и дополнений».

hydrolizer пишет

Взять рантаймы можно здесь

Спасибо! Действительно помогло - все работает замечательно! :beer:

hydrolizer пишет

Я решил удалить данное расширение с АМО

Надеюсь это не повлияет на дольнейшую разработку/модернизацию дополнения.

Inko7 пишет

Надеюсь это не повлияет на дольнейшую разработку/модернизацию дополнения.

Ничуть.

Я, как и обещал, убрал расширение с АМО. Если есть желание получать новые версии автоматически, нужно установить вот эту версию: http://dl.dropbox.com/u/14131025/FMR/SK … x.1.13.xpi - она абсолютно идентична версии 1.12, просто кое-что добавилось в install.rdf для поддержки механизма автоапдейта (для расширений на АМО такие включения не требовались). Версия по ссылке может автоматически проапдейтиться на версию 1.14 - эта версия тоже абсолютно аналогична версии 1.12, и была сделана просто для проверки автоапдейта (и чтобы побыстрее уйти от версии с номером 13 :) ). У меня апдейт на 1.14 прошел нормально.

Версия 1.15 с поддержкой Firefox 9.0: http://dl.dropbox.com/u/14131025/FMR/SK … x.1.15.xpi.
В данной версии убрана поддержка FF 6.0, плюс наличествует небольшой багфиксинг (в части работы в полях ввода с форматированным текстом - например, сейчас переключение раскладки и тултип раскладки работают в редакторе стилей Stylish).
Если у кого-то установлена версия 1.14 - можно попробовать обновиться штатным образом, через Find Updates в менеджере дополнений.

hydrolizer пишет

Если у кого-то установлена версия 1.14 - можно попробовать обновиться штатным образом, через Find Updates в менеджере дополнений.

Автообновление прошло успешно!

Версия с поддержкой FF10.0.
В прошлой версии (для 9.0) я немного ошибся в содержимом install.rdf, и поэтому с нее (1.15) до новой (1.16) автоматически проапдейтиться не получится - 1.16 нужно ставить вручную.

В новом файрфоксе отключилась старая версия SKL, и вот я здесь. Воспользуюсь возможностью снова сказать автору СПАСИБО за реализацию подсветки текущей раскладки.

Однако я только что установил 1.16, и SKL не подсвечивает мне раскладку при _переключении_. При получении фокуса - всё ок, но при переключении индикация не срабатывает. Соответствующая галка в настройках SKL стоит.

GMaximus
Да, вижу - 9.0 почему-то не находит XPCOM-компонента, отслеживающего событие переключения раскладки. Возможно, причина в том, что бинарник для версии 9.0 собирался в линковке с бета версией xulrunner SDK. Вечером дома попробую пересобрать, если всё будет в порядке - заменю в дропбоксе версию расширения, и напишу об этом сюда.

GMaximus
Выложил версию, нормально работающую с 9.0.1 - она всё по той же ссылке, что и последняя версия расширения (которая для работы с FF10.0 - одну небольшую поправку в отдельную версию расширения я выносить не стал). Проблема была в versioning flag'е для версии 9.0 - флаг был именно для версии 9.0, а сейчас уже вышла версия 9.0.1. Можно даже не переустанавливать расширение - просто в chrome.manifest строчку

binary-component platform/WINNT_x86-msvc/sklobserver.9.dll ABI=WINNT_x86-msvc appversion=9

заменить на

binary-component platform/WINNT_x86-msvc/sklobserver.9.dll ABI=WINNT_x86-msvc appversion=9

.0.1


В следующих версиях постараюсь учесть этот нюанс - тем более, что 10-й релиз будет ESR, и у него таких версий (0.1, 0.2, 0.3 ...) будет много.

Заработало!

На линуксе, я так понимаю, работать не должно?

Muddy
Нет, не должно. Расширение использует бинарные компоненты, работающие с WinAPI. Теоретически, м.б. оно заработает под вайном - но это я не проверял.

Версия 1.17 с поддержкой ветки 11.0
Поддерживаемые ветки (не версии!): 9.0, 10.0, 11.0.
С версии 1.16 до 1.17 можно обновиться автоматически.

hydrolizer пишет

Версия 1.17 с поддержкой ветки 11.0Поддерживаемые ветки (не версии!): 9.0, 10.0, 11.0.С версии 1.16 до 1.17 можно обновиться автоматически.

В 10 версии лисы не работает блин ошибка API как всегда:(

SlyFox
Потому что WOW64. Вам расширение об этом не сказало?
Подробнее описано здесь.

Версия 1.18 с поддержкой ветки 12.0. Поддерживаемые ветки: 10, 11, 12.
С данной версии и далее диапазон поддерживаемых версий будет таков: ESR-ветка, последний релиз, последняя бета.

hydrolizer пишет

MuddyНет, не должно. Расширение использует бинарные компоненты, работающие с WinAPI. Теоретически, м.б. оно заработает под вайном - но это я не проверял.

Я пытался используя wine, но все равно не хочет никак работать.

garif12 пишет

Я пытался используя wine, но все равно не хочет никак работать.

Если хорошенько погуглить, то найдете шаманский метод как сделать рабочим.
ПС: мне просто племянник настроил каким-то кустарным методом)

Версия 1.19 с поддержкой ветки 13.0. Поддерживаемые ветки: 10, 12, 13.

hydrolizer
случайно заметил в консоли ошибок:

Метка времени: 04.05.2012 16:54:15
Ошибка: несоответствующий тег. Ожидается: </link>.
Источник: http://dl.dropbox.com/u/14131025/FMR/SKL/update.1.19.rdf
Строка 6, символ 3
Исходный код:
</head>

Inko7
Видимо, баг системы кастомного автоапдейта. На данный момент файла update.1.19.rdf вообще не существует - он появится, когда нужно будет версию 1.19 обновлять на 1.20.

Версия 1.20 с поддержкой ветки 14.0. Доступна через автоапдейт. Поддерживаемые ветки: 10, 13, 14.

Версия 1.21 с поддержкой ветки 15.0. Доступна через автоапдейт. Поддерживаемые ветки: 10, 14, 15.

Версия 1.22 с поддержкой ветки 16.0. Доступна через автоапдейт. Поддерживаемые ветки: 10, 15, 16.

hydrolizer
на одном из ноутов установлена Win 7 Home Premium x64 и для меня было неприятным сюрпризом то, что SKL не заработал...
Поддержка 64-битных систем сейчас есть или если нет, то будет?

Inko7
Эмм.. а firefox там используется какой? Обычная сборка x86, или x64? В первом случае расширение должно было однозначно сообщить алертом, что работать не будет, т.к. поддержки x64 нет (см. выше) - нужна отдельная библиотека, собранная под х64. Т.е. в расширение придется вшивать два комплекта библиотек под две разрядности платформы.

Inko7 пишет

если нет, то будет?

Будет, думаю, когда-то. Как скоро - сказать не могу.

hydrolizer пишет

Эмм.. а firefox там используется какой? Обычная сборка x86, или x64?

Обычный FF 15.0.1 (x86) с офф.сайта.

hydrolizer пишет

В первом случае расширение должно было однозначно сообщить алертом, что работать не будет, т.к. поддержки x64 нет

Алерта не видел или не заметил. На каком этапе он должен был появиться?

hydrolizer пишет

Будет, думаю, когда-то. Как скоро - сказать не могу.

Жаль, что скоро не появится. Придется пока придумать какую-нибудь замену.

Inko7 пишет

На каком этапе он должен был появиться?

При попытке входа в настройки расширения.

Версия 1.23 с поддержкой веток 17.0 и 18.0. Доступна через автоапдейт. Поддерживаемые ветки: 10, 16, 17, 18.

hydrolizer
Тяжковато без вашего дополнения на Win x64 :(
Можете все-таки собрать библиотеку для 64-битных систем? Это сложно?
Если вы не хотите увеличивать размер аддона из-за двух библиотек одновременно, то может собрать одну версию только для x64 без дальнейшего обновления?

Inko7 пишет

Это сложно?

Ну как сказать... нужно развернуть виндовс x64 на виртуалке, внутрь виртуалки поставить visual studio со всем необходимым, собрать, потестировать. Не столько сложно, сколько достаточно долго. Попробую на выходных это сделать.

hydrolizer пишет

Попробую на выходных это сделать

Было бы здорово! Спасибо.

Возникли некоторые проблемы с вызовом методов WinAPI под Fx x64. Кто может - проверьте у себя под x64, как отработает вот такой код:

Выделить код

Код:

try
{
  Components.utils.import("resource://gre/modules/ctypes.jsm");
  Components.utils.import("resource://gre/modules/Services.jsm");
  var lib=ctypes.open("user32.dll");
  var method=lib.declare("GetKeyboardLayout",ctypes.winapi_abi,ctypes.uint32_t,ctypes.uint32_t);
  var res=method(0);
  lib.close();
  Services.prompt.alert(null, "test", Number(res).toString(16).toUpperCase());
}
catch(err)
{
  Components.utils.reportError(err);
}

- он выводит в алерте HKL текущей раскладки, т.е. должен вывести либо 4090409, либо 4190419. Если не будет никаких сообщений - загляните в консоль ошибок.
На всякий случай - под спойлером кастомная кнопка с этим кодом.

скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3Ectypes%20test%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Btry%0A%7B%0A%09Components.utils.import%28%22resource%3A//gre/modules/ctypes.jsm%22%29%3B%0A%09Components.utils.import%28%22resource%3A//gre/modules/Services.jsm%22%29%3B%0A%09var%20lib%3Dctypes.open%28%22user32.dll%22%29%3B%0A%09var%20method%3Dlib.declare%28%22GetKeyboardLayout%22%2Cctypes.winapi_abi%2Cctypes.uint32_t%2Cctypes.uint32_t%29%3B%0A%09var%20res%3Dmethod%280%29%3B%0A%09lib.close%28%29%3B%0A%09Services.prompt.alert%28null%2C%20%22test%22%2C%20Number%28res%29.toString%2816%29.toUpperCase%28%29%29%3B%0A%7D%0Acatch%28err%29%0A%7B%0A%09Components.utils.reportError%28err%29%3B%0A%7D%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

hydrolizer пишет

он выводит в алерте HKL текущей раскладки, т.е. должен вывести либо 4090409, либо 4190419

Да, так и есть.
Проверил под Win7 Ultimate x64, но с 32-разр. Firefox, т.к. только его использую.

Inko7 пишет

Да, так и есть

Т.е. 4090409/4190419? У меня почему-то выбрасывает 998 - ERROR_NOACCESS, т.е. firefox не может достучаться до самой библиотеки (системной). Буду разбираться, в чем дело.

Inko7 пишет

но с 32-разр. Firefox

Да, именно так и нужно - пока не появится релизного firefox x64, за него даже нечего и браться, слишком там много может быть нестабильностей низкоуровневого характера.

hydrolizer пишет

Т.е. 4090409/4190419?

У меня две раскладки рус\англ и ничего кроме этого не выскакивало.
Консоль ошибок не смотрел.

Версия 1.24 с поддержкой ветки 19.0. Доступна через автоапдейт. Поддерживаемые ветки: 17, 18, 19.
С версией для x64 пока не получается - лезут ошибки компиляции откуда-то изнутри xulrunner sdk. Есть подозрение, что для сборки под x64 соответственно нужен sdk x64 - а его нет (и вроде как никогда не было); на ftp лежит только win32 sdk (в отличие от sdk для linux и macos).

Версия 1.25 с поддержкой ветки 20.0. Доступна через автоапдейт. Поддерживаемые ветки: 17, 19, 20.

Версия 1.26. Доступна через автоапдейт. Поддерживаемые ветки: теоретически - все начиная с 5.0. На практике - надо пробовать. Версия тестировалась под текущую бету (21.0b). Основное отличие этой версии от всех предыдущих - в ней удалось избавиться от бинарного XPCOM-компонента, и теперь нет надобности пересобирать и перепаковывать расширение под каждый новый релиз. Кроме того, совместимость расширения теперь будет такой же, как у всех прочих расширений - оно будет совместимым до тех пор, пока не будет доказано обратного. И, наконец, поскольку единственная оставшаяся в составе расширения библиотека является обычной платформенной сишной библиотекой, не зависящей от xulrunner SDK, то её можно адаптировать к x64, чем я и займусь.

технические подробности
Бинарный XPCOM-компонент в составе расширения делал следующее: вешал на главное окно Firefox shell-хук, в hook callback при code=HSHELL_LANGUAGE оповещал расширение о смене раскладки через observer notofications. И либо два года назад js-ctypes не поддерживали указатели на js-функции, либо я этот момент упустил, но определение момента смены раскладки делалось именно вышеописанным образом. А не так давно я случайно наткнулся на описание callbacks с помощью js-ctypes и js-функций. Выглядит в рабочем коде это вот так:

Выделить код

Код:

callback: null,
callNextHookEx: null,
hook: null,
installHook: function()
{
  let getCurrentThreadId = this.k32lib.declare("GetCurrentThreadId", ctypes.winapi_abi, ctypes.uint32_t);
  var threadId = getCurrentThreadId();
  var callbackType = ctypes.FunctionType(ctypes.stdcall_abi,
    ctypes.int32_t.ptr, [ctypes.int, ctypes.int32_t, ctypes.int32_t]);
  var setWindowsHookExW = this.u32lib.declare("SetWindowsHookExW", ctypes.winapi_abi, ctypes.uint64_t.ptr,
    ctypes.int, callbackType.ptr, ctypes.int32_t.ptr, ctypes.uint32_t);
  this.callback = callbackType.ptr(this.shellProc, this);
  this.callNextHookEx = this.u32lib.declare("CallNextHookEx", ctypes.winapi_abi, ctypes.uint64_t.ptr,
    ctypes.int32_t.ptr, ctypes.int, ctypes.int32_t.ptr, ctypes.uint64_t.ptr);
  this.hook = setWindowsHookExW(10, this.callback, ctypes.int32_t.ptr(0), threadId);
},

shellProc: function(code, wParam, lParam)
{
  if (code<0)
    return this.callNextHookEx(0, code, wParam, lParam);
  if (code==8)
    this.fireLayoutChanged(lParam, SKLConst.CHANGED_FROM_OS);
  return this.callNextHookEx(0, code, wParam, lParam);
},

uninstallHook: function()
{
  let unhookWindow = this.u32lib.declare("UnhookWindowsHookEx", ctypes.winapi_abi, ctypes.bool, ctypes.uint64_t.ptr);
  var res = unhookWindow(this.hook);
  if (res)
    this.hook = null;
},

Inko7
Под х64 работает Transliterator

VORON
Спасибо, но оно какое-то не такое...
А раз еще и hydrolizer пишет:

hydrolizer пишет

... то её можно адаптировать к x64, чем я и займусь.

то вообще ничего другого искать не придется!

Inko7
Собственно, вот: https://dl.dropbox.com/u/14131025/FMR/S … x.1.26.xpi - можно пробовать.
Даже не пришлось делать отдельную библиотеку - расширение на х64 работает с той же dll, что и на х86. Пришлось только подкорректировать ряд функций.
Это тестовая версия с тем же номером, что и у версии, выложенной сегодня утром. Если все будет в порядке - сделаю отдельную версию с автоапдейтом.
У себя работу проверял на Fx 21.0b и Win 7 Prof. x64 SP1 (чистая установка с дистрибутива, в систему были установлены только Far x64 и Firefox).

> Под х64 работает Transliterator
еще бы ему не работать - в его составе нет бинарников (и значит, он как минимум не переключает раскладку)

hydrolizer
Да, все работает отлично!!! :rock:

Inko7
Если нетрудно - проверьте, как работает функция исправления регистра (в настройках выставить Состояние CapsLock при исправлении регистра - выключить, нажать капс, набрать текст, нажать хоткей исправления регистра). У меня на виртуалке с Win7x64 сам регистр исправляется, а вот состояние капслока не изменяется (при описанной последовательности действий он должен выключиться). Без каких-либо ошибок. На Win7x86 (не на виртуалке) всё работает так, как надо. Просто есть подозрение, что виновата именно виртуалка - хотелось бы это проверить.

Inko7 пишет

VORONСпасибо, но оно какое-то не такое...

Ну за  год я даже к её дурацкой CTRL+SHIFT+Q комбинации клавиш привык ,-как говорится за неимением гербовой....

hydrolizer пишет

еще бы ему не работать - в его составе нет бинарников (и значит, он как минимум не переключает раскладку)

-и чего ж с таким апломбом об этом полтора года назад не говорить,а?

hydrolizer пишет

Просто есть подозрение, что виновата именно виртуалка - хотелось бы это проверить.

Скорей всего, это именно так.
У меня на Win7Pro x64 все сработало как надо.

Inko7 пишет

У меня на Win7Pro x64 все сработало как надо.

Спасибо. Версия 1.27. Доступна через автоапдейт, совместима с версиями 5.0 - 22.0 и выше, как для windows x86, так и для windows x64.

hydrolizer
Кто нибудь знает как запретить открываться пустым вкладкам? Из за дополнений бывают ситуации когда открывается пустая вкладка, и дополнение не отключить, потому как нужное, вот и хочется запретить срабатывание пустых вкладок, а то достало.

На [firefox] 39 менюшка с настройками не работает, а на 64 бит [firefox] даже контекстное меню не работает. :sick:

VINRARUS
Как обладатель 39x64 говорю, что работает все ;)

DreamC
Да, это интересно...
У меня даже меню с настройками ни на 39 х64 [firefox] ни на 40 х32 [firefox] не работает, окно открывается пустым и даже ОК не нажимается. :/
[windows] 8 х64 если что. Версия плагина 1.27.

VINRARUS
Упс... Извиняюсь - я перепутал тему...
Но специально (чтобы исправиться ;) ) поставил это расширение версии 1.27 (правильно ведь?) и проверил.
Меню работает и контекстное тоже. Может галки какие нужно потыкать?

DreamC пишет

Меню работает и контекстное тоже. Может галки какие нужно потыкать?

Мне кажется так явно быть не должно:
h_1434383812_4000278_85ccaf75d6.png

да не работает. с 38 перестало. сам был бы рад если бы кто починил.

Я просто не уверен как оно должно работать...

DreamC пишет

Я просто не уверен как оно должно работать...

Написал слово, выделил его, нажал через ПКМ "инвертировать" и маленькие быквы должны первратиться в большие.

VINRARUS пишет

Написал слово, выделил его, нажал через ПКМ "инвертировать" и маленькие быквы должны первратиться в большие.

да изменить раскладку, регистр или конвертировать текст можно по контекстному на значке расширения. но не работают настройки совсем, соответственно невозможно изменить сочетания клавиш, некоторые настройки интерфейса, включить одну раскладку в адресной строке, ну как-то так. жаль, что его не правят :(

sonyas75 пишет

да изменить раскладку, регистр или конвертировать текст можно по контекстному на значке расширения.

Не у меня.:/

ну примерно так
было
s_1434394065_9086551_bda4aa38fe.png
стало
s_1434394094_9575251_29477f9fea.png

А не может то быть связано с отменой поддержки бинарных компонентов? Т.к. это расширение полагается на какую-то свою библиотеку.

sonyas75 пишет

ну примерно так

У меня так не работает. :(

DreamC пишет

А не может то быть связано с отменой поддержки бинарных компонентов? Т.к. это расширение полагается на какую-то свою библиотеку.

Может, нужно что бы кто то исправил. :)

VINRARUS
Охохохохохо =D

очень жаль что поломалось такое нужное дополнение...
нужно как-то с автором связаться, попросить его...

10-10-2015 22:02:18
кстати, временно для себя нашел такой выход:
со тарой версии FF, там где еще нормально работал SwitchKeyboardLayout, скопировал из prefs.js строки настроек дополнения и вставил их в текущий prefs
более-менее всё конвертирует/переключает :cool:
заметил только, что и по кнопке  TAB почему-то конвертирует...
значит просить автора всё равно нужно

Дико извиняюсь за столь долгое молчание - ввиду перманентного завала на работе  было совсем не до разработки для Fx, плюс я законсервировался на версии 24.8 ESR, и поскольку на ней всё (почти), что мне было нужно, работало, я не предпринимал никаких активных действий по переработке чего-либо. Однако с недавних пор на 24.8 работать стало окончательно невозможно ввиду несовместимости этой версии с кучей сайтов, и я переполз на 45.5 ESR - соответственно, пришлось срочно чинить всё, что в этой версии отвалилось.
Вот работающая версия для 45.5 ESR: https://dl.dropboxusercontent.com/u/141 … x.1.30.xpi . Работает и в х86, и в х64 версиях Fx (тестировалась на Win7 SP1 x64 prof. и WinXP SP3). Починился даже индикатор клавиатуры, который, как выяснилось, не работал и в 24.8, и просто был закрыт заглушкой в коде. Основные юзкейсы проверил, вроде бы всё работает, но если кто-то что-то найдет - пишите.
Совместимость с более поздними версиями Fx обещать не могу ввиду изменившейся политики распространения расширений начиная с 48-й версии - нужна регистрация и проверка расширения на АМО, во что мне, во-первых, не хочется влезать снова, а во-вторых, наличие бинарника (dll для js-ctypes вызовов, исходники есть в составе расширения) всегда вызывало на АМО параноидальную реакцию, что влекло за собой долгое пребывание расширение в статусе бета-версий, которые, опять же, автоматически будут считаться неподписанными.
Из технических нюансов: никто не в курсе, как прикастовать 64-х разрядный указатель ctypes к яваскриптовому Number (числовое значение указателя укладывается в диапазон int32)? Явный кастинг к целочисленным типам вызывает ошибки вида "TypeError: can't pass ctypes.uint64_t.ptr(ctypes.UInt64("0x4190419")) to argument 1 of UInt64", других вариантов я не нашел, и пришлось 0x4190419 регуляркой вырезать из строкового представления указателя, что, по-моему, как-то не очень.

йессс! спасибо. убрал пару костылей из фф. можно ли убрать иконку из п̶а̶н̶е̶л̶и̶,̶ ̶н̶е̶ ̶з̶н̶а̶ю̶ ̶к̶а̶к̶ ̶э̶т̶а̶ ̶п̶а̶н̶е̶л̶ь̶ ̶н̶а̶з̶ы̶в̶а̶е̶т̶с̶я̶ ̶т̶о̶ч̶н̶о̶,̶ ̶д̶о̶п̶о̶л̶н̶е̶н̶и̶й̶ ̶ч̶т̶о̶ ̶л̶и̶  статус бара? кому надо сам ее вытащит куда надо. жаль, что ненадолго, надеюсь на работу дополнений в следующем 52 ЕСР

sonyas75 пишет

можно ли убрать иконку из п̶а̶н̶е̶л̶и̶,̶ ̶н̶е̶ ̶з̶н̶а̶ю̶ ̶к̶а̶к̶ ̶э̶т̶а̶ ̶п̶а̶н̶е̶л̶ь̶ ̶н̶а̶з̶ы̶в̶а̶е̶т̶с̶я̶ ̶т̶о̶ч̶н̶о̶,̶ ̶д̶о̶п̶о̶л̶н̶е̶н̶и̶й̶ ̶ч̶т̶о̶ ̶л̶и̶  статус бара?

ээ.. а он есть в Fx45? Может быть, я слишком долго был в анабиозе, и что-то пропустил, но при переходе на 45 мне показалось, что разработчики выпилили статус-бар совсем и окончательно, и поэтому убрал опцию включения/выключения иконки в статус-баре из диалога настроек. Если у вас есть статус-бар, и в нем есть иконка SKL - переведите настройку extensions.skl.skl-icon-enabled в false, эта настройка регулировала отображение иконки в статус-баре.

выпилили. давно. но дело в том, что НоСквинт показывает процент масштабирования именно в этом самом статус-баре и не переносится. из-за одного него мне пришлось вынести статус-бар в основной интерфейс. сейчас там же оказался и значок SKL, этот значок мне вообще не нужен при наличии значка текущего языка ввода SKL. настройка в эбаут конфиг сработала. благодарю. good2.gif

гм. в связи со скорым переходом на 52ESR установил бетку 52-ю, поставил SKL и он работает! удивлен и рад. :)
h_1485351762_6614264_bf65023508.png