当工作台应用页面使用 data:image/png;base64,... 格式的 favicon 时:
createFromHttpUrl,
proxy 尝试解析 host:port 时 stoi("image") 报错,图标无法显示在企微工作台中打开本页面,观察页签图标的表现:
当前 Favicon 预览:
| Favicon 类型 | 浏览器 | 企微工作台 Tab |
|---|---|---|
https://xxx/icon.png |
✅ 正常 | ✅ 正常(HTTP 下载成功) |
data:image/png;base64,... |
✅ 正常 | ❌ 图标异常(当作URL下载失败) |
// 1. proxy 解析 data URI 报错 [Local_Proxy] [error]util_stoi:445 stoi error:invalid stoi argument image // 2. 将 data URI 当 URL 传入白名单检查 [Local_Proxy] [info]local_proxy::IsWhiteHost:192 url:data:image/png;base64,... // 3. 图片下载任务尝试下载 data URI WImageFetchTask 32 download:data:image/png;base64,... // 4. 发起 FTN 文件下载 [CGI_MONITOR] file_download:180 construction!
// workbench_tab_view.cpp:416
// 问题:没有判断 iconUrl 是否为 data URI,直接当作 HTTP URL 处理
model->icon_source = ui::WImageProtocol::createFromHttpUrl(
iconUrl.toStdString(), Environment::MasterEnv, {
.http_options = http_op,
#ifdef LOCAL_APP
.using_local_proxy_port = weak_this->viewModel().getLocalProxyPort(iconUrl.toStdString()),
#endif
});