原创 自定義protocol之newChannel

前面對實現新的protocol進行了研究,本文描述一下在實現protocolhandler時遇到的newChannel方法的實現。研究得不是很透徹,希望有人能與我進行交流。 前面研究得到的結論是newURI方法中返回一個nsIURI類型的

原创 firefox附加組件開發者指南(三)——XUL簡介(上)

這一章內容較多,故分三篇:XUL簡介、XUL中可用的窗體部件、其他XUL功能。 在學習如何開發擴展之前,我們來了解XUL,基於XML的用戶接口語言,XUL是擴展的基本組成之一。 概述 XUL概覽 XUL是一種基於XML的語言,是爲mozi

原创 使用js-ctypes——聲明類型

原文:https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes/Declaring_ty

原创 使用js-ctypes——處理數據

原文:https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes/Working_with

原创 用VS製作簡單dll的過程

今天嘗試了一把做dll。之所以去做dll是因爲之前發現firefox從gecko2.0開始支持JS-Ctypes,利用js-Ctypes可以直接使用

原创 爲firefox添加新的protocol

Adding a New Protocol to Mozilla 本文講述如何爲mozilla添加一個新的協議。實現該協議將要使用javascript和XPCOM,也包括了將其添加到現有的mozilla程序中。 概述 Mozilla支持一

原创 firefox附加組件開發者指南(三)——XUL簡介(下)

其他XUL功能 Overlay XUL的一個與衆不同的特性就是overlay。可以將多個XUL文檔聯合起來,並當做一個單獨的XUL文檔來處理。在Firefox中,這用來對各種功能進行模塊化並實現了擴展。 通過在XML聲明中插入一個xul-

原创 firefox調試記錄6——Firefox主窗口創建過程研究

到此爲止,可以說已經到了firefox比較關鍵的地方了,其打開過程弄得比較清楚了,現在先來理清楚firefox是如何創建瀏覽器窗口,並最終展示在用戶面前。這裏先分析一下AppShell->Run()開始調用到消息循環開始這個過程。 當程序

原创 firefox附加組件開發者指南(三)——XUL簡介(中)

XUL中可用的窗體部件 根元素 XUL文檔使用不同的根元素來實現不同的目的。本節我們將會看到三種典型的根元素:window、page和dialog。 根元素使用windowtype屬性作爲這種類型的窗口的標識符。例如,Firefox使用n

原创 firefox調試記錄8——小結

我調試跟蹤firefox源代碼的目的是找到firefox加載網頁文件到渲染頁面這個過程的處理代碼,我的這個目的到現在爲止還沒達到。但是對firefox的源代碼進行跟蹤和調試所涉及到的內容也基本上就是這些了。因此做一個關於調試跟蹤的小結。

原创 爲firefox定製about頁面的URL

在查閱如何註冊新協議的過程中發現了一種定製自己的about頁面的方式。感覺與添加新協議的過程極爲相似。順便嘗試了一下,結果成功了。下面將其過程記錄下來。 原始頁面在:https://developer.mozilla.org/En/Cus

原创 使用js-ctypes——聲明並調用函數

原文:https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes/Declaring_an

原创 firefox附加組件開發者指南(五)——創建一個firefox擴展(上)

本章篇幅較長,分上下兩部分發布,本章中的圖和清單4在原網站中沒有,因此這裏也沒有,感興趣的可以去原文補充。下面是譯文。 至今爲止,各個章節中獨立的介紹了相關的技術——XUL、javascript、CSS和XPCOM。本章中,我們討論如何將

原创 firefox附加組件開發者指南(四)——使用XPCOM:實現高級處理

本章描述如何利用javascript腳本語言使用XPCOM來實現高級的處理。 概述 Javascript沒有類似於用來打開文件以及進行字符編碼轉換的函數。要實現這些功能需要採用其他機制。IE使用activex來處理,在firefox中我們

原创 firefox附加組件開發者指南——譯序

本系列文章很適合作爲學習Firefox附加組件開發的參考。其中說明了Firefox擴展開發所需要使用到的技術,並對這些技術進行了簡明的介紹。翻譯完本系列文章,特別是第五章之後,我對Firefox附加組件開發的理解又深入了一步。 最初在MD