試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

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エンコードをかけたものを貼り付けてそれをスクリプト側で戻している。

関連記事:

使用したバージョン: