如何使用contextualIdentities.create()自定义cookieStoreId?
结论
无法直接自定义cookieStoreId的取值。
原因说明
cookieStoreId是Firefox内部自动生成的上下文身份唯一标识符,WebExtensions的contextualIdentitiesAPI 没有开放自定义该字段的能力,其命名规则firefox-container-{数字序号}是浏览器内核固定的逻辑,无法通过扩展接口修改。- 你调用创建接口时传入的
name参数是上下文身份在浏览器UI中展示的可读名称,和内部标识用的cookieStoreId是完全独立的两个属性,二者没有关联。
替代实现方案
如果需要通过自定义名称关联对应的上下文身份,可以在扩展本地存储中维护自定义名称和cookieStoreId的映射关系,示例逻辑如下:
// 自定义名称和cookieStoreId的映射存储 const containerMap = {}; function onCreated(context) { // 创建成功后存入映射表 const customId = "my-custom-id"; containerMap[customId] = context.cookieStoreId; console.log(`自定义标识 ${customId} 绑定的容器ID: ${context.cookieStoreId}`); } browser.contextualIdentities.create({ name: "my-thing", color: "purple", icon: "briefcase" }).then(onCreated);
后续需要调用对应容器的接口时,直接从映射表中通过自定义名称取出对应的cookieStoreId使用即可。
内容的提问来源于stack exchange,提问作者Pavol Biely
相关产品推荐
相关产品推荐

