CSS Checker JetPack Extension
Project Name
CSS Checker Add-on SDK Extension 0.3
Project Description
CSS as a standard evolves more slowly than browser vendor implementations, and as such, browser extensions are created. For example: -moz-box-shadow (Mozilla only), -webkit-box-shadow (Chrome/Safari), box-shadow (CSS standard). This extension will allow the user to tell when a a -webkit-* extension is being used for which there is also a -moz-* version. This will help with finding compatibility issues on websites that appear to work in one browser and not another.
Resources
- Vendor Specific Extensions:
- JetPack SDK
- https://jetpack.mozillalabs.com/
- IRC in #jetpack on irc.mozilla.org
- Gecko Layout Engine
- Mozilla CSS Extensions
- WebKit Layout Engine
- Webkit CSS Extensions
Project Leader(s)
Project Contributor(s)
How to Launch Add-on
- Get Add-on SDK
- Get the code
- Put the code under
jetpack_folder/packages/
- Execute
cfx run -b /path/to/minefield/firefox.exe
underjetpack_folder/packages/css-checker/
folder - Try it out with on the examples in
css-checker/example/
folder
Project Details
Add-on SDK Code
- main.js - executed upon launch; connects UI, pagemods and utility functions together.
- Populates UI
- Attaches pagemod.js to loading web pages
- Downloads external files
- funcs.js - a library with utility functions.
-
parseCSS(css)
- parses CSS
- Arguments: CSS Style Sheet in String format
- Returns: Array of Objects with selector, property and value properties
-
cssToXPath(rule)
- converts CSS Selector to XPath
- Arguments: CSS Selector in String format
- Returns: CSS Selector in XPath format
- Note: stolen from Firebug project
-
- ui.js - a library that deals with User Interface.
-
populateUI()
- populates widget
- Arguments: None
- Returns: None
- Dependencies: panel.html, panel.js
-
getStatus()
- returns status of whether or not to modify web pages
- Arguments: None
- Returns: status, possible values: "Enabled", "Disabled".
-
Content Scripts
- pagemod.js - a script that is attached to all loading webpages.
- Sends CSS either as clear text or as a link to the add-on.
- Receives a list of styles to be applied and XPath to apply styles to.
- panel.js - a script that modifies and sends status information to the add-on.
UI Component
- panel.html - UI elements that is displayed on widget click.
Releases
Release | Notes | Status |
---|---|---|
0.1 | rewritten as of 0.3 | Done |
0.2 | rewritten as of 0.3 | Done |
0.3 | Added UI, Page-mods, content scripts, XMLHttpRequest. Removed: a lot of useless code. | Done |
0.4 | Write tests for funcs.parseCss and funcs.cssToXPath. Fix bugs if any come up. Release add-on on AMO. | In progress |