Send Specific Cookie in URLFetcher

使用 URLFetcher 作为网络请求的基础组件有一个优势:如果 server 的 response header 指明了 set-cookie,那么 URLFetcher 在发出下一个请求时会自动往 request header 中设置 cookie。

Read More

Bypass Proxy in URLFetcher

net::URLFetcher 默认情况下会使用系统代理,对于针对应用于浏览器而设计的网络组件来说,这是合情合理的;并且这也方便了测试对于网络接口的调试,因为只需要打开 Fiddler 或者 Charles,就可以看到应用发出去的 HTTP 请求。

但是有时候我们又希望默认情况下不开启代理支持,比如:在我用 net::URLFetcher 重写某直播姬的网络通信组件后,出现了不少傻逼用户因为不知道自己系统上为什么会各种乱七八糟的本地代理而导致无法登陆。

Read More

Monthly Read Posts in June 2017

一种头像缓存策略

本来还以为有什么惊天地的策略…这不是很普通的策略嘛…

Move Safety

Read More

Use base::Bind With std::function

base::Bind()base::Callback 可以看作是对标准库 std::bind()std::function 的模拟;因为 chromium 项目早在 C++ 11 正式通过前就已经存在好多年了。

Read More

禁止程序多实例并存并且自动激活第一个实例

多实例检测非常常规,在程序启动时直接检查用来标记的内核对象是否存在即可,一般都是使用 Mutex

麻烦的点在于如何激活第一个实例,显示它的主窗口。

某直播姬一开始的想法是利用 Pipe 建立 IPC 通讯连接,然后后续实例通过发送消息,让主实例 activate 自己的窗口。

Read More

Monthly Read Posts in May 2017

http resumable download

虽然之前写直播姬自动更新时实现过续传下载,但是功能规范上并没有太完备;而这篇文章很好的补充了几个断点续传中,严格实现会遇到的几个 key points。

Read More

修复 Breakpad 不能启用 Full Minidump

发布分支为 chrome-58 的 google-breakpad 存在无法启用 full minidump 的问题,表现症状是,一旦启用 MiniDumpWithFullMemory 标志,则输出的 dump 文件为 0 字节,但是整个 dump 生成流程没有任何其他异常,相关返回值甚至是 true

Read More