RequestPolicyでリダイレクトと画像とスタイルシートとFlashとかからのオブジェクトは素通しする

プライバシーとか言うよりどっちかというとjavascriptブロッカー的につかってるので(はてなスターとかのスクリプト重すぎ)、画像とかスタイルシートは全部読めて困らない。あとリダイレクトの度に確認でるのまんどくさい。

RequestPolicyをインストールすると、Firefoxの自分のプロファイルフォルダのextensions\requestpolicy@requestpolicy.com\components に
requestpolicyService.js がいらっしゃるので、こいつを変更

const CP_NOP = function() {
  return CP_OK;
};
const CP_REJECT = CI.nsIContentPolicy.REJECT_SERVER;


// (1) 32行目あたりに追加 定数定義
// 定数の一覧はこのへん http://www.oxymoronical.com/experiments/apidocs/interface/nsIContentPolicy
const CP_TYPE_OTHER = CI.nsIContentPolicy.TYPE_OTHER;
const CP_TYPE_SCRIPT = CI.nsIContentPolicy.TYPE_SCRIPT;
const CP_TYPE_STYLESHEET = CI.nsIContentPolicy.TYPE_STYLESHEET;
const CP_TYPE_IMAGE = CI.nsIContentPolicy.TYPE_IMAGE;
const CP_TYPE_OBJECT = CI.nsIContentPolicy.TYPE_OBJECT;
const CP_TYPE_DOCUMENT = CI.nsIContentPolicy.TYPE_DOCUMENT;
const CP_TYPE_SUBDOCUMENT = CI.nsIContentPolicy.TYPE_SUBDOCUMENT;
const CP_TYPE_REFRESH = CI.nsIContentPolicy.TYPE_REFRESH;
const CP_TYPE_OBJECT_SUBREQUEST = CI.nsIContentPolicy.TYPE_OBJECT_SUBREQUEST;

// 中略

  _examineHttpResponse : function(observedSubject) {
    // 中略 この関数の真ん中ぐらい

    // (2) 446行目あたり。if文の意味をなくす。リダイレクトは全部素通し
    if (true || this.isAllowedRedirect(origin, dest)) {

    
// 中略

  // 1516行目あたり

  // the content policy that does something useful
  mainContentPolicy : {

    // called automatically. see:
    // http://people.mozilla.com/~axel/doxygen/html/interfacensIContentPolicy.html
    shouldLoad : function(aContentType, aContentLocation, aRequestOrigin,
        aContext, aMimeTypeGuess, aInternalCall) {
      try {
	// (3)以下を追加。 画像とスタイルシートとその他の場合はドメインとか関係なく通す
	switch ( aContentType ){
	case CP_TYPE_OTHER: case CP_TYPE_IMAGE: case CP_TYPE_STYLESHEET:
        case CP_TYPE_OBJECT_SUBREQUEST:
	    return CP_OK;
	}

このように修正して、Firefoxを再起動する。


以前やってたんだけどアップデートしたときか何かに消えてて思い出すのに時間食ってしまったのでメモ代わりです(画像が表示されない理由に思い至るのにも時間がかかったが)。
想像通り(3)のswitch文をいじると「SCRIPTは素通し」とかも設定できます。SUBDOCUMENTはiframeっぽい。TYPE_OBJECTはembedの中身そのもの(swfファイルとか)で、その中から読み込まれるflvとかswfとかはTYPE_OTHERっぽい たぶんver3.5からTYPE_OBJECT_SUBREQUEST になったみたいです(8/12修正)。