Dart SpawnDomUri:限制到特定的Dom节点

Dart SpawnDomUri:限制到特定的Dom节点,dart,dart-isolates,Dart,Dart Isolates,我想开始一些隔离,它在我的网页中操纵一个特定的区域。 为了实现这一点,我通过函数SpawnDomUri创建了这样一个隔离,该函数能够访问DomTree。 显然,一些恶意/错误的隔离可能会改变整个网页,这可能是不可取的 所以我的问题是: 是否可以将Dom隔离(通过SpawnDomUri启动)的访问限制到特定的Dom节点(包括ShadowRoots) 致以最良好的祝愿, 亚历克斯我认为这是不可能的。我曾经看到MS的一个实验,尝试允许这种沙箱;但我不相信今天任何主流浏览器都有能力做到这一点 大多数人倾

我想开始一些隔离,它在我的网页中操纵一个特定的区域。 为了实现这一点,我通过函数SpawnDomUri创建了这样一个隔离,该函数能够访问DomTree。 显然,一些恶意/错误的隔离可能会改变整个网页,这可能是不可取的

所以我的问题是:

是否可以将Dom隔离(通过SpawnDomUri启动)的访问限制到特定的Dom节点(包括ShadowRoots)

致以最良好的祝愿,
亚历克斯

我认为这是不可能的。我曾经看到MS的一个实验,尝试允许这种沙箱;但我不相信今天任何主流浏览器都有能力做到这一点


大多数人倾向于使用iFrame以这种方式(正确或错误!)隔离它们。

我想到的唯一解决方案是使用非DOM隔离并在根隔离上公开API,通过发送只公开/执行允许调用的消息来访问该API。

这当然很麻烦,但正如Danny所说,您的需求没有直接的支持。

您有成功的经验吗?另请看这个(我的)问题:应该可以构建一个库来抽象这些麻烦。本质上,这就是pNaCl(本机客户端)在Linux上所做的。它在一个进程中运行您的程序,该进程不能执行任何系统调用,除非读取和写入它被授予访问权限的文件描述符。Chrome读取消息,评估请求的内容是否应该被允许,如果允许,它将执行系统调用。有很多可能,但必须有人来实施;-)是的,那就是臭名昭著的图灵柏油坑。一切皆有可能,但没有什么有趣的事是容易的。至少在我们有很多积木之前。看看NaCl,这是一只多么复杂的野兽,多少人花了多少年才把它变成现在的样子。制作网页之所以容易,只是因为人们花了十五年的时间来构建网页浏览器等等。