発火後忘失

FIRE AND FORGET

サイトごとにChromeのプロファイル(ユーザー)を使い分けるという使い方の提案

背景は前回のエントリを参照してください。

今まで一度も使ったことが無かったのですが、Chromium/Google Chrome にはユーザの切り替え機能があることを思い出しました。

はてなブログ用のユーザーを作成し、hatenaにログインする必要がある場合はユーザを切り替えれば、既存の環境に影響を与えずhatenaのcookieを受け入れることができます。

  1. ブラウザを起動し、ウィンドウ右上のユーザー名をクリック、表示されたダイアログ上の「ユーザーを切り替え」を選択します。
    f:id:yukihaned:20151108195252p:plain:w128
  2. 表示されたダイアログの下部にある「ユーザーを追加」を選択します。
  3. 新しいユーザーが作成されますので、ユーザーのアイコンをクリックします。

これで新しいプロファイルでブラウザが立ち上がるように成りました。

続いてcookieの受け入れ設定です。

  1. 設定ダイアログを開きます。
    f:id:yukihaned:20151108200727p:plain:w128
  2. 最下部のリンク「詳細設定を表示...」をクリックし、「プライバシー」設定項目を出現させます。
  3. 「コンテンツの設定...」ボタンを押し、ダイアログを出現させます。
  4. Cookie設定において「サイトからのデータ設定をすべてブロックする」「サードパーティCookieとサイトデータをブロックする」をONにします。
    f:id:yukihaned:20151108200732p:plain:h128
  5. 「例外の管理...」で以下のように設定をします。
    f:id:yukihaned:20151108200736p:plain:h128
ホスト名のパターン 動作
[*.]hatenablog.com 終了時に消去
[*.]hatena.ne.jp 終了時に消去
[*.]hatena.com 終了時に消去

以上です。
(前回と比較するとhatena.comが増えていますが、写真投稿(フォトライフ使用)するのに必要でしたので追加しています。)

この方法の良いところとして、cookieを残しておいても広範囲に影響は無いのでログイン状態を保持しておきたければそう(動作を「許可」に)してもよい、ということや、ホームページやブックマークをはてなブログ記述用に特化できる、といったことが挙げられます。

Google Chromeで想定通りCookieが消えてくれなかった

このエントリを記載した際に使用していたブラウザのバージョンは以下の通り。

ブラウザ ブラウザバージョン OS
Chromium 45.0.2454.101 Ubuntu 15.10 (64-bit) Ubuntu15.10
Firefox 42.0 Ubuntu15.10
Google Chrome (未確認 あとで追記) Windows10

背景

はてなブログへログインするためのcookie受け入れ設定をしようと、オムニバー(URLバー)のクッキーマークをポチポチとやってこんな設定にしました。

ホスト名のパターン 動作
www.hatena.ne.jp 終了時に消去
blog.hatena.ne.jp 終了時に消去
yukihane.hatenablog.com 終了時に消去

この設定でログインとblogエントリの編集が行えるようになりましたので安心していたのですが、ブラウザを一旦終了して起動しなおしてもログイン状態が継続していることに気づきました。

はてな関係のcookieは終了時に全て削除される(のでログアウト状態にもどる)想定だったので、なにがおかしいのだろう?と起動直後のcookieを見てみました。

すると、設定で指定した www.hatena.ne.jp 等(以降、subdomain cookieと呼称)は確かに消えているのですが、 hatena.ne.jphatenablog.com といったサブドメインを削ったcookie(以降、rootdomain cookieと呼称)が残ったままになっていました。

ここで、何が想定と異なっていたのかをまとめると、

  • rootdomain cookieは一時的にも受け入れるつもりではなかった
  • 終了時に、受け入れた全てのcookieは削除されている想定だったが消えていなかった

の2点になります。

問題

rootdomain cookieが受け入れられている

同様の設定をFirefoxでも行ってみたところ、こちらでもrootdomain cookieは受け入れられていました。
どうやらこの挙動はどうやら標準的なもののようです。

ググってみたところ、以下のようなページが見つかりました。

RFC2965(とその後継RFC6265)で、
> x.y.z.com can set a cookie domain to itself or parents - x.y.z.com, y.z.com, z.com
となるようなことが書かれているようで、今回のブラウザ受け入れ設定もこれに準じているのかな、と。
準じているのが良いのか悪いのかで言うと、悪い気がしますが、私のようにホワイトリスト的に使わないのであれば問題ないのかもしれません。

終了時に受け入れたcookieが削除されない

これはChromeFirefoxで挙動が異なり、Firefoxではrootdomain cookieも削除されていました。つまり、次回起動時には想定通りログアウト状態になっています。

ここでふと気になったのですが、 xxx.example.com は終了時削除、 yyy.example.com はずっと保持する、という設定にしていた場合、 example.com はどうなっている/どうなっているべきなんでしょうね。 xxx 由来のものか yyy 由来のものか区別がつくもんなんでしょうか…?

そんなわけで、一概にChromeのバグだ、ということも出来ないのかも。

結論

rootdomainまで辿って設定が有効になる、かつ消去したいのであれば明示的に記述しなければならないのであれば、結局は次のような設定にする必要があるということになります。

ホスト名のパターン 動作
blog.hatena.ne.jp 終了時に消去
www.hatena.ne.jp 終了時に消去
hatena.ne.jp 終了時に消去
yukihane.hatenablog.com 終了時に消去
hatenablog.com 終了時に消去

他のサイトでも同じようなことなんてやってられないしどうしよう、と思案したところ、もっと良い方法があることに気づきました。
次回に続く。

今やはてなを使っても負けかなとは考えなくなった(現在そのポジションに居るのはQiitaかな…)

現在cocologを使用しているのですが、いくつかの不満点が積もってきてこちらへの引っ越しを考えています。

  • モバイルサイトが美しくない
    • あんまりモバイルの人がアクセスするような内容でも無いのですが、たまに自分のblogがヒットして覗いてみると非常に残念な気持ちになる…
  • タグ機能が無い
    • 似たようなことをするためにいちいちカテゴリを作る必要があるのですが、カテゴリを新しく作るほど記事を書く内容なのかどうなのか事前にわからないことが多く、どういう単位でカテゴリを作れば良いのか悩む
    • はてなブログのカテゴリより(多分)不便です
  • エントリのURLが自動で振られ、自分で決められない
    • エントリのタイトルを元に決定されるようなのですが、日本語タイトルだとこれまた非常に残念なものに
  • html直打ちするのが嫌
    • 以前はMicrosoftWindows Live Writerを使用していましたが、最近はUbuntuで書くことがほとんどで、同じような機能を持つ使いやすいアプリを見つけることができませんでした
  • TwitterでURLを貼り付けても概要が表示されない
  • サービス提供者(nifty)がアクセスカウンターを勝手にリセットした
    • 敢えてcocologを使い続ける必要は無いかな…と考え始めるきっかけになったのはこれ

「使いやすいアプリを見つけることができなかった」というのは現時点ではちょっと事情が変わって、Emacsのorg-modeというものがあるのを知り、勉強中です(Emacs仕様経験ゼロからです…)。

そして更に、org形式のテキストをはてな記法に変換する拡張を書かれている方がいらっしゃるのを見つけまして、これを使用しようと画策しています。

なぜhtmlでもMarkdownでもなくはてな記法に変換しようとしているのかというと、脚注*1がhtmlやMarkdownでは変換できなかったからです…

*1:こういうやつですね