在X11下获取Firefox的窗口id(WId)

在X11下获取Firefox的窗口id(WId),firefox,firefox-addon,gtk,x11,Firefox,Firefox Addon,Gtk,X11,我想知道如何从Firefox插件/扩展中获取Firefox的X11 WId窗口id 已签出nsIWindowMediator、nsIXULBrowserWindow、nsIXULWindow,但尚未找到它 我不想用通常的方法滥用Xlib来搜索窗口树,寻找与当前窗口属性相匹配的窗口,如标题、类型等。我认为,在Linux上,唯一可以获得它的地方是它的类型是GtkWidget*,应该可以从中获得窗口id。为顶级窗口获取NSIMbeddingSiteWindow实例相对简单: Components.ut

我想知道如何从Firefox插件/扩展中获取Firefox的X11 WId窗口id

已签出nsIWindowMediator、nsIXULBrowserWindow、nsIXULWindow,但尚未找到它


我不想用通常的方法滥用Xlib来搜索窗口树,寻找与当前窗口属性相匹配的窗口,如标题、类型等。

我认为,在Linux上,唯一可以获得它的地方是它的类型是GtkWidget*,应该可以从中获得窗口id。为顶级窗口获取NSIMbeddingSiteWindow实例相对简单:

Components.utils.impotresource://gre/modules/Services.jsm; var embedding=Services.ww.getchromeforwindow .QueryInterfaceMonents.interfaces.NSIMbeddingSiteWindow;
问题是siteWindow属性用[noscript]注释器标记-无法从JavaScript访问它。因此,我必须使用C++编写的二进制XPCOM组件来实际检索该属性。不知道这对你来说是否是一个可接受的解决方案。唯一的选择应该是搜索窗口树。

确实不想使用XPCOM,而是只执行js ctypes实现。但如果没有其他可能,这是一个可接受的解决方案。ThanksWas希望有更多的想法猜测未回答的问题会吸引更多的注意力,所以我把它留了一会儿。