firefox 自写底层扩展,源码简介
还记得2010年的时候,那时候开始喜欢上了js,经常逛MDN
一开始写些简单的油猴脚本,慢慢的接触了扩展开发,发现用自己的js知识 加上firefox的插件API,可以完成好多功能。
看了很多插件的源代码,集成很多插件功能,代码也是重构了好几个版本(基于FF功能,Components.utils.import封装了require模块加载,sqlite数据库操作,http拦截, 定时任务,Prefs操作等)
也发现FF插件其实很不安全(可以拦截http请求进行修改,进行中间人攻击)
不知不觉就写了2年。
后来FF也有了一套api工具包,我也主要通过aauto写相关的桌面程序了,就再没有更新过
特写这篇博文,记录下曾经写过的插件api功能
github项目地址: https://github.com/legu2009/UserJS
该插件为基础api包,通过overlay.xul,在chrome级别插入script结点引用
简单介绍下文件夹和功能,时间太早了,有的一时也翔不起来了
|-content //插件内容文件夹
|-datebase
DateBase.js//sqlite数据库操作
|-img
Canvas.js//获取图像的base64数据或保存网页为图片
|-io(这个用的比较少,有的可能api,只是其他插件的重写下)
_FILE_BASE.js//系统文件描述符
DIR_UTILS.js//文件夹公用函数
File.js//文件操作
File_base.js//文件操作
|-network
Ajax.js//ajax功能封装1.0
Ajax2.js//ajax功能封装2.0
CACHE.js//浏览器内存控制
COOKIES.js//浏览器cookie控制
HTTP_OBSERVER.js//http请求监听
PROXY_OBSERVER.js//浏览器代理设置
POP.js//基于pop,socket与服务器通信
SMTP.js//基于SMTP,socket与服务器通信
ServerSocket.js//服务器端socket代码
Socket.js//客户端socket
|-other
保存的插件代码
|-server
httpd.js//httpserver//来源于别的项目
|-UserJS//自己用的脚本,功能更加强,涉及安全问题,可以用于黑客技术
network
Ajax3.js//ajax功能封装3.0
COOKIE_MANAGE//浏览器cookie管理,结合数据库(可以做多马甲浏览器)
COOKIE_MANAGE_AND.js//浏览器cookie管理,无数据库
HTTP_OBSERVER.js//HTTP请求响应的拦截,监控,可以修改返回,或制定返回文件
HTTP_OBSERVER-53.js//以前一个版本的保存
INFO_MANAGE.js//帐号信息管理
OPTS_MANAGE.js//数据库初始化
|-utils
_TIMER.js//浏览器级别定时器api封装
CLEAR.js//清空浏览器缓存功能(cookie,历史,flash 等)
CONFIG.js//开启java,js功能
dateFormat.js//时间格式化
Group.js//组管理(用于定时任务,定时)
jsBeautify.js
PATH_MANAGE.js//路径管理,资源文件和实际文件路径,等相关功能
Post.js//定时任务系统,主要是开发了个多帐号抢楼层逻辑
Prefs.js//配置Prefs管理
RSA.js//RSA加密
Timer.js//定时器
Worker.js//多任务管理,定时任务管理
UTIL.js//公用库(md5,迭代器,加载脚本,编码转换,浏览器提示,通过调进程切换IP)
init.js//插入chrome的初始化文件
options.json//配置短路径配置文件,主要用于require
overlay.xul//插件载入,修改chrome元素的信息xul文件
|-defaults //插件多语言等信息的文件夹
chrome.manifest //FF注册资源文件
install.rd f//FF插件信息文件
firefox 自写底层扩展,源码简介的更多相关文章
- (原创)通用查询实现方案(可用于DDD)[附源码] -- 简介
[声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3985353.html). [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- ...
- 通用查询实现方案(可用于DDD)[附源码] -- 简介
原文:通用查询实现方案(可用于DDD)[附源码] -- 简介 [声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3985353.html). [ ...
- Redis核心设计原理(深入底层C源码)
Redis 基本特性 1. 非关系型的键值对数据库,可以根据键以O(1) 的时间复杂度取出或插入关联值 2. Redis 的数据是存在内存中的 3. 键值对中键的类型可以是字符串,整型,浮点型等,且键 ...
- 手写Koa.js源码
用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...
- 图解Janusgraph系列-图数据底层序列化源码分析(Data Serialize)
图解Janusgraph系列-图数据底层序列化源码分析(Data Serialize) 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步 ...
- C写的扫描器源码
Title:C写的扫描器源码 --2010-10-27 20:02 无意间看见的一个源代码,弄回来读下. ----------------------------------------------- ...
- Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装
原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...
- 手写@koa/router源码
上一篇文章我们讲了Koa的基本架构,可以看到Koa的基本架构只有中间件内核,并没有其他功能,路由功能也没有.要实现路由功能我们必须引入第三方中间件,本文要讲的路由中间件是@koa/router,这个中 ...
- OpenSSL源码简介
1.X.509标准 x509是由国际电信联盟(ITU-T)制定的数字证书标准:包含公钥和用户标志符.CA等: x509是数字证书的规范,P7和P12是两种封装形式:X.509是常见通用的证书格式.所有 ...
随机推荐
- JQ对JSON的增删改
var userlist={ }, } } //方法一 userlist.row1.sex="女";//添加 userlist.row3={name:};//添加 userlist ...
- HDU 1038 - Biker's Trip Odometer
算一下路程和速度... #include <iostream> #include <cstdio> using namespace std; const double p=3. ...
- C++中的操作符重载
一.什么是操作符重载 操作符重载可以分为两部分:“操作符”和“重载”.说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载.运算符重载和函数重载的不同之处在于操作符重载 ...
- PHP zip压缩文件及解压
PHP zip压缩文件及解压 利用ZipArchive 类实现 只有有函数.界面大家自己写 ZipArchive(PHP 5.3 + 已自带不需要安装dll) /** * 文件解压 * @param ...
- Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()
ES5定义了五个迭代方法,每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选的),作用域对象将影响this的值.传入这些方法中的函数会接收三个参数:数组的项的值.该项在数组中 ...
- UML-状态图,顺序图,活动图
一.编写用例文档 1.用例的内容: 用例编号 用例名 执行者 前置条件 后置条件 基本路径 扩展路径 字段列表 业务规则 ...
- win7下设置 WiFi AP
开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让计算机变成无线路由器.实现共享上网. 1.以管理员身份运行命令提示符: “开始”---在搜索栏输入“cmd”-- ...
- ECO
ECO(生态环保的简写) 在与环保相关的概念和资料中,ECO 是ECOLOGICAL的缩写,用来表示生态环保的意思.与之相关产生了一些新的名词,尤其是在房地产楼书中常常被提及,如: ECO-HOME, ...
- CentOS安装与配置LNMP
本文PDF文档下载:http://www.coderblog.cn/doc/Install_and_config_LNMP_under_CentOS.pdf 本文EPUB文档下载:http://www ...
- 【巧妙思维】【4-6】Problem F
题意:有n个正方体,边长为A[i] 当A[k]-A[p]<=lim 时 k可以放在p上面, 问有多少种放法: 一开始被数据范围吓到了 ,以为是n^3算法,答案是nlogn 从小到大排序,一个一个 ...