gpt4 book ai didi

google-chrome - 在 Chrome 中使用 Pepper/PPAPI Flash(通过 Selenium)时如何绕过 "Flash Camera and Microphone Access"弹出窗口?

转载 作者:行者123 更新时间:2023-12-02 15:59:24 27 4
gpt4 key购买 nike

Chrome 支持两种类型的 Flash:NPAPI 和 PPAPI (Pepper)。这两种实现似乎以不同的方式处理摄像头和麦克风权限。具体来说,PPAPI (Pepper) 似乎并不尊重之前授予的任何许可。

使用默认的 NPAPI,当我第一次导航到请求使用计算机摄像头和麦克风的权限的 Flash 站点时,Adobe Flash 弹出窗口会询问用户允许或拒绝访问。我允许访问,并且该授予会被记住。下次我导航到该网站时,会自动授予权限,而不会弹出窗口。

当我想使用 PPAPI (Pepper) Flash 进行测试时,我向 Chrome 指定“--enable-bundled-ppapi-flash”和“--disable-npapi”命令行参数。在此模式下,之前的授权将被忽略,并且每次都会显示弹出窗口。我还没有弄清楚如何在 Selenium 中检测到这一点并单击“允许”。

有谁知道如何绕过此弹出窗口,通过单击“允许”或完全禁用它吗?

谢谢。

更新:我发现非 Pepper Flash 将摄像头/麦克风权限存储在名为“settings.sol”的文件中,该文件存储在请求访问的站点特定的目录中。例如,在 Windows 上,当 1.2.3.4 的主机请求访问时,会创建以下文件:

C:\Users[用户]\AppData\Roaming\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys#1.2.3.4\settings.sol

注意“Flash Player”中的空格。该文件是本地共享对象,编码为 AMF。我使用 Python pyamf 包创建一个授予站点永久访问权限的文件:

from pyamf import sol

permissions = sol.SOL ('1.2.3.4/settings')
permissions[u'always'] = True
permissions[u'allow'] = True
permissions[u'klimit'] = 100
sol.save (permissions, 'my-settings.sol')

当我将其复制到适当的目录时,会自动授予访问权限。但同样,这对 Pepper Flash 不起作用。

Pepper Flash 会忽略此目录,而是为每个 Chrome 实例获取一个新的临时目录:

C:\Users[用户]\AppData\Local\Temp\scoped_dir5976_6686\Default\Pepper Data\Shockwave Flash\WritableRoot#SharedObjects\6DMDJWLP\macromedia.com\support\flashplayer\sys#1.2.3.4\settings.sol

不幸的是,每次调用时目录都会发生变化。如果我能以某种方式发现该目录的名称,那么我就可以在请求访问之前上传该文件。

但我不知道如何发现这个目录的名称。

最佳答案

事实证明,我的问题是特定于 Selenium 以及我如何使用 Selenium 的。

首先回到NPAPI Flash,它将其在Windows上的权限存储在用户目录下的子目录中;例如:

C:\Users[user]\AppData\Roaming\Macromedia\Flash  Player\macromedia.com\support\flashplayer\sys

Pepper Flash 不使用此目录的权限,因此不遵守存储在那里的设置。相反,它将其权限文件存储在 Chrome 用户数据目录下的子目录中。

当我通过 Selenium 创建 Chrome 浏览器实例时,会为 session 创建一个临时用户数据目录,例如:

C:\Users[user]\AppData\Local\Temp\scoped_dir5976_6686

Pepper Flash 在此目录下存储其权限文件,但当浏览器 session 结束时,该临时目录被删除,并且设置被忘记。

解决方案很简单:通过 Selenium 启动 Chrome 时,通过命令行参数指定 Chrome 用户的数据目录:

"user-data-dir=C:\\Users\\[user]\AppData\Local\Google\Chrome\User Data"

Pepper Flash 会将其权限存储在该目录中,并且由于它是一个永久目录,在浏览器 session 结束时不会被删除,因此下一次实例时该目录仍会存在,因此会记住授予的权限。

关于google-chrome - 在 Chrome 中使用 Pepper/PPAPI Flash(通过 Selenium)时如何绕过 "Flash Camera and Microphone Access"弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com