同域策略如何应用于 Firefox 和 Chrome 扩展程序中的后台脚本(非内容脚本)?

2024-06-20

据我了解,扩展中有两种类型的脚本,一种是从网页中的 DOM 运行并与之交互的“内容脚本”,它们受同源策略的约束;另一种是“内容脚本”。其他的是脚本,调用它们“扩展脚本”,在后台运行,可能会也可能不会与网页交互,例如main.js在火狐或背景.js在 Chrome 中。这是谷歌对扩展脚本的解释

“……有一个长期运行的脚本来管理某些任务或状态……后台页面是在扩展进程中运行的 HTML 页面。它在扩展的生命周期中存在,并且只有一个实例某个时间处于活动状态”

那么问题来了,同源策略如何适用“扩展脚本”?既然这些脚本独立于正在查看的网页上的内容,为什么要这样做呢?是什么domain无论如何,扩展脚本? (谷歌说“扩展尝试使用除自身之外的安全源” https://developer.chrome.com/extensions/xhr.html,但没有明确说明起源是什么。)

可以在扩展中完成以下操作吗?

示例一:从时间服务器获取时间,并将其显示在附加栏上。

示例二:一个扩展程序,检查任意域中最近关闭的页面(或已添加书签但已关闭的页面)是否已更新,如果更新则提醒用户。


我知道 Chrome 中的跨域 HTTP 和 Ftp 请求可以通过在声明权限 Http://*/ 后使用 XMLHttpRequest 来完成。但是火狐浏览器呢?其他协议怎么样,比如 smtp、ppp 等?

HTML5中的WebSocket,在扩展脚本中使用,是否受到同域策略的束缚?


Chrome 扩展程序(包括背景页面)与常规网页一样仅限于同源策略。但是,您可以在 Chrome 应用程序或扩展程序的清单中请求跨源权限,这将使您的 XHR 成功。因此,您应该能够使用此方案执行示例 1。我不确定你如何执行上面的示例 2。

在您的扩展的 manifest.json 中:

"permissions": [
    "http://www.google.com/"
  ],

我会让其他人回答有关 Firefox 的问题。

这里有一个包含更多信息的参考:http://developer.chrome.com/extensions/xhr.html http://developer.chrome.com/extensions/xhr.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同域策略如何应用于 Firefox 和 Chrome 扩展程序中的后台脚本(非内容脚本)? 的相关文章

随机推荐

  • 替换 prolog 中的部分表达式

    我需要简化序言中的身份 例如x 0 x x x 0 ETC 为此 我需要替换表达式的部分内容 比如x 0 by x 您能帮我更换吗 Prolog 的一个巧妙之处在于您可以非常轻松地解构算术表达式 您的基本模板将如下所示 simplify X
  • ASP.NET 更改模板字段中 Gridview 单元格中的文本和颜色

    我在 ASP net 中有 Gridview 显示数据 根据数据 它会根据单元格的值更改颜色和文本 当列不是模板字段时 这可以正常工作 WORKS WHEN IS NOT A TEMPLATE FIELD if e Row RowType
  • 同源请求会导致“Access-Control-Allow-Origin 不匹配”错误,尽管来源当然匹配。注意:具有带“沙箱”的 CSP 策略

    当 的时候exact sameCORS 及其网页的 URL 都使用了 URL 但我在 Firefox 开发控制台中仍然收到相同的错误消息 浏览器控制台消息为 Cross Origin Request Blocked The Same Ori
  • 在Python中合并两个不同长度的文件

    我有两个文件 其列数相同 但行数不同 第一个文件是时间戳列表和单词列表 第二个文件是时间戳列表 每个单词中都有声音列表 即 9640 12783 she 12783 17103 had and 9640 11240 sh 11240 127
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 如何在 Ext.js 中自动完成 html 输入标签?

    如果您使用 Ext js 库 如何在输入文本区域中进行自动完成 更准确地说 如何根据迭代 Ajax 请求进行自动完成 例如jQuery 自动完成插件 http docs jquery com Plugins AutoComplete aut
  • Spring Neo4j不保存数据

    我创建了新的应用程序 它应该通过存储库将 Person 对象保存到 neo4j 中 但是当我使用 findAll 方法时 我没有任何项目 我正在使用 Spring Boot 这是我的配置 package com example import
  • Google Chrome 客户端的 ASP.NET MVC 路由问题

    我的 Silverlight 4 应用程序托管在 ASP NET MVC 2 Web 应用程序中 当我使用 Internet Explorer 8 浏览时 它工作正常 但是 Google Chrome 版本 5 无法找到 ASP NET 控
  • 在调试或发布控制台应用程序中创建文件夹

    我在 vs2010 C 中有一个控制台应用程序 在项目中 我添加了一个文件夹 右键单击项目 添加 gt 文件夹 我希望在编译应用程序 调试或发布 时 然后该文件夹将在调试或发布目录中创建 如果不存在 那可能吗 控制台应用程序是一个守护程序
  • 检查 WebView 元素时的 UiAutomator 错误

    I have recently started automation testing in android and was using UiAutomator tool for inspecting UI elements Surprisi
  • 使用healpy通过HEALPix像素化制作2D直方图

    数据是天空中物体的坐标 例如如下 import pylab as plt import numpy as np l np random uniform 180 180 2000 b np random uniform 90 90 2000
  • android edittext中的字符映射

    我想让我的编辑文本就像我写字符 g 时一样 它是相关的映射自定义字符应该写成印地语中的 我认为应该有字符映射 但没有知识任何人都可以帮助我 怎么做 其他应用程序https play google com store apps details
  • 是否可以@Lazy 初始化Spring @Value?

    是否有可能 Lazy初始化一个Spring Value e g Lazy Value someConfig private String someConfig 我特别提到的场景是通过 JNDI 设置的变量 并且一个嵌入式 Tomcat 容器
  • 强制 Mpeg2 解复用器使用 ffdshow 渲染 H 264 数字电视视频

    不幸的是 我花了很多时间尝试使 DirectShow 的 DTVViewer 示例正常工作 但没有成功 DVBT网络的视频格式是H264 我发现IntelliConnect行为IFilterGraph更喜欢使用 Mpeg2 视频格式 对于那
  • 错误域=kAFAssistantErrorDomain 代码=209“(空)”

    我面临着一个问题SFSpeechRecognizer 启动应用程序几秒钟后 我开始收到错误消息 错误域 kAFAssistantErrorDomain 代码 209 空 和 错误 域 kAFAssistantErrorDomain 代码 2
  • python 单击帮助格式化换行符

    我发现我的 EPILOG 中没有保留换行符 我想知道为什么如果我看到只有当一行有换行符时才会保留74人物 http click pocoo org 5 commands import click sys def main caller ar
  • Celery工人变量共享问题

    我正在使用Python并且celery http www celeryproject org在一个项目中 在项目中 我有两个文件 celeryconfig py BROKER URL amqp guest guest localhost 5
  • fread 将空导入为 NA

    我正在尝试导入带有空白的 csv 读取为 不幸的是他们都读作 NA now 为了更好地演示问题 我还展示了如何NA NA and 都映射到同一事物 除了最底部的示例 这将妨碍简单的解决方法dt is na dt lt gt write cs
  • 如何使用导航组件在单一活动设计中使用偏好?

    我想使用导航组件迁移到单一活动设计 我正在使用一项活动 其他活动是片段 对于某些屏幕 我只有布局 没有偏好 使碎片膨胀没有问题 但当我尝试按偏好工作时 我遇到了问题 我的要求是 我需要在片段中膨胀工具栏和首选项列表 我的做法 使用以下代码添
  • 同域策略如何应用于 Firefox 和 Chrome 扩展程序中的后台脚本(非内容脚本)?

    据我了解 扩展中有两种类型的脚本 一种是从网页中的 DOM 运行并与之交互的 内容脚本 它们受同源策略的约束 另一种是 内容脚本 其他的是脚本 调用它们 扩展脚本 在后台运行 可能会也可能不会与网页交互 例如main js在火狐或背景 js