2013-06-25 61 views
2

編輯:查看帖子末尾以獲得更多信息。Firebreath插件未在IE 10中加載

我想通過Firebreath框架(1.7.0)來創建插件來加載。我使用Internet Explorer 10以桌面模式運行在Windows 8上。我使用Firebreath附帶的內置測試FBTtestPlugin轉載了此內容。失敗是無聲的,因爲該對象元素是創建的,但沒有任何插件指定的屬性。如何去調試呢? Microsoft Internet Explorer兼容性工具報告該插件無法加載。 MSIECTT (該FBTtestPlugin負荷三個插件,因此三個錯誤)

我有其他(非FB)的插件在同一個環境中工作(如這裏的例子:像所有的例子http://msdn.microsoft.com/en-us/library/dd565667(v=vs.85).aspx工作正常從這個網站http://ie.microsoft.com/testdrive/browser/activexfiltering/Default.html)。

我已經嘗試了巨大的安全設置的組合,但在這裏是最輕鬆的一組我迄今如下:

  • 工具/安全/ ActiveX篩選:未選中 ActiveX Filtering is Off
  • Internet選項/安全/ Internet:未啓用「啓用保護模式」
  • Internet選項/安全/ Internet:處於自定義級別。在ActiveX下,除「限制性屬性」(如「允許ActiveX過濾」)外,所有內容都「啓用」。
  • 基於這些設置可以看到各種安全警告。 Security Settings

注:我不打算保留這些設置。我只想讓插件工作,然後向後重新啓用安全設置。

UPDATE 我想通了一部分,現在可以運行FB測試FBTestPlugin。爲了使IE的調試更容易,我將註冊表項HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth定義爲0,以限制瀏覽器使用一個進程。不幸的是,在IE10中,程序文件和程序文件(x86)中的iexplore.exe都指向64位版本的IE。這可防止32位插件運行(請參閱http://support.microsoft.com/kb/2716529),並且症狀是無提示失敗。

但是,我的插件仍然無法加載在IE中,上面的重新命名的問題仍然是打開的。問題仍然是無聲的加載失敗。不過,我認爲這可能與插件配置有關。兼容性測試工具中列出的CLSID(如上所示)被列爲全0,而不是有效的GUID。此外,註冊表看起來很時髦:HKCR \ Company.Name的關鍵字存在,就像HKCR \ Company.Name.1一樣,但都是空的(而不像在正常工作的插件中那樣具有CLSID子項)。預期的GUID確實存在,但是以虛假名稱「應用程序」。「。我現在正在深入研究在regsvr32運行時調用的代碼。

謝謝大家!

回答

5

我提供這個答案的希望是有人可以使用結果。

由於兩個原因,IE沒有加載插件。 1)TabProcGrowth註冊表項和IE 10的32/64位問題。(http://support.microsoft.com/kb/2716529) 請勿定義此密鑰。

2)我的插件描述使用了一個撇號(例如「Gluttco的插件」),這搞砸了組件的註冊。

詳細信息ON 2): 我追蹤了DllRegisterServer代碼,發現這個虛假的註冊表項是由於我的插件描述包含一個撇號。例如。 「喬的插件」。生成器(fbgen.py/cmake)生成了一個格式錯誤的FBControls.rgs文件(它沒有轉義引號,因此包含了一個字符串文字,例如(s'Joe's cool plugin').DllRegisterServer代碼regsvr32)在深入atlbase.h的時候使用了這個文件的內容(嵌入式?)。奇怪的是,解析器沒有檢測到錯誤(或者以某種方式錯誤地恢復)。從進程監視器中,我可以看到添加了一堆僞造的密鑰,然後再開始添加好的註冊表項

現在Firebreath插件描述不應該包含撇號(可能其他字符也是非法的)。對fbgen.py進行檢查可能是明智的,可能會出現escape,reject ,或者更換它們。

+1

將其標記爲問題的答案 – taxilian

+1

創建要求修復的請求(2):https://github.com/firebreath/FireBreath/pull/114 – mrts

+0

修復程序已合併到https://github.com/firebreath/FireBreath/commit/10eda67f1e986584feadde2606881d0f340c4cd1中 - 謝謝,taxilian! – mrts

4

搜索發現這一點:http://msdn.microsoft.com/en-us/library/dd565667(v=vs.85).aspx

你有沒有到位任何組策略,可能會影響它?我不認爲這與FireBreath直接相關,而是與activex配置直接相關...我也發現http://social.technet.microsoft.com/Forums/windows/en-US/90c3202c-448b-42b7-acf7-dab8dba7b000/one-or-more-activex-controls-could-not-be-displayed-because-either有幾件事你可以嘗試。

+0

感謝您在此處以及IRC提供的幫助。Firebreath是非常棒! – Tim

+0

...表示感謝,而不是+1有幫助的答案有點空...... =] – taxilian