在 Firefox 上建構 WebVR

近年來在資訊業最火熱的話題無疑就是虛擬實境 (Virtual Reality,VR) 了。除了 Oculus 推出 Oculus Rift 之外,其他如 HTC、Google、Samsung 等科技大廠亦各別推出自己的解決方案。VR 目前在遊戲、 電影、多媒體內容都有其龐大的市場需求。Mozilla 的工程師與設計師正著手將 VR 帶到 Open Web 之上,讓每個人都能透過瀏覽器輕鬆享受 VR.....深入了解

解析 XPCOM 物件的 Reference Count

在 Gecko 的實作裡,我們大量使用 smart pointer 作為指標傳遞間的媒介,而為了能完善的操作 reference count ,我們必須保證 reference count 的增減是 thread safe 的。若無法妥善處理 reference count 的增減而產生 race condition ,會造成至少以下兩個問題: 兩條以上的 thread 同時執行了 del.....深入了解

看懂 XPCOM 的轉型函式

Photo credit: Who? Me? | Flickr - Photo Sharing! 在研讀 Gecko 的程式碼時,常常會看到 do_QueryInterface 與 do_GetInterface 的用法出現,另外還有一個比較少見的 do_QueryObject。這三個函式的主要用途都是對於一個物件請求另一個介面的物件。在介紹這三個函式之前,我們先介紹 QueryIn.....深入了解

XPConnect 遇到的小問題

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

謀智菜逼八談 XPCOM 實務入門

前言 關於 XPCOM,請參考 MDN 上 XPCOM 的簡介。MDN 上關於 XPCOM 的教學,有部分實作上的細節已經過時了。此外,MDN 上的教學偏向使用 XPCOM 編寫 gecko 的擴充元件,身為 Mozilla 菜逼八軟體工程師要學的當然是給 gecko 內部使用的 XPCOM!因此在編寫上會有些微不同的地方。這篇文章將修改 gecko 附帶的 XPCOM 範例,並將其加入 nec.....深入了解

自己的瀏覽器自己改 (Part I) -利用Firefox Addon SDK開發簡單的附加元件

Firefox 最受歡迎的特色之一就是量多而且質精的附加元件 (Add-on),在 Firefox Add-ons 網站 [1] 您可以找到各式各樣的附加元件滿足您的各種上網需求。在這篇文章中我們將會介紹如何利用 Firefox Add-on SDK [2] 來撰寫簡單的附加元件。我們會教您如何利用附加元件來改變網頁的外觀與行為,即使不是自己架設的網站,我們也能隨心所欲的改善它們的使用經驗。 準.....深入了解

有 Mercurial Queue 的感覺真好!從 nothing 到 checkin-needed

Mercurial(hg) 是一款 mozilla 內部使用的版本控制系統,而 Mercurial Queue(MQ) 則是一個使用 Mercurial 時常用的套件,讓 up-stream 和 down-stream 的管理相處的和樂融融。雖然已經有非常多文件可供參閱[1][2][3][4],但是一個真實案例範例勝過萬卷規格。我們來利用朱尼爾小明的一天來看看 Mercurial Queue 是怎.....深入了解

Firefox OS 之請你跟我這樣說 ~ [SpeechSynthesis]

相信大家多多少少玩過 iOS 手機上的 Siri 或是 Android 手機上的 Google Now! 等語音辨識功能。  也或許有經驗因為長時間低頭滑手機太累而利用系統中的朗讀功能來"聽"文章。  而這兩種功能 1. Automated Speech Recognition. (ASR) 2. Text to Speech (TTS)/ Speech Synthesis ~目前究竟隱藏在 Fi.....深入了解

標準化的錄影API

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

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

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