浏览器 way to explore https:https://cdn.v2ex.com/navatar/f854/54e8/422_normal.png?m=1605263518 https:https://cdn.v2ex.com/navatar/f854/54e8/422_large.png?m=1605263518 2025-12-31T03:41:17Z Copyright © 2010-2018, V2EX 年终, 主力浏览器从 Safari 换回 Chrome,终端从 Ghostty 换回 iTerm tag:www.v2ex.com,2025-12-31:/t/1182341 2025-12-31T02:41:15Z 2025-12-31T03:41:17Z nanajj member/nanajj 折腾的原因在于懒得折腾。

浏览器

浏览器循环永不停歇,上次主力浏览器从 Chrome 迁移到 Safari 还是两年前,这也意味着我用了 2 年的 Safari 。Safari 作为主力浏览器没什么问题,个人认为 UI 和操作方式都更清爽一些,常用的插件也都有,主要原因还是日常使用有一些边边角角的 BUG ,以及开发者工具没有 Chrome 好用。

终端

终端经历了从 iTerm => Warp => Ghostty => iTerm 的迁移。换 Wrap 的动机是尝新,是否需要登录其实我不太关心,换掉 Wrap 是因为它的很多功能我都用不上,按传统的方式使用它,效率反而变低了。Ghostty 也是尝新,没什么大毛病,偶有兼容性问题,所以换回 iTerm 。

PS:Windows 上继续使用 Warp 。

其他

一直使用 Alfred ,中间数次尝试切换到 Raycast ,还是觉得 Alfred 更好用一些。(也一个原因是不想舍弃 Powerpack )

]]>
我连续熬了三晚为“雪球”写了一个 Tampermonkey“用户脚本”,分享给 V 友,会很“高兴”看到很多人使用 tag:www.v2ex.com,2025-12-23:/t/1180787 2025-12-23T23:18:11Z 2025-12-24T02:08:05Z investor member/investor XueqiuResourceLinks

XueqiuResourceLinks(雪球 · 第三方资源扩展)是一个 Tampermonkey/Greasemonkey 用户脚本:实现在雪球股票详情页侧边栏,添加相应“个股”的“第三方资源”,例如上证 e 互动、深交所互动易、SEC: EDGAR 、港交所披露易、Stocktwits 等,点击即可跳转到对应个股的第三方资源站点,以此便利研究,提升生产力...当下“已经”和“正在”扩展出比示例图片“更多”的资源,使用有惊喜,enjoy···

历史效果图--美股 历史效果图--A 股


功能特性

  • 自动解析股票交易所和代码

  • 支持:

    • 上证 e 互动
    • 深交所互动易
    • SEC: EDGAR
    • 港交所披露易
    • 等等等.... 使用有惊喜
  • 第三方资源可扩展,通过数组轻松添加更多链接

  • 使用 localStorage 缓存请求结果,减少网络请求

  • 样式统一,展示美观


安装方法

  1. 安装 TampermonkeyGreasemonkey 浏览器扩展
  2. 点击 安装脚本 按钮,自动添加到扩展中
  3. 打开雪球股票详情页,即可在侧边栏看到“第三方资源扩展”组件

更新与反馈


许可证

MIT License

]]> 有没有浏览器插件可以将网页视频投屏到 AndroidTV tag:www.v2ex.com,2025-12-23:/t/1180583 2025-12-23T02:17:38Z 2025-12-23T05:13:30Z zachary99 member/zachary99 对隐私保护做得好的浏览器都有哪些 tag:www.v2ex.com,2025-12-18:/t/1179771 2025-12-18T07:21:05Z 2025-12-19T17:13:51Z rosebush373 member/rosebush373 Ubuntu 上关闭 chrome 窗口后,再次打开卡死 tag:www.v2ex.com,2025-12-12:/t/1178574 2025-12-12T08:54:58Z 2025-12-12T00:54:58Z n2l member/n2l 谷歌推出人工智能浏览器 Disco 可以快速编写交互式 Web 应用帮助用户解决问题 tag:www.v2ex.com,2025-12-12:/t/1178471 2025-12-12T02:59:54Z 2025-12-11T22:59:54Z sudo123 member/sudo123 https://labs.google/disco

]]>
哪个安卓手机浏览器可以打开 console 控制台模式,或者执行手动输入的 js 代码 tag:www.v2ex.com,2025-12-03:/t/1176574 2025-12-03T03:20:13Z 2025-12-05T02:31:12Z frozenway member/frozenway 像 chrome 桌面端开发者 console 控制台那样的

]]>
你浏览器的 cookie 或者 localStorage 支持一键上传到 github gist 了 tag:www.v2ex.com,2025-12-02:/t/1176327 2025-12-02T03:21:47Z 2025-12-03T23:45:49Z jackyLu member/jackyLu 感觉现在很少人做非 AI 相关应用了,不知道传统那些应用,工具还有没有市场,由于本人爬虫需要同步 cookie ,之前老是需要手动复制 cookie ,所以索性就码了这个小应用,同时拓展其他功能。 直接也发过一次,现在丰富一些功能再发一次

简介

Sync your cookie 是一个 Chrome 扩展程序,它可以帮助您将 Cookie 同步到 Cloudflare 。它是一个有用的工具,用于在不同设备之间共享 Cookie, 免去了登录流程的烦恼,此外也提供了 cookie 管理面板查看,管理已经过同步的 cookie 。

安装

Chrome: Sync Your Cookie

Edge: Sync Your Cookie

功能

项目截图

账号设置页面

account settings

Cookie 同步页面

cookie sync popup

Cookie 管理侧边栏面板

cookie manager sidebar panel

Cookie 详情

cookie manager sidebar panel

LocalStorage 详情

cookie manager sidebar panel

Github Gist 上传的 cookie

Pushed Cookie on Github Gist

Cloudflare 上传的 cookie

Pushed Cookie on Cloudflare

项目地址

https://github.com/jackluson/sync-your-cookie

]]>
哪个浏览器 Openbox 能用 sidebery+chrome 插件? tag:www.v2ex.com,2025-11-30:/t/1175994 2025-11-30T14:04:53Z 2025-11-30T10:04:53Z HuPu member/HuPu chrome143 以上(含 edge),f12 后查看元素,展开节点啥的非常卡,140 正常,firefox 正常 tag:www.v2ex.com,2025-11-26:/t/1175060 2025-11-26T00:52:19Z 2025-11-28T02:55:43Z a33291 member/a33291 有没哪款浏览器像 Chrome 一样方便开发调试,但又内存暂用低的? tag:www.v2ex.com,2025-11-22:/t/1174334 2025-11-22T02:15:08Z 2025-11-23T05:48:48Z wKong753900 member/wKong753900 Firefox ?说实话好几年前经常用,这一两年没怎么用过它了

]]>
dia 浏览器跳区域限制的应对脚本 tag:www.v2ex.com,2025-11-11:/t/1172106 2025-11-11T10:52:39Z 2025-11-11T10:52:39Z yiencho member/yiencho
1 、 先在代理中设置规则,DOMAIN-SUFFIX,diabrowser.engineering,AI Suite
2 、 自动操作里就添加保存打开脚本就可以
3 、 有错误找 ai ,问我我也不懂,目前我电脑的可以正常使用


下面是脚本:
#!/bin/bash

# Dia 浏览器代理启动脚本
# 使用 Clash 系统代理启动 Dia 浏览器

# Clash 代理配置
HTTP_PROXY="http://127.0.0.1:7890"
SOCKS_PROXY="socks5://127.0.0.1:7890"

# Dia 浏览器路径(请根据实际安装位置修改)
DIA_PATH="/Applications/Dia.app/Contents/MacOS/Dia"

# 检查 Dia 浏览器是否存在
if [ ! -f "$DIA_PATH" ]; then
echo "❌ 错误:找不到 Dia 浏览器"
echo "请检查路径: $DIA_PATH"
echo ""
echo "常见安装路径:"
echo " /Applications/Dia.app/Contents/MacOS/Dia"
echo " /Applications/DIA.app/Contents/MacOS/DIA"
echo ""
read -p "请输入 Dia 浏览器的完整路径: " custom_path
if [ -f "$custom_path" ]; then
DIA_PATH="$custom_path"
else
echo "❌ 路径无效,退出"
exit 1
fi
fi

# 检查 Clash 是否运行
if ! lsof -i :7890 > /dev/null 2>&1; then
echo "⚠️ 警告:Clash 代理似乎未运行(端口 7890 未监听)"
echo "请先启动 Clash"
read -p "是否继续启动 Dia ?(y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi

echo "🚀 正在启动 Dia 浏览器(使用代理)..."
echo "📡 HTTP 代理: $HTTP_PROXY"
echo ""

# 使用 HTTP 代理启动 Dia 浏览器
# 如果 HTTP 代理不工作,可以尝试注释掉上面的行,取消注释下面使用 SOCKS5 的行
"$DIA_PATH" --proxy-server="$HTTP_PROXY" > /dev/null 2>&1 &

# 如果上面的 HTTP 代理不工作,可以尝试 SOCKS5:
# "$DIA_PATH" --proxy-server="$SOCKS_PROXY" > /dev/null 2>&1 &

# 等待浏览器启动
sleep 2

# 检查是否启动成功
if pgrep -f "Dia" > /dev/null; then
echo "✅ Dia 浏览器已启动!"

# 如果是通过终端运行的,3 秒后自动关闭终端窗口
if [ -n "$TERM_PROGRAM" ]; then
echo "窗口将在 3 秒后自动关闭..."
sleep 3
osascript -e 'tell application "Terminal" to close first window' 2>/dev/null
fi
else
echo "❌ 启动失败,请检查配置"
sleep 3
exit 1
fi ]]>
MV3 时代, uBlock Origin Lite 和新版 AdGuard 插件哪个更好? tag:www.v2ex.com,2025-11-10:/t/1171853 2025-11-10T18:17:36Z 2025-11-11T03:33:21Z yyws2012 member/yyws2012 chrome 浏览器的 TLS 证书告警没法跳过 tag:www.v2ex.com,2025-11-03:/t/1170197 2025-11-03T07:09:49Z 2025-11-03T07:40:39Z wsseo member/wsseo
同一台电脑的 firefox 和 edge 有这个继续访问。另一个电脑同样的 chrome 版本又有继续访问的选项。

很奇怪,初步怀疑是我的 Windows 11 chrome 的配置有啥不一样。

]]>
为什么没有精简 WebKit? tag:www.v2ex.com,2025-11-03:/t/1170140 2025-11-03T03:31:50Z 2025-11-04T12:42:42Z powersee member/powersee libcef 非常大,webview2 又有跨平台兼容问题,为什么没有人精简 WebKit 呢?

WebKit 编译时提供了非常多的开关,例如:--no-video 、--no-webgl


如果有人基于 WebKit 做一个精简的 Web 运行时,并且把 JavascriptCore 替换成 QuickJS 我觉得应该很受欢迎。

WebKit 的三个模块:WebKit2 、WebCore 、JavascriptCore

WebCore:可以去掉不需要的:Canvas 、音视频解码器、PDF 、WebGL 、拼音检查等等 JavascriptCore:可以替换成 QuickJS

(虽然 QuickJS 没有 JIT ,但是核心模块可以用 C++、C#、Rust 等语言代替

我觉得整个下来,使用 7z 压缩后,应该可以控制在 10-15M 甚至更小

]]>
三星出桌面端的浏览器了 tag:www.v2ex.com,2025-10-31:/t/1169588 2025-10-31T01:16:09Z 2025-10-31T06:40:57Z HalloCQ member/HalloCQ https://browser.samsung.com/beta
目前只有 windows 端。
这个贴就是用三星浏览器发的 ]]>
浏览器访问一些特定端口会报 ERR_UNSAFE_PORT,有没有什么浏览器不标记不安全端口的? tag:www.v2ex.com,2025-10-27:/t/1168666 2025-10-27T07:27:13Z 2025-10-27T10:27:13Z coolair member/coolair 有没有什么浏览器没有这个限制的?直接安装就能正常访问,不用做额外配置。 ]]> 我是提醒备份小助手,提醒你备份油猴和篡改猴数据 tag:www.v2ex.com,2025-10-15:/t/1165312 2025-10-15T02:24:32Z 2025-10-15T03:30:13Z Lanyangzhi member/Lanyangzhi 现在马上去设置里开云同步到 googledrive ,不会在本地有备份
如果有一天你看见 chromium 的脚本失效,一定不要去插件设置里点修复,重启浏览器不行去商店里重新下载
不要问我为什么知道的😭😭😭
72hZQc.png

]]>
微软的 Edge 也挺好用的,但有哪个瞬间,让你想切换回 Chrome? tag:www.v2ex.com,2025-10-14:/t/1165132 2025-10-14T06:19:53Z 2025-10-23T17:26:55Z linupy member/linupy Mac 端请使用非 webkit 内核浏览器以获得更好的字体体验 tag:www.v2ex.com,2025-10-13:/t/1164990 2025-10-13T15:52:54Z 2025-10-13T18:37:04Z charlieego member/charlieego Safari 兼容性不行更容易见到宋体。上 Safari 下 Chrome ,Chrome 没有在设置里把 Serif 字体改成苹方都是默认的设置。火狐系也可以,用 Zen 测了下这个网站也没有全屏宋体。当然不止这一个网站啦,遇到挺多次了,发帖吐槽下。 Safari Chrome

]]>
Zen 浏览器疑似内存占用有点高啊 tag:www.v2ex.com,2025-10-12:/t/1164645 2025-10-12T07:42:22Z 2025-10-12T18:27:16Z YanSeven member/YanSeven
不知道和固定的页面有没有关系,但是就算有关系,也不至于这么高啊。

我现在是吧 Zen 的固定页面当启动台用了,固定了一些常用网站上去,但是也就 10 个而已。 ]]>
我发现 chrome 浏览器调试窗口网络模块中有些请求不展示 tag:www.v2ex.com,2025-10-11:/t/1164405 2025-10-11T03:17:58Z 2025-10-11T09:35:09Z wsseo member/wsseo 排查跨域问题,为什么不发送请求,好几次遇到 chrome 有些请求不展示,换 firefox 就能看到。

]]>
有没使用 Firafox 浏览器的朋友,还有什么其它的快速切换代理的浏览器扩展推荐啊? tag:www.v2ex.com,2025-09-30:/t/1162849 2025-09-30T03:04:33Z 2025-10-02T03:52:32Z kimme885 member/kimme885 之前在 firefox 上一直使用的是 Proxy SwitchyOmega ,但是最近发现在新安装的 firefox 最新版本上这个扩展安装不上了。通过修改 about:config 中的设置强行安装上之后,扩展里面设置的代理也不生效了。从 firefox 老版本升级上来的倒是没有问题,扩展依然可以使用,代理规则也可以生效。不知道是什么问题~~

还有没有其它类似的扩展可以推荐一下呀?

]]>
现在手机上还有什么浏览器,可以像 kiwi 一样安装自己的浏览器插件的? tag:www.v2ex.com,2025-09-27:/t/1162234 2025-09-27T13:38:40Z 2025-10-08T22:15:48Z wojiugaiming member/wojiugaiming kiwi 不更新了,现在有替代方案吗?

]]>
v2ex 在干什么,这么占内存 tag:www.v2ex.com,2025-09-25:/t/1161847 2025-09-25T12:26:01Z 2025-10-03T11:32:21Z sweat89 member/sweat89 ]]> 如何知道网络请求是从浏览器发出的 tag:www.v2ex.com,2025-09-25:/t/1161719 2025-09-25T04:28:40Z 2025-09-27T20:28:15Z leokun member/leokun [凡回复必答谢] 你对“企业浏览器”怎么看? tag:www.v2ex.com,2025-09-22:/t/1160988 2025-09-22T03:04:38Z 2025-09-23T19:40:17Z desdouble member/desdouble 2 、你认为它应该具有什么样的特性? ]]> iOS edge 浏览器菜单风格怎么从瀑布流切换平铺? tag:www.v2ex.com,2025-09-19:/t/1160420 2025-09-19T02:39:01Z 2025-09-18T22:39:01Z kongkongmaster member/kongkongmaster
瀑布流:
https://imgur.com/a/Key7Z1s

平铺就是类似九宫格那种 ]]>
浏览器迁移好麻烦 tag:www.v2ex.com,2025-09-18:/t/1160351 2025-09-18T15:03:00Z 2025-09-18T23:45:07Z bzluu member/bzluu 之前看到 v 友发过帖子 Firefox 的加载速度明显比 Chrome 慢很多,自己尝试了一下也明显感觉到慢。 今天花了些时间把各种插件、浏览器设置、某些常用网站的设置登录等等弄了一部分,还是没达到之前的使用习惯,想想还是以后用到什么再弄了。 不过打开页面的流畅性真的提升了挺多。

]]>
[回复即答谢] 你怎么看个人浏览器收集用户数据这个问题?如果你可以在自己的 NAS 上搭一套浏览器后台同步服务(免费的),你愿意这样做吗? tag:www.v2ex.com,2025-09-17:/t/1159970 2025-09-17T07:57:54Z 2025-09-18T03:14:30Z desdouble member/desdouble ![]( )

源代码的头文件中定义了更多类型,有一些是企业版 chrome 的数据。那么如题,你怎么看?回复即答谢。

`
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SYNC_BASE_MODEL_TYPE_H_
#define COMPONENTS_SYNC_BASE_MODEL_TYPE_H_

#include <iosfwd>
#include <map>
#include <memory>
#include <string>

#include "base/containers/enum_set.h"
#include "base/values.h"

namespace sync_pb {
class EntitySpecifics;
}

namespace syncer {

// Enumerate the various item subtypes that are supported by sync.
// Each sync object is expected to have an immutable object type.
// An object's type is inferred from the type of data it holds.
//
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.sync
//
// |kModelTypeInfoMap| struct entries are in the same order as their definition
// in ModelType enum. When you make changes in ModelType enum, don't forget to
// update the |kModelTypeInfoMap| struct in model_type.cc and also the
// SyncModelType histogram suffix in histograms.xml
enum ModelType {
// Object type unknown. This may be used when:
// a) The client received *valid* data from a data type which this version
// is unaware of (only present in versions newer than this one, or present
// in older versions but removed since).
// b) The client received invalid data from the server due to some error.
// c) A data object was just created, in which case this is a temporary state.
UNSPECIFIED,

// ------------------------------------ Start of "real" model types.
// The model types declared before here are somewhat special, as they
// they do not correspond to any browser data model. The remaining types
// are bona fide model types; all have a related browser data model and
// can be represented in the protocol using a specific Message type in the
// EntitySpecifics protocol buffer.
//
// A bookmark folder or a bookmark URL object.
BOOKMARKS,
FIRST_USER_MODEL_TYPE = BOOKMARKS, // Declared 2nd, for debugger prettiness.
FIRST_REAL_MODEL_TYPE = FIRST_USER_MODEL_TYPE,

// A preference object, a.k.a. "Settings".
PREFERENCES,
// A password object.
PASSWORDS,
// An autofill_profile object, i.e. an address.
AUTOFILL_PROFILE,
// An autofill object, i.e. an autocomplete entry keyed to an HTML form field.
AUTOFILL,
// Credentials related to an autofill wallet instrument; aka the CVC/CVV code.
AUTOFILL_WALLET_CREDENTIAL,
// Credit cards and customer data from the user's account. These are read-only
// on the client.
AUTOFILL_WALLET_DATA,
// Usage counts and last use dates for Wallet cards. This data is both
// readable and writable.
AUTOFILL_WALLET_METADATA,
// Offers and rewards from the user's account. These are read-only on the
// client side.
AUTOFILL_WALLET_OFFER,
// Autofill usage data of a payment method related to a specific merchant.
AUTOFILL_WALLET_USAGE,
// A theme object.
THEMES,
// An extension object.
EXTENSIONS,
// An object representing a custom search engine.
SEARCH_ENGINES,
// An object representing a browser session, e.g. an open tab. This is used
// for "Open Tabs".
SESSIONS,
// An app object.
APPS,
// An app setting from the extension settings API.
APP_SETTINGS,
// An extension setting from the extension settings API.
EXTENSION_SETTINGS,
// History delete directives, used to propagate history deletions (e.g. based
// on a time range).
HISTORY_DELETE_DIRECTIVES,
// Custom spelling dictionary entries.
DICTIONARY,
// Client-specific metadata, synced before other user types.
DEVICE_INFO,
// These preferences are synced before other user types and are never
// encrypted.
PRIORITY_PREFERENCES,
// Supervised user settings. Cannot be encrypted.
SUPERVISED_USER_SETTINGS,
// App List items, used by the ChromeOS app launcher.
APP_LIST,
// ARC package items, i.e. Android apps on ChromeOS.
ARC_PACKAGE,
// Printer device information. ChromeOS only.
PRINTERS,
// Reading list items.
READING_LIST,
// Commit only user events.
USER_EVENTS,
// Commit only user consents.
USER_CONSENTS,
// Tabs sent between devices.
SEND_TAB_TO_SELF,
// Commit only security events.
SECURITY_EVENTS,
// Wi-Fi network configurations + credentials
WIFI_CONFIGURATIONS,
// A web app object.
WEB_APPS,
// A WebAPK object.
WEB_APKS,
// OS-specific preferences (a.k.a. "OS settings"). ChromeOS only.
OS_PREFERENCES,
// Synced before other user types. Never encrypted. ChromeOS only.
OS_PRIORITY_PREFERENCES,
// Commit only sharing message object.
SHARING_MESSAGE,
// A workspace desk saved by user. ChromeOS only.
WORKSPACE_DESK,
// Synced history. An entity roughly corresponds to a navigation.
HISTORY,
// Trusted Authorization Servers for printers. ChromeOS only.
PRINTERS_AUTHORIZATION_SERVERS,
// Contact information from the Google Address Storage.
CONTACT_INFO,
// A tab group saved by a user. Currently only supported on desktop platforms
// (Linux, Mac, Windows, ChromeOS) and Android.
SAVED_TAB_GROUP,

// Power bookmarks are features associated with bookmarks(i.e. notes, price
// tracking). Their life cycle are synced with bookmarks.
POWER_BOOKMARK,

// WebAuthn credentials, more commonly known as passkeys.
WEBAUTHN_CREDENTIAL,

// Invitations for sending passwords. Outgoing invitation from one user will
// become an incoming one for another.
INCOMING_PASSWORD_SHARING_INVITATION,
OUTGOING_PASSWORD_SHARING_INVITATION,

// Data related to tab group sharing.
SHARED_TAB_GROUP_DATA,

// Special datatype to notify client about People Group changes. Read-only on
// the client.
COLLABORATION_GROUP,

// Origin-specific email addresses forwarded from the user's account.
// Read-only on the client.
PLUS_ADDRESS,

// Product comparison groups.
PRODUCT_COMPARISON,

// Browser cookies, ChromeOS only.
COOKIES,

// Settings for PLUS_ADDRESS forwarded from the user's account. Since the
// settings originate from the user's account, this is not reusing any of the
// standard syncable prefs.
PLUS_ADDRESS_SETTING,

LAST_USER_MODEL_TYPE = PLUS_ADDRESS_SETTING,

// ---- Control Types ----
// An object representing a set of Nigori keys.
NIGORI,
LAST_REAL_MODEL_TYPE = NIGORI,

// NEW ENTRIES MUST BE ADDED ABOVE THIS.
LAST_ENTRY = LAST_REAL_MODEL_TYPE,
};

using ModelTypeSet =
base::EnumSet<ModelType, FIRST_REAL_MODEL_TYPE, LAST_REAL_MODEL_TYPE>;

constexpr int GetNumModelTypes() {
return static_cast<int>(ModelType::LAST_ENTRY) + 1;
}

// A version of the ModelType enum for use in histograms. ModelType does not
// have stable values (e.g. new ones may be inserted in the middle), so it can't
// be recorded directly.
// Instead of using entries from this enum directly, you'll usually want to get
// them via ModelTypeHistogramValue(model_type).
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. When you add a new entry or when you
// deprecate an existing one, also update SyncModelTypes in enums.xml and
// SyncModelType suffix in histograms.xml.
// LINT.IfChange(SyncModelTypes)
enum class ModelTypeForHistograms {
kUnspecified = 0,
// kTopLevelFolder = 1,
kBookmarks = 2,
kPreferences = 3,
kPasswords = 4,
kAutofillProfile = 5,
kAutofill = 6,
kThemes = 7,
// kDeprecatedTypedUrls = 8,
kExtensiOns= 9,
kSearchEngines = 10,
kSessiOns= 11,
kApps = 12,
kAppSettings = 13,
kExtensiOnSettings= 14,
// kDeprecatedAppNotificatiOns= 15,
kHistoryDeleteDirectices = 16,
kNigori = 17,
kDeviceInfo = 18,
// kDeprecatedExperiments = 19,
// kDeprecatedSyncedNotificatiOns= 20,
kPriorityPreferences = 21,
kDictiOnary= 22,
// kFavicOnImages= 23,
// kFavicOnTracking= 24,
kProxyTabs = 25,
kSupervisedUserSettings = 26,
// kDeprecatedSupervisedUsers = 27,
// kDeprecatedArticles = 28,
kAppList = 29,
// kDeprecatedSupervisedUserSharedSettings = 30,
// kDeprecatedSyncedNotificatiOnAppInfo= 31,
// kDeprecatedWifiCredentials = 32,
kDeprecatedSupervisedUserAllowlists = 33,
kAutofillWalletData = 34,
kAutofillWalletMetadata = 35,
kArcPackage = 36,
kPrinters = 37,
kReadingList = 38,
kUserEvents = 39,
// kDeprecatedMountainShares = 40,
kUserCOnsents= 41,
kSendTabToSelf = 42,
kSecurityEvents = 43,
kWifiCOnfigurations= 44,
kWebApps = 45,
kOsPreferences = 46,
kOsPriorityPreferences = 47,
kSharingMessage = 48,
kAutofillWalletOffer = 49,
kWorkspaceDesk = 50,
kHistory = 51,
kPrintersAuthorizatiOnServers= 52,
kCOntactInfo= 53,
kAutofillWalletUsage = 54,
// kDeprecatedSegmentation = 55,
kSavedTabGroups = 56,
kPowerBookmark = 57,
kWebAuthnCredentials = 58,
kIncomingPasswordSharingInvitatiOns= 59,
kOutgoingPasswordSharingInvitatiOns= 60,
kAutofillWalletCredential = 61,
kWebApks = 62,
kSharedTabGroupData = 63,
kCollaboratiOnGroup= 64,
kPlusAddresses = 65,
kProductComparison = 66,
kCookies = 67,
kPlusAddressSettings = 68,
kMaxValue = kPlusAddressSettings,
};
// LINT.ThenChange(/tools/metrics/histograms/metadata/sync/enums.xml:SyncModelTypes)

// Used to mark the type of EntitySpecifics that has no actual data.
void AddDefaultFieldValue(ModelType type, sync_pb::EntitySpecifics* specifics);

// Extract the model type from an EntitySpecifics field. ModelType is a
// local concept: the enum is not in the protocol.
ModelType GetModelTypeFromSpecifics(const sync_pb::EntitySpecifics& specifics);

// Protocol types are those types that have actual protocol buffer
// representations. This is the same as the "real" model types, i.e. all types
// except UNSPECIFIED.
constexpr ModelTypeSet ProtocolTypes() {
// Note that ModelTypeSet only covers the real types, not UNSPECIFIED.
static_assert(!ModelTypeSet::All().Has(ModelType::UNSPECIFIED));
return ModelTypeSet::All();
}

// These are the normal user-controlled types. This is to distinguish from
// ControlTypes which are always enabled. Note that some of these share a
// preference flag, so not all of them are individually user-selectable.
constexpr ModelTypeSet UserTypes() {
return ModelTypeSet::FromRange(FIRST_USER_MODEL_TYPE, LAST_USER_MODEL_TYPE);
}

// User types which are not user-controlled.
constexpr ModelTypeSet AlwaysPreferredUserTypes() {
return {DEVICE_INFO,
USER_CONSENTS,
PLUS_ADDRESS,
PLUS_ADDRESS_SETTING,
SECURITY_EVENTS,
SEND_TAB_TO_SELF,
SUPERVISED_USER_SETTINGS,
SHARING_MESSAGE};
}

// User types which are always encrypted.
constexpr ModelTypeSet AlwaysEncryptedUserTypes() {
// If you add a new model type here that is conceptually different from a
// password, make sure you audit UI code that refers to these types as
// passwords, e.g. consumers of IsEncryptEverythingEnabled().
return {AUTOFILL_WALLET_CREDENTIAL, PASSWORDS, WIFI_CONFIGURATIONS, COOKIES};
}

// This is the subset of UserTypes() that have priority over other types. These
// types are synced before other user types (both for get_updates and commits).
// This mostly matters during initial sync, since priority types can become
// active before all the data for non-prio types has been downloaded (which may
// be a lot of data).
constexpr ModelTypeSet HighPriorityUserTypes() {
return {
// The "Send to Your Devices" feature needs fast updating of the list of
// your devices and also fast sending of the actual messages.
DEVICE_INFO, SHARING_MESSAGE,
// For supervised users, it is important to quickly deliver changes in
// settings and in allowed sites to the supervised user.
SUPERVISED_USER_SETTINGS,
// These are by definition preferences for which it is important that the
// client picks them up quickly (also because these can get changed
// server-side). For example, such a pref could control whether a
// non-priority type gets enabled (Wallet has such a pref).
PRIORITY_PREFERENCES, OS_PRIORITY_PREFERENCES,
// Speed matters for the user experience when sync gets enabled directly
// in the creation flow for a new profile. If the user has no theme in
// their sync data, the browser offers a theme customization bubble which
// should appear soon after opening the browser.
THEMES};
}

// This is the subset of UserTypes() that have a *lower* priority than other
// types. These types are synced only after all other user types (both for
// get_updates and commits). This mostly matters during initial sync, since
// high-priority and regular types can become active before all the data for
// low-priority types has been downloaded (which may be a lot of data).
constexpr ModelTypeSet LowPriorityUserTypes() {
return {
// Downloading History may take a while, but should not block the download
// of other data types.
HISTORY,
// User Events should not block or delay commits for other data types.
USER_EVENTS,
// Incoming password sharing invitations must be processed after
// Passwords data type to prevent storing incoming passwords locally first
// and overwriting the remote password during conflict resolution.
INCOMING_PASSWORD_SHARING_INVITATION};
}

// Returns a list of all control types.
//
// The control types are intended to contain metadata nodes that are essential
// for the normal operation of the syncer. As such, they have the following
// special properties:
// - They are downloaded early during SyncBackend initialization.
// - They are always enabled. Users may not disable these types.
// - Their contents are not encrypted automatically.
// - They support custom update application and conflict resolution logic.
// - All change processing occurs on the sync thread.
constexpr ModelTypeSet ControlTypes() {
return {NIGORI};
}

// Types that may commit data, but should never be included in a GetUpdates.
// These are never encrypted.
constexpr ModelTypeSet CommitOnlyTypes() {
return {USER_EVENTS, USER_CONSENTS, SECURITY_EVENTS, SHARING_MESSAGE,
OUTGOING_PASSWORD_SHARING_INVITATION};
}

// Types for which downloaded updates are applied immediately, before all
// updates are downloaded and the Sync cycle finishes.
// For these types, ModelTypeSyncBridge::MergeFullSyncData() will never be
// called (since without downloading all the data, no initial merge is
// possible).
constexpr ModelTypeSet ApplyUpdatesImmediatelyTypes() {
return {HISTORY};
}

// Types for which `collaboration_id` field in SyncEntity should be provided.
// These types also support `gc_directive` for collaborations to track active
// collaboratons.
constexpr ModelTypeSet SharedTypes() {
return {SHARED_TAB_GROUP_DATA};
}

// Types triggering a warning when the user signs out and the types have
// unsynced data. The warning offers the user to either save the data locally or
// abort sign-out, depending on the platform.
constexpr ModelTypeSet TypesRequiringUnsyncedDataCheckOnSignout() {
return {syncer::BOOKMARKS, syncer::CONTACT_INFO, syncer::PASSWORDS,
syncer::READING_LIST, syncer::SAVED_TAB_GROUP};
}

// User types that can be encrypted, which is a subset of UserTypes() and a
// superset of AlwaysEncryptedUserTypes();
ModelTypeSet EncryptableUserTypes();

// Determine a model type from the field number of its associated
// EntitySpecifics field. Returns UNSPECIFIED if the field number is
// not recognized.
ModelType GetModelTypeFromSpecificsFieldNumber(int field_number);

namespace internal {
// Obtain model type from field_number and add to model_types if valid.
void GetModelTypeSetFromSpecificsFieldNumberListHelper(
ModelTypeSet& model_types,
int field_number);
} // namespace internal

// Build a ModelTypeSet from a list of field numbers. Any unknown field numbers
// are ignored.
template <typename ContainerT>
ModelTypeSet GetModelTypeSetFromSpecificsFieldNumberList(
const ContainerT& field_numbers) {
ModelTypeSet model_types;
for (int field_number : field_numbers) {
internal::GetModelTypeSetFromSpecificsFieldNumberListHelper(model_types,
field_number);
}
return model_types;
}

// Return the field number of the EntitySpecifics field associated with
// a model type.
int GetSpecificsFieldNumberFromModelType(ModelType model_type);

// Returns a string with application lifetime that represents the name of
// |model_type|.
const char* ModelTypeToDebugString(ModelType model_type);

// Returns a string with application lifetime that is used as the histogram
// suffix for |model_type|.
const char* ModelTypeToHistogramSuffix(ModelType model_type);

// Some histograms take an integer parameter that represents a model type.
// The mapping from ModelType to integer is defined here. It defines a
// completely different order than the ModelType enum itself. The mapping should
// match the SyncModelTypes mapping from integer to labels defined in enums.xml.
ModelTypeForHistograms ModelTypeHistogramValue(ModelType model_type);

// Returns for every model_type a positive unique integer that is stable over
// time and thus can be used when persisting data.
int ModelTypeToStableIdentifier(ModelType model_type);

// Returns the comma-separated string representation of |model_types|.
std::string ModelTypeSetToDebugString(ModelTypeSet model_types);

// Necessary for compatibility with EXPECT_EQ and the like.
std::ostream& operator<<(std::ostream& out, ModelTypeSet model_type_set);

// Returns a string corresponding to the root tag as exposed in the sync
// protocol as the root entity's ID, which makes the root entity trivially
// distinguishable from regular entities. Note that the existence of a root
// entity in the sync protocol is a legacy artifact, and modern clients ignore
// it except for bookmarks and Nigori. For this reason, the server may or may
// not return the root entity.
std::string ModelTypeToProtocolRootTag(ModelType model_type);

// As opposed to ModelTypeToProtocolRootTag(), this returns a string that isn't
// exposed in the sync protocol, but that is still stable and thus can be used
// for local persistence. It is guaranteed to be lowercase.
const char* GetModelTypeLowerCaseRootTag(ModelType model_type);

// Returns true if |model_type| is a real datatype
bool IsRealDataType(ModelType model_type);

// Returns true if |model_type| is an act-once type. Act once types drop
// entities after applying them. Drops are deletes that are not synced to other
// clients.
bool IsActOnceDataType(ModelType model_type);

} // namespace syncer

#endif // COMPONENTS_SYNC_BASE_MODEL_TYPE_H_

` ]]>
chrome 更新后白屏,网页打开了但是看不到内容 tag:www.v2ex.com,2025-09-16:/t/1159585 2025-09-16T04:42:56Z 2025-09-22T12:29:49Z chai13 member/chai13 chrome 今天更新后白屏,网页打开了但是看不到内容,看得到鼠标有手指样式,也可以点击,但是看不到内容;

控制台打开也是白屏的,但是也可以点击;

完全退出后默认打开一个百度首页有内容,也可以搜索,也有搜索结果,但是从结果点进去就是白屏的页面;

救救救救

]]>
今天更新了 Chrome,现在完全用不了 manifest v2 了,有没有 ublock origin 的替代品 tag:www.v2ex.com,2025-09-10:/t/1158399 2025-09-10T14:22:01Z 2025-09-13T22:52:56Z PPPaul member/PPPaul 如上,ublock origin 我认为是最好的广告屏蔽工具了,当然除了广告屏蔽,我最喜欢的还是能屏蔽特定的 html 元素,比如屏蔽掉 baidu 和 bing 下面的推荐,请教站友,有没有类似功能的替代品?另外,离不开 chrome 了,所有的东西像密码什么都在 google 上。

]]>
求推荐一款能安装自签名根证书的安卓浏览器 tag:www.v2ex.com,2025-09-09:/t/1157953 2025-09-09T03:14:31Z 2025-09-09T10:06:51Z villivateur member/villivateur 目前在用 iceraven ,不能自己安装根证书,也无法使用系统的证书商店。之前用 firefox 以及 Chrome 也不行。

]]>
不安全的页面如何应用自动填充? tag:www.v2ex.com,2025-09-07:/t/1157619 2025-09-07T09:33:20Z 2025-09-07T16:21:21Z LxnChan member/LxnChan 有一些服务器的带外管理使用了自签 https ,密码都不一样,在 Edge 打开之后可以保存密码但不能自动填充,想问一下有没有什么办法能够使得 Edge 自动填充这些密码,仅针对内网 IP 也行

]]>
每天一个新的 AI 浏览器?又有个 Neo?还是诺顿出的? tag:www.v2ex.com,2025-08-22:/t/1154164 2025-08-22T02:48:48Z 2025-08-22T07:19:08Z bluesource member/bluesource 这个看网站介绍感觉还不错 browserating.com/评分也蛮高的 Neo 评分 有人试过了吗

]]>
Stay - 侧边栏化你的浏览器 tag:www.v2ex.com,2025-08-21:/t/1154086 2025-08-21T15:25:03Z 2025-09-07T17:09:47Z ris member/ris Stay 是一款浏览器增强插件,借助 Stay 可以极大的提升浏览器的浏览体验和可玩性。

Stay for Chrome/Edge 已支持功能

  1. 侧边栏标签页管理 - 你可以通过侧边栏来管理你的标签页,通过标签组来分类整理并且同步他们。
  2. 首页快捷方式 - 你可以将任何网页添加为首页快捷方式,添加后可以使得每个网页都获得类似 PWA 的体验。
  3. 书签同步 - 在 Stay 浏览器手机版或者任何桌面浏览器间同步你的书签。
  4. 用户脚本管理 - 安装或者编写油猴或者暴力猴脚本,让你的 Safari 支持自动翻页、沉浸式翻译、防止跳转、聚合搜索等等功能。
  5. 深色模式 - 为每个网站提供深色模式。
  6. 文件/图片下载 - 增强浏览器中的文件下载,通过打开 Stay 的 Popup 面板你可以快速的查看当前网页所有可下载的文件。
  7. 标记广告 - 标记垃圾与无用的内容。
  8. 保持同步 - 通过 Stay 账号,在你的任何设备上同步数据。

Chrome 插件地址

https://chromewebstore.google.com/detail/stay-sidebar-your-browser/hpbebebpjajeiadiakgckpahmhkbkpoa?hl=en-US&utm_source=ext_sidebar

Edge 插件地址

https://microsoftedge.microsoft.com/addons/detail/stay-sidebar-your-brows/ihnakibhdgjfcconfoohcncbadhjloej

]]>
老外有人开发象 Via 这样的迷你安卓浏览器吗? tag:www.v2ex.com,2025-08-20:/t/1153829 2025-08-20T18:17:25Z 2025-08-25T11:43:16Z DaDapeng member/DaDapeng Via 虽然是个套壳浏览器,但做的小巧精致,存在手机上没负担,而且还有朗读、翻译、下载页面等各种贴心小功能,apk 安装包体积才 1 个 MB 。另外还有个 X 浏览器也不错,都是中国人做的。👍

我突然好奇,为什么中国人能做出这么好的小浏览器,那么老外有人做他们的小浏览器吗?

求告知!

]]>
Windows11 重启电脑默认浏览器就被修改为 Edge,怎么办? tag:www.v2ex.com,2025-08-14:/t/1152412 2025-08-14T09:13:06Z 2025-08-23T03:04:46Z Sokranotes member/Sokranotes 求助大神,伪装正常新闻的广告如何去除 tag:www.v2ex.com,2025-08-14:/t/1152328 2025-08-14T04:18:14Z 2025-08-21T06:44:48Z petershaw22 member/petershaw22 https://imgur.com/gallery/ad-EUPz4vi

]]>
Perplexity AI 要收购 Google Chrome tag:www.v2ex.com,2025-08-13:/t/1152220 2025-08-13T15:11:46Z 2025-08-14T21:35:26Z paloalto member/paloalto

https://www.bbc.com/news/articles/c3dpr0kkyz4o ]]>
chrome 还是 edge? tag:www.v2ex.com,2025-08-13:/t/1152029 2025-08-13T02:51:42Z 2025-08-21T12:27:43Z GaryLee member/GaryLee 也可以说一说影响你做选择的原因

]]>
是否有小红书增强扩展或脚本,关键是能高效浏览评论。 tag:www.v2ex.com,2025-08-11:/t/1151578 2025-08-11T07:27:11Z 2025-08-11T10:16:35Z ly1878 member/ly1878 感谢分享。 ]]> 再开一个浏览器扩展推荐贴 tag:www.v2ex.com,2025-08-09:/t/1151179 2025-08-09T02:52:00Z 2025-08-28T17:10:54Z w568w member/w568w 上一个推荐贴 已经是半年前了,也就是说是时候再开一个新的了

浏览器不限,但大家可以注明一下,便于其他人查找

我自己用的是 Brave ( Chrome ),广告拦截和加密货币钱包用的都是浏览器自带的,其他插件目前装了这些:

  1. Buster: 自动解决 Google 验证码
  2. I don't care about cookies:屏蔽国外网站的 Cookie 提示横幅
  3. Proxy SwitchyOmega 3:切换代理,便于访问一些内网网站或者调试远程机器
  4. Textarea Cache:自动保存所有网页的输入框历史。强烈推荐,要是没有它,我已经不知道丢过多少次输入内容了…
  5. Microsoft automatic rewards:每天自动完成微软的 Rewards 任务赚取积分。好像没有什么用,但反正浏览器开着也是开着,不如干点事
  6. Gooreplacer:规则修改 header 和 UA 。我拿来访问 https://lobste.rs/ 用(该网站把 Brave 屏蔽了)

其他还有 沉浸式翻译 和 KeepassXC ,就不多说了。

欢迎各位佬们继续推荐

]]>
有没有原生支持 [树状] [竖向] 标签栏的浏览器 tag:www.v2ex.com,2025-08-03:/t/1149636 2025-08-03T13:08:41Z 2025-07-25T03:41:19Z JustinL member/JustinL
https://imgur.com/a/xN83IFk

但是光是设置一遍就历经艰辛,我还有另外两台电脑一直提不起劲设置,想请问大家,有没有什么浏览器能够实现这种效果?

1. 根据新标签的父标签来形成树状结构
2. 竖向标签栏
3. 隐藏横向标签栏(因为有些插件有树状标签但是浏览器自带的横向标签栏还在……)

提前谢谢大家🙏 ]]>
给 Ladybird 浏览器捐赠了 10 美元 tag:www.v2ex.com,2025-08-03:/t/1149550 2025-08-03T02:20:21Z 2025-08-04T04:00:06Z rmrf member/rmrf 早上起来看到 ladybirdbrowser 的 7 月的 newsletter https://ladybird.org/newsletter/2025-07-31/https://supertechfans.com/cn/post/2025-08-03-HackerNews/#this-month-in-ladybird ,大量的进展更新,简直太努力了,于是给捐赠了 $10 ,聊表寸心。天下苦 Chrome, Firefox 久已。加油 Ladybird!

特意用中文给留言,让开源社区稍微感受到一点来着中文语言环境的微小善意。

]]>
一个在浏览器里运行的"操作系统" : ryOS tag:www.v2ex.com,2025-08-01:/t/1149187 2025-08-01T01:58:18Z 2025-08-02T11:36:52Z isSimon member/isSimon https://os.ryo.lu Cursor 的首席设计师 RyoLu 借助 AIAgent 实现的作品:ryOS ,一个在浏览器里运行的"操作系统"。这个系统不只有 UI ,每个 App 都有实际功能:比如可以在聊天 App 里和 AI 对话,扫雷甚至终端,还提供一个“时光穿梭”IE 浏览器,可以加载网站的过去和未来版本

]]>
如何导出、永久保存浏览器历史记录? [风无前] tag:www.v2ex.com,2025-07-30:/t/1148843 2025-07-30T09:51:18Z 2025-07-30T09:50:18Z fengwq member/fengwq 保存浏览器历史记录这个需求,可能对大部分人来说都不是刚需。网友反而更推荐使用无痕模式,以及在死前一定要把历史记录删掉。对我来说也算不上刚需,但还是有那么几次,突然需要曾经看过的某个网页,想从历史记录中找出来。
对于人生大部分时间花在线上的人来说,历史记录是不能忽略的「活过的痕迹」。具有保存的价值,而且保存成本也很低。

浏览器是如何保存历史记录的?

Chrome 、Firefox 、Safari 都是把历史记录存在 SQLite 数据库中的。
没有密码,只要有文件访问权限就能读取。

如何永久保存历史记录?

很遗憾,主流浏览器默认都不能永久保存

Chrome 、Edge 保存 90 天(三个月)( Google 官方文档 )。不支持修改。
Firefox 则是有一个不固定的数量上限,超过这个数量的历史记录会被清理。这机制也意味着,如果不经常上网,历史记录可以保存很久。

对于 Firefox 141.0 版本,进入 about:config 搜索 places.history.expiration.transient_current_max_pages 是搜不到结果的,也就不知道能够保存多少条记录。那么,添加 places.history.expiration.max_pages 可能也不会生效。
我的电脑算是高配,目前保存了约 15 万条记录,时间跨度是 1 年。

Safari 默认保存一个月,可以设置为一年、手动(永久)。

Vivaldi 可以设置永久保存。但不知道用起来怎么样。

人脑能记住多久的历史记录?

毕竟,如果已经忘了看过的网页,也就不会有找回的需求了。人脑并不像电脑那样存储信息,很多网页可能看完第二天就忘了,但印象深刻的网页能记住多年。当然,一般也就只能记住网页的内容,不包括 URL 。

如何导出历史记录?

即使浏览器本身不能永久保存,定期导出历史记录最后也能实现永久保存。但是,同样地,Chrome 、Firefox 都不支持导出历史记录。
前面已经说过,浏览器基本都是把历史记录放在数据库里。那么直接读取数据库,再导出就可以了。这里就要感谢 Nir Sofer 开发了软件 BrowsingHistoryView (以下简称 BHV )。

BrowsingHistoryView

BHV 可以读取 12 个浏览器的历史记录,合并到同一个表格里;支持查看、搜索、导出( csv 等 4 种格式)。支持中文(需要手动配置)。
软件还支持命令行,只要写个定时任务,就可以实现自动保存所有历史记录了。
我推荐保存为 csv 格式。如果数据量较大,建议每个 csv 文件大小控制在 50 MiB 以内。

软件安全吗?
历史记录属于敏感信息,普通用户即使没有被攻击的价值,也有被拿去卖的价值(《 "Stylish"浏览器扩展会窃取你所有的互联网历史记录 》)。

BHV 不是开源的。2012 年发布 v1.00 版本。
网页 UI 一看就是 old school 程序员。再一看主页,好家伙,开发了几十个工具软件。还是比较安心的。
微步云沙箱VirusTotal ,检测未发现问题。
我不担保 BHV 的安全性;只能说我正在用,如果有问题,会更新的。

更新日志

2025-07-30 第一版,发布
2025-07-28 开始写


欢迎关注我的频道 https://t.me/fengwq

]]>
CentBrowser 浏览器 5.2.1168.57 测试版发布 tag:www.v2ex.com,2025-07-30:/t/1148749 2025-07-30T05:51:22Z 2025-08-03T04:48:19Z ice2016 member/ice2016 更新日志:

升级至 Chromium 132.0.6834.210 继续支持 Win7 和 Win8 重构安装程序以减小其大小 允许在右侧显示书签按钮 允许在将网页另存为图像时选择文件格式 新增功能:“重命名标签页” 新增选项:“删除下载文件时使用回收站” 新增选项:“在标签页上单击鼠标中键时关闭所有其他标签页” [错误修复] 标签页全屏功能有时会导致网页显示错误 [错误修复] 下载对话框中的文件名显示不正确 [错误修复] 某些网页的用户名字段未自动填充 

已知问题:

1. 禁用 DirectWrite 时韩文字符显示错误(可以安装 Gulim 字体来解决此问题)问题) 2. 一些用户报告浏览器无法在 Windows 10 专业版下启动 

下载地址:

https://static.centbrowser.com/win_beta/5.2.1168.57/ 

]]>
迁移浏览器数据的方法(Chrome、Firefox) [风无前] tag:www.v2ex.com,2025-07-29:/t/1148580 2025-07-29T10:36:46Z 2025-07-29T11:35:46Z fengwq member/fengwq 本文是在同一个浏览器之间的迁移。浏览器为了抢用户,都支持导入其他家的数据。
迁移浏览器数据,是指把浏览器的书签、历史记录、密码、设置、cookie 、缓存、扩展、网站的首选项(权限设置)、已打开的标签页和窗口等数据,迁移到另一个位置(新浏览器实例、新电脑)的操作。
本文介绍 Windows 系统下 Chrome 、Firefox 两个浏览器的数据迁移操作。
感谢 浏览器数据迁移经验分享 这个帖子。

Chrome

Chrome 的配置与缓存文件都在 %UserProfile%\AppData\Local 中:

C:\Users\<用户名>\AppData\Local\Google\Chrome\User Data 

图形操作就不说了,这里给出命令行复制的命令:

robocopy "C:\Users\<用户名>\AppData\Local\Google\Chrome\User Data" "<目标路径>" /E /COPYALL /XJ /MT:16 /R:1 /W:1 /NP /LOG:"%TEMP%\chrome_copy.log" 

复制这个文件夹之后,书签、历史记录、密码、设置、缓存、扩展、标签页等等,就直接迁移了。当然,也可以用 Google 账号同步到新浏览器。
cookie 需要单独处理。我最近测试了复制本地文件,复制之后所有网站需要重新登录。
有一个开源项目 CookieCloud 可以把 cookie 加密同步到服务器,再同步到另一个浏览器。服务器需要自建,或者使用网友免费提供的。
我没有测试这个软件,这里仅做介绍,不担保其安全性。

Firefox

Firefox 复制文件之后是全部数据都能迁移的。

找到配置文件
Firefox 的配置与缓存是分开存储的。
配置文件 在 Roaming

C:\Users\<用户名>\AppData\Roaming\Mozilla\Firefox\Profiles\ 

缓存 在 Local

C:\Users\<用户名>\AppData\Local\Mozilla\Firefox\Profiles\ 

Profiles 里面,每一个文件夹就对应一套配置。打开之后可能发现里面不止一个文件夹。默认的配置文件名是:<小写字母数字>.default 或 <小写字母数字>.default-release。那怎么知道要迁移哪个呢?
点击菜单按钮,帮助 - 更多故障排除信息,会打开一个标签页。在第一部分「应用程序概要」有一项「配置文件文件夹」。这里显示的就是当前浏览器使用的配置文件,需要注意最后一个文件夹的名字。

关闭 Firefox

复制文件

粘贴文件
如果 Firefox 是新安装的或「翻新」了,则直接粘贴文件(并覆盖)即可。
如果想要合并历史记录,则需要单独处理。我会在下一篇讲。
不是以上两种情况,建议 Windows + R 键,运行 firefox.exe -P 打开「配置文件管理器」,删除所有配置。接着新建一个配置文件,这次可以起一个自己喜欢的名字,也可以继续用 default 。创建之后不要启动 Firefox ,此时就已经创建好新的配置文件夹了,把旧的配置、缓存复制过去就完成迁移了。

粘贴时要注意:不要直接把整个旧的 配置文件夹(<小写字母数字>.default )复制到 Firefox\Profiles\ 这个路径。而应该把旧的 配置文件夹(<小写字母数字>.default )的子文件夹及文件,复制到新的 profile 里面——只复制文件夹的内容,不复制文件夹本身。因为用户配置文件夹的名字(包括随机的 8 位数字字符串)必须完全匹配才有效。

如果以上内容没讲清楚,请看 Firefox 官方文档:
备份你的信息
从旧的配置文档中恢复重要数据

多用户浏览器的情况

多用户浏览器是指让浏览器以另一个用户的身份(低权限)运行。

关于文件权限
如果你的多用户方案搭配了 ACL ,那你可能会担心本地文件复制后的权限问题。
我的操作:由于「上网用户」无法把文件复制到 C:\Users\Public 这个公用文件夹(可能是因为属于 Users 组)。我是直接给「上网用户」添加了目标文件夹的访问权限。复制之后「主用户」直接就可以打开,不需要再设置权限。
建议的操作:压缩。这里给出用 7z 压缩的命令:

& "$env:ProgramFiles\7-Zip\7z.exe" a -tzip -mx1 -mmt=on "$zipDestination" "$sourceDir\*" 

(命令开头的 & 不能省)

更新日志

2025-07-29 第一版,发布
2025-07-28 开始写


欢迎关注我的频道 https://t.me/fengwq

]]>
开启 Skia Graphite 提升光栅化性能 tag:www.v2ex.com,2025-07-28:/t/1148167 2025-07-28T03:10:53Z 2025-07-28T03:21:05Z Donduck member/Donduck https://blog.chromium.org/2025/07/introducing-skia-graphite-chromes.html ]]> ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86