Brave在中文环境下编译报错

最近,突然接触到Brave这个浏览器,正好有研究源码的需求。就尝试在本地编译一个。

但是在编译过程中抛出报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 506: invalid continuation byte

提示在python3\bin\Lib\subprocess.py 文件中1016行的问题。

报错位置报错位置

结合报错信息估计编码问题。尝试使用set PYTHONUTF8=1环境变量解决问题。

但是,仔细阅读报错发现是无法解码为UTF-8,估计和Windows中文系统默认编码GB2312有关。

又因为报错位置在python自带的子进程库中,所以排查到调用位置D:\brave\src\testing\scripts\common.py的69行,添加encoding='gb2312'

添加<code>encoding='gb2312'</code>添加encoding='gb2312'

问题解决~

一切正常一切正常

MacOS 如何调试 Chromium 代码

最近在开发过程中,发现有一个bug只在MacOS上出现。没办法了,看看如何在 MacOS 上调试 Chromium 代码。

简单在本文章记录下过程。

info: 请确定您的 MacOS 上的 Chromium 项目编译环境和依赖都正确。可以正常编译Chromium。

使用 GN 工具生成 Xcode 的工程文件

  1. 在 Chromium 项目中使用下面的命令生成 Xcode 的工程文件。
# 在./out/debug 路径生成文件
gn args --xcode-build-system=new --ide=xcode ./out/debug

1713071633431.png1713071633431.png

GN报UnicodeEncodeError错误

前两天在编译Chromium的时候,发现Gn报编码错误,具体错误如下

UnicodeEncodeError: 'gbk' codec can't encode character '\u03a2' in position 4406: illegal multibyte sequence

一个很奇怪的编码错误一个很奇怪的编码错误


然后尝试搜索这问题,有博主给出的解决方案是,在py写入文件哪一步指定编码为UTF-8,但测试后发现Gn过去了,但是后续编译仍然会报错。所以这个方案pass


好吧,自己来吧

查看报错的文件,提示返回的字符编码有问题,那追下他返回的是啥。

微信小程序 Canvas 在IOS下,导致无法滑动、页面卡死

最近在写一个活动小程序,其中有一个抽奖组件,测试的时候发现Canvas在Ios下的渲染问题。

如果用户使用苹果设备,按住Canvas绘制区域时滑动页面,会导致页面卡死,只有重启小程序才能恢复。

但是Android用户却没有任何问题。


初步排查

初步排查怀疑是Canvas这种原生组件在绘制的时候出现了问题导致的。

但是查询微信官方文档论坛,发现有人遇到了同样的问题。

原生组件渲染问题的官方回复,后续版本修复原生组件渲染问题的官方回复,后续版本修复

但是这篇提问是在19年5月份发的,微信官方就是10月实现了原生组件同层渲染,来解决这个问题。我检查了下基础库版本,是2.21.2,远超过要求。

基于mpvue+Vant+npm快速构建微信小程序

最近要快速开发个小程序,心想着要是按微信推荐那样开发得累死,所以研究了下如何使用mpvue+Vant+npm快速构建微信小程序。


基础架子

项目地址:mpvue.com

首先用mpvue来拉一个基础的架子,这样方便我们后续集成一些其他的东西。

#安装vue-cli,有可以跳过
npm install -g vue-cli@2.9

#使用vue-cli创建mpvue项目
vue init mpvue/mpvue-quickstart 你的项目名

#安装依赖啥的
cd 你的项目目录
yran
yarn dev
Error:注意:
受微信动态增删改查 wxml 节点信息限制,某些VUE组件用不了。详细可看官方说明~

集成npm

首先在你的项目目录下,新建lib目录,用处存放第三方npm包。