パスワードを忘れた? アカウント作成
107252 journal

quabbinの日記: [Chrome] 最近追加したブックマークから消去する

日記 by quabbin

Chromeの「最新ブックマーク」に、彼女に隠して婚約指輪を買うために検討しているジュエリーショップのブックマークが表示されたら?
せっかくChromeでシークレットモードを利用しているのに、悲しいことにならないでしょうか。
そこで、世の中のこれからプロポーズする諸氏のために、最新のブックマークから隠す方法を探してみました。
試したのは0.2.149.29。このエントリー時点での最新版です。

探してみた
まず、Chrome上で http://testbookmark (当然存在しない)へのブックマークを作成し、これを検索することでどこに記録されているかCygwin上からgrepを使い探ってみた。

Owner@fam ~ $ grep -R 'http://testbookmark' /cygdrive/c/Documents\ and\ Settings/Owner/Local\ Settings/Application\ Data/Google/Chrome/*
Binary file /cygdrive/c/Documents and Settings/Owner/Local Settings/Application Data/Google/Chrome/User Data/Default/History matches

どうやら、クロームのホームの下にある、Historyというファイルに記録されている模様。
ちなみにここではユーザをOwnerとしました。
Vistaの場合はユーザ名をquabbinとすると、

C:\Users\quabbin\AppData\Local\Google\Chrome\User Data\Default\History

に格納されています。

SQLite
このファイルを除いてみると、SQLiteのファイルのようなので、SQLiteの公式からPrecompiled Binaries For Windowsの最新版、3.6.2をダウンロードし、C:\Program Filesにインストール。
SQLiteはファイルにロックがかかっているとselectができないので、ロックを外してから

C:\Program Files\SQLite>sqlite3.exe "C:\Documents and Settings\Owner\Local Settings\Application Data\Google\Chrome\User Data\Default\History"
SQLite version 3.6.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from urls where url like '%testbookmark%';
1718|http://testbookmark/|Test|0|0|0|0|0|16
sqlite> select * from starred;
(snip)
16|0|9710|0|test|12865401053138079|4|2|0

と、starredというテーブル内に格納されていました。
このstarredというテーブルの構造は、

sqlite> select sql from SQLITE_MASTER where type = 'table' and sql like '% starred %';
CREATE TABLE starred (id INTEGER PRIMARY KEY,type INTEGER NOT NULL DEFAULT 0,url_id INTEGER NOT NULL DEFAULT 0,group_id INTEGER NOT NULL DEFAULT 0,title VARCHAR,date_added INTEGER NOT NULL,visual_order INTEGER DEFAULT 0,parent_id INTEGER DEFAULT 0,date_modified INTEGER DEFAULT 0 NOT NULL)

というCREATE TABLE文で作られているようです。

書き換え
この文からカラム名を見てみると、怪しいのはdate_addedというカラム。
ほかにそれっぽいカラムがないことから、日付だけから見ているのかもしれなと思い、とりあえず試してみました。
とりあえず、上から二桁目を0に。この数値、EPOCを基準に考えるとやけに大きいわけですが、なんででしょ。

sqlite> update starred set date_added = 10865401053138079 where id = 16;

立ち上げると、期待通り「最近追加したブックマーク」から消えました。
「最近」扱いじゃなくなったのでしょうね。

おわりに
ということで、無事、最近追加したブックマークから消去作戦は成功しました。

でも、ブックマーク自体を彼女に見られたらせっかくの作戦も台無しです。
お気をつけを。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...