# 1. Manifest V3 host_permissions 与 optional_permissions/optional_host_permissions 按需申请的工程价值 A 扩展在安装时即可获得全部 optional 权限,无需用户操作 B optional 权限必须在用户手势(如点击)回调中通过 chrome.permissions.request() 申请 ✓ 正确答案 C optional 权限与 host_permissions 完全等价,没有区别 D 申请 optional 权限后无法撤销,只能重装扩展
# 2. Manifest V3 Service Worker 替换 background page(持久后台) A 它像 MV2 background page 一样常驻内存,直到扩展被卸载 B 它可以在任意嵌套回调中注册事件监听器 C 它可以使用同步 localStorage 保存状态 D 它空闲后会被终止,事件发生时重新唤醒,状态需持久化到 storage ✓ 正确答案
# 3. MV3 content_script 与 page context 的 MAIN world 注入与 ISOLATED 隔离的工程取舍 A 两者完全隔离,不共享 DOM B 它们共享 DOM,但 JS 对象是否隔离取决于 world 类型 ✓ 正确答案 C MAIN world 注入无法访问页面脚本的全局变量 D ISOLATED world 可以访问页面脚本的所有全局对象
# 4. Message Passing(chrome.runtime.sendMessage、chrome.tabs.sendMessage、chrome.runtime.connect 长连接) A chrome.runtime.connect 用于一次性消息传输 B 长连接在 MV3 中已完全废弃 C 在 onMessage 中异步响应时需返回 true 以保持 sendResponse 通道有效 ✓ 正确答案 D chrome.tabs.sendMessage 会把消息发送给扩展所有页面
# 5. MV3 扩展的 Service Worker 与 offscreen document 的协作 A 它用于替代 Service Worker 的所有能力 B 它只能由 content script 创建 C 它创建后永远驻留,无法关闭 D 它可在 Service Worker 中通过 chrome.offscreen.createDocument 创建,用于弥补无 DOM 的限制 ✓ 正确答案
# 6. Permissions(permissions 数组)与 Host Permissions(host_permissions) A permissions 声明 API 权限,host_permissions 声明可访问的站点 ✓ 正确答案 B host_permissions 只能声明 storage 等内置权限 C 两者都可声明 API 权限 D 两者完全等价,可互换使用
# 7. Firefox 对 MV3(declarativeNetRequest、service worker)的支持现状与差异及 polyfill 策略 A Firefox 的 MV3 在部分特性(如持久化 background、webRequest)与 Chrome 存在差异 ✓ 正确答案 B 它必须使用 Chrome 专有 API 才能工作 C Firefox 完全不支持 MV3,只支持 MV2 D Firefox 与 Chrome 的 MV3 实现完全一致
# 8. MV3 扩展的 User Scripts API(独立权限申请) A 它运行在 MAIN world,需要独立的 userScripts 权限 ✓ 正确答案 B 它只能由 Chrome 内置,扩展无法使用 C 它与 content_scripts 完全等价,没有区别 D 它不需要任何额外权限即可使用
# 9. Action API(toolbar popup)、Side Panel API(侧边栏面板) A popup 适合轻量临时操作,side panel 适合需要持续驻留的交互 ✓ 正确答案 B Side Panel 只能用于临时弹窗 C chrome.action 无法显示 badge 文字 D Side Panel API 完全替代了 popup 功能
# 10. Manifest V3 的 declarativeNetRequest 与 webRequest 阻塞式的对比 A DNR 是过程式 API,需要扩展进程逐请求处理 B DNR 规则数量没有上限 C webRequest 阻塞式 API 在 MV3 中完全不受影响 D MV3 中 DNR 由浏览器内核声明式匹配,性能更好,且 webRequest 阻塞式被移除 ✓ 正确答案
# 11. chrome.storage.local/sync/managed 在配额与跨设备同步的工程取舍 A chrome.storage.sync 用于存大数据,配额为 10MB B chrome.storage.local 存本地大数据,chrome.storage.sync 存跨设备小数据 ✓ 正确答案 C 三者配额完全相同 D chrome.storage.managed 是存私有数据的地方
# 12. native messaging 与本地进程通信的机制(Native Messaging Host manifest、stdio 协议)与适用场景 A 它通过 HTTP 协议与远程服务器通信 B 它通过 stdio 上的 4 字节长度前缀 + JSON 消息与本地进程通信 ✓ 正确答案 C 它不需要任何 manifest 即可工作 D 它只能与扩展自身代码通信
# 13. 扩展更新机制(update_url、更新检查间隔)与企业静默分发(策略强制安装、托管存储 managed storage) A ExtensionInstallForcelist 策略可强制静默安装,配合 update_url 实现自托管分发 ✓ 正确答案 B managed storage 是用来存用户私人数据的 C 扩展只能从 Chrome Web Store 更新,无法自托管 D 更新检查间隔固定为 1 秒
# 14. offscreen document 的适用场景边界(DOM 解析、音频处理、剪贴板)与单实例限制 A 同一扩展可以创建任意多个 offscreen document B 它可以在 main world 中创建 C 同一扩展同时只能有一个 offscreen document,且创建时需声明 reasons ✓ 正确答案 D offscreen document 创建后无法关闭
# 15. Content Scripts(content_scripts、隔离世界 ISOLATED)与页面脚本通信 A 页面脚本可以直接调用 content script 的函数 B 常用 window.postMessage 或 CustomEvent 桥接二者 ✓ 正确答案 C 二者无法通信 D content script 与页面脚本共享全部 JS 全局变量
# 16. Chrome Extension 的 chrome.tabs API 在批量操作的应用 A chrome.tabs.query 无需任何权限即可读取所有标签 URL B 读取标签 URL 通常需要 tabs 权限或对应 host_permissions ✓ 正确答案 C chrome.tabs.discard 会关闭标签页 D 批量操作可以无限循环无性能影响
# 17. 跨扩展通信(chrome.runtime.sendMessage、externally_connectable) A 任意扩展都能向其他扩展发送消息,无需配置 B onMessageExternal 用于接收扩展内部消息 C externally_connectable 用于声明允许通信的扩展 ID 与 Web 源 ✓ 正确答案 D externally_connectable 只影响 content script
# 18. chrome.scripting.executeScript 在动态注入脚本的工程价值 A 它只能在 manifest 中静态声明 B 它不需要任何权限 C 它允许运行时按需向指定 tab 注入函数或文件 ✓ 正确答案 D 它只能注入到 popup 页面
# 19. Chrome Extension 的 chrome.webRequest API 在 MV3 的迁移与限制 A 阻塞式 webRequest 在 MV3 中完全可用 B webRequest 与 declarativeNetRequest 完全等价 C MV3 中没有任何 webRequest API D MV3 移除了阻塞式 webRequest,建议迁移到 declarativeNetRequest ✓ 正确答案
# 20. Content Script 的 matches 与 exclude_matches 在范围控制的工程价值 A matches 指定注入站点,exclude_matches 排除特定站点 ✓ 正确答案 B matches 与 exclude_matches 等价 C content_scripts 无法控制注入范围 D matches 用于排除站点,exclude_matches 用于指定注入站点
# 21. Chrome Extension 的 chrome.contextMenus 在右键菜单的工程应用 A 它需要 "storage" 权限 B 菜单项只能在 manifest 中声明 C contexts 用于指定菜单出现的上下文类型 ✓ 正确答案 D 右键菜单点击不会触发任何事件
# 22. Manifest V3 的 web_accessible_resources 在跨扩展共享的现代边界 A 资源一旦声明,所有页面都能访问 B MV3 已移除 web_accessible_resources C MV3 中需为每个资源声明允许访问的匹配源 ✓ 正确答案 D 它只能用于 CSS
# 23. Chrome Extension 的 chrome.notifications 在系统通知的工程实践 A 它不需要任何权限 B 通知只能显示文本,无法设置按钮 C 创建通知需 "notifications" 权限,并支持点击/关闭事件 ✓ 正确答案 D 通知创建后无法被用户关闭
# 24. 扩展权限中 all_urls 与可选 Host Permissions 的工程取舍 A all_urls 不会触发任何权限警告 B optional_host_permissions 可减少安装警告,按需申请站点权限 ✓ 正确答案 C optional_host_permissions 与 all_urls 完全等价 D 扩展必须声明 all_urls 才能工作
# 25. Chrome Permissions/Permissions-Policy 与扩展 CSP extension_pages 的工程价值 A 扩展可以自由加载远程 CDN 脚本 B 扩展 CSP 与 Permissions-Policy 是同一个概念 C MV3 扩展页面默认禁止内联脚本与 eval ✓ 正确答案 D CSP 只影响 content script
# 26. Chrome Web Store 审核政策与开发者控制台管理 A 审核不关心权限是否过度 B 扩展可以随意远程下载代码 C 审核关注最小权限、无远程代码、隐私合规等 ✓ 正确答案 D 审核通过后无法再更新
# 27. 扩展安全最佳实践(最小权限、CSP、来源验证) A 应尽量申请 all_urls 权限以方便开发 B 应保持严格 CSP、最小权限并对消息来源做校验 ✓ 正确答案 C 可以在扩展中硬编码 API 密钥 D 允许 eval 以提升灵活性
# 28. DevTools Extension API(chrome.devtools.panels、chrome.devtools.network) A 它用于创建系统通知 B 它可创建 DevTools 面板并监听网络请求 ✓ 正确答案 C 它无法访问被检查页面 D 它只能在后台 service worker 使用
# 29. OAuth2 PKCE 在 Chrome Identity API(chrome.identity.launchWebAuthFlow) A PKCE 不需要 code_challenge B 隐式授权比 PKCE 更安全 C launchWebAuthFlow 无法发起 OAuth 流程 D PKCE 在授权码流程中引入 code_verifier 增强安全性 ✓ 正确答案
# 30. webextension-polyfill 与 browser/chrome 命名空间差异及 Promise/callback 兼容层工程价值 A 它提供统一的 Promise 风格 API,兼容 Chrome/Firefox ✓ 正确答案 B 它只能用于 Chrome 扩展 C 它把 browser API 改为 callback 风格 D 它只能解决 CSS 兼容问题
# 31. Enterprise 策略(ExtensionSettings/ExtensionInstallForcelist)对企业分发的作用与离线部署 A ExtensionSettings 只能控制安装来源 B 企业扩展无法离线部署 C ExtensionInstallForcelist 用于强制静默安装扩展 ✓ 正确答案 D 管理策略对扩展运行无影响
# 32. 跨浏览器扩展的 manifest.json 差异与条件编译(build-time manifest 生成)的工程实践 A 所有浏览器 manifest 完全一致 B manifest 只能手动维护 C 浏览器差异只能在运行时处理 D 构建期生成 manifest 可处理不同浏览器的字段差异 ✓ 正确答案
# 33. Manifest V3 替代 MV2 的关键变化 A MV3 用持久化 background page B MV3 允许远程代码加载 C MV3 保留 webRequest 阻塞式 API D MV3 用 Service Worker 替代后台页,并改用 declarativeNetRequest ✓ 正确答案
# 34. MV3 Service Worker 非持久化带来的状态保活问题与 alarms、chrome.storage、事件驱动重建的替代方案 A 应使用 chrome.storage 持久化状态并用 chrome.alarms 周期性唤醒 ✓ 正确答案 B Service Worker 不会终止 C 内存状态会一直保留,无需处理 D 定时器在终止后仍会执行
# 35. MV3 web_accessible_resources 在内容脚本与页面间通信的工程价值 A 它让页面脚本直接访问扩展内部对象 B 它通过暴露受控资源让页面加载,配合 DOM 事件通信 ✓ 正确答案 C MV3 中 WAR 已移除 D WAR 资源可被任意网站加载
# 36. Options Page、Offscreen Document API A 两者都面向用户交互 B Offscreen Document 用于展示设置 C 两者等价 D Options Page 提供设置界面,Offscreen Document 补充后台 DOM 能力 ✓ 正确答案
# 37. Manifest V3 的 content_security_policy 在脚本执行的现代应用 A 它允许扩展页面加载远程脚本 B CSP 只影响 content script C 扩展无法配置 CSP D 默认禁止远程代码、eval 与内联脚本 ✓ 正确答案
# 38. chrome.declarativeNetRequest 规则上限与动态规则(updateSessionRules) A 规则数量没有上限 B 动态与会话规则合计约 5000 条,用 updateSessionRules 管理 ✓ 正确答案 C 规则只能在 manifest 中声明 D 会话规则在扩展重装后仍保留
# 39. 扩展的 analytics 与 telemetry 在隐私合规(GDPR)下的工程边界与用户同意机制 A 扩展可以无限制收集用户浏览历史 B GDPR 只适用于 Web 页面 C 遥测不需要用户同意 D 需最小化收集、提供同意/退出机制并声明隐私政策 ✓ 正确答案