文章分類:Firefox

21 篇文章

在 Firefox 上建構 WebVR

Screen Shot 2015-10-05 at 12.03.57 PM
近年來在資訊業最火熱的話題無疑就是虛擬實境 (Virtual Reality,VR) 了。除了 Oculus 推出 Oculus Rift 之外,其他如 HTC、Google、Samsung 等科技大廠亦各別推出自己的解決方案。VR 目前在遊戲、 電影、多媒體內容都有其龐大的市場需求。Mozilla...

解析 XPCOM 物件的 Reference Count

在 Gecko 的實作裡,我們大量使用 smart pointer 作為指標傳遞間的媒介,而為了能完善的操作 reference count ,我們必須保證 reference count 的增減是 thread safe 的。若無法妥善處理 reference count 的增減而產生 race ...

看懂 XPCOM 的轉型函式

3369621175_e75eedb4e0_o
3369621175e75eedb4e0o Photo credit: Who? Me? | Flickr – Photo Sharing! 在研讀 Gecko 的程式碼時,常常會看到 doQueryInterface 與 doGetInterface 的用法出現,另外還有一個比較少見的 doQue...

XPConnect 遇到的小問題

在 XPCOM 的世界裡,透過 XPConnect 的幫忙,C 和 JavaScript 實作的元件可以互相地呼叫,因此我們可以自由選用合適的語言來開發各自的元件。 但是因為中間包了一層 wrapper,所以在某些特殊的情況下,程式的運作可能會不如你的預期:例如在 跨越語言的邊界 – 淺談 JS A...

謀智菜逼八談 XPCOM 實務入門

前言 關於 XPCOM,請參考 MDN 上 XPCOM 的簡介。MDN 上關於 XPCOM 的教學,有部分實作上的細節已經過時了。此外,MDN 上的教學偏向使用 XPCOM 編寫 gecko 的擴充元件,身為 Mozilla 菜逼八軟體工程師要學的當然是給 gecko 內部使用的 XPCOM!因此在...

標準化的錄影API

當 HTML5 發展日漸成熟之際,在多媒體的輸出原生支援方面,目前已經支援了大多數網路常見的格式,所以開發者可以使用 audio 或是 video tag 來進行影音播放控制。但輸入方面,目前各家瀏覽器並無統一的 API 實作,為解決此問題,W3C 委員會在 2013 年開始制定了MediaReco...

建構 Firefox OS 操作介面的基本元素: Fira Sans 字型

interface
字型是使用者介面的基礎,所有顯示在畫面上的資訊都是由圖跟文字構成的。舉凡使用者需要閱讀、了解文意、或是進一步進行操作動作選擇的地方,不論是一段說明文字、一個對話框、圖示下面的標題文字、或是確認、取消的按鈕、系統設定畫面…等等,皆需要文字來構成。其實在介面設計中,沒有刻意去注意的話,可能不會發現,原來...

像原生應用程式一樣的 WebApp?趕快學起來!

uidemos
經常收看謀智台客的讀者可能已經看過怎麼開發一個 (Firefox) WebApp,或是可在 MDN 上找到相關開發資訊。 簡而言之,Mozilla 提出的開放 WebApp 標準草案,允許把使用網頁技術製作的網頁做成 App 來使用。提供的方式除了 App 使用者所習慣的 App Store 模式(...

淺談 Cycle Collection

Reference cycle would hold the reference count.
什麼是 Cycle Collection ? Gecko 專案中,常常會使用 smart pointer 來管理動態配置的記憶體的釋放。當記憶體的 reference count 為零時,就判定為不會再被使用。然而如果物件互相持有,形成了 reference cycle,也就是謀智台客這篇「說說 n...

一起動手做吧!用迷你積木拼出一隻小火狐

nanoblock firefox
nanoblock firefox 難得破例不講技術,耶誕節快到了,應該要來點輕鬆的。 狐迷們,今天我們一起用積木來做一隻小火狐吧! 首先要準備的積木材料如下圖: nanoblockfirefoxblocks 從頭到尾分解步驟 底下開始詳細的圖文分解步驟,只要一步步照著做,很快就可以完成你的積木小火...

Gaia 的 Debug 神器

Nightly Debugger
開發前端的程式,一個基本的前端 debug 工具會幫我們及時揭露大部份的 HTML,CSS 和 JS,並且及時改 HTML 與 CSS,為 JS 下斷點,目前各大瀏覽器包括 Firefox,Chrome 以及 IE 都有這方面的支援,我就不在此一一贅述。那今天有什麼好用的工具可以幫助我在 Firef...

ECMAScript 6 Features in Firefox

所謂的 ECMAScript,其實就是我們日常在用的 Javascript,只是當初因為商標的問題,所以後來把這個語言的規範改叫作 ECMAScript。目前市面上的瀏覽器已經支援到 ECMAScript 5,也就是 ECMAScript 262 5th Edition了。但 ECMAScript ...

打造自己的世界-XUL Runner

XUL Runner 算是 Firefox 的兄弟之一,他允許我們用 Gecko 內部的元件設計一個擁有自己外觀(而不一定需要長的像是 Firefox)的應用程式。因為 Gecko 內部元件非常的豐富,而且 XUL Runner 也有跨平台的能力,使用 XUL Runner 可以簡化我們開發應用程式...

你丟我撿!神奇的 Firefox 內部記憶體回收機制

大家都知道 JavaScript 是一個很方便的語言,想要一個新物件? 沒問題,new 一下就有了。需要一個陣列來做暫存空間? 也是交給 new。不像其他,比如說 C,等較低階的語言,JavaScript 的使用者絕大多數時候都不必煩惱實際上資料被放到什麼地方,也不需擔心用完了卻忘記要交還給系統而造...

鑽進 Firefox OS 開發:淺談 Internal string

不論是哪個語言的程式設計師,都時常需要和語言或是框架的字串 (String) 打交道。舉凡傳遞訊息、寫 log,或當作資訊來儲存等等都會用到。今天就來和大家聊聊,在 Firefox OS 裡面,string 是怎麼被使用的。 Internal string / External string 首先要...

說說 nsCOMPtr 這東西

有看過 Gecko 的 C++ Source code 的人,一定見過這個東西:nsCOMPtr,有很多物件的指標都會被儲存到這類物件裡面,也猜得到他和指標有關係,但這東西到底意義何在?其實他就是 Gecko 裡面眾多 smart pointer 的一種。 C 和 C++ 語言中,令人頭痛的問題之一...

CSS 連這個也辦的到?! 淺談 CSS media queries

接續上週的介紹,今天來談談,為~~~什麼我們要多用 CSS 而少用 JS 來做動畫呢? 原因之一,就是今天的主角 media queries 啦!Media queries 主要可以用來對付來自四面八方,奇奇怪怪的解析度。 你或許會問,這些奇奇怪怪的解析度打哪來的呢?! 除了現在人手 N 支智慧型手...