“我胡汉三又回来了”,好久没出现在博客园了,准备考试什么的最烦躁了,今天又重新整了下我的Ubuntu,结果发现了一个Chrome浏览器的Bug,但是与其说它是个Bug,还不如说它是个Joke。
好吧,原谅我有电脑洁癖,尤其是对于~目录的洁癖,今天偶然发现~目录下多了一个名为“libpeerconnection.log”的文件,起初不以为意,虽然不知道是怎么生成的,但是打开一看,什么内容都没有,也就安安心心地删了。删的时候就有种预感,这玩意不会又偷偷自己生成吧。果不其然,不管我怎么删,重启电脑后,它依然坚挺地立在那里。好吧,我怒了,那么“libpeerconnection.log”,你就等死吧。结果就发现了下面的这篇文章,顿时怒气全消啊,这个Bug真Joke啊有木有。
原来是Chrome干的好事啊,而Chrome说是Chromium干的,在google code上,有人提交了这个issue,下面的回答中也有很多提出了自己的解决办法。
Bug的源头找到了,<tommi@chromium.org>提交了一个commit:
1 diff --git a/third_party/libjingle/overrides/initialize_module.cc 2 b/third_party/libjingle/overrides/initialize_module.cc 3 .... 4 + if (CommandLine::Init(0, NULL)) { 5 +#if !defined(OS_WIN) 6 + // This is not needed on Windows since CommandLine::Init has already 7 + // done the equivalent thing via the GetCommandLine() API. 8 + CommandLine::ForCurrentProcess()->AppendArguments(command_line, true); 9 +#endif 10 + logging::InitLogging( 11 + FILE_PATH_LITERAL("libpeerconnection.log"), 12 + logging::LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG, 13 + logging::LOCK_LOG_FILE, 14 + logging::APPEND_TO_OLD_LOG_FILE, 15 + logging::DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS); 16 + } 17 .....
仔细一看你就会发现,真的是如原作者说的,“谢谢你姥姥一家子,毛事没有,先在当前目录生成一个.log文件?”,原谅我,我笑了,呵呵^_^,谁让你啥事不做就在我们经常就看见的~目录生成这么一个碍眼的.log文件文件的,虽然在CWD生成.log文件无可厚非,但是在~目录下随意添加一个不被隐藏的文件却损害了这个软件的美观性、和谐性和友好性。
好吧,说了这么多,对于有强迫症的人来说,解决的办法是有的。
(1)该问题只在chrome的version28存在,乖乖地等29吧;
(2)无非是找个目录放“libpeerconnection.log”文件,所以该一下该日志存放的目录,不放在CWD不就行了,编辑/opt/google/chrome/google-chrome文件,在文件最后一行'exec -a "$0" "$HERE/chrome" "$@"'的前面加上一句“cd /tmp”,当然这里的tmp改为其他目录也是可以的;
(3)不想看到那就隐藏呗,首先在你要隐藏文件的同一文件夹下创建一个名为.hidden的隐藏文件,在里面填写你要隐藏文件(或者文件夹的名字),这里我们填libpeerconnection.log,此时当你再打开那个文件夹时,包含在.hidden 文件里面的文件名,所对应的文件(或者文件夹)此时已经隐藏了!
好了,强迫症患者的探究到此结束!