Chrome扩展程序中的Chromeless窗口?

Der*_*會功夫 2 javascript google-chrome google-chrome-extension

所以最近我在Chrome网上应用店遇到了名为Type Fu的Webapp.令我惊讶的是,他们实际上创造了一个真正的无铬窗户.

在此输入图像描述

我想我是否可以在Chrome扩展程序中执行此操作,因为在大多数部分它们使用相同的API.但是,我找不到任何可以让我这样做的东西.

chrome.tabs.create 根本没用.

如果我不能在扩展中这样做,那将是疯狂的,因为在我看来,扩展应该比webapp(基本上是网页)具有更多"权力".

我无法按Ctrl + Shift + I甚至右键单击它.它就像我计算机上的真正本机程序.

一些按钮将打开另一个浮动的无铬窗口.

在此输入图像描述

aps*_*ers 6

...在大多数部分,他们使用相同的API

Chrome扩展程序旨在与浏览器进行交互.Chrome打包应用程序设计为独立应用程序,可独立于浏览器运行.他们的API 现在已经大相径庭.只需查看应用API列表扩展的等效列表,您就会发现它们完全不同.

在这种情况下,Type Fu使用chrome.app.windowAPI,特别frame: 'none'create函数的选项.

作为app.window建议的名称,它仅适用于打包应用程序,而不是扩展程序.基于扩展程序的chrome.windows.create方法最终将支持一个type: 'panel'提供视觉上类似功能选项(在Google的环聊扩展程序中查看它).它在API中描述了一个注释:

除非设置了' '标志,否则' panel'和' detached_panel'类型会创建一个弹出窗口--enable-panels.

目前只有环聊被列入白名单才能使用面板,但Chrome扩展程序有面板行为的讨论表明,您的扩展程序可以通过向key清单添加特定值来假装为环聊:

"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsDApubb73tPfYlNIFxDu3K3/EHgV6/YOJXJkld1OZ20jW/cOht1j0NggnXhQYuu1mXFUufud4I2N7b5ydyg09gcM9Va3Zk17RhNV9smbPHOd4XlzJeXifX/9MgHPu4FzCen3CiSXsOeAELJIXEuT28xICriuUko/rNPwGeIB9VwIDAQAB"
Run Code Online (Sandbox Code Playgroud)

但是,我不会依赖这种无证的行为; 谷歌可能会修复它,或者它可能在将来破坏别的东西.

在完全支持面板之前,您可以开始使用--enable-panel浏览器标记开发扩展,并希望在完成开发后默认启用该功能.