Send Specific Cookie in URLFetcher
使用 URLFetcher
作为网络请求的基础组件有一个优势:如果 server 的 response header 指明了 set-cookie
,那么 URLFetcher
在发出下一个请求时会自动往 request header 中设置 cookie。
使用 URLFetcher
作为网络请求的基础组件有一个优势:如果 server 的 response header 指明了 set-cookie
,那么 URLFetcher
在发出下一个请求时会自动往 request header 中设置 cookie。
net::URLFetcher
默认情况下会使用系统代理,对于针对应用于浏览器而设计的网络组件来说,这是合情合理的;并且这也方便了测试对于网络接口的调试,因为只需要打开 Fiddler 或者 Charles,就可以看到应用发出去的 HTTP 请求。
但是有时候我们又希望默认情况下不开启代理支持,比如:在我用 net::URLFetcher
重写某直播姬的网络通信组件后,出现了不少傻逼用户因为不知道自己系统上为什么会各种乱七八糟的本地代理而导致无法登陆。
base::Bind()
和 base::Callback
可以看作是对标准库 std::bind()
和 std::function
的模拟;因为 chromium 项目早在 C++ 11 正式通过前就已经存在好多年了。
多实例检测非常常规,在程序启动时直接检查用来标记的内核对象是否存在即可,一般都是使用 Mutex
。
麻烦的点在于如何激活第一个实例,显示它的主窗口。
某直播姬一开始的想法是利用 Pipe 建立 IPC 通讯连接,然后后续实例通过发送消息,让主实例 activate 自己的窗口。
虽然之前写直播姬自动更新时实现过续传下载,但是功能规范上并没有太完备;而这篇文章很好的补充了几个断点续传中,严格实现会遇到的几个 key points。
发布分支为 chrome-58 的 google-breakpad 存在无法启用 full minidump 的问题,表现症状是,一旦启用 MiniDumpWithFullMemory
标志,则输出的 dump 文件为 0 字节,但是整个 dump 生成流程没有任何其他异常,相关返回值甚至是 true
。