FirefoxのLink And Forminfo拡張のリンク一覧から項目をダブルクリックしたときにURLを開かないようにするための修正の自動化スクリプトのバージョン1.0.7向け版
「FirefoxのLink And Forminfo拡張でリンク一覧から項目をダブルクリックしたときにそのURLを開かないようにする」では拡張の.xpiファイルのダウンロードから修正・書き出しまでの作業を自動化するスクリプトを貼り付けていたが、今回は当時(1.0.5)よりも新しいバージョン1.0.7向けのものを下に貼り付ける。
動作にはwget,unzip,zip,patch,zenityの各コマンドが必要。
[任意]ファイル名: linkandforminfo-1.0.7-disable-doubleclick-patch.sh ライセンス: MPL-1.1
#! /bin/bash # Link And Forminfo 1.0.7のリストダブルクリック無効化バージョンの.xpiファイルを生成 # (C) 2011 kakurasan # Licensed under MPL-1.1 # 必要なコマンド: wget,unzip,zip,patch,zenity ADDON_URL=https://addons.mozilla.org/firefox/downloads/file/108819/link_and_forminfo-1.0.7-fx.xpi TEMPDIR=$(mktemp --tmpdir -d linkandforminfo-disable-doubleclick-patch.XXXXXXXXXXXX) cd "${TEMPDIR}" die() { zenity --error --text "${1}" cd - > /dev/null rm "${TEMPDIR}" -fr exit 1 } wget -O orig.xpi ${ADDON_URL} || die "Download failed" unzip orig.xpi || die "unzip failed" unzip chrome/LinkAndForminfo.jar || die "unzip failed" cat <<EOF | base64 -d | zcat | patch -p1 || die "patch failed" H4sIAMzfl00CA81V32/bNhB+N5D/4cKH2ar1Y2nQZaunLE7SDQFWu2gCbHsKaOlks6FJg6Qcd4X/ 9x1pyT/SrkC6l+lB5Il33328Iz+VoqogqQ38LtTDUJW/ajMXqtLJSfp9epZqI6ZZoZVD5bInLukH ++WorwR0kiT5tlSdfr///HQXF5C8On0Zn/4IfT/+ABcXHfBPafj0Fs1SFJgKtdQPeB2+WCu06uGS AFPHzRRdDM5wZYfG8I8xqFrK+CD6+v3wt+v343f3w6u7m/HofjQevYkGRz7N2g8vsqNOAvAoVKkf U62udT2RWEhRPHjGkENVq8JRWvhscUMkgk8BAkBU0HDz5RKKy7vAMZW64HLE5wjHOTBnEIuZkKVB xaImtsUAMOhqowaNvaaxmS65AR9LnPYrMNjLftwL6Jd6NZ58wMIxECrERJ/naaD8kC44cXEjXeK/ 5DX6kXw/rWMotGxmKF2YtSEB6SB9SvSuUMqha+pCpaPhzxj2zb9iDx+QA6hvT7K3KVpMl1zWxDaH 5OSZFSPUeq7ajW4s64n5fpRXwe51JbUz4SW1xNpuNNiLr41sgw/3thT42G7wDlduxzNukh7gcKHt vVC3osQJmTn0nF6kpS7quS8FAb2R6KeXH2/KXtdu/JKJXnWjCH4hBlSA11BxaXHX8t4hbLQrSlj4 42aUTi+JmEWT0vbu+KRHG9oSWyOh7WJ8tVnrH85Oey8WqNBEW8ddCBy6fDXbpje7cb25h1n2onlg 7GZo4K2wBdy6uqqadXirS1EJLKEyeg7kFMTGwjuuUMLyZXoaw8y5xessszj1VTxLFbpsrv8WUvLM t9du3unMzWWLS+feInBQdPLBaaA2Gl64kKERLgu6Crb3OeqU/0GSV7V8pkhSxLeKsg99vir7KC/L Zz/FZ9AP71aTAX7OlnQcz7fmccMMfCgkyW7F+4Eoc+ZL7q9NaBQ7350acgoCtO/EoJK4ytkJI631 Ij5FSzcbc7aV50skXfU5/f9gIyrx4eVtTEW3uxuxTRdXjo5EnbOFaMyQYCKDku+hf1nfB8S7/z/h vS3xHhcSG/vk+24FrDbuFumgc6eNzZnXEQYLNFZYl7OZKEv097x0s3Yfr9hTtIMn+HqvbRECaxYW JZ+gzNl3/rNX2AHLzjv/AI0jV/TICAAA EOF find content locale skin -print0 | xargs -0 zip -9 chrome/LinkAndForminfo.jar -@ find chrome* install.rdf license.txt -print0 | xargs -0 zip -9 out.xpi -@ OUTFILE=$(zenity --file-selection --save --confirm-overwrite --title "Output file" --filename ${HOME}/$(basename ${ADDON_URL})) if [ ${?} -eq 0 ]; then cp out.xpi "${OUTFILE}" || zenity --error --text "copy failed" zenity --info fi cd - > /dev/null rm "${TEMPDIR}" -fr
.xpiファイル内の.jarファイルの中身における修正内容は
diff -ur LinkAndForminfo-1.0.7.orig/content/LinkAndForminfo.js LinkAndForminfo-1.0.7/content/LinkAndForminfo.js --- LinkAndForminfo-1.0.7.orig/content/LinkAndForminfo.js +++ LinkAndForminfo-1.0.7/content/LinkAndForminfo.js @@ -532,38 +532,6 @@ dragService.invokeDragSession(event.target, transArray, null, dragService.DRAGDROP_ACTION_NONE); }; */ - window.onDoubleclickLink = function onDoubleclickLink(event) { - if (event.originalTarget.localName != "treechildren") - { - return; - } - - var tree = event.target; - if (!("treeBoxObject" in tree)) - { - tree = tree.parentNode; - } - - var row = {}, col = {}, elt = {}; - tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, elt); - - if (row.value == -1) - { - return; - } - - var column = tree.columns.getNamedColumn('link-address'); - var url = tree.treeBoxObject.view.getCellText(row.value, column); - var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false; - if(aios_inSidebar){ - aios_WIN.gBrowser.addTab(url); - }else{ - if ("gBrowser" in window.opener) - { - window.opener.gBrowser.addTab(url); - } - } - }; //******** Other Misc Stuff // Modified from the Links Panel v2.3, http://segment7.net/mozilla/links/links.html // parse a node to extract the contents of the node diff -ur LinkAndForminfo-1.0.7.orig/content/LinkAndForminfo.xul LinkAndForminfo-1.0.7/content/LinkAndForminfo.xul --- LinkAndForminfo-1.0.7.orig/content/LinkAndForminfo.xul +++ LinkAndForminfo-1.0.7/content/LinkAndForminfo.xul @@ -79,7 +79,7 @@ </vbox> <!-- Link info --> <vbox id="linktreePanel"> - <tree id="linktree" flex="1" ondraggesture="window.onBeginLinkDrag(event,'link-address','link-name')" contextmenu="picontext" ondblclick="window.onDoubleclickLink(event);"> + <tree id="linktree" flex="1" ondraggesture="window.onBeginLinkDrag(event,'link-address','link-name')" contextmenu="picontext"> <treecols> <treecol sortSeparators="true" persist="hidden width" flex="5" width="5" id="link-name" label="&linkName;"/>
となるが、パッチ内(つまり元のソース側)において改行コードが混在しているため、パッチ処理を確実に行う目的で圧縮とBase64エンコードをかけたものを貼り付けてそれをスクリプト側で戻している。
関連記事:
- 「CLIとGUIの架け橋」zenity
- ファイルをBase64エンコード/デコードする
- FirefoxのLink And Forminfo拡張でリンク一覧から項目をダブルクリックしたときにそのURLを開かないようにする
使用したバージョン:
- Mozilla Firefox 4.0.0, 4.0.1
- Link And Forminfo 1.0.7