- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 OSX 之上的 safari 中工作,使用核心图形,并且我有一个运行两个线程(主线程和渲染计时器线程)的插件。渲染计时器线程调用“NPN_InvalidateRect”,而主插件线程处理相应的事件并重绘自身。然而,这在 32 位 Safari 和 64 位 Safari 中的工作方式似乎有所不同:
问题:
是否有更好的方法来强制插件自行渲染,同时坚持 native NPAPI、核心图形以及对carbon&cocoa 事件模型的支持。
如果没有,我如何在运行时检测浏览器是作为 32 位应用程序运行还是作为 64 位应用程序运行,以便我可以选择调用哪些 NPN 函数。
谢谢
(交叉发布到firebreath,我将在两个地方发布回复)
最佳答案
首先,这个:
The rendering timer thread invokes "NPN_InvalidateRect"
这是一个严重的问题,除非你真的意味着你的渲染计时器线程导致 NPN_InvalidateRect 在主插件线程上被调用。 NPAPI 显然不是线程安全的,您需要在主线程上调用 NPN_InvalidateRect 等方法。
其次,你真的不应该调用 NPN_ForceRedraw。 Chromium、Firefox OOP、WebKit2 和几乎可以肯定 Safari 的 OOP 模式(这就是您在 64 位中获得的模式)将 NPN_ForceRedraw 视为无操作;强制立即重画的概念违背了 OOP 插件的整个模型。在所有情况下,您应该只调用 NPN_InvalidateRect,并相信浏览器会回调您。在 OOP 插件世界中,您不应期望能够强制浏览器在任何给定时刻呈现插件。
关于cocoa - Safari下的NPAPI自渲染插件(32位与64位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401889/
Chrome 正在逐步淘汰 NPAPI。编写具有跨浏览器支持的浏览器插件之类的 NPAPI 的替代方法是什么?我需要编写一个可以与基于桌面的已安装应用程序对话的浏览器插件。我的环境是这样的,我有一个桌
我知道如果我写一个 C++ 插件,那么我至少需要有 Linux、Mac、Windows 版本,但完整的组合列表是什么?许多浏览器都支持 NPAPI,所以这是否意味着完全相同的编译后的 NPAPI 插件
我需要为 Firefox、Chrome、Operah 和 Safari 开发一个迷你 ClickOnce 插件(最好是一个适用于上述所有的插件)。 我的插件需要能够以一键式方式运行应用程序。换句话说,
我想将字符串数组从 NPAPI 插件返回到 Javascript。目前我只使用普通的 NPAPI。我已阅读以下链接: NPVariant to string array http://www.m0in
我的查询类似于此 global.html is unable to load NPAPI plugin from safari-extension builder but its loading fr
我正在使用 Chrome 来显示我的小程序内容。但现在该支持已从 Chrome 中删除。请建议是否有其他方法可以在 Chrome 浏览器中显示小程序内容。我们赞赏最小的改变。 最佳答案 Oracle
我已经搜索了大约一个小时了,我已经觉得有点愚蠢了。在哪里可以找到 NPAPI 的下载?我浏览过Gecko Plugin API Reference有点,但找不到下载链接。我还下载了Gecko SDK
情况:我已经为我的 IE 用户编写了一个完美运行的 ActiveX 控件。我构建了 .ocx,对其进行了 CAB,签名,然后将其放置在带有 EMBED 标签的站点上。用户加载页面,黄色栏出现,询问他们
我正在使用 NPAPI 在 Javascript 中回调一个对象。在此调用之前,我正在调用的函数导致在 JavaScript 中正确调用函数,但在 NPN_Invoke 调用中失败。 代码片段: sB
我已经使用 firebreath 编写了 NPAPI 插件。它适用于所有注册的 mime 类型。该插件也已注册为 video/x-flv。现在,每当我在地址栏中输入一个 url,其响应包含 video
我正在编写一个包含两种插件类型的 NPAPI 插件: x-capture 用于从相机中捕捉一些视频 x-display 用于显示x-capture对象捕获的图像 我有以下使用该插件的 HTML/Jav
在我使用 FireBreath 和 OpenGL 编写完浏览器插件并使用对象标签嵌入插件后,我尝试在插件之上覆盖各种 HTML 元素。不幸的是,无论我如何尝试,标签和插件图形总是位于页面上任何其他 H
我正在尝试创建一个 Mozilla 浏览器插件,其唯一目的是使用 javascript 检测是否安装了我编写的应用程序。这是受到另一个 stackoverflow question and answe
我对 npapi 中的引用计数感到困惑。大多数情况下,我不知道哪种方法会增加引用计数。任何人都可以详细解释一下吗?为了方便起见,我在这里列出了最常用的 NPN_* 函数和我自己的理解: NPN_Cre
Chrome 和现在的 Firefox 现已逐步淘汰 NPAPI 插件。 NPAPI 折旧的可行解决方案是什么?我支持基于 java 的小程序,该小程序将不再在主要浏览器中运行。我需要一种替代方案,允
据我了解,浏览器公司不再对使用智能卡、小程序等的应用程序感兴趣。所以,我想问一下你们今后在没有 NPAPI 的情况下将采取的方法。 在我的公司,我们正在开发一个新的应用程序,它基本上是对 secret
我有一个在 Safari、Chrome 和 Firefox 中运行的 NPAPI 插件。我能够使用事件回调处理所有组合键,但我遇到的问题是某些组合键。 在插件中,我尝试使用 Command+O 来触发
我在 HTML 页面中嵌入了一个 NPAPI 插件。当我从浏览器的开发人员控制台调用方法时,一切正常 - 方法调用落在正确的插件实例上并正确执行。无论如何,当我从 JS 回调调用相同的方法时,例如单击
我想开发一个浏览器插件,用于在网络浏览器上进行 RTSP 流传输,我读到了有关 NPAPI 的信息,它可以执行 native 代码(C++)。但 Google Chrome 将来将不支持 NPAPI,
现在Chrome和 FireFox (FF 在较小但仍然相关的程度上)正在删除对 NPAPI(主要是 Java)和 Edge (formerly Spartan 的支持。不会有它,有什么选择? 我很欣
我是一名优秀的程序员,十分优秀!