最近折腾了好久, 才总算大致弄明白了如何编写一个 mozilla 的 plugin. 这玩意儿的资料也实在太少了, 相对与 Extension 和 XPCom 而言…
关于 plugin 的一些机制和原理, 可以从 Gecko_Plugin_API_Reference 获得.
在这我主要是提下怎么编译一个 Plugin(感谢 Paul 的热心帮助)
相关工具: gecko sdk 以及 mozilla source
关于 plugin 的示例我们可以在 mozilla/modules/plugin/tools/sdk/samples 里找到.
以下给出个编译 basic 的 Makefile

?Download Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CXX   = g++
CPPFLAGS += -fno-rtti \
-fno-exceptions \
-shared  
 
# Change this to point at your Gecko SDK directory. 
GECKO_SDK_PATH = /home/duo/gecko-sdk
 
GECKO_DEFINES  = -DMOZ_X11 -DMOZILLA_STRICT_API
 
GECKO_INCLUDES = -I $(GECKO_SDK_PATH)/include
 
PLUGIN_INCLUDES = -I ../../include
 
GECKO_LDFLAGS =  -L $(GECKO_SDK_PATH)/lib -rdynamic  -lXi -lXext -lX11 -lm -lXt
 
FILES = plugin.cpp ../../common/*.cpp
 
TARGET = libpluginbasic.so
 
build: 
	$(CXX) -Wall -Os -o $(TARGET) $(GECKO_CONFIG_INCLUDE) $(GECKO_DEFINES) $(PLUGIN_INCLUDES) \
	$(GECKO_INCLUDES) $(GECKO_LDFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(FILES)
 
clean: 
	rm $(TARGET)

编译后将 libpluginbasic.so 拷贝至 .mozilla/plugins 目录下即可.

PS1: 下一步得搞定怎么写一个使用 GTK 库的 Plugin 了…继续研究 mplayer-plugin 中…
PS2: 关于 IE 浏览本 Blog 的时候 simple page 似乎会因为 coolcode 生成的高亮代码过长移动到下方…这个问题我现在也不知道怎么解决, 所以还是推荐大家用 Firefox 吧…

Related posts:

  1. A mozilla gtk plugin sample
  2. Creating a simple C++ component
  3. 目前的进展(Mozilla Plugin)
  4. CHMReader compile issues on Mac
  5. Get DOM CSS properties by using headless Mozilla

Tags: , ,



Leave a Comment