Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№120-09-2012 11:20:57

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 15.0

Конвертирование старых кнопок с XML (E4X)

(Внимание, это черновая версия инструкции!)
Хотя другой и не предвидится...

E4X в ближайшее время будет сначала отключен по умолчанию, а затем удален:

Warning: E4X is deprecated. It will be disabled by default for content in Firefox 16, disabled by default for chrome in Firefox 17, and removed in Firefox 18.

На данный момент в Nightly (Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/18.0 Firefox/18.0) E4X уже отключен для страниц:
javascript.options.xml.chrome = true
javascript.options.xml.content = false

Для проверки работоспособности кнопок надо установить Nightly и выставить обе настройки в false.

Обсуждение и подробности:
на этом форуме
на custombuttons.sf.net

Что перестанет работать:
1. Конструкции вида

Выделить код

Код:

var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        ...
    </menupopup>;
Выделить код

Код:

var menu = cbu.makeXML(
    <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        ...
    </menupopup>
);

Характерный признак – наличие в коде вызовов cbu.makeXML() или custombuttonsUtils.makeXML(). Или реализация аналога:

Выделить код

Код:

var elt = new DOMParser().parseFromString(xml.toXMLString(), "application/xml").documentElement;


То есть в коде таких кнопок обязательно есть makeXML() или toXMLString().

2. Конструкции вида

Выделить код

Код:

var str = <><![CDATA[
    ...
    ]]></>
    .toString();
Выделить код

Код:

var str = <![CDATA[
    ...
    ]]>
    .toString();


Характерный признак – наличие в коде "<![CDATA[" не внутри "строки" или 'строки'.

3. Нельзя будет работать с глобальным объектом XML – он будет удален.
Перестанут работать записи вида

Выделить код

Код:

XML.prettyPrinting = false;
XML.ignoreProcessingInstructions = false;


Характерный признак – наличие "XML.". Впрочем, с XML потом обычно надо что-то сделать, так что все равно будет еще и toXMLString().

4. Нельзя будет работать с xml-объектами.
Выглядит это так:

Выделить код

Код:

var xml = <menu />;
xml.@attr = "..."; // Установить атрибут
var val = xml.@attr; // Получить атрибут


Характерный признак – наличие ".@" (см. пример выше).


Исправление
Внимание, в данный момент в Custom Buttons нет API для преобразования строк в XUL-узлы, когда он будет добавлен, лучше использовать его.
Для примера приведен наиболее простой и короткий вариант, возможно, он не будет работать в некоторых сложных случаях.
1. Было:

Выделить код

Код:

var xul = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        ...
    </menupopup>;
var menu = cbu.makeXML(xul);
Выделить код

Код:

var menu = cbu.makeXML(
    <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        ...
    </menupopup>
);


Стало:

Выделить код

Код:

var xul = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">\n\
        ...\n\
    </menupopup>';
var menu = parseXULFromString(xul);
Выделить код

Код:

var menu = parseXULFromString('\
    <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">\n\
        ...\n\
    </menupopup>'
);


Плюс надо добавить функцию:

Выделить код

Код:

function parseXULFromString(xul) {
    xul = xul.replace(/>\s+</g, "><");
    return new DOMParser().parseFromString(xul, "application/xml").documentElement;
}

То есть нужно привести код к строкам вида

Выделить код

Код:

var str = '\
    0123\
    456\
';

или

Выделить код

Код:

var str = '\
    0123\n\
    456\n\
';


Таким образом, нужно экранировать каждый перевод строки внутри ' ... ' или " ... ".
\n\ нужно для получения настоящего перевода строки. Это удобнее – при ошибках в коде в консоли ошибок будет указан нормальный номер строки.

При этом внутри строк при конвертировании из XML формата надо экранировать специальные символы:
\ -> \\
' -> \'
(и " -> \", если для создания строки используются двойные кавычки)

Далее E4X позволяет использовать выражения (в фигурных скобках):

Выделить код

Код:

var xul = <menupopup xmlns={xulns}>
        <menuitem label={getLabel()} />
    </menupopup>;


С ними немного сложнее. В общем случае нужно еще преобразовывать специальные XML/HTML-символы.
Было:

Выделить код

Код:

var xul = <menupopup xmlns={xulns}>
        <menuitem label={getLabel()} />
    </menupopup>;


Без преобразования:

Выделить код

Код:

var xul = '<menupopup xmlns="' + xulns + '">\n\
        <menuitem label="' + getLabel() + '" />\n\
    </menupopup>';


С преобразованием:

Выделить код

Код:

var xul = '<menupopup xmlns="' + encodeHTML(xulns) + '">\n\
        <menuitem label="' + encodeHTML(getLabel()) + '" />\n\
    </menupopup>';
function encodeHTML(s) {
    return String(s)
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;");
}


И нужно иметь в виду, что при работе со строками будет другой приоритет выполнения операций:
Было:

Выделить код

Код:

<menuitem label={ a + b } />


Стало:

Выделить код

Код:

'<menuitem label="' + (a + b) + '" />'


или

Выделить код

Код:

'<menuitem label="' + encodeHTML(a + b) + '" />'


Для надежности лучше всегда конвертировать специальные символы.
Переводы строк в многострочных выражениях экранировать не надо.

2. Аналогично с CDATA, только тут не нужно парсить строку в DOM-дерево:
Было:

Выделить код

Код:

var str = <><![CDATA[
    123
    456
    789
    ]]></>
    .toString();


Стало:

Выделить код

Код:

var str = '\
    123\n\
    456\n\
    789';



3. Использование объекта XML надо просто удалить.
В основном, он нужен для удаления пробелов между тэгами и разрешения использования инструкций вида <? ... ?> вроде такой:

Выделить код

Код:

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

В строках это не требуется, а пробелы должна будет удалять функция-парсер.

4. С атрибутами немного сложнее – нужно сначала откорректировать код, чтобы перед установкой/чтением атрибутов было конвертирование строки в DOM-узлы (в данном случае – вызов parseXULFromString()).
Было:

Выделить код

Код:

var node = <menu />;
node.@attr = "val";
...
var domNode = cbu.makeXML(node);


Стало:

Выделить код

Код:

var str = "<menu />"; // То есть str – сконвертированное в строку старое объявление node.
var node = parseXULFromString(str);
node.setAttribute("attr", val);
...
// Больше не требуется:
//var domNode = cbu.makeXML(node);


Было:

Выделить код

Код:

var node = <menu />;
var val = node.@attr;
...
var domNode = cbu.makeXML(node);


Стало:

Выделить код

Код:

var str = "<menu />";
var node = parseXULFromString(str);
var val = node.getAttribute("attr");
...
// Больше не требуется:
//var domNode = cbu.makeXML(node);


И, разумеется, в код должна быть добавлена функция parseXULFromString().


Автоматическое конвертирование:
Convert E4X
Установить | код для секции «код» кнопки
Надо нажать на кнопку, а затем кликнуть по другой кнопке или по открытому во вкладке *.js файлу.
Работа полученных после конвертирования кодов не гарантируется.

Отредактировано Infocatcher (27-06-2013 13:50:26)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№213-12-2012 11:16:51

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

Ну все, в Nightly 20.0a1 (2012-12-12) javascript.options.xml.chrome по умолчанию false.
https://bugzilla.mozilla.org/show_bug.cgi?id=788290

Отредактировано Infocatcher (13-12-2012 12:40:19)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№313-12-2012 16:54:48

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

Мне кажется они еще что то сделали. Также отвалились кнопки в которых проблем про которые ты пишешь нет, даже твой Attributes Inspector.

Добавлено 13-12-2012 16:57:49

Во всех кнопках весь код в одну строку
http://img201.imageshack.us/img201/1369/thumbeg.jpg

Отредактировано bunda1 (13-12-2012 17:00:34)

Отсутствует

 

№413-12-2012 17:04:26

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 2447
UA: Firefox 20.0

Re: Конвертирование старых кнопок с XML (E4X)

bunda1 пишет:

даже твой Attributes Inspector.

А в жестах FireGestures он работает.

Добавлено 13-12-2012 17:06:38

bunda1 пишет:

Во всех кнопках весь код в одну строку

У меня такого не наблюдается, всё как обычно.

Отредактировано voqabuhe (13-12-2012 17:06:38)

Отсутствует

 

№513-12-2012 17:24:49

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

Ну сейчас поставлю чистый Nightly и проверю.

Отсутствует

 

№613-12-2012 17:30:01

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

bunda1 пишет:

даже твой Attributes Inspector

Тестовая версия должна работать. У меня так быстро не получается релизы выпускать, как у некоторых. :)

bunda1 пишет:

Во всех кнопках весь код в одну строку

В установленных ранее у меня с Custom Buttons 0.0.5.6pre3 все нормально.
Или надо новую добавить? Там еще один баг есть с открытием custombutton:// ссылок. Он только тут пока исправлен.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№713-12-2012 17:46:41

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

Я установил чистый(без старого профиля) Nightly20.0а1 и custombuttons-0.0.5.6pre3-20111120 и последний Attributes Inspector.  Inspector работает и другие кнопки тоже, но не все. И в кнопках также весь код в одну строку. Как теперь их исправлять. Караул!!!!

Добавлено 13-12-2012 17:55:16

скрытый текст
http://img217.imageshack.us/img217/867/screenshot20121213001.jpg

Отредактировано bunda1 (13-12-2012 17:55:16)

Отсутствует

 

№813-12-2012 22:26:47

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

bunda1 пишет:

И в кнопках также весь код в одну строку.

А, увидел.

custombuttons-0.0.5.6pre3-20111120.xpi\components\CustomButtonsService.js

Выделить код

Код:

 saveOverlayToProfile: function ()
 {
     var serializer = Components. classes ["@mozilla.org/xmlextras/xmlserializer;1"]. createInstance (Components. interfaces. nsIDOMSerializer);
     var data = serializer. serializeToString (this. overlayDocument);

     //beautifull output
     try
     {
  var oldPrettyPrinting = XML. prettyPrinting;
  XML. prettyPrinting = true;
  data = (new XML (data)). toXMLString ();
  XML. prettyPrinting = oldPrettyPrinting;
     }
     catch (e) {}

А вот объекта XML больше нет.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№913-12-2012 23:19:21

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

Кривая распорка:

Выделить код

Код:

--- a/components/CustomButtonsService.js
+++ b/components/CustomButtonsService.js
@@ -362,11 +362,19 @@
   var oldPrettyPrinting = XML. prettyPrinting;
   XML. prettyPrinting = true;
   data = (new XML (data)). toXMLString ();
   XML. prettyPrinting = oldPrettyPrinting;
      }
-     catch (e) {}
+     catch (e) {
+       data = data
+         .replace(/ xmlns=""/g, "")
+         .replace(/="[^"]+"/g, function(s) {
+           return s.replace(/[\x00-\x19]/g, function(chr) {
+             return "&#x" + chr.charCodeAt(0).toString(16).toUpperCase() + ";";
+           });
+         });
+     }
 
      var uniConv = Components. classes ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Components. interfaces. nsIScriptableUnicodeConverter);
      uniConv. charset = "utf-8";
      data = uniConv. ConvertFromUnicode (data);

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1013-12-2012 23:31:29

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

Кривая распорка:

Выделить код

Код:

Timestamp: 13.12.2012 21:33:59
Error: catch after unconditional catch
Source File: ...... extensions/custombuttons@xsms.org/components/CustomButtonsService.js
Line: 368, Column: 6
Source Code:
      catch (e) { 

Отредактировано bunda1 (13-12-2012 23:33:21)

Отсутствует

 

№1113-12-2012 23:35:42

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

bunda1

Должно получиться так

Выделить код

Код:

 saveOverlayToProfile: function ()
 {
     var serializer = Components. classes ["@mozilla.org/xmlextras/xmlserializer;1"]. createInstance (Components. interfaces. nsIDOMSerializer);
     var data = serializer. serializeToString (this. overlayDocument);

     //beautifull output
     try
     {
  var oldPrettyPrinting = XML. prettyPrinting;
  XML. prettyPrinting = true;
  data = (new XML (data)). toXMLString ();
  XML. prettyPrinting = oldPrettyPrinting;
     }
     catch (e) {
       data = data
         .replace(/ xmlns=""/g, "")
         .replace(/="[^"]+"/g, function(s) {
           return s.replace(/[\x00-\x19]/g, function(chr) {
             return "&#x" + chr.charCodeAt(0).toString(16).toUpperCase() + ";";
           });
         });
     }

     var uniConv = Components. classes ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Components. interfaces. nsIScriptableUnicodeConverter);
     ...


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1213-12-2012 23:46:00

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

Извиняюсь, я не тот код поменял. Теперь ошибка пропала.
Но все равно код в кнопках в одну строку.

И вот это:
http://img689.imageshack.us/img689/8514/thumbsbs.jpg

Отредактировано bunda1 (13-12-2012 23:48:30)

Отсутствует

 

№1313-12-2012 23:57:20

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

bunda1
Уже сломанное не починется.
А вот нормальные кнопки у меня, вроде бы, после сохранения не ломаются после патча.

Добавлено 13-12-2012 23:59:35

bunda1 пишет:

вот это

Это от xmlns="" у кнопки в %профиль%\custombuttons\buttonsoverlay.xul, что-то там отваливается – стили, наверное.

Отредактировано Infocatcher (13-12-2012 23:59:52)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1414-12-2012 00:10:51

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

Да патч помог, теперь кнопки вроде работают. Спасибо:)
Посмотрим что дальше будет.

Отсутствует

 

№1514-12-2012 01:01:11

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 2447
UA: Firefox 20.0

Re: Конвертирование старых кнопок с XML (E4X)

Infocatcher пишет:

Должно получиться так

А можно немного подробнее, куды его вставить?:dumb:

Отсутствует

 

№1614-12-2012 01:11:29

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 3.6

Re: Конвертирование старых кнопок с XML (E4X)

voqabuhe пишет:

А можно немного подробнее, куды его вставить?:dumb:

в .....\extensions\custombuttons@xsms.org\components\CustomButtonsService.js

Отсутствует

 

№1714-12-2012 09:53:59

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

Infocatcher пишет:

Там еще один баг есть с открытием custombutton:// ссылок. Он только тут пока исправлен.

Речь идет об ошибке

Security Error: Content at http://example.com/ may not load data from custombutton://...

при клике по custombutton:// ссылке.
Я там не совсем на ту строку сослался. :)

Исправить можно так:

Выделить код

Код:

--- a/components/CustomButtonProtocol.js
+++ b/components/CustomButtonProtocol.js
@@ -43,14 +43,15 @@
 
 function CustombuttonProtocol (sProtocolName)
 {
- this. scheme = sProtocolName;
- this. protocolFlags = 1 | 2 | 64 |
-        1024;
- if (sProtocolName == "custombutton")
-  this. protocolFlags |= 2048;
- if (sProtocolName == "custombuttons")
-  this. protocolFlags |= 4096;
- return this;
+    // Updated from http://custombuttons.hg.sourceforge.net/hgweb/custombuttons/custombuttons/file/44f7f813da89/components/CustomButtonProtocol.js#l44
+    this. scheme = sProtocolName;
+    this. protocolFlags = Components. interfaces. nsIProtocolHandler. URI_NORELATIVE | Components. interfaces. nsIProtocolHandler. URI_NOAUTH | Components. interfaces. nsIProtocolHandler. URI_LOADABLE_BY_ANYONE |
+        Components. interfaces. nsIProtocolHandler. URI_NON_PERSISTABLE;
+    if (sProtocolName == "custombutton")
+    this. protocolFlags |= Components. interfaces. nsIProtocolHandler. URI_DOES_NOT_RETURN_DATA;
+    if (sProtocolName == "custombuttons")
+    this. protocolFlags |= Components. interfaces. nsIProtocolHandler. URI_IS_LOCAL_RESOURCE;
+    return this;
 }
 CustombuttonProtocol. prototype =
 {

Фокус в том, что то ли дока врет, то ли кто-то там так наоптимизировал.
Дока:
URI_LOADABLE_BY_SUBSUMERS     1<<14
URI_NON_PERSISTABLE     1<<10
На самом деле:
JSON.stringify(Components.interfaces.nsIProtocolHandler, null, "  ");
"URI_LOADABLE_BY_SUBSUMERS": 1024,
"URI_NON_PERSISTABLE": 16384,


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1816-12-2012 12:35:44

pohunohi
Участник
 
Группа: Members
Зарегистрирован: 02-09-2009
Сообщений: 673
UA: Firefox 19.0

Re: Конвертирование старых кнопок с XML (E4X)

Infocatcher пишет:

в данный момент в Custom Buttons нет API

А им вообще кто-то занимается? А то всякие беты годичной давности как-то не радуют. :(

Отсутствует

 

№1916-12-2012 20:06:48

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

pohunohi пишет:

А им вообще кто-то занимается? А то всякие беты годичной давности как-то не радуют. :(

С учетом открытого исходного кода заниматься может кто угодно. Только что-то желающих не видать. :)
http://custombuttons.hg.sourceforge.net … ombuttons/

changes
6 weeks ago


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№2016-12-2012 22:49:36

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

Как правильно собрать из исходников.Нет ... один долгий и муторный способ я знаю (copy&paste по содержимому file)

Отсутствует

 

№2116-12-2012 23:18:38

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

lokiju
Там убого очень, без клиента для Mercurial и правда только по одному файлу.

Вот из последней обновленной ветки «bug24045» (rev. 1028) + кривая распорка + синхронизация локалей:
custombuttons-0.0.5.6pre3-20121031-e4xsave+locales.xpi

И еще надо знать, какой версией xpidl.exe надо собирать *.idl. Видимо, под Gecko 1.8. Но если не менять параметры функций в соответствующих компонентах, то это не нужно.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№2217-12-2012 00:39:02

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

Infocatcher
спасибо

Отсутствует

 

№2320-12-2012 12:34:06

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4282
UA: Firefox 17.0

Re: Конвертирование старых кнопок с XML (E4X)

Исправление сломанных кнопок после сохранения в Nightly с javascript.options.xml.chrome = false: cb_repair_broken_overlay.js
Использование:
выставить devtools.chrome.enabled = true и запустить из Инструменты - Веб-разработка - Простой редактор JavaScript (Scratchpad), предварительно выбрав Окружение – Браузер
или удалить все комментарии и запустить из консоли ошибок.

Использовать на свой страх и риск.
Предварительно сделать резервную копию всей папки %профиль%/custombuttons/.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№2423-12-2012 18:06:47

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 17.0
Веб-сайт

Re: Конвертирование старых кнопок с XML (E4X)

Infocatcher пишет:

А вот объекта XML больше нет.

toXMLString () хоть в каком-нибудь виде сохранили бы :)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№2513-01-2013 01:30:46

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 20.0

Re: Конвертирование старых кнопок с XML (E4X)

Довольно безболезненно обновился до 20-й авроры, отвалились кнопки User-agent change, Save и Simple Session Manager, первые две исправил с помощью кнопки Infocatcher'а, третью другим способом, но там и причина другая была :D

Отредактировано Kamui (13-01-2013 01:31:03)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]