Firefox3.5RCにしたらvimp/ldrize_cooperation.jsでエラーが出ていたのでなんとかした

Firefox3.5 RCがリリースされているのでそろそろ移行準備をしようと思って入れてみました。

そしたら、vimpのldrize_cooperation.jsがエラーを吐いて動きません。
Googleの検索結果でjk叩くとこんなメッセージがでます。

Processing keypress event: TypeError: this.LDRize.getSiteinfo is not a function

20090622vimp.jpg

で、結論から言うとFirefox 3.0.2の時に動かなくなったときと同じ方法で対処したらエラーは出なくなりました。

Firefox に凹まされた件 - KBDAHOLIC - やぬすさんとこ

上記エントリーを参考(というかそのままですけど)にした、現時点でCodeReposのtrunkに上がっているものに当てるパッチはこんな感じになります。

TEXT:
  1. --- ldrize_cooperation.js.orig  2009-06-22 16:52:51.000000000 +0900
  2. +++ ldrize_cooperation.js   2009-06-22 16:48:03.000000000 +0900
  3. @@ -1,6 +1,6 @@
  4.  // Vimperator plugin: 'Cooperation LDRize Mappings'
  5.  // Version: 0.25
  6. -// Last Change: 12-Jun-2009. Jan 2008
  7. +// Last Change: 22-Jun-2009. Jan 2008
  8.  // License: Creative Commons
  9.  // Maintainer: Trapezoid <trapezoid.g@gmail.com> - http://unsigned.g.hatena.ne.jp/Trapezoid
  10.  //
  11. @@ -127,7 +127,7 @@
  12.          initialize: function(){
  13.              var self = this;
  14.              this.LDRize = {getSiteinfo: function() undefined};
  15. -            this.Minibuffer = null;
  16. +            //this.Minibuffer = null;
  17.              this.handlerInfo = handlerInfo;
  18.  
  19.              this.LDRizeCooperationPanel = this.setupStatusbarPanel();
  20. @@ -176,12 +176,14 @@
  21.                  this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,codebase,sandbox){
  22.                      if(sandbox.window.LDRize != undefined && sandbox.window.Minibuffer != undefined){
  23.                          sandbox.window.addEventListener("focus",function(){
  24. -                            self.LDRize = liberator.eval("self",sandbox.LDRize.getSiteinfo);
  25. -                            self.Minibuffer = liberator.eval("command",sandbox.Minibuffer.addCommand);
  26. +                            //self.LDRize = liberator.eval("self",sandbox.LDRize.getSiteinfo);
  27. +                            self.LDRize = sandbox.LDRize;
  28. +                            //self.Minibuffer = liberator.eval("command",sandbox.Minibuffer.addCommand);
  29.                          },false);
  30.                          if(window.content.wrappedJSObject == sandbox.unsafeWindow){
  31. -                            self.LDRize = liberator.eval("self",sandbox.LDRize.getSiteinfo);
  32. -                            self.Minibuffer = liberator.eval("command",sandbox.Minibuffer.addCommand);
  33. +                            //self.LDRize = liberator.eval("self",sandbox.LDRize.getSiteinfo);
  34. +                            self.LDRize = sandbox.LDRize;
  35. +                            //self.Minibuffer = liberator.eval("command",sandbox.Minibuffer.addCommand);
  36.                          }
  37.                      }
  38.                  });
  39. @@ -248,6 +250,7 @@
  40.                      });
  41.                      liberator.modules.commandline.echo(showString,liberator.modules.commandline.HL_NORMAL,liberator.modules.commandline.FORCE_MULTILINE);
  42.                  },{});
  43. +/*
  44.              liberator.modules.commands.addUserCommand(["mb","m","minibuffer"],"Execute Minibuffer",
  45.                  function(arg){ self.Minibuffer.execute(arg.string.replace(/\\+/g,"")) },
  46.                  {
  47. @@ -264,6 +267,7 @@
  48.                          context.completions = completionList;
  49.                      }
  50.                  });
  51. +*/
  52.              liberator.modules.commands.addUserCommand(["pindownload"],"Download pinned links by any software",
  53.                  function(arg){ self.downloadLinksByProgram("download",self.getPinnedItems());},{});
  54.              liberator.modules.commands.addUserCommand(["pindo"],"Do external command, with pinned links",

先人の知恵は素晴らしい!
id:janus_wel++

ちなみに全部試してみたわけじゃないですが、これ以外はだいたい動いてる感じなので、正式版を待たずにこのまま移行してしまおうかと思います。


関連記事